Nodes/LumaFlux/LumaFlux Loader
ComfyUI Node

LumaFlux Loader

It Wants 24 GB, and It Evicts Your Other Models to Get It

By shreshthsaini·Created 3 months ago·Updated 8 days ago· 2
LumaFlux Loader
    • LUMAFLUX_MODEL
    adapterslumaflux-main.safetensors
    flux_transformerblack-forest-labs/FLUX.1-dev (Hugging Face, gated)
    flux_vaeblack-forest-labs/FLUX.1-dev (Hugging Face, gated)
    siglipgoogle/siglip-so400m-patch14-384
    dtypebf16

    Most ComfyUI loaders are polite. They put a checkpoint into VRAM and let you pass it around the graph. The LumaFlux Loader is not that. Before it builds anything, it calls ComfyUI's own unload_all_models() and empties the cache - and then it loads a frozen FLUX.1-dev transformer, FLUX's VAE, a frozen SigLIP vision encoder, and one 71M-parameter LumaFlux adapter on top.

    That's not sloppiness: the bf16 backbone alone is roughly 24 GB, and the node's own description says the quiet part out loud.

    What you're actually loading

    Here's the thing that trips people up. LumaFlux is not an image generator, and this loader is not "load a Flux model, then prompt it." FLUX.1-dev is used as a prior - a frozen 12B diffusion transformer that already knows what plausible lighting looks like - and 71.3M trainable parameters (0.57% of the backbone) are bolted onto it to steer that prior from an 8-bit SDR image toward a 10-bit PQ HDR one. The text encoders aren't part of the deal at all; SigLIP replaces them, which is why the whole pipeline is prompt-free.

    So: the loader's only job is to hand you a LUMAFLUX_MODEL that the SDR-to-HDR node can consume. One output, one real consumer. No sampler, no guidance scale, no negative prompt anywhere downstream - LumaFlux never returns to text at all.

    The inputs that matter

    adapters is the one you'll actually think about. It lists whatever .safetensors is in models/lumaflux/, plus the two released files, which download from Hugging Face the first time you pick them - about 285 MB. lumaflux-main.safetensors is the general model (mixed UGC and PGC corpus, 314k pairs) and it's the default. lumaflux-hdrtv1k.safetensors is trained in-domain on the HDRTV1K benchmark, which makes it the one to pick if you're trying to reproduce numbers from the paper and the wrong one for literally anything else.

    flux_transformer and flux_vae are enums with two kinds of choice each: the gated Hugging Face repo black-forest-labs/FLUX.1-dev, or a single file. If you already run Flux in ComfyUI you probably have flux1-dev.safetensors in models/diffusion_models and ae.safetensors in models/vae, and picking those needs no Hugging Face account at all. The single-file path reads the transformer and VAE configs that ship inside the pack, so it works without the diffusers repo. You can mix freely - hub transformer, local VAE - but be aware the gated route is a login problem, not a quality problem: accept the license on the model page, then huggingface-cli login.

    dtype defaults to bf16, which is what the paper runs. fp32 is a trap - it doubles the backbone's memory for a difference you will not see in the output.

    siglip is a plain string, google/siglip-so400m-patch14-384. It lands in the Hugging Face cache on first use at about 1.7 GB. Only touch it if you're mirroring or offline.

    Install

    The repository root is the node pack, so clone the whole thing - not just the comfyui/ subfolder:

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

    Or search "LumaFlux" in ComfyUI Manager and let it run the same command. Restart ComfyUI. That requirements.txt is the honest inference list - torch, diffusers>=0.32,<1.0, transformers>=4.44, safetensors, huggingface_hub, pyyaml, numpy, imageio - and nothing else needs installing, because the nodes import lumaflux straight out of the repo's src/. The pack also registers models/lumaflux as a model folder on startup, so hand-dropping an adapter file there works and it appears in the enum.

    Where people get burned

    The eviction is not a one-time cost. Every time this node runs it clears the GPU. If you wire it into a graph that also wants a Flux checkpoint resident, you'll pay a multi-minute reload per execution and probably lose to the memory ceiling anyway.

    24 GB is not a comfortable number, it's the floor. The SDR-to-HDR node peaks around 27 GB of GPU memory per 1080p frame at 8 steps in bf16, and loading the backbone takes a few minutes and about 24 GB of system RAM. A 24 GB 3090 sits right on the line; this is a pack written for cards with headroom. If you're hitting OOM, start with smaller inputs and nothing else resident, not a dtype the pipeline wasn't validated on.

    If you copied only comfyui/, you'll get an ImportError with a long install hint. That message is the pack telling you it can't find the lumaflux package. Clone the full repository, or pip install -e . it into ComfyUI's Python environment and symlink the comfyui/ folder.

    One licensing note. The code is Apache-2.0, but the adapters only function on top of FLUX.1-dev and inherit its non-commercial license - research use, same as every LoRA trained on that base.

    CategoryLumaFlux

    Inputs (5)

    NameTypeDefaultDescription
    adaptersCOMBOlumaflux-main.safetensorsLumaFlux adapter checkpoint in models/lumaflux. The two released files download from Hugging Face on first use. lumaflux-main is the general model; lumaflux-hdrtv1k is the in-domain HDRTV1K model.
    flux_transformerCOMBOblack-forest-labs/FLUX.1-dev (Hugging Face, gated)Frozen FLUX.1-dev backbone: the gated diffusers repo (needs a logged-in Hugging Face account that accepted the license), or a single-file flux1-dev checkpoint from models/diffusion_models.
    flux_vaeCOMBOblack-forest-labs/FLUX.1-dev (Hugging Face, gated)FLUX VAE: from the diffusers repo, or ae.safetensors from models/vae.
    siglipSTRINGgoogle/siglip-so400m-patch14-384Hugging Face id of the frozen SigLIP vision encoder.
    dtypeCOMBObf16Backbone precision. The paper runs bf16.

    Outputs (1)

    NameTypeDescription
    LUMAFLUX_MODELLUMAFLUX_MODEL