Extensions/Avatar Graph
ComfyUI Extension

Avatar Graph

Include nodes for sam + bpy operation, that allows workflow creations for generative 2d character rig.

By avatechai·Created 3 years ago·Updated 2 years ago· 264
avatechai/avatar-graph-comfyui
Nodes634
On cloudLocal install
Categorymesh, blender
Stars264
Updated2 years ago

Nodes (634)

Transform Shape Key

Hand-sculpting a blink or a mouth shape without opening Blender

mesh
Assign Vertex Group Ops

Naming a selection so later nodes can target it

blender
Avatar Main Output

The terminal node every Avatar Graph workflow ends at

blender
ENUM (Blender)

Feeding a dynamic string into any of this pack's enum fields

blender
Blender Render Image

Pulling a 2D render out of Avatar Graph's 3D scene

blender
Vector 3D (Blender)

A plain XYZ constant for this pack's blender nodes

blender
Vector 4D (Blender)

A four-component constant for this pack's blender nodes

blender
Combine Points

Merging SAM click-prompts into one prompt string

image
Context Set Transform Pivot Point

Deciding what a scale or rotate pivots around

blender
Create Shape Flow

The node that carries your avatar's runtime behavior

mesh
Edit Ops

The node that puts a mesh into Blender's Edit Mode

blender
ExportBlendshapes

The manual bridge between Shape Flow and your glTF export

mesh
ExportGLTF

The terminal node that actually writes your avatar to disk

mesh
Extract Boundary Points

Turn a segmented blob into a clean mesh outline

image
Get First Obj Ops

Pull one object back out of a group

blender
Get Image Width Height

Reading image dimensions as live values in Avatar Graph

blender
Group Ops

Bundle two Blender objects into one socket

blender
Image Alpha Mask Merge

Cutting out transparent layers for Avatar Graph's mesh textures

image
Image Bridge

A relay node that's supposed to do nothing

image
Load Image From Request

ComfyUI Node Guide

image
LoadImageWithAlpha

The loader that doesn't throw away your transparency

image
Load Value From Request

What it's for, and the bug you'll actually hit

image
Mesh Attribute Set

Writes a value into the mesh's active attribute layer

blender
Mesh Average Normals

Smooth out shading seams where flat mesh pieces meet

blender
Mesh Beautify Fill

Fixes ugly triangulation after a face fill

blender
Mesh Bevel

Rounds sharp edges — most of its 20 fields you'll never touch

blender
Mesh Bisect

Cuts a mesh with a plane — most of the fields are leftover UI state

blender
Mesh Blend From Shape

The actual mechanic behind mixing shape keys

blender
Mesh Bridge Edge Loops

Stitches two open boundaries together with new geometry

blender
Mesh Colors Reverse

ComfyUI Node Guide

blender
Mesh Colors Rotate

A niche fix for twisted per-corner color data

blender
Mesh Convex Hull

Shrink-wraps your selection into a simple, dent-free shape

blender
Mesh Customdata Bevel Weight Edge Add

Unlocks per-edge bevel weight, does nothing visible

blender
Mesh Customdata Bevel Weight Edge Clear

The reverse of Add — wipes the layer out

blender
Mesh Customdata Bevel Weight Vertex Add

Same idea as the edge version, one level up

blender
Mesh Customdata Bevel Weight Vertex Clear

The vertex half of a pair you'll rarely need to remove

blender
Mesh Customdata Crease Edge Add

Flips on subdivision-surface creasing, nothing else

blender
Mesh Customdata Crease Edge Clear

Strips edge-crease data back out of a mesh

blender
Mesh Customdata Crease Vertex Add

The newer, lesser-known sibling of edge crease

blender
Mesh Customdata Crease Vertex Clear

Removes per-vertex crease data

blender
Mesh Customdata Custom Splitnormals Add

Locks in editable normals instead of Blender's auto-calculated ones

blender
Mesh Customdata Custom Splitnormals Clear

Hands normal calculation back to Blender

blender
Mesh Customdata Mask Clear

A Sculpt Mode leftover that has nothing to do with rigging avatars

blender
Mesh Customdata Skin Add

Sets up the data the Skin Modifier reads to inflate a stick figure into a mesh

blender
Mesh Customdata Skin Clear

Tears down the Skin Modifier's per-vertex radius data

blender
Mesh Decimate

Collapsing selected geometry down by ratio in Avatar Graph

blender
Mesh Delete

The blunt instrument, five ways to swing it

blender
Mesh Delete Edgeloop

Blender's Ctrl+X, minus the hole a plain delete would leave

blender
Mesh Delete Loose

Sweeps up floating vertices and dangling edges nobody's using

blender
Mesh Dissolve Degenerate

Cleans up the near-duplicate geometry a remesh step leaves behind

blender
Mesh Dissolve Edges

Removes edges without leaving a hole

blender
Mesh Dissolve Faces

Merging selected faces without deleting geometry in Avatar Graph

blender
Mesh Dissolve Limited

The one cleanup operator actually worth reaching for reflexively

blender
Mesh Dissolve Mode

The generic dissolve behind Blender's own Ctrl+X, wherever your selection mode is

blender
Mesh Dissolve Verts

Removes vertices, keeps the surface sealed

blender
Mesh Duplicate

Copying part of a mesh's geometry inside Avatar Graph

blender
Mesh Duplicate Move

Duplicates on top of itself unless something downstream actually moves it

blender
Mesh Dupli Extrude Cursor

Duplicate-and-extrude toward wherever the 3D cursor happens to be

blender
Mesh Edge Collapse

Zip a strip of edges shut

blender
Mesh Edge Face Add

Blender's F-key, wired into ComfyUI

blender
Mesh Edgering Select

Grab a parallel band of edges in one click

blender
Mesh Edge Rotate

Flip a triangle pair's shared diagonal

blender
Mesh Edge Split

Cut a mesh apart without deleting anything

blender
Mesh Edges Select Sharp

Grabbing hard-angle edges by threshold in Avatar Graph

blender
Mesh Extrude Context

Blender's E-key smart extrude, scripted into a node

blender
Mesh Extrude Context Move

The smart extrude behind Blender's E key

blender
Mesh Extrude Edges Indiv

Each edge gets its own extrusion

blender
Mesh Extrude Edges Move

Pull an edge loop into a wall

blender
Mesh Extrude Faces Indiv

Every face pops out on its own

blender
Mesh Extrude Faces Move

Push a patch of faces out as one piece

blender
Mesh Extrude Manifold

The extrude that won't leave junk geometry at corners

blender
Mesh Extrude Region

Extrude without the move bolted on

blender
Mesh Extrude Region Move

Extrude in the everyday sense of the word

blender
Mesh Extrude Region Shrink Fatten

Extrude that follows the surface's own curve

blender
Mesh Extrude Repeat

Build a ribbed strip in one node

blender
Mesh Extrude Vertices Move

The lightest-weight extrude in the pack

blender
Mesh Extrude Verts Indiv

Every selected point grows its own spike

blender
Mesh Face Make Planar

Flattening warped faces back into a plane in Avatar Graph

blender
Mesh Face Set Extract

Pull a sculpted piece out as its own mesh

blender
Mesh Faces Mirror Uv

Stop hand-mirroring UVs on symmetric meshes

blender
Mesh Face Split By Edges

A knife cut driven by edges you've already made

blender
Mesh Faces Select Linked Flat

Growing a selection across a flat patch of mesh

blender
Mesh Faces Shade Flat

Telling faces to stop blending into their neighbors

blender
Mesh Faces Shade Smooth

Blending faces so a low-poly mesh doesn't look faceted

blender
Mesh Fill

Closing an open boundary loop with triangles

blender
Mesh Fill Grid

Patching a gap with quads instead of a triangle fan

blender
Mesh Fill Holes

Automatically patching small gaps in Avatar Graph

blender
Mesh Flip Normals

The fix when a face renders black or invisible

blender
Mesh Flip Quad Tessellation

An invisible-in-Blender fix for export-time triangulation

blender
Mesh Hide

ComfyUI Node Guide

blender
Mesh Inset

Framing a face before you do something to just the inside

blender
Mesh Intersect

Cutting a mesh's geometry against itself

blender
Mesh Intersect Boolean

Union, difference, and intersect without leaving edit mode

blender
Join Meshes

Combining separate Avatar Graph layers into one mesh

blender
Mesh Knife Project

Cutting a traced outline straight into your mesh

blender
Mesh Knife Tool

Blender's interactive cutting tool exposed as a node in Avatar Graph

blender
Mesh Loopcut

Adding edge loops by index instead of by mouse drag

blender
Mesh Loopcut Slide

The companion node with nothing to slide

blender
Mesh Loop Multi Select

Turning a starting edge into a full loop in Avatar Graph

blender
Mesh Loop Select

The Alt+Click gesture as a node

blender
Mesh Loop To Region

Turning an outline into the faces it encloses

blender
Mesh Mark Freestyle Edge

A line-art flag most Avatar Graph users will never need

blender
Mesh Mark Freestyle Face

The face-level sibling of a rendering flag you probably don't need

blender
Mesh Mark Seam

Telling Blender's unwrapper where it's allowed to cut

blender
Mesh Mark Sharp

Flagging edges to hold their shading break in Avatar Graph

blender
Mesh Merge

Welding selected vertices together, on your terms

blender
Mesh Merge Normals

Fixing the shading seam where two mesh pieces meet

blender
Modify Shape Key

The node that actually rigs the blink and the lipsync

blender
Mesh Mod Weighted Strength

Telling Blender's Weighted Normal modifier which faces win

blender
Mesh Normals Make Consistent

The Shift+N of ComfyUI mesh nodes

blender
Mesh Normals Tools

Copy-paste for custom vertex normals

blender
Mesh Offset Edge Loops

Adding a loop cut without cutting the whole face loop

blender
Mesh Offset Edge Loops Slide

The interactive loop-insert tool, minus the interaction

blender
Mesh Paint Mask Extract

Pulling a masked region out as its own mesh in Avatar Graph

blender
Mesh Paint Mask Slice

Cutting a mesh down to the part your segmentation mask kept

blender
Mesh Point Normals

Faking rounded shading on a flat mesh, straight from Blender

blender
Mesh Poke

Turning a flat face into a fan of triangles around one center point

blender
Mesh Polybuild Delete At Cursor

Blender's Poly Build tool, minus the cursor

blender
Mesh Polybuild Dissolve At Cursor

A cleaner delete, if you had a cursor to aim it

blender
Mesh Polybuild Extrude At Cursor Move

Extrude-and-drag, without the drag

blender
Mesh Polybuild Face At Cursor

Blender's click-to-add-a-face tool, wrapped as a node

blender
Mesh Polybuild Face At Cursor Move

Add-a-face, then drag it — minus the drag

blender
Mesh Polybuild Split At Cursor

Adding a vertex mid-edge, Poly Build style

blender
Mesh Polybuild Split At Cursor Move

Split-and-drag, minus the drag

blender
Mesh Polybuild Transform At Cursor

Grab-the-nearest-vertex, without a cursor to grab with

blender
Mesh Polybuild Transform At Cursor Move

Grab-and-drag, minus the drag

blender
Mesh Primitive Circle Add

Dropping a clean circle mesh into your avatar graph

blender
Mesh Primitive Cone Add

One node, cones, cylinders, and frustums

blender
Mesh Primitive Cube Add

Blender's cube, straight from a ComfyUI node

blender
Mesh Primitive Cube Add Gizmo

The interactive cube, minus the interaction

blender
Mesh Primitive Cylinder Add

Dropping a cylinder into your Avatar Graph scene

blender
Mesh Primitive Grid Add

A subdivided plane, for anything that needs to bend

blender
Mesh Primitive Ico Sphere Add

Building eyeballs and round props in Avatar Graph

blender
Mesh Primitive Monkey Add

Blender's mascot, one node away

blender
Mesh Primitive Plane Add

The flattest possible starting point

blender
Mesh Primitive Torus Add

Dropping a donut into your Avatar Graph scene

blender
Mesh Primitive Uv Sphere Add

A proper sphere with real UVs baked in

blender
Mesh Quads Convert To Tris

Triangulate before something else does it for you

blender
Mesh Region To Loop

Trace the outline of whatever you've got selected

blender
Mesh Remove Doubles

ComfyUI Node Guide

blender
Mesh Reveal

Bring back geometry you hid earlier in the graph

blender
Mesh Rip

Tear the mesh open along a seam without deleting anything

blender
Mesh Rip Edge

ComfyUI Node Guide

blender
Mesh Rip Edge Move

The edge-based version of Blender's rip macro

blender
Mesh Rip Move

Blender's V-key rip, without the mouse drag

blender
Mesh Screw

Spin a profile into a spiral, lathe-style

blender
Mesh Select All

The reset button for whatever's selected

blender
Mesh Select Axis

Grab everything lined up with your active vertex

blender
Mesh Select Face By Sides

Grab every triangle, or every ngon, in one shot

blender
Mesh Select Interior Faces

Find the geometry buried inside your mesh

blender
Mesh Select Less

Shrink your selection by one ring

blender
Mesh Select Linked

Grab everything connected to what you've already got

blender
Mesh Select Linked Pick

Blender's click-to-select-connected-geometry, scripted

blender
Mesh Select Loose

Find the geometry nothing else is attached to

blender
Mesh Select Mirror

Instant selection symmetry across an axis

blender
Mesh Select Mode

Switch between vertex, edge, and face selection

blender
Mesh Select More

Grow your selection outward one ring

blender
Mesh Select Next Item

Step the active element forward

blender
Mesh Select Non Manifold

Find the mesh errors before they wreck your export

blender
Mesh Select Nth

Checker-deselect, keep every Nth element

blender
Mesh Select Prev Item

Step the active element backward

blender
Mesh Select Random

Grab a reproducible random chunk of the mesh

blender
Mesh Select Similar

Extend a selection to everything that matches

blender
Mesh Select Similar Region

Find every copy of a shape on the mesh

blender
Mesh Select Ungrouped

Catching vertices you forgot to weight

blender
Mesh Separate

Split part of a mesh into its own object

blender
Mesh Set Normals From Faces

Fix shading glitches on generated geometry

blender
Set Shape Key Value

Drive an existing shape key by name

blender
Mesh Shape Propagate To All

Keep every shape key in sync after a base edit

blender
Mesh Shortest Path Pick

Select a path to a specific element by index

blender
Mesh Shortest Path Select

Connect two selected points with the shortest route

blender
Mesh Smooth Normals

ComfyUI Node Guide

blender
Mesh Solidify

Turn a flat plane into an actual solid

blender
Mesh Sort Elements

Reorder the mesh's internal index numbering

blender
Mesh Spin

Lathe a profile into a revolved shape

blender
Mesh Split

Disconnect a selection without making a new object

blender
Mesh Split Normals

Fixing shading seams on Avatar Graph's auto-built mesh

blender
Mesh Subdivide

Giving Avatar Graph's shape keys more geometry to bend

blender
Mesh Subdivide Edgering

Adding resolution along a loop, not across the whole mesh

blender
Mesh Symmetrize

Mirroring a lopsided Avatar Graph mesh in one pass

blender
Mesh Symmetry Snap

Nudging an almost-symmetric mesh the rest of the way

blender
Mesh Tris Convert To Quads

ComfyUI Node Guide

blender
Mesh Unsubdivide

Walking a subdivided Avatar Graph mesh back down

blender
Mesh Uvs Reverse

Fixing a texture that's landed mirror-flipped

blender
Mesh Uvs Rotate

Fixing a texture that landed sideways on one face

blender
Mesh Uv Texture Add

Opening a fresh UV slot on an Avatar Graph mesh

blender
Mesh Uv Texture Remove

Clearing a stray UV map before you redo it

blender
Mesh Vert Connect

Drawing your own edge across a face

blender
Mesh Vert Connect Concave

Auto-splitting a bowtie n-gon

blender
Mesh Vert Connect Nonplanar

Flattening faces that warped out of plane

blender
Mesh Vert Connect Path

Blender's vertex-connect operator, wired into ComfyUI

blender
Mesh Vertices Smooth

Sanding the noise out of an auto-generated mesh

blender
Mesh Vertices Smooth Laplacian

Smoothing jagged mesh geometry without deflating it

blender
Mesh Wireframe

Turning edges into real geometry in Avatar Graph

blender
Object Add

Dropping a raw Blender primitive into the scene

blender
Object Add Named

Pulling a specific Blender object into the graph by name

blender
Object Add Shape Keys

Batch-creating the keys your rig actually needs

blender
Object Align

Lining up scene objects without doing the math yourself

blender
Object Anim Transforms To Deltas

Folding animated transforms into deltas

blender
Object Armature Add

Dropping a bone rig into an Avatar Graph scene

blender
Object Assign Property Defaults

Sanitizing an object before Shape Flow gets it

blender
Object Assign Texture

Getting your ComfyUI image onto the mesh

blender
Object Bake

Flattening Avatar Graph's 3D mesh into a 2D texture

blender
Object Bake Image

Baking a texture from inside a Blender node graph

blender
Object Call Animation Data Clear

Wiping an object's keyframes clean

blender
Object Call Animation Data Create

Giving an object somewhere to hang keyframes

blender
Object Call Asset Clear

Stripping asset-browser metadata off an object in Avatar Graph

blender
Object Call Asset Generate Preview

Blender's asset thumbnail, wrapped as a node

blender
Object Call Asset Mark

Tagging a Blender object as a reusable asset

blender
Object Call Cache Release

Freeing Blender's evaluated-mesh cache mid-graph

blender
Object Call Calc Matrix Camera

A camera projection matrix, computed but not wired out

blender
Object Call Camera Fit Coords

Auto-framing a camera around a set of points

blender
Object Call Closest Point On Mesh

Snapping a point onto a mesh's surface

blender
Object Call Convert Space

Converting a transform between coordinate spaces

blender
Object Call Copy

Duplicating an object before you break it

blender
Object Call Crazyspace Displacement To Deformed

Blender's deepest internals, exposed as a node

blender
Object Call Crazyspace Displacement To Original

Mapping a deformed vertex offset back to the base mesh

blender
Object Call Crazyspace Eval

Populating Blender's deformed-mesh cache

blender
Object Call Crazyspace Eval Clear

Freeing the deformed-mesh cache when you're done

blender
Object Call Evaluated Get

Reading a mesh's actual current shape, post shape-keys

blender
Object Call Find Armature

Locating the rig behind a mesh

blender
Object Call Generate Gpencil Strokes

Turning a mesh into vector line art

blender
Object Call Hide Get

Reading whether an object is hidden

blender
Object Call Hide Set

Toggling an object's visibility from the graph

blender
Object Call Holdout Get

Reading an object's render-holdout flag

blender
Object Call Indirect Only Get

Reading whether an object only casts indirect light

blender
Object Call Is Deform Modified

Object Call Is Deform Modified — ComfyUI Node from Avatar Graph

blender
Object Call Is Modified

Object Call Is Modified — ComfyUI Node from Avatar Graph

blender
Object Call Local View Get

Object Call Local View Get — ComfyUI Node from Avatar Graph

blender
Object Call Local View Set

Object Call Local View Set — ComfyUI Node from Avatar Graph

blender
Object Call Make Local

Object Call Make Local — ComfyUI Node from Avatar Graph

blender
Object Call Override Create

Object Call Override Create — ComfyUI Node from Avatar Graph

blender
Object Call Override Hierarchy Create

Object Call Override Hierarchy Create — ComfyUI Node from Avatar Graph

blender
Object Call Override Template Create

Object Call Override Template Create — ComfyUI Node from Avatar Graph

blender
Object Call Preview Ensure

Object Call Preview Ensure — ComfyUI Node from Avatar Graph

blender
Object Call Ray Cast

Object Call Ray Cast — ComfyUI Node from Avatar Graph

blender
Object Call Select Get

Object Call Select Get — ComfyUI Node from Avatar Graph

blender
Object Call Select Set

Object Call Select Set — ComfyUI Node from Avatar Graph

blender
Object Call Shape Key Add

Object Call Shape Key Add — ComfyUI Node from Avatar Graph

blender
Object Call Shape Key Clear

Object Call Shape Key Clear — ComfyUI Node from Avatar Graph

blender
Object Call Shape Key Remove

Object Call Shape Key Remove — ComfyUI Node from Avatar Graph

blender
Object Call To Curve

Object Call To Curve — ComfyUI Node from Avatar Graph

blender
Object Call To Curve Clear

Object Call To Curve Clear — ComfyUI Node from Avatar Graph

blender
Object Call To Mesh

Object Call To Mesh — ComfyUI Node from Avatar Graph

blender
Object Call To Mesh Clear

Object Call To Mesh Clear — ComfyUI Node from Avatar Graph

blender
Object Call Update From Editmode

Object Call Update From Editmode — ComfyUI Node from Avatar Graph

blender
Object Call Update Tag

Force Blender's dependency graph to notice a change

blender
Object Call User Clear

Strip a datablock's user count inside Avatar Graph

blender
Object Call User Of Id

Count how many times a datablock gets referenced

blender
Object Call User Remap

Swap one Blender datablock for another everywhere

blender
Object Call Visible Get

Check if an object is actually visible right now

blender
Object Call Visible In Viewport Get

Per-viewport visibility, not global

blender
Object Camera Add

Drop a Blender camera into your Avatar Graph scene

blender
Object Clear Override Library

Detach an object from a linked library override

blender
Object Collection Add

Dropping a Blender object into its own collection

blender
Object Collection External Asset Drop

The internal op behind Blender's asset drag-and-drop

blender
Object Collection Instance Add

Instance a whole Collection without duplicating it

blender
Object Collection Link

File an object into a Blender Collection

blender
Object Collection Objects Select

Grabbing a whole group of parts at once in Avatar Graph

blender
Object Collection Remove

ComfyUI Node Guide

blender
Object Collection Unlink

Pull an object back out of a Collection

blender
Object Constraint Add

Add a bare Blender constraint, no target set

blender
Object Constraint Add With Targets

Add a constraint pre-wired to your selection

blender
Object Constraints Clear

Stripping every constraint off an object in one step

blender
Object Constraints Copy

Clone one object's constraint stack onto others

blender
Object Convert

ComfyUI Node Guide

blender
Object Correctivesmooth Bind

Capture the base pose for a Corrective Smooth modifier

blender
Create Mesh Layer

Avatar Graph's core node for turning a segmented image into a mesh

blender
Create Mesh Layer (Advanced)

Finer contour control over Avatar Graph's mesh-from-image node

blender
Object Curves Empty Hair Add

Starting a hair-curves system on your character's mesh

blender
Object Curves Random Add

Blender's hair-curves operator, along for the ride

blender
Object Data Instance Add

ComfyUI Node Guide

blender
Object Datalayout Transfer

Generate the data layers a Data Transfer modifier needs

blender
Object Data Transfer

Carrying UVs and weights across rebuilt meshes in Avatar Graph

blender
Object Delete

Cleaning up scrap objects in an Avatar Graph scene

blender
Object Drop Geometry Nodes

Blender's asset-drag operator, not a graph tool

blender
Object Drop Named Image

Placing an image file into the Avatar Graph scene

blender
Object Drop Named Material

Assigning an existing material by name

blender
Object Duplicate

The general-purpose copy node behind Avatar Graph's other duplicate tools

blender
Object Duplicate Move

Copying a whole object and placing it in one step, Avatar Graph style

blender
Object Duplicate Move Linked

Blender's Alt+D, as a single node

blender
Object Duplicates Make Real

Turning virtual instances into real objects

blender
Object Editmode Toggle

Tab, but as a node

blender
Object Effector Add

Dropping a physics force field into the scene

blender
Object Empty Add

A plain anchor point for your Avatar Graph scene

blender
Object Explode Refresh

Recalculating a stale Explode modifier

blender
Object Face Map Add

Creating a named grouping of faces

blender
Object Face Map Assign

Putting the selected faces into a face map

blender
Object Face Map Deselect

The inverse of Face Map Select

blender
Object Face Map Move

Reordering face maps up or down in Avatar Graph

blender
Object Face Map Remove

Deleting the active face map in Avatar Graph

blender
Object Face Map Remove From

Dropping faces out of a face map without deleting them

blender
Object Face Map Select

Turning a face map's membership into an actual selection

blender
Object Forcefield Toggle

Turning any object into (or out of) a force field

blender
Object Geometry Nodes Input Attribute Toggle

Switching a modifier input from a fixed value to mesh data

blender
Object Geometry Nodes Move To Nodes

Promoting a one-off modifier setup into a reusable node group

blender
Object Geometry Node Tree Copy Assign

Making a shared node group unique to one object

blender
Object Gpencil Add
blender
Object Gpencil Modifier Add
blender
Object Gpencil Modifier Apply
blender
Object Gpencil Modifier Copy
blender
Object Gpencil Modifier Copy To Selected
blender
Object Gpencil Modifier Move Down
blender
Object Gpencil Modifier Move To Index
blender
Object Gpencil Modifier Move Up
blender
Object Gpencil Modifier Remove
blender
Object Hide Collection
blender
Object Hide Render Clear All
blender
Object Hide View Clear
blender
Object Hide View Set
blender
Object Hook Add Newob
blender
Object Hook Add Selob
blender
Object Hook Assign
blender
Object Hook Recenter
blender
Object Hook Remove
blender
Object Hook Reset
blender
Object Hook Select
blender
Object Instance Offset From Cursor
blender
Object Instance Offset From Object
blender
Object Instance Offset To Cursor
blender
Object Isolate Type Render
blender
Object Join
blender
Object Join Shapes
blender
Object Join Uvs
blender
Object Laplaciandeform Bind
blender
Object Light Add
blender
Object Lightprobe Add
blender
Object Lightprobe Cache Bake
blender
Object Lightprobe Cache Free
blender
Object Lineart Bake Strokes
blender
Object Lineart Bake Strokes All
blender
Object Lineart Clear
blender
Object Lineart Clear All
blender
Object Link To Collection
blender
Object Load Background Image
blender
Object Load Reference Image

Bringing your character art into Avatar Graph's Blender scene

blender
Object Location Clear
blender
Object Make Dupli Face
blender
Object Make Links Data
blender
Object Make Links Scene
blender
Object Make Local

Breaking a linked/library object free so you can actually edit it

blender
Object Make Override Library
blender
Object Make Single User
blender
Match Texture Aspect Ratio
blender
Object Material Slot Add

Giving an object a fresh empty material slot in Avatar Graph

blender
Object Material Slot Assign

Painting the active material onto selected faces

blender
Object Material Slot Copy
blender
Object Material Slot Deselect
blender
Object Material Slot Move
blender
Object Material Slot Remove

Deleting the active material slot in Avatar Graph

blender
Object Material Slot Remove Unused

Tidying up after Avatar Graph joins your meshes

blender
Object Material Slot Select
blender
Object Meshdeform Bind

ComfyUI Node Guide

blender
Object Mesh From Texture

Turning a flat image into an actual 3D mesh object

blender
Object Metaball Add
blender
Object Mode Set
blender
Object Mode Set With Submode
blender
Object Modifier Add
blender
Object Modifier Apply
blender
Object Modifier Apply As Shapekey
blender
Object Modifier Convert

Baking a particle system into real geometry in Avatar Graph

blender
Object Modifier Copy
blender
Object Modifier Copy To Selected
blender
Object Modifier Move Down
blender
Object Modifier Move To Index
blender
Object Modifier Move Up

Reordering a Blender modifier stack from ComfyUI

blender
Object Modifier Remove
blender
Object Modifier Set Active
blender
Object Move To Collection

Organizing generated objects into named groups in Avatar Graph

blender
Object Multires Base Apply
blender
Object Multires External Pack
blender
Object Multires External Save
blender
Object Multires Higher Levels Delete
blender
Object Multires Rebuild Subdiv
blender
Object Multires Reshape
blender
Object Multires Subdivide
blender
Object Multires Unsubdivide

Stripping a subdivision level back off in Avatar Graph

blender
Object Ocean Bake
blender
Object Origin Clear
blender
Object Origin Set
blender
Object Parent Clear
blender
Object Parent Inverse Apply
blender
Object Parent No Inverse Set
blender
Object Parent Set
blender
Object Particle System Add
blender
Object Particle System Remove
blender
Object Paths Calculate

Drawing an object's motion trail in the viewport

blender
Object Paths Clear
blender
Object Paths Update
blender
Object Paths Update Visible

Refreshing every motion path after you change the animation

blender
Plane Texture Unwrap
blender
Object Pointcloud Add
blender
Object Posemode Toggle
blender
Object Quadriflow Remesh

Clean quad topology for Avatar Graph meshes

blender
Object Quick Explode
blender
Object Quick Fur
blender
Object Quick Liquid
blender
Object Quick Smoke

ComfyUI Node Guide

blender
Object Randomize Transform
blender
Object Reset Override Library

ComfyUI Node Guide

blender
Object Rotation Clear
blender
Object Scale Clear
blender
Object Select All
blender
Object Select By Type
blender
Object Select Camera
blender
Object Select Grouped
blender
Object Select Hierarchy

Grabbing a whole parent/child chain at once

blender
Object Select Less
blender
Object Select Linked
blender
Object Select Mirror
blender
Object Select More
blender
Object Select Pattern
blender
Object Select Random
blender
Object Select Same Collection
blender
Object Set Active Material Index
blender
Object Set Active Shape Key Index
blender
Object Set Add Rest Position Attribute

Giving Avatar Graph's rigging a fixed baseline

blender
Object Set Display Bounds Type
blender
Object Set Display Type
blender
Object Set Empty Display Size
blender
Object Set Empty Display Type

Changing how an Empty draws in the viewport

blender
Object Set Empty Image Depth

Draw order for image-reference Empties

blender
Object Set Empty Image Side

ComfyUI Node Guide

blender
Object Set Hide Render
blender
Object Set Hide Select
blender
Object Set Hide Viewport
blender
Object Set Instance Faces Scale
blender
Object Set Instance Type
blender
Object Set Is Embedded Data
blender
Object Set Is Evaluated
blender
Object Set Is From Instancer
blender
Object Set Is From Set
blender
Object Set Is Holdout
blender
Object Set Is Instancer
blender
Object Set Is Library Indirect
blender
Object Set Is Missing
blender
Object Set Is Runtime Data
blender
Object Set Is Shadow Catcher
blender
Object Set Lightgroup
blender
Object Set Lock Rotations4D
blender
Object Set Lock Rotation W

ComfyUI Node Guide

blender
Object Set Mode
blender
Object Set Name
blender
Object Set Name Full
blender
Object Set Parent Bone
blender
Object Set Parent Type
blender
Object Set Pass Index
blender
Object Set Rotation Mode
blender
Object Set Show All Edges
blender
Object Set Show Axis
blender
Object Set Show Bounds
blender
Object Set Show Empty Image Only Axis Aligned
blender
Object Set Show Empty Image Orthographic
blender
Object Set Show Empty Image Perspective
blender
Object Set Show In Front
blender
Object Set Show Instancer For Render
blender
Object Set Show Instancer For Viewport
blender
Object Set Show Name

Toggling the floating name label above an object

blender
Object Set Show Only Shape Key
blender
Object Set Show Texture Space

Showing an object's generated texture-coordinate box

blender
Object Set Show Transparent
blender
Object Set Show Wire

Toggling the wireframe overlay on an object in Avatar Graph

blender
Object Set Tag
blender
Object Set Track Axis
blender
Object Set Type
blender
Object Set Up Axis
blender
Object Set Use Camera Lock Parent
blender
Object Set Use Dynamic Topology Sculpting
blender
Object Set Use Empty Image Alpha

Fixing transparent reference images in Avatar Graph

blender
Object Set Use Extra User
blender
Object Set Use Fake User
blender
Object Set Use Grease Pencil Lights
blender
Object Set Use Instance Faces Scale
blender
Object Set Use Instance Vertices Rotation
blender
Object Set Use Mesh Mirror X
blender
Object Set Use Mesh Mirror Y
blender
Object Set Use Mesh Mirror Z
blender
Object Set Users
blender
Object Set Use Shape Key Edit Mode

Controlling how edits interact with shape keys in Avatar Graph

blender
Object Set Use Simulation Cache
blender
Object Set Visible Camera
blender
Object Set Visible Diffuse
blender
Object Set Visible Glossy
blender
Object Set Visible Shadow
blender
Object Set Visible Transmission
blender
Object Set Visible Volume Scatter
blender
Object Shade Flat

ComfyUI Node Guide

blender
Object Shaderfx Add
blender
Object Shaderfx Copy
blender
Object Shaderfx Move Down
blender
Object Shaderfx Move To Index
blender
Object Shaderfx Move Up
blender
Object Shaderfx Remove
blender
Object Shade Smooth
blender
Object Shape Key Add
blender
Object Shape Key Clear
blender
Object Shape Key Mirror
blender
Object Shape Key Move
blender
Object Shape Key Remove
blender
Object Shape Key Retime
blender
Object Shape Key Transfer
blender
Object Simulation Nodes Cache Bake
blender
Object Simulation Nodes Cache Calculate To Frame
blender
Object Simulation Nodes Cache Delete

Clearing stale sim bakes in Avatar Graph

blender
Object Skin Armature Create
blender
Object Skin Loose Mark Clear
blender
Object Skin Radii Equalize
blender
Object Skin Root Mark
blender
Object Speaker Add
blender
Object Subdivision Set
blender
Object Surfacedeform Bind
blender
Object Text Add

ComfyUI Node Guide

blender
Object Track Clear
blender
Object Track Set
blender
Object Transfer Mode
blender
Object Transform Apply
blender
Object Transform Axis Target
blender
Object Transforms To Deltas
blender
Object Transform To Mouse
blender
Object Unlink Data
blender
UV Modifier
blender
Object Vertex Group Add
blender
Object Vertex Group Assign
blender
Object Vertex Group Assign New
blender
Object Vertex Group Clean
blender
Object Vertex Group Copy
blender
Object Vertex Group Copy To Selected
blender
Object Vertex Group Deselect
blender
Object Vertex Group Invert
blender
Object Vertex Group Levels
blender
Object Vertex Group Limit Total
blender
Object Vertex Group Lock
blender
Object Vertex Group Mirror

Mirroring weight paint so you don't hand-paint both sides

blender
Object Vertex Group Move
blender
Object Vertex Group New With Name
blender
Object Vertex Group Normalize
blender
Object Vertex Group Normalize All
blender
Object Vertex Group Quantize
blender
Object Vertex Group Remove
blender
Object Vertex Group Remove From
blender
Object Vertex Group Select
blender
Object Vertex Group Set Active
blender
Object Vertex Group Smooth
blender
Object Vertex Group Sort
blender
Object Vertex Parent Set
blender
Object Vertex Weight Copy
blender
Object Vertex Weight Delete
blender
Object Vertex Weight Normalize Active Vertex
blender
Object Vertex Weight Paste
blender
Object Vertex Weight Set Active
blender
Object Visual Transform Apply
blender
Object Volume Add
blender
Object Volume Import
blender
Object Voxel Remesh

Cleaning up messy geometry in Avatar Graph

blender
Object Voxel Size Edit
blender
SAM MultiLayer

Click-to-segment your character into rig-ready layers

image
Save Image With Workflow

The save node behind Avatar Graph's shareable demos

image
To Group Ops
blender
Transform Bbone Resize
blender
Transform Bend
blender
Transform Create Orientation
blender
Transform Delete Orientation
blender
Transform Edge Bevelweight
blender
Transform Edge Crease
blender
Transform Edge Slide
blender
Transform From Gizmo
blender
Transform Mirror
blender
Transform Push Pull
blender
Transform Resize

ComfyUI Node Guide

blender
Transform Rotate
blender
Transform Rotate Normal

Spinning custom shading normals by an angle

blender
Transform Select Orientation
blender
Transform Seq Slide
blender
Transform Shear
blender
Transform Shrink Fatten
blender
Transform Skin Resize
blender
Transform Tilt
blender
Transform Tosphere
blender
Transform Trackball
blender
Transform Transform
blender
Transform Translate
blender
Transform Vert Crease
blender
Transform Vertex Random
blender
Transform Vertex Warp
blender
Transform Vert Slide
blender
UV Align
blender
UV Align Rotation
blender
UV Average Islands Scale
blender
UV Copy

Keeping textures aligned after you duplicate or join meshes in Avatar Graph

blender
UV Cube Project
blender
UV Cursor Set
blender
UV Cylinder Project

Wrapping a texture around a rounded mesh part

blender
UV Export Layout
blender
UV Follow Active Quads
blender
UV Hide
blender
UV Lightmap Pack
blender
UV Mark Seam
blender
UV Minimize Stretch

Relaxing a UV unwrap so the texture doesn't warp

blender
UV Pack Islands
blender
UV Paste
blender
UV Pin
blender
UV Project From View
blender
UV Randomize Uv Transform

Breaking up repetition on tiled or atlas textures

blender
UV Remove Doubles
blender
UV Reset
blender
UV Reveal
blender
UV Rip
blender
UV Rip Move
blender
UV Seams From Islands
blender
UV Select
blender
UV Select All
blender
UV Select Box

ComfyUI Node Guide

blender
UV Select Circle
blender
UV Select Edge Ring
blender
UV Select Lasso
blender
UV Select Less
blender
UV Select Linked
blender
UV Select Linked Pick
blender
UV Select Loop
blender
UV Select Mode
blender
UV Select More
blender
UV Select Overlap
blender
UV Select Pinned
blender
UV Select Similar
blender
UV Select Split
blender
UV Shortest Path Pick
blender
UV Shortest Path Select
blender
UV Smart Project
blender
UV Snap Cursor
blender
UV Snap Selected
blender
UV Sphere Project
blender
UV Stitch
blender
UV Unwrap

ComfyUI Node Guide

blender
UV Weld
blender
Readme

avatar-graph-comfyui

image

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

1. Creating an eye blink and lipsync avatar

ComfyUI_00668_

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

| ComfyUI_00045_ | emoji_480p30_high | | :--: | :--: |

Download: Save the image, and drag into Comfyui

| ComfyUI_09609_ | dog_480p15_high | | :--: | :--: |

Download: Save the image, and drag into Comfyui or Dog Workflow

Best practices for image input

1. Generate a new character image

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)

inpaint_workflow

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)

image

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"> |

</details>

Shape Flow

image

Installation

Method 1 - Windows

  1. Download Python environment from here

  2. Unzip it to ComfyUI directory

  3. Run the run_cpu_3.10.bat or run_nvidia_gpu_3.10.bat

  4. 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

  1. cd custom_nodes

  2. git clone https://github.com/avatechgg/avatar-graph-comfyui.git

  3. cd avatar-graph-comfyui && python -m pip install -r requirements.txt

  4. Restart ComfyUI with enable-cors-header python main.py --enable-cors-header or (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.