Nodes/Avatar Graph/Object Set Tag
ComfyUI Node

Object Set Tag

Flag an object as tagged, whatever that means in your pipeline

By avatechai·Created 3 years ago·Updated 2 years ago· 264
Object Set Tag
  • BPY_OBJ
  • BPY_OBJ
valuefalse

Every Blender ID has a tag boolean - a low-level "mark me for processing" flag that Blender itself uses internally to track things like garbage collection or depsgraph updates. Object Set Tag is the auto-generated setter that lets you write to it from the graph. Here's the honest part: for 99% of avatar work you should never need this node, and messing with tag can confuse Blender's own bookkeeping.

How it works

Like every ObjectSet_* node, it's generated from bpy.types.Object's property list and runs setattr(object, "tag", value) on the embedded bpy instance, returning the same BPY_OBJ. The value input is a BOOLEAN with default false.

In Blender's C layer, tag is a scratch flag used during operations like user_remap and depsgraph tagging - it's a "something touched this" bit, not a user-facing layer or group. Setting it from the graph doesn't hide, select, or group anything. If you saw this node in the list and hoped it was "add a custom tag/label to this part for the exporter," it's not that - custom labels are done via object names or custom properties, not this flag. The realistic use is matching Blender's own tag state (e.g. ensuring an object isn't tagged as modified when you read it back), which is deep water.

The inputs

  • BPY_OBJ - the object you want to tag.
  • value - boolean, default false.

Output: the same BPY_OBJ.

Install & gotchas

Part of the Avatar Graph pack:

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

Or ComfyUI Manager → "Avatar Graph". Pack-level requirement: bpy==3.6.0 needs Python 3.10 - no wheel for 3.11+, so the pack won't import on newer runtimes (conda python=3.10 per the README). First launch downloads a ~2.5 GB SAM model plus mediapipe landmarker files.

The takeaway here is avoid unless you know exactly why. This is one of the few ObjectSet_* nodes that's more likely to bite than help: toggling internal flags can leave Blender's depsgraph in an inconsistent state for the rest of the graph's run. If you think you need a tag, step back and ask what you're actually trying to accomplish - the answer is almost always the object name, pass_index, or a parent relationship, all of which have their own, safer setter nodes. And as with all setters, wire it downstream of creation since the scene resets each queue run.

Categoryblender

Inputs (2)

NameTypeDefaultDescription
BPY_OBJoptBPY_OBJ
valueoptBOOLEANfalse

Outputs (1)

NameTypeDescription
BPY_OBJBPY_OBJ