Difforum · Storyboard (no diffusion)
Preview the whole clip in under a second — no diffusion involved
- params
- camera
- init_image
- depth
- sheet
- frames
- info
The most expensive mistake in Deforum-style work is queueing a long render and discovering at frame 80 that the camera was too slow, or that one cut tears the image apart. Difforum Storyboard exists to make that mistake free. It runs your entire camera path across the clip - warping frame after frame exactly like the Feedback Sampler does - but never diffuses anything. No sampler, no VAE, just the warp chain, which costs well under a second.
The output is a contact sheet: sheet (a labeled grid of frames from across the clip), frames (the picked frames as a batch, if you want them individually), and info - a drift report that tells you if your motion is broken.
The drift report is the real product
info measures how far each frame travels from the last and then judges it:
- "camera is nearly still" - the loop will stagnate and mush. If you're using depth-based moves (dolly, orbit) with no
depthinput, it'll even call that out: those moves are being silently discarded without a depth map. - "camera is very fast" - expect smearing unless your strength is high.
- "spike at frame N" - that cut will tear; ease it with Camera Keys blend.
- "N of M frames barely move" - consider fewer, longer moves.
- Or the good one: "motion is evenly paced."
That's the kind of diagnosis you normally get after burning a render. Here it's instant and free.
Inputs that matter
init_image- the seed frame (usually frame 0 of your render, or any still you're animating).camera- theDIFFORUM_CAMERAyou're testing.every_nth- how often to pick a frame for the sheet (default 8).columns/cell_width- layout of the contact sheet.preview_scale- run the simulation at a fraction of full res for speed (default 0.5).border- how the warp handles edges (reflectionis the default and the smart one).symmetry/symmetry_segments- apply mirror or kaleidoscope folding in the preview, mirroring what you'll do in the sampler.depth/translation_scale(optional) - to preview 3D warp properly.
Install
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/chillithebillis/Difforum.git difforum
Restart ComfyUI ([Difforum] loaded N nodes; Manager has it too under "Difforum"). Deps: numpy only. If your preview looks all-black, check the README's known gotcha: SD1.5 fp16 can NaN to black frames on some builds - launch ComfyUI with --force-fp32. And a workflow tip: connect a real depth map before trusting a 3D storyboard - without one, the depth moves are silently skipped and the verdict will tell you why.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| params | DIFFORUM_PARAMS | — | |
| camera | DIFFORUM_CAMERA | — | |
| init_image | IMAGE | — | |
| every_nth | INT | 81–240 | — |
| columns | INT | 61–16 | — |
| cell_width | INT | 19248–512 | — |
| preview_scale | FLOAT | 0.500.1–1 | — |
| border | COMBO | reflection | 3 options: reflection, zeros, border |
| symmetry | COMBO | none | 5 options: none, mirror_h, mirror_v, mirror_quad, kaleidoscope |
| symmetry_segments | INT | 62–24 | — |
| depthopt | IMAGE | — | |
| translation_scaleopt | FLOAT | 1.000.01–10 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| sheet | IMAGE | — |
| frames | IMAGE | — |
| info | STRING | — |