Object Collection External Asset Drop
The internal op behind Blender's asset drag-and-drop
- BPY_OBJ
- location
- rotation
- scale
- collection
- BPY_OBJ
Of every node in this batch, this is the one to skip without a second thought unless you're doing something very specific. It wraps bpy.ops.object.collection_external_asset_drop() - the operator Blender fires internally when you drag a collection asset out of the Asset Browser and drop it into the 3D viewport. drop_x/drop_y are literal screen-pixel mouse coordinates of that drop event, and session_uuid ties the call to a specific asset-drag session. None of that means anything outside of Blender's own UI interaction - there's no equivalent "asset drag" happening inside a ComfyUI node graph.
Where it fits in Avatar Graph
Avatar Graph (avatechai/avatar-graph-comfyui) rigs a flat character image into a real-time interactive avatar through segmentation, mesh layers, and a "Shape Flow" runtime graph, exported via Avatar Main Output. This node has nothing to do with that documented pipeline - it exists purely because the pack auto-generates a node for essentially every operator in Blender's object.* namespace, and this happens to be one of them. It's UI-event plumbing that got swept up in that process, not a tool anyone is expected to wire by hand.
How it works
When Blender's real Asset Browser handles a drag-and-drop of a collection asset, it fires this operator with the drop coordinates and a session identifier so the operator can look up which asset was being dragged and instantiate it at the right spot in the 3D view. Outside that interactive drag context, the inputs it needs (a live drag session, real screen coordinates) don't have a meaningful source, so calling it manually is unlikely to behave usefully.
Inputs and outputs
session_uuid(default0) - identifies the drag session; without a real one from Blender's UI, this is essentially inert.drop_x,drop_y(default0) - the screen-space pixel coordinates of the drop.collection- aB_ENUMpicking which collection asset to drop.align,location,rotation,scale,use_instance(defaulttrue) - standard placement fields, same shape asObject Collection Instance Add.BPY_OBJ(optional) - present for consistency with the rest of the family.
Output: BPY_OBJ.
How to install it
Through ComfyUI Manager: search "avatar-graph-comfyui", install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/avatechai/avatar-graph-comfyui
cd avatar-graph-comfyui && python -m pip install -r requirements.txt
bpy needs Python 3.10.x, and nothing newer - the actual blocker most people hit. Windows gets a prebuilt Python 3.10 ComfyUI zip from the README; on Mac/Linux, build a dedicated conda env (conda create --name comfyui python=3.10). Restart with --enable-cors-header for the live avatar preview to connect to editor.avatech.ai - file exports work without it.
Common issues & troubleshooting
Almost all install trouble traces to the Python version - a 3.11/3.12 environment (the default on most current ComfyUI installs) can't load bpy at all. There's also a real report of Avatar Graph leaving a ComfyUI Desktop install badly broken (an oversized logo, an unexpected audio-permission popup) after install, severe enough that a full reinstall didn't clean it up - test in a spare, portable ComfyUI instance first if you're not already on a dedicated 3.10 setup.
If you're specifically trying to instance a known collection into your scene from a graph, use Object Collection Instance Add instead - it takes a direct collection reference and real transform fields, with none of this node's dependency on a live UI drag event that a node graph can't actually reproduce.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| BPY_OBJopt | BPY_OBJ | — | |
| session_uuidopt | INT | 0-2147483648–2147483647 | — |
| alignopt | COMBO | 3 options: WORLD, VIEW, CURSOR | |
| locationopt | B_VECTOR3 | — | |
| rotationopt | B_VECTOR3 | — | |
| scaleopt | B_VECTOR3 | — | |
| use_instanceopt | BOOLEAN | true | — |
| drop_xopt | INT | 0-2147483648–2147483647 | — |
| drop_yopt | INT | 0-2147483648–2147483647 | — |
| collectionopt | B_ENUM | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BPY_OBJ | BPY_OBJ | — |