Nodes/comfyui-flow-upscaler/Load Flow Upscaler
ComfyUI Node

Load Flow Upscaler

Load the 59M upscaler that makes Flux.2 big prints nearly free

By tensorforger·Created 3 months ago·Updated 3 months ago· 22
Load Flow Upscaler
    • LATENT_UPSCALER
    model_name

    Flow Upscaler is the rare upscaler that never touches pixels. It works entirely inside Flux.2's latent space, and LoadFlowUpscaler is the node that hands it to your graph: feed it a file and you get back a LATENT_UPSCALER object that the companion UpscaleLatents node uses to double the resolution of your Flux.2 (and Klein) latents in a single denoising step. The whole model is 59M parameters - a 237 MB safetensors - and on an RTX 5090 it turns a 512×512 latent into 1024×1024 in about 8ms, not counting decode.

    Why you'd bother. Flux.2 generates at a fixed native latent size, so going bigger has traditionally meant one of three things: a hi-res fix (re-sampling with the full model - slow, VRAM-hungry), an ESRGAN-style pixel upscaler (instant but adds nothing), or a heavyweight generative restorer like SeedVR2 (excellent, but seconds per image and gigabytes of weights). This is a fourth path. TensorForger - the same person behind FluxRT, the real-time Klein pipeline - trained this tiny rectified-flow model by flow distillation from Flux.2-klein-4B on 20K images, specifically so you can synthesize bigger latents cheaply instead of restoring pixels. It won't beat SeedVR2 on a damaged photo. It's just effectively free, and that's a different, very useful thing.

    How the loader works. LoadFlowUpscaler reads the .safetensors and constructs the UpscalerUNet: a U-Net built from SDXL-style ResNet blocks, with no attention anywhere, so compute scales linearly with image area rather than quadratically - that's what makes 8K plausible. It predicts velocity (the rectified-flow signal) and is conditioned on your low-res latents through a separate conditioning encoder injected via FiLM. The loader's whole job is that construction; UpscaleLatents does the actual upscaling.

    Inputs and outputs. There's really one input:

    • model_name - a dropdown listing every .safetensors in ComfyUI/models/latent_upscale_models. Drop flow_upscaler.safetensors there and it appears.

    The output is a single LATENT_UPSCALER, which you wire into UpscaleLatents' model input. That's the whole contract.

    Install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/TensorForger/comfyui-flow-upscaler
    

    Or search comfyui-flow-upscaler in ComfyUI Manager. Then grab flow_upscaler.safetensors (237 MB) from huggingface.co/TensorForger/FlowUpscaler and drop it into models/latent_upscale_models - create the folder if it isn't there, since the node registers it but ComfyUI doesn't ship it. Restart ComfyUI.

    Where people get burned: empty dropdown means the file isn't named .safetensors or isn't in the right folder. If the node won't even load, the repo quietly depends on diffusers (there's no requirements.txt in it) - pip install diffusers, then restart. And the one you'll actually hit: this model only understands Flux.2's 32-channel latents. Feed it SDXL or Flux.1 latents and it will happily produce garbage. Generate with a Flux.2 checkpoint (the demo workflow uses Klein 4B) before you try to upscale anything.

    Categorylatent upscale

    Inputs (1)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:

    Outputs (1)

    NameTypeDescription
    LATENT_UPSCALERLATENT_UPSCALER