Object Voxel Size Edit
The pass-through node that tweaks OpenVDB voxel density (and barely takes input)
- BPY_OBJ
- BPY_OBJ
Object Voxel Size Edit is the clearest evidence that Avatar Graph generated its nodes from Blender's operator list rather than hand-designing them. In Blender, bpy.ops.object.voxel_size_edit is the tool you use to change how finely an OpenVDB volume is voxelized - smaller voxel size, denser grid, smoother and heavier; bigger voxel size, chunky and cheap. Here it shows up in your node list with a single input: BPY_OBJ. No voxel size widget, no mode, nothing.
Which makes it, in practice, a pass-through. Run it and it calls the underlying operator with Blender's defaults, then hands your object back to you. It won't break your chain - it passes BPY_OBJ straight through so your graph keeps flowing - but it's not going to do much visible editing either, because the interesting parameter (voxel size) isn't exposed by the wrapper.
How it works
The pack wraps bpy.ops.object.voxel_size_edit as an ObjectOps node, meaning it runs in object mode: set your BPY_OBJ active, invoke the operator, return the same BPY_OBJ. Like every node in this pack, it only speaks the pack's BPY_OBJ type - no image, no mask, no pixel output. And because the pack resets its shared Blender scene at the start of every execution, whatever state a volume is in lives only within a single graph run.
Why include a node with no controls at all? Because the pack's generator walked Blender's operator library and wrapped everything, filtering out the properties that don't map cleanly. Most of those wrappers got a full set of widgets; this one came back nearly bare. It's the sort of node you'll mostly encounter when you load someone's workflow and see it in the chain, sitting between an import and a transform like a placeholder.
Inputs that matter
Honestly, just one:
- BPY_OBJ - the volume object to operate on and pass through.
That's it. Everything else Blender exposes for this operator didn't survive the auto-generation, so you can't dial in a target voxel size from the graph.
Output: BPY_OBJ - your volume object, unchanged in identity, for the next node in the chain.
Installing it
Ships in the Avatar Graph pack. ComfyUI Manager → search "Avatar Graph", or:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt
Restart after. The pack pins bpy==3.6.0, which requires Python 3.10.x - a 3.11+ environment will fail at install and take the whole pack down with it. First run also pulls the SAM ViT-H checkpoint (~2.5 GB) into ComfyUI/models/sams and two MediaPipe landmarker files.
Common issues
- "No module named bpy" at startup → Python version mismatch. Use a 3.10.x env (conda is what the README suggests).
- Node "does nothing" → correct, that's what it does. With no exposed parameters it runs Blender's defaults and passes your object through. If you need real voxel-size control, you're better off handling volume density outside the graph and importing the result.
- Scene reset between runs - the volume state you set up won't persist; do the whole volume chain in one graph.
If you see this node in a workflow, you now know exactly what it is: a thin, mostly-empty wrapper that keeps the graph moving. Not a bug, just generated software being honest about its limits.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |