Difforum
Modern Deforum-style animation toolkit for ComfyUI: math-driven keyframe schedules, audio reactivity, depth-aware camera warping and a Wan 2.2 video bridge.
Nodes (78)
See the Whole Camera Move in One Second, Before You Render Anything
The boring node every Difforum clip starts with (and why you can't skip it)
Anim Setup+ does the math for your GPU
Turn a Track Into Per-Frame Numbers You Can Use
Turn any audio file into per-frame curves your animation can dance to
One Band In, a Working Denoise Curve Out
Turn a band into a curve, plug it anywhere
Type the Move Instead of Drawing It
Full Deforum 2D/3D camera control, expression by expression
Send the AI Camera into After Effects and Blender
The Deforum Math Syntax, Still Here and Still Useful
Block the Move in Blender, Render It With AI
Keyframed moves that blend like a crane — and the lens is a channel of its own
The honest starting point for Difforum camera work
See your camera path before you render — it's an IMAGE, not a guess
Describe the Move in Words for H3, LTX, Veo and Friends
A shot list with hard cuts, no keyframe math
A real cinematic grading pass (exposure to LGG to hue) that needs no model
Optical-flow motion melt — the video-art look without touching the codec
The Two-Second Fix for Frames That Went Soft
The anti-mush node that stops feedback loops from turning to soup
The Difforum Director Is the Whole Shot, Drawn With a Mouse
Long-Exposure Smear Across a Whole Clip
Long-exposure motion trails for that smooth, hypnotic feedback look
The Deforum Look, Without the 2022 Baggage
The heart of Difforum — warp, re-diffuse, colour-match, repeat
Repaint What the Camera Uncovered
Drag scenes on a timeline, get camera, prompt, and strength schedules for free
Kill the Flicker Without Ghosting the Motion
The anti-flicker fix that doesn't ghost — because it blends along motion
Convolution, delay-line databending, bitcrush, VHS — all in one node
The neon bloom node — blur the bright bits, screen-blend them back
Warp one image into a VACE guide batch, camera by Difforum
Turn One Picture Into a Video Model's Camera Move
Make MiniMax H3 Perform the Move You Drew
Your H3 refine pass dies with a shape mismatch — this is the node that fixes it
Everything a MiniMax H3 First/Last-Frame Shot Needs, in One Node
Point it at a folder of pictures and they become your keyframes, in order, at the right seconds
Make the Clip Hit Your Pictures on the Beat
Pick the Right Frames Off Your Render, on the Model's Grid
Queue Once and Watch It Play Inside the Node
A realtime Deforum loop with a live preview — queue once, watch it generate
One warp-plus-diffuse step per tick — the realtime building block
Get footage into ComfyUI as frames, without another video pack
Neon, vaporwave, noir — and pulse it to the beat
Put the boiling texture back on a clean H3 render
Three ways to close a clip, and the one that still isn't cheating
Morph the tail into the head along optical flow
Render three laps, keep the one that settled
Your drawn camera, inside an LTX-2 latent
Pick one, get the download guide
Let the pack pick your model, resolution, and steps for your GPU
The guaranteed loop that reverses motion — and when that's fine
The bridge that feeds Difforum prompt travel into AnimateDiff
One box per scene
Morph a prompt over your clip
`2.5s:` timestamps, blended frame by frame
The eighteen dials they took off the sampler
The Deforum look riding on H3's motion
The two-second probe for any Difforum schedule
Write your frame batch to an MP4, no external video nodes
One picture per scene, painted in order — the storyboard that becomes your keyframes
`0:(0.45), 60:(0.6)` is still the best way to time a shot
The keyframe brain behind Difforum's Deforum-style animation
An ASCII sparkline for your Difforum schedule (costs zero GPU)
Look at the curve before you render 400 frames
See your camera curve before you burn a render
A camera path that closes on itself, so your loop actually loops
One node that stops your graph disagreeing with itself
Write your shot as text, or let an LLM write it — one beat per line and the timeline is built
See the whole camera move in about a second, no diffusion
Preview the whole clip in under a second — no diffusion involved
The on/off panel that actually knows your graph
Mirrors and kaleidoscopes, and the version that compounds
Mirror, quad, or a full kaleidoscope — on a frame or a whole batch
A prompt per frame, as one conditioning — how you get prompt travel out of AnimateDiff
Get the clip to 2K without inventing a new one
The warp that actually moves your Deforum frames (2D or depth-aware 3D)
Difforum
Direct the camera. Let any model render it.
A timeline for ComfyUI: draw scenes, camera moves and energy with the mouse, then render the shot with MiniMax H3, LTX-2, or the classic Deforum feedback look. The camera also goes out to After Effects and Blender.
</div>
What it does
Video models render well, but you steer them with words. Difforum gives you back control over the camera and the timing:
-
Direct. In the Director node you lay out scenes (prompt + mood), camera moves (picked from 25 visual presets), keys (exact frames where something must happen) and an energy curve. Press ▶ to preview the move; the preview uses the same engine that renders. The mouse wheel zooms the timeline, so a 60-second shot is as easy to edit as a 5-second one.
-
Previz. Every template has an Animatic: the whole shot, with timecode, prompt, camera move, energy and keys burnt in, in a few seconds. The Director's Previz only button mutes the render outputs, so Queue runs just the previz. Click it again to render.
-
Render. One
directionwire goes to the renderer of your choice:| Renderer | Difforum node | You get | |---|---|---| | MiniMax H3 | H3 Guides / H3 Shot | Your camera turned into keyframes, first/last frames and a camera prompt, with no hand-placed frames. Areas the camera uncovers are painted by Fill Reveal (AI) | | LTX-2 / 2.5 | LTX Guides | Keyframes inside the LTX latent | | Any image model (SDXL, Flux, SD1.5, turbo) | Feedback Sampler | The Deforum look: every frame re-imagines the last | | Realtime (turbo models, webcam) | Live Sampler | Plays inside the node, with Spout / OBS output |
-
Finish. Camera Export writes the same camera for After Effects (
.jsx) and Blender (.py) so titles, 3D and comp lock to the AI shot.
Pick a look once. The Director's look (cinematic, documentary,
deforum_morph, animatediff_dream, disco_diffusion, vqgan_clip,
flicker_experimental, psychedelic, music_video, stop_motion, hand_drawn) sets
the Feedback Sampler's colour, detail and energy, and adds the matching style
sentence to the H3 / LTX prompt, so the same aesthetic carries across
renderers.
The Deforum / AnimateDiff look on MiniMax H3. Restyle re-paints every
frame of an H3 / LTX render with an image model in your look, carrying the
previous painted frame along the clip's own motion: that feedback is what made
Deforum morph and AnimateDiff boil, now riding on H3's motion (deforum morph,
animatediff boil, disco flicker, clean restyle). Look Mix adds grain or
flicker cuts on top. Template 13 restyles any clip you already rendered, with a
depth ControlNet holding the structure so denoise can go up to 0.6-0.8.
Template 14 is the real AnimateDiff motion module on any video (vid2vid);
template 15 is its fast AnimateLCM version with a hi-res pass.
Multikeyframing. Mark moments on the Keys track and feed one picture per key to Keyframe Images. The Feedback Sampler travels through them, H3 / LTX Guides anchor them, the Animatic flashes them. Built for installations and pieces that must hit an image on a beat.
Pictures and frame ranges on the Director. Plug a picture per scene into
the Director (images, image_1..6): each is pinned to its moment, shown on
the timeline, and carried by the direction wire to the Feedback Sampler, H3 /
LTX Guides and the Animatic. The Script button shows the same timeline as
text, one line per frame range - 0-35 | calm | zoom_in slow | prompt | sound: rain
- and each scene's
soundbecomes the soundscape of video models with audio. Travel Conditioning gives AnimateDiff a prompt per frame (templates 20, 21).
Orchestration from outside. Shot Script writes the Director timeline
from text (0s | calm | dolly_in slow | prompt), a CSV, a file in input/ or
any STRING node such as an LLM. Keyframe Assets loads a folder of stills
named by time (0s_wide.png, 4.5s_sky.png) as keyframes, so styled pictures
made anywhere drive H3 without rendering a look pass (template 16).
Scene Stills paints one still per scene from the timeline itself, each over
the one before; templates 17-19 are three short stories with grounded looks and
gentle cameras.
No camera expressions to write. They are still there if you want them.
Quick start
- Install from ComfyUI Manager (search "Difforum"), or:
cd ComfyUI/custom_nodes && git clone https://github.com/chillithebillis/Difforum.git difforum - Restart ComfyUI and open Templates → Difforum.
- Start with
01_storyboard_no_model. It needs no model: load a picture, shape the timeline, press ▶, then Queue.
Templates
| # | Template | What it shows | Needs |
|---|---|---|---|
| 01 | storyboard_no_model | Direct a shot and preview the whole move in about a second | an image |
| 02 | feedback_sdxl | The Deforum look on a modern model | SDXL / SD1.5 / Flux |
| 03 | parallax_3d_depth | Real 3D parallax from a depth map | + Depth Anything 3 model (core) |
| 04 | audio_reactive | Camera moves that react to music, with no expressions | + an audio file |
| 05 | live_turbo | Realtime feedback, webcam mirror, VJ output | a turbo model |
| 06 | seamless_loop | A loop without a crossfade, for installations | a checkpoint |
| 07 | ltx_guides | Director keyframes guiding LTX-2 / 2.5 | your LTX graph |
| 08 | h3_first_last_frame | MiniMax H3 FL2VA: first frame + the frame where your camera ends | MiniMax H3 fl2va |
| 09 | camera_to_ae_blender | Camera out to After Effects / Blender, and back in | nothing |
| 10 | h3_multikeyframe_guides | MiniMax H3: keyframes along your camera, anchored inside the generation | MiniMax H3 ref2va |
| 11 | h3_deforum_look | Deforum / AnimateDiff look with H3 motion: a turbo feedback pass sets the look, H3 animates between its frames, Look Mix brings the texture back | turbo SDXL + H3 ref2va |
| 12 | long_shot_keys | A 30 s long shot with five scenes, three image keys and a previz, for installations | a turbo model + 3 images |
| 13 | restyle_any_video | Restyle a clip you already have (H3, LTX, live action) into the Deforum / AnimateDiff / Disco look, then 2K | a turbo model + a video |
| 14 | animatediff_on_video | AnimateDiff vid2vid: SD 1.5 + AnimateDiff-Evolved + depth / canny ControlNets on any clip, then 2K | AnimateDiff-Evolved, Advanced-ControlNet, an SD 1.5 checkpoint, a motion module, SD 1.5 ControlNets |
| 15 | animatediff_lcm_fast | AnimateDiff LCM: template 14 in 8 steps with AnimateLCM, plus a x1.5 hi-res pass | as 14, with the AnimateLCM motion module + LoRA |
| 16 | h3_keyframe_assets | Stills + shot script → H3: a folder of styled keyframes and a text script drive H3 guides; no look pass | H3 ref2va + your stills |
| 17 | story_three_shots_h3 | A story in three shots: Scene Stills paints one picture per scene, H3 plays them as shots with cuts | an image model + H3 ref2va |
| 18 | story_living_photograph | Living photograph: one place with real depth, a slow camera, low energy; only the light changes | an image model + Depth Anything 3 |
| 19 | story_painted | Painted story: one subject that grows, 12 fps gouache look, pans and zooms only | a turbo image model |
| 20 | director_pictures_h3_sound | Pictures on the Director → H3 with sound: a picture per scene, camera and sound per frame range, optional AnimateDiff pass | H3 ref2va (+ AnimateDiff-Evolved for the pass) |
| 21 | animatediff_travel_pictures | AnimateDiff travel through your pictures: SparseCtrl keyframes + a prompt per frame, AnimateDiff invents the in-betweens | AnimateDiff-Evolved, Advanced-ControlNet, SD 1.5, SparseCtrl RGB |
Every template is laid out in the same blocks: Control (switches and notes),
Direction, Previz on the top row; Models → Render → Restyle → Upscale 2K
→ Output on the bottom row. The Workflow Switches panel turns each block on
or off (a render block is muted, a pass-through block such as Upscale is
bypassed) and ⌖ jumps to it. H3 templates have a Live Preview (TAEH3) block
that shows the video forming at every step with KJNodes'
Model Preview Override and taeh3.safetensors in models/vae_approx. H3
templates render in two stages: H3 renders small (640 px), the H3 Latent
Upscale block lifts the latent 2x with the Minimax H3 Latent
Upscaler and H3
re-samples a few steps at full size, so the detail is generated by H3 and holds
over time. The Upscale 2K block then finishes in pixels (RealESRGAN_x4plus
or any model in models/upscale_models).
MiniMax H3 in one picture
Load Image ─► Guide Frames ─► Keyframes ─► Fill Reveal (AI) ─► H3 Guides ─► Sampler ─► Video + audio
▲ ▲
Setup ─► Director (camera, scenes) ─► Camera → Prompt ─► MiniMax H3 Reference to Video
The official Multiframe Reference template anchors images you place by hand. Template 10 anchors frames that come from your camera move, so H3 performs the dolly, orbit or crane you drew. Template 08 does the same with H3's first/last-frame model, and splits clips longer than 20 s into segments. Both use ComfyUI's core MiniMax H3 nodes.
The nodes
| Group | Nodes | |---|---| | Setup | Setup: duration in seconds, aspect, and snapping to each model's grid (H3 17k+5 @ 24 fps, LTX 8k+1, Wan 4k+1); Workflow Switches | | Direction | Director (timeline), Camera (keys), Camera (expressions), Storyboard, Keyframe Images, Animatic (previz) | | Curves & prompts | Schedule, Schedule Plot, Audio Analyzer, Audio Curve, Prompt Travel | | Render | Feedback Sampler, Live Sampler, Restyle, Render Options | | Video model bridges | Guide Frames, Keyframes, Fill Reveal (AI), Camera → Prompt, H3 Guides, H3 Shot, LTX Guides | | Export | Camera Export (AE / Blender / JSON), Camera Import | | Post | Upscale (2K / 4K), Look Mix, Loop, Symmetry, Echo Trails, Flow Stabilize, Detail Guard |
The full reference is in docs/NODES.md. Every node also shows its description inside ComfyUI.
The Deforum look, rebuilt

The Feedback Sampler runs on any image model and fixes what made the original Deforum hard to use:
- Depth follows the image, so parallax stays true for the whole clip.
- 3D moves never freeze. Without a depth map they become pseudo-3D, and the node says so.
- Cadence without pops. Only every Nth frame is diffused; the frames in between are crossfaded.
- Revealed edges are repainted instead of smeared.
- Colour locks per scene, so prompt travel can change the palette.
- Steps scale with the energy, like Deforum: a frame at denoise 0.5 runs half the
steps. With
cadence 2that is about 4x faster than sampling every frame in full.
Documentation
| | | |---|---| | Recipes | Ten short projects with shot scripts; fast settings for long pieces | | Bridges | MiniMax H3, LTX-2, keyframes, H3 prompts, depth, After Effects, Blender | | Node reference | Every input and output | | Performance | Speed vs. quality, Apple Silicon | | Models | What works well, and the settings | | Prompt pack | Ready-made scene sets | | Expressions | The math syntax, for power users | | Migrating from 0.x | Old workflows still open; the new equivalents | | Architecture | How it is built, for contributors |
Contributing
pytest runs without a GPU or ComfyUI. Templates and the node reference are
generated from the code (tools/). See CONTRIBUTING.md.
MIT licensed.