Nodes/comfyui-minimax-h3-audio-T8/MiniMax H3 FlashVSR Model / 视频超分模型 (T8 Advanced EXP)
ComfyUI Node

MiniMax H3 FlashVSR Model / 视频超分模型 (T8 Advanced EXP)

What it actually checks (and what it won't fake)

By T8mars·Created about a month ago·Updated a day ago· 1,031
MiniMax H3 FlashVSR Model / 视频超分模型 (T8 Advanced EXP)
    • flashvsr_model
    • report_json
    model_directoryFlashVSR-v1.1
    modetiny
    precisionbf16

    This is the first node in the T8 pack's FlashVSR chain, and it's the least exciting one to look at and the easiest to trip over. It loads the official FlashVSR v1.1 checkpoint set from ComfyUI/models and hands you a flashvsr_model object that the MiniMax H3 FlashVSR Restore node then runs. If you're generating MiniMax H3 clips and want a real 2× or 4× on the finished, decoded video, this is the loader you use - there's no separate "import weights by hand" step inside ComfyUI.

    What this node is not is a fast preview or a sampling accelerator. FlashVSR operates on already-decoded frames, after your H3 clip is done. The KB puts it plainly: FlashVSR is the open video upscaler that actually got adopted, its selling point was speed over SeedVR2 rather than raw sharpness, and it beats SeedVR2 when the source is already reasonable. This loader just gets those weights into a usable pipeline.

    How it works

    The loader scans whatever folder you pick under ComfyUI/models and checks for the required structure - the DiT (diffusion_pytorch_model_streaming_dmd.safetensors), LQ_proj_in.ckpt, TCDecoder.ckpt (or Wan2.1_VAE.pth in full mode), and the posi_prompt.pth prompt tensor that the official FlashVSR repo doesn't even ship. Missing files raise an error that names the exact file, and loading fails if the checkpoint structure isn't a real FlashVSR model - you can't quietly feed it an H3 or Wan generation model. There is deliberately no hash, file-size or pixel-area allowlist; it checks structure and loadability, which is the pack's whole compatibility philosophy.

    The loaded pipeline is cached by folder + mode + precision + file mtime, so re-running a workflow doesn't rebuild the whole thing - the report_json output tells you whether you got a cache_hit. Precision defaults to bf16, and it falls back to fp16 automatically on cards without bfloat16 support. It's CUDA-only; no CPU path exists.

    The inputs that matter

    • model_directory - a dropdown of folders under ComfyUI/models, defaulting to FlashVSR-v1.1. Point it at wherever you dropped the model.
    • mode - tiny (default), tiny_long, or full. tiny is the documented default and what the bundled workflows use; full additionally loads the Wan VAE and is heavier.
    • precision - bf16 (default) or fp16. Leave it alone unless you're chasing VRAM.

    The two outputs are flashvsr_model (wire it into the Restore node) and report_json - a plain-text report of what loaded, on which device, at which dtype, and whether it came from cache. Handy for confirming your v1.1 detection was right.

    Installing it

    The pack installs the normal way: ComfyUI Manager, search "MiniMax H3 Audio T8", or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/T8mars/comfyui-minimax-h3-audio-T8.git minimax-h3-audio-T8
    

    Then restart ComfyUI. The node itself needs no pip packages - requirements.txt is empty on purpose, with base deps supplied by ComfyUI. What you do need is the model folder. Grab JunhaoZhuang/FlashVSR-v1.1 and drop the whole directory at ComfyUI/models/FlashVSR-v1.1, then add the missing posi_prompt.pth from the official FlashVSR repo's prompt_tensor folder. You'll also need a spas_sage_attn wheel matched to your Torch/CUDA/Python from SpargeAttn or its Windows wheels - the actual upscale step uses it for the LCSA attention kernel, and the loader won't fake it.

    One pack-level gotcha before you blame this node: update ComfyUI core, frontend and Manager together, then fully restart. This pack uses new core APIs (comfy_api.latest, comfy.ldm.minimax), and an old core makes every T8 node show up red at once - the first terminal error will say which import is missing.

    When it goes wrong

    • FileNotFoundError naming a file - you're missing part of the model set. The message lists exactly what's absent; posi_prompt.pth is the one everyone forgets.
    • "FlashVSR requires the optional 'spas_sage_attn' CUDA wheel" - this surfaces at load/run, not install, and it's an actionable error, not a silent fallback to dense attention. Install the wheel matching your ComfyUI's Torch/CUDA build.
    • full mode failing on VAE - full demands Wan2.1_VAE.pth in the folder; use tiny or tiny_long if you didn't download it.

    Real talk: this loader is the boring, reliable part of the chain. Get the five files in the right folder and a matching Sage kernel installed, and the interesting decisions - 2× vs 4×, quality vs memory - happen in the Plan and Restore nodes that come next.

    CategoryT8/MiniMax H3/Post FX/Experimental/FlashVSR

    Inputs (3)

    NameTypeDefaultDescription
    model_directoryCOMBOFlashVSR-v1.11 options: FlashVSR-v1.1
    modeCOMBOtiny3 options: tiny, tiny_long, full
    precisionCOMBObf162 options: bf16, fp16

    Outputs (2)

    NameTypeDescription
    flashvsr_modelH3_T8_FLASHVSR_MODEL
    report_jsonSTRING