{"id":23233436,"url":"https://github.com/avatechai/avatar-graph-comfyui","last_synced_at":"2025-08-19T18:32:33.177Z","repository":{"id":198203370,"uuid":"685946615","full_name":"avatechai/avatar-graph-comfyui","owner":"avatechai","description":"A custom nodes module for creating real-time interactive avatars powered by blender bpy mesh api + Avatech Shape Flow runtime.","archived":false,"fork":false,"pushed_at":"2024-05-22T21:14:14.000Z","size":495,"stargazers_count":250,"open_issues_count":10,"forks_count":15,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-12-19T03:02:43.784Z","etag":null,"topics":["comfyui","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://docs.avatech.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avatechai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-01T11:30:00.000Z","updated_at":"2024-12-16T20:12:34.000Z","dependencies_parsed_at":"2023-10-17T12:25:39.647Z","dependency_job_id":"22f57d3e-6d94-41f1-be36-4a18db1a91ba","html_url":"https://github.com/avatechai/avatar-graph-comfyui","commit_stats":null,"previous_names":["avatechai/avatar-graph-comfyui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/avatechai/avatar-graph-comfyui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avatechai%2Favatar-graph-comfyui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avatechai%2Favatar-graph-comfyui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avatechai%2Favatar-graph-comfyui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avatechai%2Favatar-graph-comfyui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avatechai","download_url":"https://codeload.github.com/avatechai/avatar-graph-comfyui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avatechai%2Favatar-graph-comfyui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271200249,"owners_count":24717408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comfyui","hacktoberfest"],"created_at":"2024-12-19T03:01:41.419Z","updated_at":"2025-08-19T18:32:32.845Z","avatar_url":"https://github.com/avatechai.png","language":"Python","funding_links":[],"categories":["Workflows (3395) sorted by GitHub Stars","All Workflows Sorted by GitHub Stars"],"sub_categories":[],"readme":"# avatar-graph-comfyui\n\n![image](https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270574817-201a005b-7e00-4671-85a1-54937bf0704e.png)\n\nWanna animate or got a question? Join our [Discord](https://discord.gg/Xp6mZ4Ez5P)\n\nA custom nodes module for **creating real-time interactive avatars** powered by blender bpy mesh api + Avatech Shape Flow runtime.\n\n\u003e **WARNING**  \n\u003e We are still making changes to the nodes and demo templates, please stay tuned.\n\n# Demo\n\n| \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/12e2bfc6-438e-4d16-bead-9957ced3bae1\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=cce15b92-6d1c-4966-91b9-362d7833cb5d) | \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/0c497025-7ed5-4e25-b4d1-5a257e1ba814\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=42a8182f-b140-48c0-a556-35cddf0f76f7) | \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/a2bf71e3-0d9c-4ddd-957f-a6b0cb7e622a\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=7c23b8d6-d1a5-41c7-a084-250461dbef22) | \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/ad808c42-5297-4e61-8be8-d5cb7729d2ff\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=268b32c4-f9b9-4db8-a27c-a7e974f0f0ac) |\n| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n| \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/1d1ad8f9-31a6-48ec-bad2-ce972ee3b12f\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=f97fc5bb-93b0-4b02-bbc0-327dd41d0fc5) | \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/06958585-f780-4b38-8f5d-bddabd7da78a\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=4d50aa03-26e4-47e7-97b6-c3fe9d8fc96e) | \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/3d0e6b54-d45f-45ac-90bd-d8b149880f98\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=791014cb-7836-4641-afdb-ac331064b682) | \u003cimg src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/1d1ad8f9-31a6-48ec-bad2-ce972ee3b12f\" width=\"180\"/\u003e\u003cbr\u003e[Interact 👆](https://editor.avatech.ai/viewer?avatarId=f97fc5bb-93b0-4b02-bbc0-327dd41d0fc5) |\n\n# How to?\n\n- [Basic Rigging Workflow Template](#basic-rigging-workflow-template)\n- [Best Practices for image input](#best-practices-for-image-input)\n- [Custom Nodes List](#custom-nodes)\n- [Shape Flow](#shape-flow)\n- [Installation](#installation)\n- [Development](#development)\n- [Join Discord 💬](https://discord.gg/WNtBYksDwF)\n\n# Basic Rigging Workflow Template\n\n### 1. Creating an eye blink and lipsync avatar\n\n![ComfyUI_00668_](https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/72a0abe8-2482-4a0d-8436-8eb231fd2f6d)\n\nFor optimal results, please input a character image with an open mouth and a minimum resolution of 768x768. This higher resolution will enable the tool to accurately recognize and work with facial features.\n\nDownload: Save the image, and drag into Comfyui or [Simple Shape Flow](https://github.com/avatechai/avatar-graph-comfyui/blob/main/workflow_templates/SimpleEye+MouthMovement.json)\n\n### 2. Creating an eye blink and lipsync emoji avatar\n\n| ![ComfyUI_00045_](https://github.com/avatechai/avatar-graph-comfyui/assets/18395202/b4787166-85df-43c6-9fe9-252989f68d18) | ![emoji_480p30_high](https://github.com/avatechai/avatar-graph-comfyui/assets/18395202/7d8b2b0a-e979-421d-8055-b4acac50a0c1) | \n| :--: | :--: |\n\nDownload: Save the image, and drag into Comfyui\n\n| ![ComfyUI_09609_](https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/caa98eec-4fb2-449d-9558-5d4a45e07580) | ![dog_480p15_high](https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/9fb701c9-f25c-408f-b96c-749773a53bd2) | \n| :--: | :--: |\n\nDownload: Save the image, and drag into Comfyui or [Dog Workflow](https://github.com/avatechai/avatar-graph-comfyui/blob/main/workflow_templates/Dog_workflow.json)\n\n# Best practices for image input\n\n### 1. Generate a new character image\n\n![image](https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270609114-acea9933-359b-4398-8d2a-582bf02bef99.png)\n\nWe need a character image with an open mouth and enable the tool to easily recognize facial features, so please add to the prompt:\n`looking at viewer, detailed face, open mouth, [smile], solo,eye-level angle`\n\nDownload: [Character Gen Template](https://github.com/avatechai/avatar-graph-comfyui/blob/main/workflow_templates/SimpleCharacterGen.json)\n\n### 2. Make existing character image mouth open (Inpaint)\n\n![inpaint_workflow](https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270589181-d11d840b-7ea6-4b47-bc26-a2af7c8c27a5.png)\n\nTo maintain consistency with the base image, it is recommended to utilize a checkpoint model that aligns with its style.\n\nDownload: [Mouth Open Inpaint Template](\u003chttps://github.com/avatechai/avatar-graph-comfyui/blob/main/workflow_templates/MouthOpen_(inpaint).json\u003e)\n\n\u003cdetails\u003e\n\u003csummary\u003e Inpaint Demonstration \u003c/summary\u003e\n\n\u003cvideo src=\"https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/e3b77295-a1bf-4d96-9551-7cc423a4af73\"/\u003e\n\n\u003c/details\u003e\n\n### 3. Pose Constraints (ControlNet)\n\n![image](https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270943267-c3cae113-2df4-45f2-a19c-885cbee75450.png)\n\nPlace normal and openpose image with reference to images.\n\nDownload: [ControlNet Gen](https://github.com/avatechai/avatar-graph-comfyui/tree/main/workflow_templates/TemplateGen01)\n\n\n# Recommend Checkpoint Model List\n\n##### Anime Style SD1.5\n\n- https://civitai.com/models/35960/flat-2d-animerge\n- https://civitai.com/models/24149/mistoonanime\n\n##### Realistic Style SD1.5\n\n- https://civitai.com/models/4201/realistic-vision-v51\n- https://civitai.com/models/49463/am-i-real\n- https://civitai.com/models/43331/majicmix-realistic\n\n# Custom Nodes\n\nExpand to see all the available nodes description.\n\n\u003cdetails\u003e\n\u003csummary\u003e All Custom Nodes \u003c/summary\u003e\n\n| Name                 | Description                                                                                    | Preview                                                                                                                                                              |\n| -------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `Segmentation (SAM)` | Integrative SAM node allowing you to directly select and create multiple image segment output. | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270576351-8aabeba8-5450-4d39-8203-e91f9ab47190.png\" width=\"300\"\u003e |\n\n\n| Name                         | Description                                                                                     | Preview                                                                                                                                                              |\n| ---------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `Create Mesh Layer`          | Create a mesh object from the input images (usually a segmented part of the entire image)       | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270576646-40740d25-9411-4cd3-a6c0-8b9008bca41c.png\" width=\"300\"\u003e |\n| `Join Meshes`                | Combine multiple meshes into a single mesh object                                               | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270577004-ba7afbc5-9cd5-4f97-9614-f71133f5783e.png\" width=\"300\"\u003e |\n| `Match Texture Aspect Ratio` | Since the mesh is created in 1:1 aspect ratio, a re-scale is needed at the end of the operation | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270602782-cb7155be-fb31-49f8-a24a-d001a1484ea7.png\" width=\"300\"\u003e |\n| `Plane Texture Unwrap`       | Will perform mesh face fill and UV Cube project on the target plane mesh, scaled to bounds.     | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270603006-4b9c0cf5-0497-47bf-8e06-5a3370084c11.png\" width=\"300\"\u003e |\n\n| Name                    | Description                                                                                        | Preview                                                                                                                                                              |\n| ----------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `Mesh Modify Shape Key` | Given shape key name \u0026 target vertex_group, modify the vertex / all vertex’s transform             | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270577944-ab4f259c-89a7-4f51-bc54-fd179e252073.png\" width=\"300\"\u003e |\n| `Create Shape Flow`     | Create runtime shape flow graph, allowing interactive inputs affecting shape keys value in runtime | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270592752-abfdd801-0387-4c5d-9c11-6c23337ff1dd.png\" width=\"300\"\u003e |\n\n| Name                 | Description                                                                                           | Preview                                                                                                                                                              |\n| -------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `Avatar Main Output` | The primary output of the .ava file. The embedded Avatar View will auto update with this node's output | \u003cimg src=\"https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270592519-6a9a8bb4-05ec-4a2e-98bf-194b6af3a62a.png\" width=\"300\"\u003e |\n\n\u003c/details\u003e\n\n# Shape Flow\n\n![image](https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270618471-a834e535-4f87-4b77-81a6-435e3a67ca4a.png)\n\n# Installation\n\n## Method 1 - Windows\n\n1. Download Python environment from [here](https://avatech-avatar-dev1.nyc3.digitaloceanspaces.com/comfyui/ComfyUI_3.10.7z)\n\n2. Unzip it to ComfyUI directory\n\n3. Run the `run_cpu_3.10.bat` or `run_nvidia_gpu_3.10.bat`\n\n4. Install avatar-graph-comfyui from [ComfyUI Manager](https://github.com/ltdrdata/ComfyUI-Manager)\n\n## Method 2 - macOS/Linux\n\nMake sure your Python environment is `3.10.x` as required by the [bpy](https://pypi.org/project/bpy/) package. Then go to the [ComfyUI](https://github.com/comfyanonymous/ComfyUI) directory and run:\n\n\u003e Suggest using conda for your comfyui python environment\n\u003e \n\u003e `conda create --name comfyui python=3.10`\n\u003e \n\u003e `conda activate comfyui`\n\u003e \n\u003e `pip install -r requirements.txt`\n\n1. `cd custom_nodes`\n\n2. `git clone https://github.com/avatechgg/avatar-graph-comfyui.git`\n\n3. `cd avatar-graph-comfyui \u0026\u0026 python -m pip install -r requirements.txt`\n\n4. Restart ComfyUI with enable-cors-header `python main.py --enable-cors-header` or (for mac) `python main.py --force-fp16 --enable-cors-header`\n\n# Development\n\nIf you are interested in contributing\n\nFor comfyui frontend extension, frontend js located at `avatar-graph-comfyui/js`\n\nWeb stack used: [vanjs](https://github.com/vanjs-org/van) [tailwindcss](https://github.com/tailwindlabs/tailwindcss)\n\n## Install deps\n\n```\npnpm i\n```\n\nRun the dev command to start the tailwindcss watcher\n\n```\npnpm dev\n```\n\nFor each changes, simply refresh the comfyui page to see the changes.\n\n\u003cdetails\u003e\n\u003csummary\u003ep.s. For tailwind autocomplete, add the following to your vscode settings.json.\u003c/summary\u003e\n    \n```json\n{\n    \"tailwindCSS.experimental.classRegex\": [\n        [\"class\\\\s?:\\\\s?([\\\\s\\\\S]*)\", \"(?:\\\"|')([^\\\"']*)(?:\\\"|')\"]\n    ]\n}\n```\n\u003c/details\u003e\n\n## Update blender node types\n\nTo update blender operations input and output types (stored in `blender/input_types.txt`), run:\n\n```bash\npython generate_blender_types.py\n```\n\n# FAQ\n\n## What is `--enable-cors-header` used for?\nIt is used to enable communication between ComfyUI and our editor (https://editor.avatech.ai), which is in charge of animating static characters. The only messages exchanged between them are the character data like the meshes of eyes and mouth, and the JSON format of our editor graph.\n\nWhen you execute the ComfyUI graph, it sends the character data and the JSON graph to our editor for animating. When you modify and save the graph in our editor, it sends the modified graph back to ComfyUI. To validate it, you can open the `js/index.js`, and log the message in `window.addEventListener(\"message\", ...)` and `postMessage(message)`.\n\nYou can also run ComfyUI *without* the `--enable-cors-header`: execute the ComfyUI workflow, then download the .GLB or .GLTF format by right clicking the Avatar Main Output node and Save File option. Yet, this will disable the real-time character preview in the top-right corner of ComfyUI. Feel free to view it in other software like Blender.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favatechai%2Favatar-graph-comfyui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favatechai%2Favatar-graph-comfyui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favatechai%2Favatar-graph-comfyui/lists"}