Nodes/ComfyUI-WanVideoWrapper/WanVideo Free Init Args
ComfyUI Node Runs on cloud

WanVideo Free Init Args

FreeInit for Wan, and when the 3x cost is worth it

By kijai·Created about a year ago·Updated 2 months ago· 6,651
WanVideo Free Init Args
    • freeinit_args
    freeinit_num_iters3
    freeinit_methodideal
    freeinit_n4
    freeinit_d_s1.00
    freeinit_d_t1.00

    If your Wan clips come out with flickery, incoherent motion - the background shimmering, details boiling frame to frame - this is one of the levers that can settle them down. It's a config node for FreeInit, a temporal-consistency trick that costs you generation time in exchange for steadier video. You don't wire it into the video; you wire it into the Wan sampler as a bundle of settings.

    FreeInit comes from a research paper (TianxingWu/FreeInit) and the node description quotes its own pitch: "a concise yet effective method to improve temporal consistency of videos generated by diffusion models." The word "concise" is doing a lot of work - the idea is genuinely simple, the cost is real, and whether you need it depends heavily on your base model.

    How it works

    Here's the mechanism, because it explains the cost. A diffusion video is initialized from random noise. FreeInit's observation is that the low-frequency part of that starting noise quietly controls the overall temporal layout, and fresh random noise has a bad low-frequency structure for coherence. So FreeInit samples your clip once, takes the low-frequency component of the result, keeps the high-frequency component of fresh noise, and re-samples from that combined starting point. Repeat a few times and the motion locks in.

    The catch is right there in "sample once, then re-sample." Each iteration is a full denoising pass. Set it to 3 iterations and you've roughly tripled your render time for one clip. There's no free lunch - this buys coherence with compute.

    The inputs and outputs that matter

    Everything here is a required knob, and the output is a single freeinit_args bundle you plug into the sampler.

    • freeinit_num_iters (default 3) - how many re-sampling passes. This is the cost dial. 2 is often enough; 3 is the default; higher rarely pays.
    • freeinit_method (default ideal) - the low-pass filter used to split frequencies: butterworth, ideal, gaussian, or none. none effectively disables the filtering. The default is a fine starting point.
    • freeinit_d_s and freeinit_d_t (both default 1) - spatial and temporal cutoff for that filter. d_t is the one that matters for video - it controls how much temporal structure carries between iterations. Lower it if the effect is too aggressive and motion goes stiff.
    • freeinit_n (default 4) - the order of the Butterworth filter, only relevant when you pick butterworth.

    Output: freeinit_args → the corresponding input on WanVideoSampler.

    How to install it

    ComfyUI Manager: search ComfyUI-WanVideoWrapper, install, restart. Or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
    pip install -r ComfyUI-WanVideoWrapper/requirements.txt
    

    then restart. This node downloads nothing - it's pure configuration, and it works with whatever Wan model you've already loaded.

    Common issues & troubleshooting

    Generation suddenly takes 3x longer. Working as designed. freeinit_num_iters multiplies your sampling time by that number. If you forgot you left this in the graph, that's your culprit - bypass the node or drop iterations to 1.

    It's not doing much. On modern Wan 2.2 with a decent sampler and enough steps, motion is already fairly coherent, so FreeInit has less to fix than it did on older video models. It earns its keep most on low-step / speed-LoRA runs and on longer clips where temporal drift shows. If your base output is already clean, this is a tax with no benefit - cut it.

    Motion went stiff or dead. You've over-constrained the temporal structure. Lower freeinit_d_t, drop an iteration, or switch freeinit_method toward gaussian for a softer split. FreeInit trades some motion amplitude for consistency; push it too hard and everything freezes into a near-still shot.

    CategoryWanVideoWrapper

    Inputs (5)

    NameTypeDefaultDescription
    freeinit_num_itersINT31–10Number of FreeInit iterations
    freeinit_methodCOMBOidealFrequency filter type
    freeinit_nINT41–10Butterworth filter order (only for butterworth)
    freeinit_d_sFLOAT1.000–10Spatial filter cutoff
    freeinit_d_tFLOAT1.000–10Temporal filter cutoff

    Outputs (1)

    NameTypeDescription
    freeinit_argsFREEINITARGS