Nodes/Avatar Graph/Object Assign Property Defaults
ComfyUI Node

Object Assign Property Defaults

Sanitizing an object before Shape Flow gets it

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Assign Property Defaults
  • BPY_OBJ
  • BPY_OBJ
process_datatrue
process_bonestrue

This node doesn't have a standard Blender operator behind it - there's no bpy.ops.object.assign_property_defaults() in Blender's API. It's pack-authored, and its two boolean toggles (process_data, process_bones) are a strong hint at what it's for: getting an object into a known, expected state before Avatech's own systems - the Shape Flow runtime, the editor - read it.

What it is and why you'd reach for it

Most of Avatar Graph's Mesh_* and Object_* nodes are thin wrappers around Blender's own operators. This one isn't - it's custom glue written for this pack specifically. Given the name and the two toggles it exposes, it reads as a "reset this object's custom properties to Avatech's expected defaults" step: something you'd run once on a freshly built or freshly edited object before handing it off to the parts of the pipeline that depend on specific property values being present and sane - the Shape Flow graph that drives real-time animation, or the export step feeding Avatar Main Output.

Practically, this is a maintenance node rather than something with a visible creative effect on its own. You won't see a change in the mesh's shape or texture from running it; you're running it to make sure downstream nodes and the live editor don't choke on missing or stale property data.

Inputs and outputs that matter

  • BPY_OBJ (optional) - the object to sanitize.
  • process_data (bool, default True) - whether the object's own data-level properties (its mesh/shape-key data) get reset to defaults.
  • process_bones (bool, default True) - whether bone-level properties get reset too, relevant if the object has an armature involved.

Output: a single BPY_OBJ, its properties reset per the toggles above.

If you're not sure whether you need this node in a given graph, the safe default is to leave both toggles on and run it once late in your build chain, right before wiring the object into shape-key posing or the Avatar Main Output - treat it as cheap insurance rather than something to skip to save a node.

Installing Avatar Graph

The pack runs on bpy, which only ships wheels for Python 3.10.x - pin your ComfyUI environment to that before anything else.

ComfyUI Manager: search avatar-graph-comfyui, install, restart. Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui.git
cd avatar-graph-comfyui
python -m pip install -r requirements.txt

Restart with python main.py --enable-cors-header (--force-fp16 too on Mac). Windows gets a prebuilt Python 3.10 environment from the README; macOS/Linux is pointed at a dedicated conda create --name comfyui python=3.10.

Common issues

Not obvious what this node changed. That's expected - it's not a visual/geometry operation, so if you're debugging why a downstream node behaves differently with and without this step, that's the point: it's normalizing data the live preview or Shape Flow graph reads, not the mesh shape.

Unsure whether to toggle process_bones off. If your object has no armature involved (the common case for a pure shape-key-driven face rig), it likely has no meaningful effect either way - leave it on unless you have a specific reason to skip it.

Nodes not appearing in ComfyUI at all. Check python --version is exactly 3.10.x - bpy fails to import outside that range and this whole pack won't register.

No live avatar preview. Needs --enable-cors-header at launch to reach the embedded editor.avatech.ai panel - this is a separate issue from what this node does, but the two often get debugged together since both affect whether the live preview behaves correctly.

Categoryblender

Inputs (3)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
process_dataoptBOOLEANtrue
process_bonesoptBOOLEANtrue

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ