Nodes/FlashVSR+ T8/FlashVSR+ Options
ComfyUI Node

FlashVSR+ Options

17 knobs, and you should touch about three

By T8mars·Created 15 days ago·Updated 15 days ago· 5
FlashVSR+ Options
    • options
    ◄temporal_compression▾►
    ◄temporal_merge▾►
    ◄temporal_gaussian_sigma1.00►
    ◄decode_every28►
    ◄cache_offload_mode▾►
    ◄offload_original_cachefalse►
    ◄tiny_decoder_mode▾►
    ◄tiny_decoder_channels_lasttrue►
    ◄color_correctionfalse►
    ◄color_correction_levels5►
    ◄color_correction_chunk_size16►
    ◄ffn_chunk_tokens8192►
    ◄vae_tiledtrue►
    ◄vae_tile_height30►
    ◄vae_tile_width52►
    ◄vae_overlap15►
    ◄video_preset▾►

    This is the pack's settings node, and it's the "context object" pattern you've seen in other advanced packs: one node bundles a pile of values and hands them over as a single wire instead of forcing seventeen sockets onto the upscaler. You don't have to use it. Both upscale nodes take it as an optional input and fall back to sensible defaults when it's absent.

    So why wire it at all? Because three of the settings inside it can double your speed, or save your run from an out-of-memory death, and you can't reach any of that from the upscale node itself.

    How it works

    FlashVSR+ Options takes seventeen widgets and returns one FLASHVSR_PLUS_OPTIONS object. The important bit is that it validates on creation, not at run time - the node runs a validate pass the moment it executes, and raises immediately on impossible combinations. decode_every must be 0 or a positive multiple of four. vae_overlap must be smaller than both tile dimensions. The colour-correction chunk and level values can't be zero. You get a red error on the Options node, which is a much better place to fail than chunk 7 of 12 on a 1080p clip.

    The three you'll actually change

    decode_every (default 28) is the one with a real explanation attached: "Latent-frame interval: 28 is about 112 pixel frames at compression 4. 0=auto/full clip. Use positive multiples of 4 for Tiny." Lower values decode in smaller slices - less VRAM per slice, more overhead. The author's validated 1080p configuration runs decode_every=4. If you're crashing on a long clip with the Tiny decoder, this is your dial.

    The VAE constraint, which is a trap. If your Model Loader's decoder is set to vae, decode_every must be 0, or you get Official VAE decoding requires decode_every=0 (auto). The Wan VAE decodes the entire clip at once; only Tiny supports bounded incremental decoding. So the two nodes are coupled - pick vae in the loader and you must remember to zero this out.

    color_correction (default off) with color_correction_levels (5) and color_correction_chunk_size (16) is the answer to the "why is my upscaled video lavendered" complaint that follows every VAE round-trip in ComfyUI. The pack's own single-image workflow ships with it enabled. It helps overall colour; it does not restore faded text or flat fields, and the author is upfront about that.

    The rest, grouped so you can ignore it confidently

    temporal_compression (4, 2 or 1) and temporal_merge (gaussian / first, with temporal_gaussian_sigma) are the model's own temporal handling - how aggressively it compresses over time and how it blends neighbours. Defaults are the validated path; change these only if you're deliberately chasing something.

    ffn_chunk_tokens (8192, or 0 to disable chunking) trades a bit of throughput for lower peak memory. The vae_tiled / vae_tile_height (30) / vae_tile_width (52) / vae_overlap (15) group tiles the decode, and is the second lever after decode_every when VRAM is tight.

    cache_offload_mode (auto / never / always) plus offload_original_cache control how the streaming caches are parked. tiny_decoder_mode (auto / serial / parallel) and tiny_decoder_channels_last are Tiny-decoder plumbing.

    video_preset is just the x264 encoder preset for the finished MP4 - veryfast by default, up to slow. It affects encode time and file size, nothing about the upscale itself. Don't go hunting for quality in here.

    Inputs and outputs, concretely

    Required: all seventeen widgets above - there is no optional section, and none of them are hidden. Optional input: none. Output: a single options socket that plugs into the options input on FlashVSR+ Upscale Frames or FlashVSR+ Upscale Video. One wire, either node, or both.

    Installing

    Same pack, same install. ComfyUI Manager → search FlashVSR+ T8 → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/T8mars/Comfyui-Flashvsr-Plus-T8.git
    python -m pip install -r Comfyui-Flashvsr-Plus-T8/requirements.txt
    

    No extra models for this node - it's pure configuration, it never touches a weight file.

    Troubleshooting

    decode_every must be 0 (auto) or a positive multiple of 4. The widget has step: 4 but only a max of 1024 and a min of 0, so a typed-in 27 will sail past the slider and then fail validation. Use 4, 8, 12, 28…

    VAE overlap must be smaller than each tile dimension. Classic. Bump the tiles to 32×64 or drop overlap below 30.

    Nothing changed when I disconnected it. That's expected - the upscale nodes build default options when the input is empty. If a setting seems ignored, check the Options node is actually wired and not bypassed (Ctrl+B leaves the wire visibly greyed but still passing).

    Still OOM after tuning. Options can only shrink decode windows; it can't shrink the canvas. A 4× upscale of a 1080p clip is an 8K canvas, and this model will do exactly what you told it. Cut scale, or use width/height on the upscale node to target something real.

    CategoryFlashVSR+

    Inputs (17)

    NameTypeDefaultDescription
    temporal_compressionCOMBO3 options: 4, 2, 1
    temporal_mergeCOMBO2 options: gaussian, first
    temporal_gaussian_sigmaFLOAT1.000.01–10—
    decode_everyINT280–1024Latent-frame interval: 28 is about 112 pixel frames at compression 4. 0=auto/full clip. Use positive multiples of 4 for Tiny.
    cache_offload_modeCOMBO3 options: auto, never, always
    offload_original_cacheBOOLEANfalse—
    tiny_decoder_modeCOMBO3 options: auto, serial, parallel
    tiny_decoder_channels_lastBOOLEANtrue—
    color_correctionBOOLEANfalse—
    color_correction_levelsINT51–8—
    color_correction_chunk_sizeINT161–128—
    ffn_chunk_tokensINT81920–262144—
    vae_tiledBOOLEANtrue—
    vae_tile_heightINT304–256—
    vae_tile_widthINT524–256—
    vae_overlapINT150–128—
    video_presetCOMBO7 options: veryfast, ultrafast, superfast, faster, fast, medium, +1

    Outputs (1)

    NameTypeDescription
    optionsFLASHVSR_PLUS_OPTIONS—