Nodes/BrainDead Nodes/BD Unpack Bundle
ComfyUI Node

BD Unpack Bundle

Open the suitcase — pulling a MESH_BUNDLE back into its parts

By BizaNator·Created 8 months ago·Updated 3 days ago· 15
BD Unpack Bundle
  • bundle
  • mesh
  • color_field
  • diffuse
  • normal
  • metallic
  • roughness
  • alpha
  • name
  • status

The BrainDead mesh pipeline has a "keep it together" philosophy: BD Pack Bundle glues a mesh, its color field, its PBR textures, and its name into one MESH_BUNDLE container so you can cache it or ship it around the graph as a single connection. This node is the un-zip. BD Unpack Bundle takes that bundle and splits it back into every individual piece, as separate sockets, so you can process any one of them without dragging the whole bundle along.

You'll reach for it when you've cached a high-poly mesh (via BD Cache Bundle), and now you want to do actual work on it - decimate it, re-UV it, re-bake a texture - before re-packing for export. A bundle is a great way to freeze an expensive result; it's a terrible shape to feed into a node that only wants one thing. This is the valve in between.

What comes out

The bundle input (a MESH_BUNDLE) expands into:

  • mesh - the TRIMESH geometry, with its material and UVs intact if the bundle had them.
  • color_field - the deferred color data, ready to reapply to a processed mesh via BD Apply Color Field.
  • diffuse, normal, metallic, roughness, alpha - the PBR textures as IMAGE tensors. Not all bundles have all five; any that are missing come out as empty connections, which the status output helpfully summarizes ("2 textures", "3 textures" and so on).
  • name - the bundle's name string, so your downstream save nodes can keep filenames consistent.
  • status - a one-line digest of what was unpacked: vertex/face counts, whether a material is present, how many textures survived.

The typical loop is: unpack → process one piece (decimate the mesh, fix the normal map) → re-pack → export. The color field and textures come out separately precisely so you can hand them off without the geometry and vice versa.

Installation

Standard BrainDead pack install - ComfyUI Manager (search "BrainDead") or manually:

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

No models, no heavy dependencies for this node; it just needs the trimesh and numpy/torch stack the pack already brings in.

Common issues

  • "ERROR: No bundle" - the input socket is empty or wired from something that didn't produce a bundle. Check the Pack/Cache node upstream; this node does no work on nothing.
  • Some textures come out missing - that's the bundle's contents, not a failure here. Bundles only hold what was packed into them. If you expected a normal map and there isn't one, the fault is upstream at pack time.
  • Alpha looks wrong - note that textures go through a numpy conversion where 4-channel images get their alpha channel dropped for the IMAGE outputs (alpha is its own separate output). If you need the alpha within an RGBA texture, keep it as its own channel instead of expecting it embedded.
Category🧠BrainDead/Mesh

Inputs (1)

NameTypeDefaultDescription
bundleMESH_BUNDLE

Outputs (9)

NameTypeDescription
meshTRIMESH
color_fieldCOLOR_FIELD
diffuseIMAGE
normalIMAGE
metallicIMAGE
roughnessIMAGE
alphaIMAGE
nameSTRING
statusSTRING