# avatar-graph-comfyui ![image](https://github.com/avatechai/avatar-graph-comfyui/assets/18395202/201a005b-7e00-4671-85a1-54937bf0704e) A custom nodes module for **creating real-time interactive avatars** powered by blender bpy mesh api + Avatech Shape Flow runtime. # Demo |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=cce15b92-6d1c-4966-91b9-362d7833cb5d) |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=4d50aa03-26e4-47e7-97b6-c3fe9d8fc96e) |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=7c23b8d6-d1a5-41c7-a084-250461dbef22) |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=268b32c4-f9b9-4db8-a27c-a7e974f0f0ac) | |:---:|:---:|:---:|:---:| |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=c8a352a4-bed8-4b4d-b99c-c9c3938c5023) |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=4d50aa03-26e4-47e7-97b6-c3fe9d8fc96e) |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=4d50aa03-26e4-47e7-97b6-c3fe9d8fc96e) |
[Interact ๐Ÿ‘†](https://editor.avatech.ai/viewer?avatarId=cce15b92-6d1c-4966-91b9-362d7833cb5d) | # Contents - [Workflow Template](workflow-template) - [Template01 - Simple Shape Flow](#template01---simple-shape-flow) - [Image Preprocess Guide](#image-preprocess-guide) - [Character Gen Prompting Guide](#character-gen-prompting-guide) - [Mouth Open Guide (Inpaint)](#mouth-open-guide-inpaint) - [Custom Nodes](custom-nodes) - [Image Segmentation Nodes](#image-segmentation-nodes) - [Mesh Edit Nodes](#mesh-edit-nodes) - [Shape Keys Nodes](#shape-keys-nodes) - [Avatar Output Nodes](#avatar-output-nodes) - [Shape Flow](#shape-flow) - [Installation](#installation) - [Development](#development) # Workflow Template ## Template01 - Simple Shape Flow To enable the character to blink eyes and talking. > **๐ŸŽฏNotice** > > For 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. [๐Ÿ’กGenerate new image Guide](#character-gen-prompting-guide) [๐Ÿ’กMake your character mouth open Guide](#mouth-open-guide-inpaint) ![eye+mouth movement](https://github.com/avatechai/avatar-graph-comfyui/assets/18395202/8a237b9d-05fc-4e4a-b802-6465911f0d77) ### Download: ๐Ÿ“‚[Template01 - Simple Shape Flow](https://github.com/avatechai/avatar-graph-comfyui/blob/main/workflow_templates/SimpleEye+MouthMovement.json) ### Download: ๐Ÿ“‚[Template01 - ControlNet Gen](https://github.com/avatechai/avatar-graph-comfyui/tree/main/workflow_templates/TemplateGen01) _If you don't want to modify any values in the custom nodes, you can download the ControlNet Gen Template to generate your own image._
Template01 - Nodes Value Setting Guide ## Template01 - Nodes Value Setting Guide > ### Basic Eyeblink & Talking > 1. Click **[Segmentation (SAM)]/ Edit prompt** button > > 2. Add new layer and rename > > 3. Drag layer to **[Create Mesh Layer]/image** > > 4. **[Create Mesh Layer]/ face_threshold, shape_threshold**, To control mesh threshold, recommend value: 0.6~0.7 > > 5. **[Create Mesh Layer]/ scale_x, scale_y, extrude_x, extrude_y**, To control mesh threshold, recommend value: 1.2~1.4 > > 6. **[Modify Shape Key]/ rotate** Setting Reference, If Head tilted to the left, set a positive number angle > > | | | | | > | --- | --- | --- | --- | > | 0 | 5 | -5 | -15 |
Template01 - ControlNet Gen Guide Place normal and openpose image with reference to images. ![image](https://github.com/avatechai/avatar-graph-comfyui/assets/48451938/c3cae113-2df4-45f2-a19c-885cbee75450)
# Image Preprocess Guide ### ๐Ÿ’กIf you want to generate a new character image > you can download this Template and refer to the Guide! >
> Character Gen Prompting Guide > > # Character Gen Prompting Guide >> **๐ŸŽฏNotice** >> >> We need a character image with an open mouth and enable the tool to easily recognize facial features, so please add to the prompt: >> >> ```looking at viewer, detailed face, open mouth, [smile], solo,eye-level angle``` > >![image](https://github.com/avatechai/avatar-graph-comfyui/assets/48451938/acea9933-359b-4398-8d2a-582bf02bef99) > > ### Download: ๐Ÿ“‚[Character Gen Template](https://github.com/avatechai/avatar-graph-comfyui/blob/main/workflow_templates/SimpleCharacterGen.json) > Feel free to change any checkpoint model that suits your needs. > >
### ๐Ÿ’กIf you have a character image but it's not mouth open > you can download this Template and refer to the Guide! >
> Mouth Open Guide (Inpaint) > > # Mouth Open Guide (Inpaint) > To maintain consistency with the base image, it is recommended to utilize a checkpoint model that aligns with its style. > > ![inpaint_workflow](https://github.com/avatechai/avatar-graph-comfyui/assets/48451938/d11d840b-7ea6-4b47-bc26-a2af7c8c27a5) > > ### Download: ๐Ÿ“‚[MouthOpen Template](https://github.com/avatechai/avatar-graph-comfyui/blob/main/workflow_templates/MouthOpen_(inpaint).json) > > ### Inpaint Demonstration > > https://github.com/avatechai/avatar-graph-comfyui/assets/48451938/ff48c3d9-7292-4505-8993-8f117cee34ff > > ### Recommend Checkpoint Model List > > ##### Anime Style SD1.5 >- https://civitai.com/models/35960/flat-2d-animerge >- https://civitai.com/models/24149/mistoonanime >- https://civitai.com/models/22364/kizuki-anime-hentai-checkpoint >##### Realistic Style SD1.5 >- https://civitai.com/models/4201/realistic-vision-v51 >- https://civitai.com/models/49463/am-i-real >- https://civitai.com/models/43331/majicmix-realistic > >
# Custom Nodes Expand to see all the available nodes description Mesh Edit Nodes Shape Keys Nodes Avatar Output Nodes
Image Segmentation Nodes ## Image Segmentation Nodes | Name | Description | Preview | | ---------------------------- | ------------ | ------- | | `Segmentation (SAM)` | Integrative SAM node allowing you to directly select and create multiple image segment output. | |
Mesh Edit Nodes ## Mesh Edit Nodes | Name | Description | Preview | | ---------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | `Create Mesh Layer` | Create a mesh object from the input images (usually a segmented part of the entire image) | | | `Join Meshes` | Combine multiple meshes into a single mesh object | | | `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 | | | `Plane Texture Unwrap` | Will perform mesh face fill and UV Cube project on the target plane mesh, scaled to bounds. | |
Shape Keys Nodes ## Shape Keys Nodes | Name | Description | Preview | | ---------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | `Mesh Modify Shape Key` | Given shape key name & target vertex_group, modify the vertex / all vertexโ€™s transform | | | `Create Shape Flow` | Create runtime shape flow graph, allowing interactive inputs affecting shape keys value in runtime | |
Avatar Output Nodes ## Avatar Output Nodes | Name | Description | Preview | | ---------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | `Avatar Main Output` | The primary output of the .ava file. The embeded Avatar View will auto update with this node's output | |
# Shape Flow ![image](https://github.com/avatechai/avatar-graph-comfyui/assets/18395202/a834e535-4f87-4b77-81a6-435e3a67ca4a) # Installation Clone the repository to custom_nodes in your [ComfyUI](https://github.com/comfyanonymous/ComfyUI) directory: 1. `cd custom_nodes` 2. `git clone https://github.com/avatechgg/avatar-graph-comfyui.git` 3. Install deps `cd avatar-graph-comfyui && python -m pip install -r requirements.txt` 4. Restart comfyui 5. Run comfyui with enable-cors-header `python main.py --enable-cors-header` or (mac)`python main.py --force-fp16 --enable-cors-header` # Development
If you are interested in contributing expand to see development details For comfyui frontend extension, frontend js located at `avatar-graph-comfyui/js` Web stack used: [vanjs](https://github.com/vanjs-org/van) [tailwindcss](https://github.com/tailwindlabs/tailwindcss) ## Install deps ``` pnpm i ``` Run the dev command to start the tailwindcss watcher ``` pnpm dev ``` For each changes, simply refresh the comfyui page to see the changes.
p.s. For tailwind autocomplete, add the following to your vscode settings.json. ```json { "tailwindCSS.experimental.classRegex": [ ["class\\s?:\\s?([\\s\\S]*)", "(?:\"|')([^\"']*)(?:\"|')"] ] } ```