BD Blender Quad Decimate
Cut a quad mesh by 16x and keep it all quads
- mesh
- mesh
- quad_obj_path
- status
Most decimators produce triangles, and triangles are fine for rendering but miserable for rigging and animation workflows that want clean edge loops. BD Blender Quad Decimate is the exception: it runs Blender's Un-Subdivide modifier, which collapses a quad mesh back down while preserving quad topology. No triangulation, no n-gons - just fewer, bigger quads. If you've got a 2-million-quad character and you want something a game rig can actually deform, this is the node.
Each iteration divides the face count by roughly four. The math is in the tooltips and it's worth internalizing: 1 iteration = /4, 2 = /16, 3 = /64, 4 = /256. Two iterations takes 100k quads to ~6k, which is usually the sweet spot between "recognizable" and "cheap."
The inputs that matter
- iterations (default 2) - how many un-subdivide passes. Each one ~4x reduction. This is the only real knob for most jobs.
- pre_quad_remesh (off) - the trap-avoider. Un-Subdivide requires quad topology. If your input is a triangle mesh (very common for AI-generated geometry), enable this and it runs a Blender QUAD remesh first so Un-Subdivide has something to work with. octree_depth (7) controls the quad remesh resolution - higher = more quads to start from.
- fill_holes (default true) - closes open boundaries first.
Outputs: the decimated mesh (TRIMESH), quad_obj_path (a saved quad OBJ for rigging/animation work downstream), and status.
Install and the Blender gotcha
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/BizaNator/ComfyUI-BrainDead
cd ComfyUI-BrainDead
pip install -r requirements.txt
(ComfyUI Manager → "BrainDead", restart; keep ComfyUI on the V3 API.) It's a Blender node, so the recurring rule: a real Blender must exist. The README says Blender is bundled - the binary isn't in the repo. The code checks lib/blender/blender-5.0.1-linux-x64, sibling packs, then /usr/bin/blender. Install Blender or the node errors with "Blender not found."
The failure mode beginners hit: feeding a triangle mesh without pre_quad_remesh, getting an error or nothing happening, and assuming the node is broken. It's not - Un-Subdivide genuinely can't work on triangles. If your mesh is triangle soup (it is, if it came from TRELLIS/Pixal3D), just flip pre_quad_remesh on. And unlike a full remesh, Un-Subdivide is destructive by design - it merges quads back along existing loops, so run it on a copy unless you're sure. Pair with BD BlenderRemesh if you need to go from soup to clean quads at a specific resolution first.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mesh | TRIMESH | — | |
| iterations | INT | 21–6 | Un-subdivide iterations. Each ~4x reduction: 1=/4, 2=/16, 3=/64, 4=/256 |
| fill_holesopt | BOOLEAN | true | Fill open boundary edges before processing |
| pre_quad_remeshopt | BOOLEAN | false | Apply Blender QUAD remesh first. Enable when input is a triangle mesh — Un-Subdivide requires quad topology. |
| octree_depthopt | INT | 73–12 | Quad remesh resolution if pre_quad_remesh=True (higher = more quads) |
| timeoutopt | INT | 30060–1800 | Max Blender processing time in seconds |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| mesh | TRIMESH | — |
| quad_obj_path | STRING | — |
| status | STRING | — |