Object Call Crazyspace Eval
Populating Blender's deformed-mesh cache
- BPY_OBJ
- depsgraph
- scene
- BPY_OBJ
ObjectCall_CrazyspaceEval is the setup half of a two-node pair buried in Avatar Graph's (avatechai/avatar-graph-comfyui) auto-generated Blender API layer. The pack's real feature is turning a still character portrait into a live, blinking, lip-syncing 2D avatar; this node is plumbing for anyone extending that with custom Blender-side deformation logic, not something the documented workflow uses.
How it works
It maps to Object.crazyspace_eval(depsgraph, scene), documented as "update the crazyspace transformation cache." Blender's "crazyspace" is the coordinate space a vertex occupies after modifiers and shape keys have deformed it, as distinct from the mesh's original, undeformed coordinates. Before you can query anything about how a vertex moved between those two spaces - which is exactly what ObjectCall_CrazyspaceDisplacementToOriginal does - Blender needs to compute and cache that transformation data first. That's this node's job.
Why you'd reach for it
Strictly a prerequisite step. If you're building custom logic that needs to translate a vertex offset seen on the deformed mesh back into original mesh-space (or vice versa), this is the call that has to run first, so the cache it populates has something for the follow-up query to read.
Inputs and outputs
- BPY_OBJ (optional) - the object to evaluate.
- depsgraph (optional, default
null) - Blender's evaluated dependency graph. - A third field keyed
" scene"with a leading space (defaultnull) - the same auto-generation quirk seen elsewhere in this pack, where the real method'ssceneparameter didn't get a clean key name.
Output is a single BPY_OBJ, the object passed straight through, unchanged - the cache this populates lives on the Blender-side object, not on any wire this node exposes.
Installing it
Avatar Graph pulls in Blender's bpy module as a dependency, which makes it a real install rather than a drop-in. On Windows, use the author's bundled Python 3.10 environment (linked in their README), unzipped into your ComfyUI folder and launched via the included .bat, then install "Avatar Graph" from ComfyUI Manager. On macOS/Linux, pin your ComfyUI environment to Python 3.10.x exactly - conda is the simplest way (conda create --name comfyui python=3.10). Then cd ComfyUI/custom_nodes, git clone https://github.com/avatechai/avatar-graph-comfyui.git (their README's own manual-install command references a stale org, avatechgg - the repo actually lives under avatechai). cd avatar-graph-comfyui && python -m pip install -r requirements.txt, then restart with python main.py --enable-cors-header (Mac: also --force-fp16). That flag opens CORS so the hosted viewer at editor.avatech.ai can talk to your local ComfyUI; skip it if you're exporting .glb/.gltf from Avatar Main Output instead.
Common issues
Python-version mismatch is the near-universal first failure - bpy needs 3.10.x, not newer. Specific to this node: Blender's own documentation is explicit that this cache is meant to be cleared once you're done with it (see ObjectCall_CrazyspaceEvalClear) - skipping that step is a known way to leak memory in a long-running Blender process. If your ComfyUI workflow calls this repeatedly across many graph executions in a batch job without restarting, that's worth keeping in mind. No author documentation exists for this node - it's absent from the README's own node table - so this write-up leans on Blender's own API docs for Object.crazyspace_eval().
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| depsgraphopt | depsgraph | — | |
| sceneopt | scene | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |