Nodes/Difforum/Difforum · Render Options
ComfyUI Node

Difforum · Render Options

The eighteen dials they took off the sampler

By chillithebillis·Created 4 months ago·Updated 11 days ago· 10
Difforum · Render Options
    • options
    ◄color_coherence0.80►
    ◄color_modelab►
    ◄anchor_modescene►
    ◄sharpen0.20►
    ◄noise0.020►
    ◄hole_noise0.25►
    ◄symmetrynone►
    ◄symmetry_segments6►
    ◄borderreflection►
    ◄depth_trackingfollow►
    ◄translation_scale1.00►
    ◄near1.00►
    ◄far100.00►
    ◄invert_depthfalse►
    ◄step_scalingby energy (fast)►
    ◄seed_modefixed►
    ◄start_frame0►
    ◄end_frame0►

    Every Deforum-style sampler eventually turns into a wall of unrelated inputs. Difforum's answer was to move the fine-tuning out of the Feedback Sampler and into one node that emits a single options bundle - the kind of plumbing ComfyUI does well, where one wire carries a dozen settings.

    You don't have to use it. Left unwired, the look (colour lock, sharpen, grain) comes from the Director's look preset and everything else falls back to sensible defaults. Wire it in when you want manual control, which in practice happens the first time a clip drifts in colour, goes soft, or you try to render a 30-second shot on a card that fits the model but not the shot.

    What's in the bundle

    Three of these are worth understanding before you touch the rest.

    Colour anchoring. color_coherence is how hard colours are held to the anchor, color_mode is how they're matched (lab perceptual, rgb, or none), and anchor_mode decides what the anchor is: scene re-anchors at each prompt scene, first holds frame 0 forever, rolling uses the previous key, none lets colour drift free. The default is scene, which is the right default for prompt travel because it lets a scene change change the palette. If you've migrated a workflow from the pack's older 0.x era, first is what you used to get.

    Step scaling. step_scaling on by energy (fast) means a frame at denoise 0.5 runs half the steps, exactly like classic Deforum - which is where the "steps scale with energy" speedup comes from, and it's roughly a 2x saving at the same look. fixed runs the full step count every frame. Switch to fixed when you want identical cost per frame for a deadline, or when you're comparing seeds and don't want the step count co-varying.

    Depth calibration. If you're doing 3D camera moves off a depth map, depth_tracking (follow re-projects depth with the image every frame, static freezes it), translation_scale, near, far and invert_depth are the whole calibration surface. invert_depth exists because half the depth models in circulation output near = dark rather than near = white; if your dolly-in turns into a dolly-out, that's the switch.

    The rest: sharpen (after each diffused frame, keeps feedback from going soft), noise (grain fed in before diffusing, which is how the loop gets new detail instead of recycling), hole_noise (extra noise where the camera uncovers new area so it gets repainted rather than smeared), symmetry plus symmetry_segments (mirror or kaleidoscope applied inside the loop, where it compounds into a living pattern), border (what fills exposed edges: reflection, border, zeros), seed_mode (fixed = the same noise every frame, calmer texture; increment = new noise per frame), and start_frame / end_frame for chunked rendering.

    One output: options, into the Feedback Sampler or Live Sampler.

    Chunked rendering, in one paragraph

    start_frame and end_frame let you render a piece of a clip: you feed the sampler an init image that is the frame at start_frame, and the render picks up from there with the same camera and schedules. That's how you finish a long shot across sessions, and it's how you retry a bad ten seconds without re-rendering the good forty. The one thing it cannot do is invent the init frame for you - if you hand it the wrong picture, you get a plausible-looking clip starting in the wrong place.

    Install

    ComfyUI Manager → search Difforum, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/chillithebillis/Difforum.git difforum
    

    Restart. numpy only; OpenCV is optional and only matters for the flow and webcam features elsewhere in the pack, not here. Templates → Difforum ships graphs that already have this node sitting between Director and sampler, which is the layout to copy.

    Where people get burned

    translation_scale changed meaning in the 1.x rewrite - 3D lateral moves are now measured in pixels at the reference depth, the same unit as 2D pans. A graph ported from 0.x will pan less than it used to, and the fix is to raise translation_scale, not to fight the camera.

    The other one is symmetry. Doing it here is not the same as the standalone Symmetry node: inside the loop every frame is folded and then re-diffused, so the pattern compounds and the camera keeps walking through it. Applied once at the end, it's a mirror. Decide which you want before you spend an hour on a render, because the in-loop version gets weird fast - in the good way, if you're making a mandala, and in the bad way if you were trying to subtly tidy a face. Keep both dimensions divisible by 8 whatever you set; max_megapixels on Setup caps the frame area if the resolution is what's blowing up.

    CategoryDifforum/4 · Render

    Inputs (18)

    NameTypeDefaultDescription
    color_coherenceFLOAT0.800–1How hard colours are held to the anchor.
    color_modeCOMBOlabHow colour is matched to the anchor: lab (perceptual), rgb, or none.
    anchor_modeCOMBOscenescene = re-anchor colour at each prompt scene; first = hold frame 0; rolling = previous key; none = free.
    sharpenFLOAT0.200–2Sharpening after each diffused frame; keeps feedback from going soft.
    noiseFLOAT0.0200–0.5Grain added before each frame is diffused; feeds new detail.
    hole_noiseFLOAT0.250–1Extra noise where the camera reveals new area, so it is repainted.
    symmetryCOMBOnoneSymmetry applied inside the loop (kaleidoscope for mandalas).
    symmetry_segmentsINT62–64Kaleidoscope segments.
    borderCOMBOreflectionWhat fills the edges the camera exposes: reflection (mirror), border (stretch), zeros.
    depth_trackingCOMBOfollowfollow = depth is re-projected with the image every frame.
    translation_scaleFLOAT1.000–203D motion strength vs. the depth map's range.
    nearFLOAT1.000.01–1000Depth calibration: distance of the nearest depth value.
    farFLOAT100.000.02–10000Depth calibration: distance of the farthest depth value.
    invert_depthBOOLEANfalseEnable if near things are dark in your depth map.
    step_scalingCOMBOby energy (fast)by energy: a frame at denoise 0.5 runs half the steps, like Deforum (about 2x faster at the same look). fixed: every frame runs all steps.
    seed_modeCOMBOfixedfixed = same noise every frame (calmer texture).
    start_frameINT00–1000000Feedback Sampler: render a chunk; init_image is the frame at start_frame.
    end_frameINT00–10000000 = to the end.

    Outputs (1)

    NameTypeDescription
    optionsDIFFORUM_OPTIONS—