Nodes/BrainDead Nodes/BD CubePart Get Part
ComfyUI Node

BD CubePart Get Part

Pull one part out of a CubePart decomposition

By BizaNator·Created 8 months ago·Updated 3 days ago· 15
BD CubePart Get Part
  • parts
  • mesh
  • name
index0
part_names

CubePart is the open-vocabulary 3D decomposition tool this pack vendors in - you give it a mesh and a list of part names ("body, left wheel, right wheel, head"), and it segments the mesh into one clean mesh per part. Its BD CubePart Segment node hands back a TRIMESH_LIST of all the parts at once. Which is great until you want one part, because most downstream nodes want a single TRIMESH.

That's this node's entire job, and it does it without fuss: take the parts list, pick an index, get back that one part as a TRIMESH plus its name.

The inputs

  • parts - the TRIMESH_LIST output from BD CubePart Segment. Required.
  • index - which part to extract, 0-based. The node description notes it's "clamped to range," so an index past the end doesn't crash - it just gives you the last part (or an empty mesh if the list is empty, so watch it).
  • part_names - optional. Wire the part_names output from BD CubePart Segment through here and the node resolves the output name to the actual part label (like left_wheel) instead of a generic string.

Outputs: mesh (TRIMESH) and name (STRING).

How you'll chain it

The typical flow after a segmentation:

[BD CubePart Segment] ──parts──→ [BD CubePart Get Part] ──mesh──→ [BD CuMesh Simplify]
     (parts + names)          ──part_names──↗                 └──→ export / Blender / bake

One part flows into a simplification, a UV unwrap, a PBR bake, or an export - while the other parts wait untouched in the list. If you need to process several parts identically, that's several Get Part nodes (or the pack's Mesh Preview thumbnails node to eyeball the whole list first and find which index you actually want).

Installing it

Part of BizaNator/ComfyUI-BrainDead (BrainDeadGuild). ComfyUI Manager → search "BrainDead" → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/BizaNator/ComfyUI-BrainDead
cd ComfyUI-BrainDead
pip install -r requirements.txt

Restart; it's under 🧠BrainDead/CubePart. Heads up on the model side: CubePart Segment auto-downloads the Roblox/cubepart weights (~8.6GB DIT + ~1.3GB VAE) and a Qwen3-VL-4B text encoder on first run. That's the expensive part of the pipeline - this node is just the selector, so it costs you nothing extra.

Gotchas

The index is zero-based and the list is in the order you wrote the part names. If you wrote "body, left wheel, right wheel," then body is index 0, left wheel is 1, right wheel is 2 - and "body" being 0 trips people up more than it should. Also worth knowing: the license. CubePart's code is MIT, but the model weights carry a research-only RAIL-MS license - fine for internal and research use, but review it before shipping commercially. Finally, the pack's docs warn that names past 8 are dropped at segmentation time, so a part list longer than that means your indices may not line up with what you think you asked for.

Category🧠BrainDead/CubePart

Inputs (3)

NameTypeDefaultDescription
partsTRIMESH_LISTparts output from BD CubePart Segment.
indexINT00–4096Which part to extract (0-based).
part_namesoptSTRINGOptional part_names string from BD CubePart Segment, used to resolve the output name.

Outputs (2)

NameTypeDescription
meshTRIMESH
nameSTRING