Nodes/toobusy · 너무바쁜베짱이/toobusy FlashVSR Loader
ComfyUI Node

toobusy FlashVSR Loader

FlashVSR's three model files, loaded without the guesswork

By nicekriss·Created about a year ago·Updated 3 days ago· 16
toobusy FlashVSR Loader
    • flashvsr_model
    dit
    projection
    prompt_tensor
    offloadfalse
    aggressive_offloadfalse

    FlashVSR is the video upscaler that actually got adopted - the open model that broke through in late 2025 on speed rather than quality, upscaling a decent source fast when SeedVR2 would be overkill. It's also, mechanically, three separate files that have to be loaded together: the DiT, a low-quality input projection, and a prompt tensor. toobusy FlashVSR Loader is the node that assembles all three into one flashvsr_model handle, with fuzzy file auto-detection so you don't have to babysit dropdowns.

    How it works

    The three files are genuinely distinct weights with distinct jobs:

    • dit - the streaming diffusion model (diffusion_pytorch_model_streaming_dmd.safetensors), the actual upscaler.
    • projection - LQ_proj_in.ckpt, which projects low-quality input frames into the model's space.
    • prompt_tensor - posi_prompt.pth, a learned prompt conditioning tensor from the FlashVSR authors.

    The node scans your ComfyUI/models/FlashVSR/ folder, matches each slot by filename fragment (dmd / proj / prompt), and hands you a single typed handle. The offload / aggressive_offload toggles set how the model behaves under VRAM pressure - offload keeps the DiT resident when it fits; aggressive offload shuttles it to CPU between chunks for 12GB-class cards.

    One thing it deliberately does not do: download anything. The README is explicit - models are never auto-downloaded for the FlashVSR path. You place the files yourself:

    # into ComfyUI/models/FlashVSR/
    # diffusion_pytorch_model_streaming_dmd.safetensors  (FlashVSR v1.1 DiT)
    # LQ_proj_in.ckpt                                     (LQ projection)
    # posi_prompt.pth                                     (prompt tensor)
    

    The Wan 2.1 VAE goes separately into models/vae/ for the Decoder node.

    Inputs and output

    The three file dropdowns (auto-detected), offload, and aggressive_offload are the entire input surface. The single output, flashvsr_model, feeds the Long Sampler. That's it - this node is a loader, and its whole job is to make the three-file requirement feel like one.

    Install and gotchas

    Heaviest install in the pack. First the Python deps:

    python -m pip install -r custom_nodes/toobusy/requirements_flashvsr.txt
    

    Then the painful part: FlashVSR's block-sparse attention needs a block_sparse_attn wheel that must exactly match your Python, PyTorch, and CUDA combo - the README's tested wheel is Windows, Python 3.13, PyTorch 2.12.1+cu130, and you must not install that wheel on a different environment. Match your own combo, and pick your ComfyUI Desktop Torch choice before installing BSA.

    If the loader's dropdowns come up empty, the files aren't in models/FlashVSR/ with recognizable names - drop them in and restart. And if the whole pipeline won't run, the #1 cause is the BSA wheel mismatch, not the model files. Check that before you re-download anything.

    Categorytoobusy/video/FlashVSR

    Inputs (5)

    NameTypeDefaultDescription
    ditCOMBO0 options:
    projectionCOMBO0 options:
    prompt_tensorCOMBO0 options:
    offloadBOOLEANfalse
    aggressive_offloadoptBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    flashvsr_modelTOOBUSY_FLASHVSR_MODEL