Avatar Graph
Include nodes for sam + bpy operation, that allows workflow creations for generative 2d character rig.
Nodes (634)
Hand-sculpting a blink or a mouth shape without opening Blender
Naming a selection so later nodes can target it
The terminal node every Avatar Graph workflow ends at
Feeding a dynamic string into any of this pack's enum fields
Pulling a 2D render out of Avatar Graph's 3D scene
A plain XYZ constant for this pack's blender nodes
A four-component constant for this pack's blender nodes
Merging SAM click-prompts into one prompt string
Deciding what a scale or rotate pivots around
The node that carries your avatar's runtime behavior
The node that puts a mesh into Blender's Edit Mode
The manual bridge between Shape Flow and your glTF export
The terminal node that actually writes your avatar to disk
Turn a segmented blob into a clean mesh outline
Pull one object back out of a group
Reading image dimensions as live values in Avatar Graph
Bundle two Blender objects into one socket
Cutting out transparent layers for Avatar Graph's mesh textures
A relay node that's supposed to do nothing
ComfyUI Node Guide
The loader that doesn't throw away your transparency
What it's for, and the bug you'll actually hit
Writes a value into the mesh's active attribute layer
Smooth out shading seams where flat mesh pieces meet
Fixes ugly triangulation after a face fill
Rounds sharp edges — most of its 20 fields you'll never touch
Cuts a mesh with a plane — most of the fields are leftover UI state
The actual mechanic behind mixing shape keys
Stitches two open boundaries together with new geometry
ComfyUI Node Guide
A niche fix for twisted per-corner color data
Shrink-wraps your selection into a simple, dent-free shape
Unlocks per-edge bevel weight, does nothing visible
The reverse of Add — wipes the layer out
Same idea as the edge version, one level up
The vertex half of a pair you'll rarely need to remove
Flips on subdivision-surface creasing, nothing else
Strips edge-crease data back out of a mesh
The newer, lesser-known sibling of edge crease
Removes per-vertex crease data
Locks in editable normals instead of Blender's auto-calculated ones
Hands normal calculation back to Blender
A Sculpt Mode leftover that has nothing to do with rigging avatars
Sets up the data the Skin Modifier reads to inflate a stick figure into a mesh
Tears down the Skin Modifier's per-vertex radius data
Collapsing selected geometry down by ratio in Avatar Graph
The blunt instrument, five ways to swing it
Blender's Ctrl+X, minus the hole a plain delete would leave
Sweeps up floating vertices and dangling edges nobody's using
Cleans up the near-duplicate geometry a remesh step leaves behind
Removes edges without leaving a hole
Merging selected faces without deleting geometry in Avatar Graph
The one cleanup operator actually worth reaching for reflexively
The generic dissolve behind Blender's own Ctrl+X, wherever your selection mode is
Removes vertices, keeps the surface sealed
Copying part of a mesh's geometry inside Avatar Graph
Duplicates on top of itself unless something downstream actually moves it
Duplicate-and-extrude toward wherever the 3D cursor happens to be
Zip a strip of edges shut
Blender's F-key, wired into ComfyUI
Grab a parallel band of edges in one click
Flip a triangle pair's shared diagonal
Cut a mesh apart without deleting anything
Grabbing hard-angle edges by threshold in Avatar Graph
Blender's E-key smart extrude, scripted into a node
The smart extrude behind Blender's E key
Each edge gets its own extrusion
Pull an edge loop into a wall
Every face pops out on its own
Push a patch of faces out as one piece
The extrude that won't leave junk geometry at corners
Extrude without the move bolted on
Extrude in the everyday sense of the word
Extrude that follows the surface's own curve
Build a ribbed strip in one node
The lightest-weight extrude in the pack
Every selected point grows its own spike
Flattening warped faces back into a plane in Avatar Graph
Pull a sculpted piece out as its own mesh
Stop hand-mirroring UVs on symmetric meshes
A knife cut driven by edges you've already made
Growing a selection across a flat patch of mesh
Telling faces to stop blending into their neighbors
Blending faces so a low-poly mesh doesn't look faceted
Closing an open boundary loop with triangles
Patching a gap with quads instead of a triangle fan
Automatically patching small gaps in Avatar Graph
The fix when a face renders black or invisible
An invisible-in-Blender fix for export-time triangulation
ComfyUI Node Guide
Framing a face before you do something to just the inside
Cutting a mesh's geometry against itself
Union, difference, and intersect without leaving edit mode
Combining separate Avatar Graph layers into one mesh
Cutting a traced outline straight into your mesh
Blender's interactive cutting tool exposed as a node in Avatar Graph
Adding edge loops by index instead of by mouse drag
The companion node with nothing to slide
Turning a starting edge into a full loop in Avatar Graph
The Alt+Click gesture as a node
Turning an outline into the faces it encloses
A line-art flag most Avatar Graph users will never need
The face-level sibling of a rendering flag you probably don't need
Telling Blender's unwrapper where it's allowed to cut
Flagging edges to hold their shading break in Avatar Graph
Welding selected vertices together, on your terms
Fixing the shading seam where two mesh pieces meet
The node that actually rigs the blink and the lipsync
Telling Blender's Weighted Normal modifier which faces win
The Shift+N of ComfyUI mesh nodes
Copy-paste for custom vertex normals
Adding a loop cut without cutting the whole face loop
The interactive loop-insert tool, minus the interaction
Pulling a masked region out as its own mesh in Avatar Graph
Cutting a mesh down to the part your segmentation mask kept
Faking rounded shading on a flat mesh, straight from Blender
Turning a flat face into a fan of triangles around one center point
Blender's Poly Build tool, minus the cursor
A cleaner delete, if you had a cursor to aim it
Extrude-and-drag, without the drag
Blender's click-to-add-a-face tool, wrapped as a node
Add-a-face, then drag it — minus the drag
Adding a vertex mid-edge, Poly Build style
Split-and-drag, minus the drag
Grab-the-nearest-vertex, without a cursor to grab with
Grab-and-drag, minus the drag
Dropping a clean circle mesh into your avatar graph
One node, cones, cylinders, and frustums
Blender's cube, straight from a ComfyUI node
The interactive cube, minus the interaction
Dropping a cylinder into your Avatar Graph scene
A subdivided plane, for anything that needs to bend
Building eyeballs and round props in Avatar Graph
Blender's mascot, one node away
The flattest possible starting point
Dropping a donut into your Avatar Graph scene
A proper sphere with real UVs baked in
Triangulate before something else does it for you
Trace the outline of whatever you've got selected
ComfyUI Node Guide
Bring back geometry you hid earlier in the graph
Tear the mesh open along a seam without deleting anything
ComfyUI Node Guide
The edge-based version of Blender's rip macro
Blender's V-key rip, without the mouse drag
Spin a profile into a spiral, lathe-style
The reset button for whatever's selected
Grab everything lined up with your active vertex
Grab every triangle, or every ngon, in one shot
Find the geometry buried inside your mesh
Shrink your selection by one ring
Grab everything connected to what you've already got
Blender's click-to-select-connected-geometry, scripted
Find the geometry nothing else is attached to
Instant selection symmetry across an axis
Switch between vertex, edge, and face selection
Grow your selection outward one ring
Step the active element forward
Find the mesh errors before they wreck your export
Checker-deselect, keep every Nth element
Step the active element backward
Grab a reproducible random chunk of the mesh
Extend a selection to everything that matches
Find every copy of a shape on the mesh
Catching vertices you forgot to weight
Split part of a mesh into its own object
Fix shading glitches on generated geometry
Drive an existing shape key by name
Keep every shape key in sync after a base edit
Select a path to a specific element by index
Connect two selected points with the shortest route
ComfyUI Node Guide
Turn a flat plane into an actual solid
Reorder the mesh's internal index numbering
Lathe a profile into a revolved shape
Disconnect a selection without making a new object
Fixing shading seams on Avatar Graph's auto-built mesh
Giving Avatar Graph's shape keys more geometry to bend
Adding resolution along a loop, not across the whole mesh
Mirroring a lopsided Avatar Graph mesh in one pass
Nudging an almost-symmetric mesh the rest of the way
ComfyUI Node Guide
Walking a subdivided Avatar Graph mesh back down
Fixing a texture that's landed mirror-flipped
Fixing a texture that landed sideways on one face
Opening a fresh UV slot on an Avatar Graph mesh
Clearing a stray UV map before you redo it
Drawing your own edge across a face
Auto-splitting a bowtie n-gon
Flattening faces that warped out of plane
Blender's vertex-connect operator, wired into ComfyUI
Sanding the noise out of an auto-generated mesh
Smoothing jagged mesh geometry without deflating it
Turning edges into real geometry in Avatar Graph
Dropping a raw Blender primitive into the scene
Pulling a specific Blender object into the graph by name
Batch-creating the keys your rig actually needs
Lining up scene objects without doing the math yourself
Folding animated transforms into deltas
Dropping a bone rig into an Avatar Graph scene
Sanitizing an object before Shape Flow gets it
Getting your ComfyUI image onto the mesh
Flattening Avatar Graph's 3D mesh into a 2D texture
Baking a texture from inside a Blender node graph
Wiping an object's keyframes clean
Giving an object somewhere to hang keyframes
Stripping asset-browser metadata off an object in Avatar Graph
Blender's asset thumbnail, wrapped as a node
Tagging a Blender object as a reusable asset
Freeing Blender's evaluated-mesh cache mid-graph
A camera projection matrix, computed but not wired out
Auto-framing a camera around a set of points
Snapping a point onto a mesh's surface
Converting a transform between coordinate spaces
Duplicating an object before you break it
Blender's deepest internals, exposed as a node
Mapping a deformed vertex offset back to the base mesh
Populating Blender's deformed-mesh cache
Freeing the deformed-mesh cache when you're done
Reading a mesh's actual current shape, post shape-keys
Locating the rig behind a mesh
Turning a mesh into vector line art
Reading whether an object is hidden
Toggling an object's visibility from the graph
Reading an object's render-holdout flag
Reading whether an object only casts indirect light
Object Call Is Deform Modified — ComfyUI Node from Avatar Graph
Object Call Is Modified — ComfyUI Node from Avatar Graph
Object Call Local View Get — ComfyUI Node from Avatar Graph
Object Call Local View Set — ComfyUI Node from Avatar Graph
Object Call Make Local — ComfyUI Node from Avatar Graph
Object Call Override Create — ComfyUI Node from Avatar Graph
Object Call Override Hierarchy Create — ComfyUI Node from Avatar Graph
Object Call Override Template Create — ComfyUI Node from Avatar Graph
Object Call Preview Ensure — ComfyUI Node from Avatar Graph
Object Call Ray Cast — ComfyUI Node from Avatar Graph
Object Call Select Get — ComfyUI Node from Avatar Graph
Object Call Select Set — ComfyUI Node from Avatar Graph
Object Call Shape Key Add — ComfyUI Node from Avatar Graph
Object Call Shape Key Clear — ComfyUI Node from Avatar Graph
Object Call Shape Key Remove — ComfyUI Node from Avatar Graph
Object Call To Curve — ComfyUI Node from Avatar Graph
Object Call To Curve Clear — ComfyUI Node from Avatar Graph
Object Call To Mesh — ComfyUI Node from Avatar Graph
Object Call To Mesh Clear — ComfyUI Node from Avatar Graph
Object Call Update From Editmode — ComfyUI Node from Avatar Graph
Force Blender's dependency graph to notice a change
Strip a datablock's user count inside Avatar Graph
Count how many times a datablock gets referenced
Swap one Blender datablock for another everywhere
Check if an object is actually visible right now
Per-viewport visibility, not global
Drop a Blender camera into your Avatar Graph scene
Detach an object from a linked library override
Dropping a Blender object into its own collection
The internal op behind Blender's asset drag-and-drop
Instance a whole Collection without duplicating it
File an object into a Blender Collection
Grabbing a whole group of parts at once in Avatar Graph
ComfyUI Node Guide
Pull an object back out of a Collection
Add a bare Blender constraint, no target set
Add a constraint pre-wired to your selection
Stripping every constraint off an object in one step
Clone one object's constraint stack onto others
ComfyUI Node Guide
Capture the base pose for a Corrective Smooth modifier
Avatar Graph's core node for turning a segmented image into a mesh
Finer contour control over Avatar Graph's mesh-from-image node
Starting a hair-curves system on your character's mesh
Blender's hair-curves operator, along for the ride
ComfyUI Node Guide
Generate the data layers a Data Transfer modifier needs
Carrying UVs and weights across rebuilt meshes in Avatar Graph
Cleaning up scrap objects in an Avatar Graph scene
Blender's asset-drag operator, not a graph tool
Placing an image file into the Avatar Graph scene
Assigning an existing material by name
The general-purpose copy node behind Avatar Graph's other duplicate tools
Copying a whole object and placing it in one step, Avatar Graph style
Blender's Alt+D, as a single node
Turning virtual instances into real objects
Tab, but as a node
Dropping a physics force field into the scene
A plain anchor point for your Avatar Graph scene
Recalculating a stale Explode modifier
Creating a named grouping of faces
Putting the selected faces into a face map
The inverse of Face Map Select
Reordering face maps up or down in Avatar Graph
Deleting the active face map in Avatar Graph
Dropping faces out of a face map without deleting them
Turning a face map's membership into an actual selection
Turning any object into (or out of) a force field
Switching a modifier input from a fixed value to mesh data
Promoting a one-off modifier setup into a reusable node group
Making a shared node group unique to one object
Spawn a grease pencil object for your 2D-in-3D overlays
Give your grease pencil strokes superpowers, one at a time
Bake those grease pencil modifiers into the strokes
Duplicate a grease pencil modifier without rebuilding it
Share one modifier across every grease pencil object at once
Reorder your modifier stack, one slot at a time
Teleport a modifier straight to the slot you want
Walk a modifier up the stack, one slot at a time
Delete a grease pencil modifier by name
Hide it from the viewport in one node
Un-hide everything for render, in one breath
Reveal everything in the viewport
The Blender 'hide this so it stops blocking my view' node for Avatar Graph
Creating a Blender hook empty without leaving ComfyUI
Hooking vertices to a bone or empty that already exists
The hook 'Assign' button, as a ComfyUI node
The 'why is my hook dragging the mesh sideways' fix
Untethering vertices from a hook, cleanly
Returning a hook to rest position after you've yanked it around
Which verts is this hook driving? This node answers
The Blender instancing-offset node that's mostly for completeness
Make your duplicates orbit a point that isn't them
The other half of Blender's instance-offset pair
Solo-rendering one object type — the avatar's render-hygiene node
Merging your avatar's mesh layers
Copying shape keys from every selected mesh onto one — the blendshape collector
Bringing UV maps along when your avatar layers get together
Binding the Laplacian deform — the cloth-and-detail-saver
Putting a light in your avatar's scene without opening Blender
Adding indirect lighting to your avatar's real-time scene
The step that actually makes your avatar's indirect light exist
The memory-cleanup node for your avatar's baked lighting
Baking line art into grease pencil
Bake your Blender line art right inside the ComfyUI graph
Clearing one object's line art
Wipe every baked line-art stroke in the scene at once
Organize your avatar's parts into Blender collections without leaving the graph
Drop a reference image into the Blender viewport, straight from ComfyUI
Bringing your character art into Avatar Graph's Blender scene
Snap an avatar part back to the origin, cleanly
Turn every face of a mesh into a copy of your object
Share the same mesh, material, or modifiers across objects
Put the same object into another scene without copying it
Breaking a linked/library object free so you can actually edit it
Escape linked-library lock-in with a library override
Break shared data links before you wreck your whole rig
1 avatar mesh into the right shape
Giving an object a fresh empty material slot in Avatar Graph
Painting the active material onto selected faces
Stamp one object's material setup onto everything else
Unselect the faces that share the active material
Reorder material slots the way Blender's list does
Deleting the active material slot in Avatar Graph
Tidying up after Avatar Graph joins your meshes
Select every face that uses the active material
ComfyUI Node Guide
Turning a flat image into an actual 3D mesh object
Add blobby organic shapes that fuse together
Switch an object into edit, pose, sculpt, or paint mode
Set the mode and the vertex/edge/face submode in one go
Stack a subsurf, mirror, solidify, or any of 57 modifiers
Bake a modifier into the mesh so it's finally real
Turn a modifier's effect into an animatable shape key
Baking a particle system into real geometry in Avatar Graph
Duplicate a modifier so you can experiment without losing it
Push a modifier from one object onto all the others
Nudge a modifier down the stack, one position at a time
Jump a modifier straight to any position in the stack
Reordering a Blender modifier stack from ComfyUI
Delete a Blender modifier from inside your ComfyUI graph
Pick which Blender modifier is 'active', without opening Blender
Organizing generated objects into named groups in Avatar Graph
Commit a multires base mesh so your edits stick
Pull multires displacement back into the file
Write multires displacement to an external file
Drop the high subdivision levels you don't need
Rebuild a Multires modifier's higher levels from the base
Reshape a Multires object to match another mesh
Add detail with a Multires level, Catmull-Clark and all
Stripping a subdivision level back off in Avatar Graph
Bake an ocean simulation, or just skip this node
Snap an object's origin back to the world, mesh stays put
Move it to geometry, cursor, or center of mass
Un-parent an object, with three ways to handle the transform
Freeze a parented object's offset so it stops snapping back
Parent with no inverse, so the child snaps to the parent
Parent layers together, Blender-style, from inside the graph
Add a particle system to an object (hair, if you must)
Delete the active particle system slot, no questions asked
Drawing an object's motion trail in the viewport
Clear cached animation motion paths off your objects
Update cached motion paths — the node you can safely ignore
Refreshing every motion path after you change the animation
The node that gives your flat avatar plane real UVs and a texture
The Avatar Graph node nobody tells you to use (and you mostly won't)
Pose mode, the on/off switch your rigged avatar needs before you can bend it
Clean quad topology for Avatar Graph meshes
Blow your avatar apart — deliberately, this time
Give your avatar hair without learning Blender's hair system
Make your avatar cry actual liquid with Blender's one-click fluid sim
ComfyUI Node Guide
Scatter props and add variation without placing a single thing by hand
ComfyUI Node Guide
Snap a rotated object back to identity — the tiny reset node
Reset scale to 1 without touching your rotation — the other cleanup node
The node that reminds you most Blender ops care about selection
Grab every mesh, every camera, every light — one type at a time
Find your cameras in a scene that has one of everything
Grab the whole group — children, siblings, or everything in a collection
Grabbing a whole parent/child chain at once
Shrink your selection one ring at a time — Blender's Select Less
Select everything that shares the same data — the 'same mesh, same material' node
Select the mirror twin of everything you've got — for symmetrical avatars
Grow your selection outward — the pulse to Select Less's push
Select by name — the wildcard node that makes naming conventions pay off
Pick a random subset of your scene, reproducibly
Select everything in a named collection — organization as a workflow tool
Which material slot is 'active'? You decide, in a node
The node that picks which shape key you're driving — core to the whole rig
Giving Avatar Graph's rigging a fixed baseline
Telling Blender how to draw your object's bounds
TEXTURED, WIRE, and friends
Bigger gizmos for the empties you keep losing in the viewport
Changing how an Empty draws in the viewport
Draw order for image-reference Empties
ComfyUI Node Guide
Keep the rig scaffolding out of your final render
The 'stop grabbing me' flag for Blender objects
Tidy your Blender scene without hiding anything from the render
Sizing the duplicates when you instance a mesh onto faces
Making dozens of copies from one mesh, automatically
Mostly a formality
The evaluated-object flag, and why it's a no-op here
A read-only flag that mostly just describes reality
Set it, or don't — it barely matters
Punch a hole in your scene with holdout
Marking the object that makes the copies
The library-indirect flag (you can ignore it)
The missing-link flag (usually false, and that's fine)
A flag node that mostly exists for the runtime
Catching real shadows for your animated avatar
Light groups for Cycles nerds
The rotation lock almost nobody needs
ComfyUI Node Guide
Which Blender mode is this object in?
Rename your avatar's parts without ever opening Blender
Object Set Name Full — the setter for Blender's de-duplicated name
Pin a mesh layer to a bone so it follows the armature
Object Set Parent Type — decide how a part attaches to its parent
The little integer that powers object-index masks and renders
Object Set Rotation Mode — how Blender stores a rotation
Wireframe every edge in the viewport, not just the outline
Draw the little axis arrows on a Blender object
Draw a bounding box around your avatar's parts
Only show an empty's image when the camera is square-on
Show or hide an empty's image in orthographic view
Show or hide an empty's image in perspective view
Make a part draw through everything else in the viewport
Keep or drop instancers in the final render
Instancer visible in the editor but not in the render
Toggling the floating name label above an object
Preview one shape key in isolation
Showing an object's generated texture-coordinate box
Ghost a mesh in the viewport
Toggling the wireframe overlay on an object in Avatar Graph
Flag an object as tagged, whatever that means in your pipeline
Which way an object points when it's tracking a target
Set (or mis-set) an object's type
Which way your avatar actually stands
The Avatar Graph node you'll almost never touch
A sculpt-mode flag in an avatar pack
Fixing transparent reference images in Avatar Graph
Keeping generated avatar data from disappearing
Stop Blender from recycling your avatar meshes
When 2D strokes should react to 3D light
Controlling Blender's face-instancing size
Giving each instanced copy its own twist
Symmetric editing for symmetrical avatars
Symmetric editing across the front-back axis
The top-bottom mirror flag you'll leave alone
The Avatar Graph node that sets a number Blender owns
Controlling how edits interact with shape keys in Avatar Graph
Making repeated avatar simulation runs fast
Hiding avatar helpers from the render
Fine-grained control over what your avatar's lighting sees
Hiding things from reflections without hiding them
Make an avatar element stop casting shadows
Keeping avatars out of glass and refraction paths
The ray-visibility node for fog and atmosphere
ComfyUI Node Guide
Real-time glow and effects for 2D avatar art
The clone button for Grease Pencil effects
The other half of the reorder pair
Park an effect exactly where you want it
Order matters in an effect stack
Clean effects off your Grease Pencil layers
Stop your avatar mesh from looking faceted
Where facial animation starts
The reset button for a deformed pose
Build one side, get the other for free
Keep your blendshape stack in order
Actually delete the key, not just zero it
Fix the timing between shape keys
Borrow a face rig from another mesh
Freeze a sim so it stops re-running
Step a sim up to a specific frame
Clearing stale sim bakes in Avatar Graph
Auto-rig your skin mesh in one step
Tell the Skin modifier where limbs end
Un-warp a lopsided skin mesh
Pick where the body grows from
Put an audio source in your avatar scene
Making a mesh smoother in ComfyUI without leaving the graph
The Surfacedeform Bind node
ComfyUI Node Guide
Unsticking a tracking constraint, the clean way
Making an eye follow the camera in ComfyUI
The viewport-mode node you'll probably never need
Baking transforms before the hard part
A registry leftover that does nothing in a graph
Freezing animation into a rest pose with Transforms To Deltas
The gizmo-drop node that can't work in a queued graph
Break the shared-mesh link before you break something else
Stop your texture bleeding across UDIM tiles
The empty container you fill with mesh selections
The assign step
The one-step vertex group you'll actually reach for
Sweeping out the near-zero weights nobody asked for
Duplicate a weight group before you wreck it
Copying weights to other objects, if you can get them selected
The selection-mirror node with a limited stage to play on
Everything except the mouth
Offset and gain, the audio-engineer way
Capping Bone Influences Before Export
The Node That Keeps Your Clean Weights From Getting Wrecked
Mirroring weight paint so you don't hand-paint both sides
Vertex Groups Out of Order? This Node Shuffles the Stack
Make a Named Vertex Group
Make a Single Group's Weights Add Up to One
The Weight Pass Finisher
Weights Too Sloppy? Snap Them to a Fixed Number of Levels
Deleting Vertex Groups You Don't Need
Scrub Weights Off Vertices Without Killing the Group
Turn a Vertex Group Into a Selection, Just Like Clicking in Blender
Point the Whole Pipeline at the Right Vertex Group
Smooth Out Janky Weight Falloff Before It Hits the Avatar
Sorting Vertex Groups by Name or Bones
Bind Your Mesh to an Armature With One Node
Grab the Active Vertex's Weight and Keep It on the Clipboard
Delete One Vertex's Weight Without Touching the Group
Rescale One Vertex's Weights to Sum to One
Paste a Copied Weight Profile Onto a Vertex
Pick the Weight Group for the Per-Vertex Weight Nodes
What You See Is What the Mesh Gets
Adding smoke-and-fire style volumes from inside your ComfyUI graph
Importing real .vdb volumes into ComfyUI, no Blender window required
Cleaning up messy geometry in Avatar Graph
The pass-through node that tweaks OpenVDB voxel density (and barely takes input)
Click-to-segment your character into rig-ready layers
The save node behind Avatar Graph's shareable demos
One object isn't a group until this node says so
Resizing bendy-bone segments on an armature, node-style
Bending mesh into smile shapes and curly props — the shape-key maker
Giving your transforms a named frame of reference
The cleanup node for custom orientations you no longer need
Softening edges with bevel weights, one float at a time
Crease values — the control that keeps subdivision from smoothing everything flat
Sliding edges along surfaces without tearing your UVs apart
The gizmo-handler node, which is exactly as useless in a graph as it sounds
Mirroring geometry across an axis — the shortcut to symmetric everything
Pushing and pulling vertices along their normals — the inflate tool
ComfyUI Node Guide
Rotating selected geometry — the transform node you'll actually use
Spinning custom shading normals by an angle
Set the Compass Every Later Transform Follows
The Node You Can Safely Ignore
The Skew Tool for Stylized Deformation
The One That Actually Shapes the Face
Resizing skin radii in edit mode
Twisting Geometry Around Its Own Axis
Balloon Your Mesh Into a Sphere
Rotate the Whole Head in 3D
33 modes, one node
The Workhorse That Moves Anything
Hold Sharp Edges When Subdividing
Add Organic Noise to a Flat Mesh
Bend a Mesh by View Angle
Smooth Out Edges by Sliding Vertices
The tiny fix for 'why is my texture slightly smeared'
Rotating UV islands straight so textures stop sitting at an angle
Evening out UV island scale so one part of your texture isn't blurrier than the rest
Keeping textures aligned after you duplicate or join meshes in Avatar Graph
Cube projection unwrap — how the pack actually maps your character art onto mesh
Parking the 2D cursor in UV space — the invisible pivot nobody sets
Wrapping a texture around a rounded mesh part
Baking a UV layout image so you can paint your avatar texture by hand
Fix the uneven stretch on your avatar's face
Get the noise out of your UV view
A bake-ready layout without wrecking your texture UVs
Where the texture gets permission to cut
Relaxing a UV unwrap so the texture doesn't warp
Stop wasting texture resolution
Copy-paste your UVs, the ComfyUI way
The islands you refuse to let the packer touch
Unwrap it the way you're looking at it
Breaking up repetition on tiled or atlas textures
Merge the UV vertices that were never supposed to be split
The sledgehammer that gives every face the whole map
Bring the hidden islands back
Tear an island apart where the texture needs a break
The one UV node you'll probably skip
Let your existing layout tell you where the cuts go
Pick the exact spot on the map
The node every other UV node needs first
ComfyUI Node Guide
Select a radius, not a region
Pick the whole loop in one go
The node that lost its mouse
Shrink the selection by one step
UV Select Linked is the workhorse of Avatar Graph
Point at a UV spot, grab the whole island
Pick a ring of UVs where avatar rigs actually flex
Vertex, edge, face, or island
UV Select More is the expand button — and it's a one-trick, one-input node
Find the UV islands colliding with each other
Find every UV you froze in place
The only selection node in Avatar Graph with real settings
Turn partial selections into whole-face selections
Path selection, but by vertex index instead of a mouse
Draw a clean UV line between two points you already have
The pack's default auto-unwrap, angle limit and all
Park the 2D cursor where the next pivot lives
The node that keeps avatar UVs on the texel grid
The right unwrap when the mesh is basically a head
Sew the islands back together so seams disappear
ComfyUI Node Guide
Merge the duplicate UVs that projections leave behind
avatar-graph-comfyui
![]()
Wanna animate or got a question? Join our Discord
A custom nodes module for creating real-time interactive avatars powered by blender bpy mesh api + Avatech Shape Flow runtime.
WARNING
We are still making changes to the nodes and demo templates, please stay tuned.
Demo
| <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/12e2bfc6-438e-4d16-bead-9957ced3bae1" width="180"/><br>Interact 👆 | <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/0c497025-7ed5-4e25-b4d1-5a257e1ba814" width="180"/><br>Interact 👆 | <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/a2bf71e3-0d9c-4ddd-957f-a6b0cb7e622a" width="180"/><br>Interact 👆 | <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/ad808c42-5297-4e61-8be8-d5cb7729d2ff" width="180"/><br>Interact 👆 | | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/1d1ad8f9-31a6-48ec-bad2-ce972ee3b12f" width="180"/><br>Interact 👆 | <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/06958585-f780-4b38-8f5d-bddabd7da78a" width="180"/><br>Interact 👆 | <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/3d0e6b54-d45f-45ac-90bd-d8b149880f98" width="180"/><br>Interact 👆 | <img src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/1d1ad8f9-31a6-48ec-bad2-ce972ee3b12f" width="180"/><br>Interact 👆 |
How to?
- Basic Rigging Workflow Template
- Best Practices for image input
- Custom Nodes List
- Shape Flow
- Installation
- Development
- Join Discord 💬
Basic Rigging Workflow Template
1. Creating an eye blink and lipsync avatar
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.
Download: Save the image, and drag into Comfyui or Simple Shape Flow
2. Creating an eye blink and lipsync emoji avatar
| |
|
| :--: | :--: |
Download: Save the image, and drag into Comfyui
| |
|
| :--: | :--: |
Download: Save the image, and drag into Comfyui or Dog Workflow
Best practices for image input
1. Generate a new character image
![]()
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
Download: Character Gen Template
2. Make existing character image mouth open (Inpaint)
![]()
To maintain consistency with the base image, it is recommended to utilize a checkpoint model that aligns with its style.
Download: Mouth Open Inpaint Template
<details> <summary> Inpaint Demonstration </summary> <video src="https://github.com/avatechai/avatar-graph-comfyui/assets/73209427/e3b77295-a1bf-4d96-9551-7cc423a4af73"/> </details>3. Pose Constraints (ControlNet)
![]()
Place normal and openpose image with reference to images.
Download: ControlNet Gen
Recommend Checkpoint Model List
Anime Style SD1.5
- https://civitai.com/models/35960/flat-2d-animerge
- https://civitai.com/models/24149/mistoonanime
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.
<details> <summary> All Custom Nodes </summary>| Name | Description | Preview |
| -------------------- | ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Segmentation (SAM) | Integrative SAM node allowing you to directly select and create multiple image segment output. | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270576351-8aabeba8-5450-4d39-8203-e91f9ab47190.png" width="300"> |
| Name | Description | Preview |
| ---------------------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Create Mesh Layer | Create a mesh object from the input images (usually a segmented part of the entire image) | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270576646-40740d25-9411-4cd3-a6c0-8b9008bca41c.png" width="300"> |
| Join Meshes | Combine multiple meshes into a single mesh object | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270577004-ba7afbc5-9cd5-4f97-9614-f71133f5783e.png" width="300"> |
| 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 | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270602782-cb7155be-fb31-49f8-a24a-d001a1484ea7.png" width="300"> |
| Plane Texture Unwrap | Will perform mesh face fill and UV Cube project on the target plane mesh, scaled to bounds. | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270603006-4b9c0cf5-0497-47bf-8e06-5a3370084c11.png" width="300"> |
| Name | Description | Preview |
| ----------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mesh Modify Shape Key | Given shape key name & target vertex_group, modify the vertex / all vertex’s transform | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270577944-ab4f259c-89a7-4f51-bc54-fd179e252073.png" width="300"> |
| Create Shape Flow | Create runtime shape flow graph, allowing interactive inputs affecting shape keys value in runtime | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270592752-abfdd801-0387-4c5d-9c11-6c23337ff1dd.png" width="300"> |
| Name | Description | Preview |
| -------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Avatar Main Output | The primary output of the .ava file. The embedded Avatar View will auto update with this node's output | <img src="https://avatech-avatar-dev1.nyc3.cdn.digitaloceanspaces.com/public-download/github-readme/270592519-6a9a8bb4-05ec-4a2e-98bf-194b6af3a62a.png" width="300"> |
Shape Flow
![]()
Installation
Method 1 - Windows
-
Download Python environment from here
-
Unzip it to ComfyUI directory
-
Run the
run_cpu_3.10.batorrun_nvidia_gpu_3.10.bat -
Install avatar-graph-comfyui from ComfyUI Manager
Method 2 - macOS/Linux
Make sure your Python environment is 3.10.x as required by the bpy package. Then go to the ComfyUI directory and run:
Suggest using conda for your comfyui python environment
conda create --name comfyui python=3.10
conda activate comfyui
pip install -r requirements.txt
-
cd custom_nodes -
git clone https://github.com/avatechgg/avatar-graph-comfyui.git -
cd avatar-graph-comfyui && python -m pip install -r requirements.txt -
Restart ComfyUI with enable-cors-header
python main.py --enable-cors-headeror (for mac)python main.py --force-fp16 --enable-cors-header
Development
If you are interested in contributing
For comfyui frontend extension, frontend js located at avatar-graph-comfyui/js
Web stack used: vanjs 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.
<details> <summary>p.s. For tailwind autocomplete, add the following to your vscode settings.json.</summary>{
"tailwindCSS.experimental.classRegex": [
["class\\s?:\\s?([\\s\\S]*)", "(?:\"|')([^\"']*)(?:\"|')"]
]
}
</details>
Update blender node types
To update blender operations input and output types (stored in blender/input_types.txt), run:
python generate_blender_types.py
FAQ
What is --enable-cors-header used for?
It 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.
When 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).
You 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.