Extensions/Difforum
ComfyUI Extension

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.

By chillithebillis·Created 4 months ago·Updated 2 days ago· 10
chillithebillis/Difforum
Nodes78
On cloudLocal install
CategoryDifforum/2 · Direction, Difforum/legacy
Stars10
Updated2 days ago

Nodes (78)

Difforum · Animatic (previz)

See the Whole Camera Move in One Second, Before You Render Anything

Difforum/2 · Direction
Difforum · Anim Setup [legacy]

The boring node every Difforum clip starts with (and why you can't skip it)

Difforum/legacy
Difforum · Anim Setup+ (time + aspect) [legacy]

Anim Setup+ does the math for your GPU

Difforum/legacy
Difforum · Audio Analyzer

Turn a Track Into Per-Frame Numbers You Can Use

Difforum/3 · Curves & Prompts
Difforum · Audio Analyzer [legacy]

Turn any audio file into per-frame curves your animation can dance to

Difforum/legacy
Difforum · Audio Curve

One Band In, a Working Denoise Curve Out

Difforum/3 · Curves & Prompts
Difforum · Audio Schedule (reactive) [legacy]

Turn a band into a curve, plug it anywhere

Difforum/legacy
Difforum · Camera (keys)

Type the Move Instead of Drawing It

Difforum/2 · Direction
Difforum · Camera (advanced) [legacy]

Full Deforum 2D/3D camera control, expression by expression

Difforum/legacy
Difforum · Camera Export (AE / Blender / JSON)

Send the AI Camera into After Effects and Blender

Difforum/6 · Export
Difforum · Camera (expressions)

The Deforum Math Syntax, Still Here and Still Useful

Difforum/2 · Direction
Difforum · Camera Import

Block the Move in Blender, Render It With AI

Difforum/6 · Export
Difforum · Camera Keys (blend + lens) [legacy]

Keyframed moves that blend like a crane — and the lens is a channel of its own

Difforum/legacy
Difforum · Camera Move (presets) [legacy]

The honest starting point for Difforum camera work

Difforum/legacy
Difforum · Camera Path Preview [legacy]

See your camera path before you render — it's an IMAGE, not a guess

Difforum/legacy
Difforum · Camera → Prompt

Describe the Move in Words for H3, LTX, Veo and Friends

Difforum/5 · Video model bridges
Difforum · Camera Shots (director) [legacy]

A shot list with hard cuts, no keyframe math

Difforum/legacy
Difforum · Colour Grade [legacy]

A real cinematic grading pass (exposure to LGG to hue) that needs no model

Difforum/legacy
Difforum · Datamosh (optical flow) [legacy]

Optical-flow motion melt — the video-art look without touching the codec

Difforum/legacy
Difforum · Detail Guard

The Two-Second Fix for Frames That Went Soft

Difforum/7 · Post
Difforum · Detail Guard (anti-mush) [legacy]

The anti-mush node that stops feedback loops from turning to soup

Difforum/legacy
Difforum · Director (timeline)

The Difforum Director Is the Whole Shot, Drawn With a Mouse

Difforum/2 · Direction
Difforum · Echo Trails

Long-Exposure Smear Across a Whole Clip

Difforum/7 · Post
Difforum · Echo Trails [legacy]

Long-exposure motion trails for that smooth, hypnotic feedback look

Difforum/legacy
Difforum · Feedback Sampler

The Deforum Look, Without the 2022 Baggage

Difforum/4 · Render
Difforum · Feedback Sampler (Classic+) [legacy]

The heart of Difforum — warp, re-diffuse, colour-match, repeat

Difforum/legacy
Difforum · Fill Reveal (AI)

Repaint What the Camera Uncovered

Difforum/5 · Video model bridges
Difforum · Film Director [legacy]

Drag scenes on a timeline, get camera, prompt, and strength schedules for free

Difforum/legacy
Difforum · Flow Stabilize

Kill the Flicker Without Ghosting the Motion

Difforum/7 · Post
Difforum · Flow Stabilize (anti-flicker) [legacy]

The anti-flicker fix that doesn't ghost — because it blends along motion

Difforum/legacy
Difforum · Glitch (DSP databending) [legacy]

Convolution, delay-line databending, bitcrush, VHS — all in one node

Difforum/legacy
Difforum · Glow [legacy]

The neon bloom node — blur the bright bits, screen-blend them back

Difforum/legacy
Difforum · Guide Builder (Wan VACE) [legacy]

Warp one image into a VACE guide batch, camera by Difforum

Difforum/legacy
Difforum · Guide Frames

Turn One Picture Into a Video Model's Camera Move

Difforum/5 · Video model bridges
Difforum · H3 Guides

Make MiniMax H3 Perform the Move You Drew

Difforum/5 · Video model bridges
Difforum · H3 Refine Guides

Your H3 refine pass dies with a shape mismatch — this is the node that fixes it

Difforum/5 · Video model bridges
Difforum · H3 Shot

Everything a MiniMax H3 First/Last-Frame Shot Needs, in One Node

Difforum/5 · Video model bridges
Difforum · Keyframe Assets (folder)

Point it at a folder of pictures and they become your keyframes, in order, at the right seconds

Difforum/2 · Direction
Difforum · Keyframe Images

Make the Clip Hit Your Pictures on the Beat

Difforum/2 · Direction
Difforum · Keyframes

Pick the Right Frames Off Your Render, on the Model's Grid

Difforum/5 · Video model bridges
Difforum · Live Sampler

Queue Once and Watch It Play Inside the Node

Difforum/4 · Render
Difforum · Live Sampler (realtime loop) [legacy]

A realtime Deforum loop with a live preview — queue once, watch it generate

Difforum/legacy
Difforum · Live Step (realtime) [legacy]

One warp-plus-diffuse step per tick — the realtime building block

Difforum/legacy
Difforum · Load Video [legacy]

Get footage into ComfyUI as frames, without another video pack

Difforum/legacy
Difforum · VJ Look (presets) [legacy]

Neon, vaporwave, noir — and pulse it to the beat

Difforum/legacy
Difforum · Look Mix

Put the boiling texture back on a clean H3 render

Difforum/7 · Post
Difforum · Loop

Three ways to close a clip, and the one that still isn't cheating

Difforum/7 · Post
Difforum · Loop Blend (perfect loop) [legacy]

Morph the tail into the head along optical flow

Difforum/legacy
Difforum · Loop Take (settled lap) [legacy]

Render three laps, keep the one that settled

Difforum/legacy
Difforum · LTX Guides

Your drawn camera, inside an LTX-2 latent

Difforum/5 · Video model bridges
Difforum · Model Catalog [legacy]

Pick one, get the download guide

Difforum/legacy
Difforum · Model Profile [legacy]

Let the pack pick your model, resolution, and steps for your GPU

Difforum/legacy
Difforum · Ping-Pong Loop [legacy]

The guaranteed loop that reverses motion — and when that's fine

Difforum/legacy
Difforum · Prompt Batch (→ AnimateDiff) [legacy]

The bridge that feeds Difforum prompt travel into AnimateDiff

Difforum/legacy
Difforum · Prompt Scenes (travel) [legacy]

One box per scene

Difforum/legacy
Difforum · Prompt Schedule (travel) [legacy]

Morph a prompt over your clip

Difforum/legacy
Difforum · Prompt Travel

`2.5s:` timestamps, blended frame by frame

Difforum/3 · Curves & Prompts
Difforum · Render Options

The eighteen dials they took off the sampler

Difforum/4 · Render
Difforum · Restyle (Deforum / AnimateDiff look)

The Deforum look riding on H3's motion

Difforum/4 · Render
Difforum · Sample Schedule [legacy]

The two-second probe for any Difforum schedule

Difforum/legacy
Difforum · Save Video (MP4) [legacy]

Write your frame batch to an MP4, no external video nodes

Difforum/legacy
Difforum · Scene Stills (storyboard)

One picture per scene, painted in order — the storyboard that becomes your keyframes

Difforum/2 · Direction
Difforum · Schedule

`0:(0.45), 60:(0.6)` is still the best way to time a shot

Difforum/3 · Curves & Prompts
Difforum · Schedule [legacy]

The keyframe brain behind Difforum's Deforum-style animation

Difforum/legacy
Difforum · Schedule Info [legacy]

An ASCII sparkline for your Difforum schedule (costs zero GPU)

Difforum/legacy
Difforum · Schedule Plot

Look at the curve before you render 400 frames

Difforum/3 · Curves & Prompts
Difforum · Schedule Plot [legacy]

See your camera curve before you burn a render

Difforum/legacy
Difforum · Seamless Camera (loop) [legacy]

A camera path that closes on itself, so your loop actually loops

Difforum/legacy
Difforum · Setup

One node that stops your graph disagreeing with itself

Difforum/1 · Setup
Difforum · Shot Script (timeline from text)

Write your shot as text, or let an LLM write it — one beat per line and the timeline is built

Difforum/2 · Direction
Difforum · Storyboard

See the whole camera move in about a second, no diffusion

Difforum/2 · Direction
Difforum · Storyboard (no diffusion) [legacy]

Preview the whole clip in under a second — no diffusion involved

Difforum/legacy
Difforum · Workflow Switches

The on/off panel that actually knows your graph

Difforum/1 · Setup
Difforum · Symmetry

Mirrors and kaleidoscopes, and the version that compounds

Difforum/7 · Post
Difforum · Symmetry / Kaleidoscope [legacy]

Mirror, quad, or a full kaleidoscope — on a frame or a whole batch

Difforum/legacy
Difforum · Travel Conditioning (prompt per frame)

A prompt per frame, as one conditioning — how you get prompt travel out of AnimateDiff

Difforum/2 · Direction
Difforum · Upscale (2K / 4K)

Get the clip to 2K without inventing a new one

Difforum/7 · Post
Difforum · Warp (2D/3D) [legacy]

The warp that actually moves your Deforum frames (2D or depth-aware 3D)

Difforum/legacy
Readme
<div align="center"> <img src="docs/media/icon.png" width="96" alt="">

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.

CI ComfyUI License: MIT

</div>

The Director timeline

What it does

Video models render well, but you steer them with words. Difforum gives you back control over the camera and the timing:

  1. 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.

  2. 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.

  3. Render. One direction wire 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 |

  4. 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 sound becomes 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

  1. Install from ComfyUI Manager (search "Difforum"), or:
    cd ComfyUI/custom_nodes && git clone https://github.com/chillithebillis/Difforum.git difforum
    
  2. Restart ComfyUI and open Templates → Difforum.
  3. 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

Feedback render

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 2 that 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.