Nodes/BrainDead Nodes/BD AutoRig (Make-It-Animatable)
ComfyUI Node

BD AutoRig (Make-It-Animatable)

Auto-rig a mesh into a Mixamo-compatible FBX in one node

By BizaNator·Created 8 months ago·Updated 4 days ago· 15
BD AutoRig (Make-It-Animatable)
  • mesh
  • fbx_path
fbx_name
deviceauto
no_fingerstrue
use_normalfalse
reset_to_resttrue
apply_predictedfalse
remap_to_uefntrue

Rigging is where AI-generated characters usually die. The KB's 3D generation doc is blunt about it: generated meshes come out as triangle soup with no rig, and the retopo/rig pass "dwarfs all of the rest." BD AutoRig (Make-It-Animatable) is BrainDead's attempt to collapse that pass into a single node - you feed it a humanoid mesh (TRIMESH) and it predicts the joint positions and blend skinning weights in one shot, then writes a Mixamo-compatible FBX.

This is step one of the pack's autorig pipeline. Step two is BD_AutoRigUEFN, which re-bones the Mixamo rig onto the full UEFN/Fortnite skeleton. If you only need a generic Mixamo-style rig, this node alone gets you there.

How it works

Under the hood it runs Make-It-Animatable (MIA), with the inference code vendored directly into the pack - no dependency on the ComfyUI-UniRig pack, whose install is famously fragile. The weights auto-download from HuggingFace on first use to <ComfyUI>/models/autorig/mia/, then every later run reuses the cached copy. It's fast: a humanoid rig in well under a second, versus several seconds (or an install nightmare) for the alternatives.

The output FBX is 52 bones by default, or 22 if you enable no_fingers (finger weights merged into the hand bone - the pack recommends this for characters that won't have animated fingers).

The inputs that matter

  • mesh - the TRIMESH to rig.
  • no_fingers (default true) - merges finger weights into the hand bone. Leave it on unless your characters do detailed hand animation.
  • remap_to_uefn (default true) - the big one. Appends the Mixamo→UEFN bone-name remap inline, so the output uses pelvis, spine_01..05, upperarm_l, etc. - names UEFN recognizes. Turn it off only if you want pure Mixamo names for a downstream tool that expects them.
  • reset_to_rest (default true) - transforms the output mesh into T-pose rest position. The tooltip admits it's a legacy no-op on its own; it only takes effect together with apply_predicted.
  • apply_predicted (default false) - opt-in: apply MIA's predicted joint positions instead of the fixed T-pose template armature. If your input mesh is in an A-pose or whatever pose, enabling this (with reset_to_rest) FK-poses the skeleton to match the input's actual pose.
  • use_normal (default false) - uses surface normals for tighter skinning; helps when limbs are touching (arms-to-torso poses).

Output is fbx_path (STRING), the path to the written FBX.

Install

Normal pack install:

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

Or ComfyUI Manager → search "BrainDead". Restart. First run downloads the MIA weights from HuggingFace to <ComfyUI>/models/autorig/mia/ - do it on a good connection. This pack needs a recent ComfyUI (V3 node API), so update if nodes don't register.

Two honest caveats. First, MIA is a humanoid auto-rigger - it's built for characters, not creatures or props; a four-legged mesh will come out nonsense. Second, the whole BrainDead rigging chain assumes your mesh is roughly a humanoid in a T/A-pose to begin with. For a character that already stands correctly, this is genuinely the fastest path to an animatable file you'll find in ComfyUI - chain the output into BD_AutoRigUEFN when you need UEFN's exact skeleton.

Category🧠BrainDead/AutoRig

Inputs (8)

NameTypeDefaultDescription
meshTRIMESH
fbx_nameoptSTRINGOutput filename stem (no extension). Empty = timestamped.
deviceoptCOMBOauto3 options: auto, cuda, cpu
no_fingersoptBOOLEANtrueMerge finger weights into the hand bone. Recommended for the studio 27-char batch — characters don't have animated fingers.
use_normaloptBOOLEANfalseUse surface normals for tighter skinning. Helps when limbs touch (arms-to-torso poses).
reset_to_restoptBOOLEANtrueTransform output mesh into T-pose rest position. Required for downstream PoseFixer to retarget cleanly. NOTE: on its own this is currently a legacy no-op — it only takes effect together with apply_predicted.
apply_predictedoptBOOLEANfalseOPT-IN (default keeps legacy behavior): apply MIA's predicted joint positions to the skeleton instead of exporting the fixed T-pose template armature verbatim. When reset_to_rest is ALSO on, the skeleton is additionally FK-posed by MIA's predicted pose transforms so it lands in the input mesh's own pose (the A-pose route for non-T-posed inputs).
remap_to_uefnoptBOOLEANtrueAppend the Mixamo → UEFN bone-name remap step inline. Output FBX uses pelvis, spine_01..05, upperarm_l, etc.

Outputs (1)

NameTypeDescription
fbx_pathSTRING