Object Make Local
Breaking a linked/library object free so you can actually edit it
- BPY_OBJ
- BPY_OBJ
Object Make Local wraps bpy.ops.object.make_local, Blender's fix for a specific, annoying situation: an object linked or appended in from another .blend file (a library asset) is read-only in ways that block editing until you break that link. This node breaks it, making the object - and optionally its data and materials - a fully local, editable part of the current file.
How it works
When Blender links data from an external library instead of copying it, that data stays tied to the source file: editable there, not here. "Make Local" severs that tie, duplicating whatever scope you choose into the current file so it behaves like anything else you built from scratch. The type parameter controls how deep that goes - just the object, the object's mesh data too, data plus materials, or everything linked in the file at once.
The inputs and outputs that matter
type-SELECT_OBJECT(localize just the object itself),SELECT_OBDATA(object plus its underlying mesh/curve data),SELECT_OBDATA_MATERIAL(adds materials to that), orALL(localize every linked datablock in the file, not just this object). Picking the narrowest option that covers what you actually need to edit avoids unintentionally localizing things elsewhere in the scene.
Output is the same BPY_OBJ, now free of any external library dependency at the scope you chose.
How to install it
ComfyUI Manager: search "Avatar Graph" and install. Manually: cd ComfyUI/custom_nodes && git clone https://github.com/avatechai/avatar-graph-comfyui, cd avatar-graph-comfyui && pip install -r requirements.txt, then restart. Like the rest of the pack, it needs Python 3.10.x - bpy doesn't publish wheels for anything newer, so a standard current ComfyUI environment will either fail this install or the blender-category nodes just won't be there. Dedicated conda env at 3.10 on macOS/Linux; Avatech's prebuilt Python-3.10 ComfyUI zip on Windows, pack installed via Manager afterward.
Common issues & troubleshooting
You reach for this node and nothing changes. If the object was never linked from an external library in the first place - which, honestly, is the normal case for objects Avatar Graph builds itself from segmented images - there's nothing to make local, and the operator is a no-op. This node exists for graphs that deliberately import or reference external .blend library data, which is an unusual, advanced use of the pack rather than the typical single-image avatar pipeline.
Using ALL when you meant SELECT_OBJECT. ALL localizes every linked datablock in the entire file, not just the one you're pointed at - if your graph has other library-linked assets you specifically want to keep linked (say, a shared asset referenced across multiple avatar builds), ALL will pull those local too. Scope it down unless you actually mean everything.
Missing from the pack's documented node table. Correct - like the rest of the blender-category set, this is a lower-level operator wrapper auto-generated from Blender's own API via generate_blender_types.py, not one of the roughly seven higher-level nodes the README documents by hand. Blender's manual entry for "Make Library Data Local" is the authoritative reference on exact scoping behavior.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| typeopt | COMBO | 4 options: SELECT_OBJECT, SELECT_OBDATA, SELECT_OBDATA_MATERIAL, ALL |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |