◎ Radiance Unified Loader
One loader for Flux, SDXL, WAN, HunyuanVideo — and it picks the architecture itself
- lora_stack
- MODEL
- CLIP
- VAE
- CONTROLNET
- lora_stack
- load_info
- latent_format
- model_meta
Every new model architecture means a new loader: Flux loader, SDXL loader, WAN loader, and God help you if you mix up which one takes which CLIP. ◎ Radiance Unified Loader is the "just load it" node: it auto-detects the architecture from the checkpoint's own keys, loads the right text encoders into named slots, lets you chain LoRAs and a ControlNet in the same node, and even downloads a missing model for you. It's the pack's answer to "stop swapping loaders, start loading."
The KB's VAE essay is the subtext here: the modern generation problem isn't image quality, it's getting the right components (diffusion model, CLIP/T5, VAE, right channel count) to agree. This node exists to make that agreement automatic.
How it works
It fingerprints the model: Auto-Detect reads the checkpoint's state-dict key names and matches them against a ranked set of architecture heuristics (Flux, SD3/SD3.5, SDXL, SD 1.5, WAN, HunyuanVideo, LTX, PixArt, Lumina2, etc.). The codebase notes the heuristics are ordered so more specific patterns win - there's even a documented bugfix where a generic Wan key was silently misdetecting Wan as LTX until the ordering was corrected. The presets dropdown (Flux Dev, Flux Schnell, Flux Dev Low VRAM, SD3.5 Large/Medium/Turbo, SDXL, Wan 2.1, HunyuanVideo, etc.) does the same configuration the manual way, and overrides model_type, dtypes, offload mode, and which CLIP slots you need.
The CLIP handling is the part that saves real pain: clip_l, clip_g, t5xxl, and llm_encoder are separate named slots, each with its own dtype. Load Flux and it uses CLIP-L + T5-XXL; load SDXL and it needs CLIP-L + CLIP-G; WAN uses T5-XXL. The node wires them into the right places, and the latent_format output (e.g. flux_16ch) carries the channel count forward to the sampler so encode/decode stay consistent.
LoRAs are a first-class citizen: a chainable LORA_STACK input (from RadianceLoraStack) plus three inline LoRA slots, each with independent model and CLIP strengths. There's also an optional ControlNet with start/end and strength, and lora_on_error lets you choose warn (skip a broken LoRA, keep going) or raise.
The inputs that matter
preset- pick a model family and most of the rest configures itself.unet_nameandvae_name- the files (dropdowns populate from your folders).weight_dtype-defaultorfp8_e4m3fn(~40% VRAM savings on the UNET, per the tooltip) when VRAM is tight.offload_mode-none,cpu_offload, orsequentialfor 8–12GB GPUs.auto_download- if a selected model is missing, fetch it from the pack's mirrors (a curated map covering common Flux/SDXL files).
Outputs: MODEL, CLIP, VAE, CONTROLNET, the lora_stack, plus load_info, latent_format, and model_meta (JSON) for downstream validation.
How to install it
It's part of the radiance pack. ComfyUI Manager → "Radiance", or:
cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements_windows.txt
Restart, and it's under FXTD Studios/Radiance/Generate. No models ship with the pack - you point it at files you already have (or let auto_download fetch the common ones).
Common issues
The honest caveats: auto_download only knows the handful of models in its map, so "downloads a missing model" doesn't mean "every model." And while caching is fingerprint-based (use_cache keyed on mtime + size so stale cache hits are avoided), a cached model can still go stale if a file changes without a size/time change - rare, but disable the cache if you're iterating on a file in place. If Auto-Detect guesses wrong on an unusual checkpoint, that's what the manual model_type override is for - the tooltip says it plainly. And one community note: a "unified" loader is only as unified as its heuristics, so on brand-new architectures check model_meta to confirm what it detected before you blame the sampler.
For anyone juggling more than one model family, this is the loader that makes switching a dropdown instead of a rebuild.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | None (Manual) | Quick-configure for common architectures. Overrides model_type, dtypes, offload_mode, and hints which CLIP slots are needed. |
| unet_name | COMBO | Main diffusion model (UNET / DiT / Transformer). | |
| weight_dtype | COMBO | default | UNET weight precision. fp8_e4m3fn saves ~40% VRAM vs fp16. |
| model_type | COMBO | Auto-Detect | 'Auto-Detect' reads the checkpoint's key names to determine architecture. Override manually if detection fails. |
| vae_name | COMBO | VAE for encoding/decoding latents. | |
| clip_lopt | COMBO | None | CLIP-L (text encoder). Used by: SD1.5, SDXL, Flux, SD3. |
| clip_gopt | COMBO | None | CLIP-G (text encoder). Used by: SDXL, SD3, SD3.5. |
| t5xxlopt | COMBO | None | T5-XXL (text encoder). Used by: Flux, SD3, SD3.5, Wan, LTX, PixArt. |
| llm_encoderopt | COMBO | None | LLM encoder (ChatGLM3 etc.). Used by: Kolors, HunyuanVideo. |
| clip_dtypeopt | COMBO | default | CLIP weight precision. Independent from UNET. For Flux T5XXL: fp8 saves ~4.7 GB vs fp16. |
| offload_modeopt | COMBO | none | none = GPU only. cpu_offload = CLIP loaded to CPU RAM. sequential = enable ComfyUI sequential CPU offload (8–12 GB GPUs). |
| lora_stackopt | LORA_STACK | Accept a LORA_STACK from RadianceLoraStack node. | |
| lora_1opt | COMBO | None | 1 options: None |
| lora_1_model_stropt | FLOAT | 1.00-2–2 | LoRA 1 strength on model. |
| lora_1_clip_stropt | FLOAT | 1.00-2–2 | LoRA 1 strength on CLIP. |
| lora_2opt | COMBO | None | 1 options: None |
| lora_2_model_stropt | FLOAT | 1.00-2–2 | — |
| lora_2_clip_stropt | FLOAT | 1.00-2–2 | — |
| lora_3opt | COMBO | None | 1 options: None |
| lora_3_model_stropt | FLOAT | 1.00-2–2 | — |
| lora_3_clip_stropt | FLOAT | 1.00-2–2 | — |
| controlnet_nameopt | COMBO | None | Optional ControlNet model. |
| controlnet_strengthopt | FLOAT | 1.000–2 | — |
| controlnet_startopt | FLOAT | 0.000–1 | — |
| controlnet_endopt | FLOAT | 1.000–1 | — |
| check_vramopt | COMBO | On | Estimate VRAM before load and warn if tight. |
| use_cacheopt | COMBO | On | Cache loaded models. Skips disk I/O when re-running with the same files. Cache auto-invalidates if files change. |
| lora_on_erroropt | COMBO | raise | 'warn' skips failed LoRA and continues. 'raise' stops execution. |
| auto_downloadopt | BOOLEAN | false | If a selected model is missing, automatically download it from Radiance mirrors. |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |
| CONTROLNET | CONTROL_NET | — |
| lora_stack | LORA_STACK | — |
| load_info | STRING | — |
| latent_format | STRING | — |
| model_meta | STRING | — |