Nodes/AnimoFlow/Preview FBX (AnimoFlow)
ComfyUI Node

Preview FBX (AnimoFlow)

Eyeball the rigged animation before you export the GLB

By AnimoFlow·Created 2 months ago·Updated about a month ago· 1
Preview FBX (AnimoFlow)
      fbx_filename
      output_dir/tmp/animoflow-output
      frame_skip4
      size384
      elevation20
      azimuth-45
      camera_dist1.8

      After AnimoFlow_Rig hands you an animated FBX, you have a choice: render it to a preview, or spend the export time and find out it's wrong. AnimoFlow_PreviewFBX is the cheap first option - it renders the rigged FBX from a camera angle as a preview image sequence in the ComfyUI pane, so you can see the character actually moving before you commit to the GLB export. It's the "is this the take I want" gate on the rigged side of the pipeline.

      Mechanically it's an honest Blender render: the node shells out to the Blender binary on the ComfyUI machine (there's a _find_blender() in the source that locates it), loads the FBX, and renders frames at a fixed elevation/azimuth with a camera distance scaled to the character's height. Which means - say it with me, same as AnimoFlow_Rig and AnimoFlow_GLBExport - it needs Blender installed and findable, and it will fail with blender: command not found if it isn't. On macOS set BLENDER_BIN in .env to /Applications/Blender.app/Contents/MacOS/Blender.

      The settings

      • fbx_filename - the path from AnimoFlow_Rig.
      • output_dir - where the rendered frames go, default /tmp/animoflow-output.
      • frame_skip - 1–60, default 4. Render every Nth frame. Long animations turn into hundreds of frames quickly; 4 is a good default for a quick look.
      • size - 128–768, default 384. Render resolution. Bigger is sharper and slower.
      • elevation / azimuth - default 20 / -45. Camera angle. The default is a pleasant three-quarter; crank elevation if you want to check the foot-to-ground contact (that's the shot where skating shows up).
      • camera_dist - 0.5–10, default 1.8. A multiplier: base distance is char_height × camera_dist, so larger zooms out. If the character fills the frame too tightly, this is the knob.

      It's an output node with no outputs - it just shows the render. Wire the same fbx_filename into both this and AnimoFlow_GLBExport and you get a look before the deliverable.

      Notes and gotchas

      This is where the pack's pipeline splits into "cheap preview" vs "preview the real artifact." The README and the preview node docs both steer you to preview the GLB, not the rig FBX, because the GLB carries the snap-to-ground, trajectory restore, and brand tint that the raw FBX lacks - and because three.js parses GLB natively while a Mixamo FBX can stall the browser tab for seconds. AnimoFlow_PreviewFBX is the raw-motion check (before export); AnimoFlow_FBXToPreview3D is the polished check (after). For quick rigged sanity checks this node is fine; for "what will the deliverable actually look like," use the GLB path.

      One thing that trips people: because it renders in Blender, this node is CPU/Blender-bound, not Docker-bound - the model containers being down won't stop it, but a missing Blender will. And frame_skip interacts with your motion's fps: skip 4 on a 20 fps clip shows every 5th frame, which reads choppy in the preview pane even though the underlying motion is smooth. That's expected; it's a thumbnail, not the final render.

      CategoryAnimoFlow/Motion

      Inputs (7)

      NameTypeDefaultDescription
      fbx_filenameSTRING
      output_dirSTRING/tmp/animoflow-output
      frame_skipINT41–60
      sizeINT384128–768
      elevationFLOAT20-90–90
      azimuthFLOAT-45-180–180
      camera_distFLOAT1.80.5–10Camera distance multiplier (larger = zoom out). Base distance = char_height * this value.

      Outputs (0)

      No outputs