Nodes/radiance/Read Image
ComfyUI Node

Read Image

Radiance's \"Read Image\" node loads models, not images — here's what it's actually for

By FXTD-Studios·Created 8 months ago·Updated about 18 hours ago· 246
Read Image
  • lora_stack
  • model
  • clip
  • vae
  • lora_stack
  • model_meta
◄presetCustom►
◄unet_name▾►
◄weight_dtypedefault►
◄model_typeAuto-Detect►
◄vae_name▾►
◄clip_lNone►
◄clip_gNone►
◄t5xxlNone►
◄llm_encoderNone►
◄text_projectionNone►
◄clip_dtypedefault►
◄offload_modenone►
◄check_vramOn►
◄use_cacheOn►
◄lora_on_errorraise►
◄auto_downloadtrue►

Start with the confusing part, because it will save you twenty minutes. The node in this article is class RadianceImageLoader, displayed in Radiance 3.5 as Read Image - and it is a model loader. Its inputs are checkpoint, CLIP and VAE file names. It does not read image files. Radiance also ships nodes that genuinely read images (Read, Read Mask), so if you're debugging a workflow and something has no image input where you expected one, check the class name before anything else.

What it actually is: FXTD Studios' unified loader, and a deprecated alias of their newer RadianceUnifiedLoader. One node, any architecture, sensible defaults derived from the filename and the checkpoint's own keys.

What makes it worth using

A preset dropdown quick-configures common architectures - Flux.1, Flux.2, SDXL, SD 1.5, SD3.5, Chroma, Lumina2, AuraFlow, PixArt Sigma and friends - and per the tooltip it overrides model_type, the dtypes, the offload mode, and hints which CLIP slots you need. Set it to Custom and do it yourself.

model_type = Auto-Detect reads the checkpoint's key names to work out the architecture rather than trusting the filename. You can override it manually - there are 20 options - for the cases where detection guesses wrong.

weight_dtype offers fp8_e4m3fn, which the tooltip quantifies: roughly 40% less VRAM than fp16. clip_dtype is separate, which matters on Flux, where loading T5-XXL at fp8 instead of fp16 saves about 4.7 GB. That's the single biggest memory win available in a Flux setup and it's one dropdown.

offload_mode is the small-VRAM lever: none keeps everything on GPU, cpu_offload parks CLIP in system RAM, sequential enables ComfyUI's sequential CPU offload for 8–12 GB cards. Slower, and the difference between running and not.

auto_download defaults on. If you pick a model Radiance knows about and it isn't there, it fetches it from a pinned Hugging Face source, verifies the SHA-256, and installs it - these are large files, 4 to 60 GB. Gated repositories (FLUX.2-dev, FLUX.2-klein 9B, LTX-2.5) need you to accept the licence on Hugging Face and set HF_TOKEN. Set RADIANCE_ALLOW_DOWNLOADS=0 on the ComfyUI process to forbid all of it, which is what you want on a metered connection or a shared box.

Two smaller conveniences: check_vram warns before a load if the estimate is tight, and use_cache skips disk I/O on re-runs with the same files, invalidating itself if the files change. lora_on_error chooses between skipping a broken LoRA with a warning and stopping the graph - raise is the default and the right one while you're setting up.

Inputs and outputs

Required: preset, unet_name, weight_dtype, model_type, vae_name (including a Baked VAE (from UNET) option for architectures that bundle it). Optional: clip_l, clip_g, t5xxl, llm_encoder, text_projection - each of those has a Baked (from UNET) variant where the architecture ships the encoder inside the main checkpoint, which is how AuraFlow's text encoder works, for instance.

Outputs: model, clip, vae, lora_stack (a chainable LORA_STACK you can feed to the next loader or to Radiance's LoRA nodes), and model_meta, a JSON string describing what got loaded. That last one is worth keeping - when a graph misbehaves, model_meta is the fastest way to confirm which dtype and offload mode actually applied rather than which one you selected.

Installing Radiance

Manager → search Radiance → install → restart ComfyUI → refresh. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/fxtd-studios/radiance.git
cd radiance
python -m pip install -r requirements.txt

Windows portable: run that pip line with python_embeded\python.exe. The pack is GPL-3.0, ~147 visible nodes, and installs OpenEXR, OpenImageIO, OpenColorIO, diffusers and accelerate into ComfyUI's Python environment.

Troubleshooting

Auto-Detect picked the wrong architecture. Override model_type by hand. It reads key names, so a merged or renamed checkpoint without standard keys can fool it.

A CLIP slot is greyed out or accepting nothing. The preset decides which slots matter - CLIP-L for SD1.5/SDXL/Flux/SD3, CLIP-G for SDXL/SD3, T5-XXL for Flux/SD3/Wan/PixArt, an LLM encoder for HunyuanVideo, LTX 2.3, Lumina2, Z-Image and Flux.2. Wrong preset, wrong slots visible.

Download hangs or fails partway. Check HF_TOKEN for gated repos, and disk space - 60 GB files are real. Nothing resumes if the SHA-256 check fails, it re-downloads.

Everything is slow after loading. You're probably in sequential offload. It's the correct choice on a small card and the wrong one on a big one.

A broader note on this pack. The suite's launch thread on r/StableDiffusion drew a specific, fair criticism that some nodes collapsed precision internally despite advertising a 32-bit pipeline. It's a much more careful codebase now, but for anything where the numbers matter, verify rather than assume - and use the pack's own diagnostics rather than a feature list.

CategoryFXTD STUDIOS/Radiance/Generate

Inputs (17)

NameTypeDefaultDescription
presetCOMBOCustomQuick-configure for common architectures. Overrides model_type, dtypes, offload_mode, and hints which CLIP slots are needed.
unet_nameCOMBOMain diffusion model (UNET / DiT / Transformer).
weight_dtypeCOMBOdefaultUNET weight precision. fp8_e4m3fn saves ~40% VRAM vs fp16.
model_typeCOMBOAuto-Detect'Auto-Detect' reads the checkpoint's key names to determine architecture. Override manually if detection fails.
vae_nameCOMBOVAE for encoding/decoding latents. 'Baked VAE (from UNET)' extracts it from the checkpoint, for architectures whose standard release bundles the VAE into the main file instead of shipping it separately.
clip_loptCOMBONoneCLIP-L (text encoder). Used by: SD1.5, SDXL, Flux, SD3.
clip_goptCOMBONoneCLIP-G (text encoder). Used by: SDXL, SD3, SD3.5.
t5xxloptCOMBONoneT5-XXL (text encoder). Used by: Flux, SD3, SD3.5, Wan, PixArt, LTX (pre-2.3). 'Baked (from UNET)' loads it from the main checkpoint -- AuraFlow ships no standalone text encoder file.
llm_encoderoptCOMBONoneLLM encoder. Used by: HunyuanVideo (Llava-Llama3), LTX 2.3 (Gemma 3), Lumina2 (Gemma-2), Z-Image (Qwen3), Flux.2 (Mistral-3/Qwen3).
text_projectionoptCOMBONoneText projection matrix. Used by: LTX 2.3 (with Gemma 3 llm_encoder). 'Baked (from UNET)' loads it from the main LTX 2.3 checkpoint, like the native LTXV Audio Text Encoder Loader.
clip_dtypeoptCOMBOdefaultCLIP weight precision. Independent from UNET. For Flux T5XXL: fp8 saves ~4.7 GB vs fp16.
offload_modeoptCOMBOnonenone = GPU only. cpu_offload = CLIP loaded to CPU RAM. sequential = enable ComfyUI sequential CPU offload (8–12 GB GPUs).
lora_stackoptLORA_STACKAccept a LORA_STACK from RadianceLoraStack node.
check_vramoptCOMBOOnEstimate VRAM before load and warn if tight.
use_cacheoptCOMBOOnCache loaded models. Skips disk I/O when re-running with the same files. Cache auto-invalidates if files change.
lora_on_erroroptCOMBOraise'warn' skips failed LoRA and continues. 'raise' stops execution.
auto_downloadoptBOOLEANtrueIf a selected model is missing and is one Radiance knows, download it on first run from its pinned Hugging Face source, checked against its SHA-256 before it is installed (large: 4 to 60 GB). Gated repositories (FLUX.2-dev, FLUX.2-klein 9B, LTX-2.5) need their licence accepted on Hugging Face and HF_TOKEN set. RADIANCE_ALLOW_DOWNLOADS=0 always stops downloads.

Outputs (5)

NameTypeDescription
modelMODEL—
clipCLIP—
vaeVAE—
lora_stackLORA_STACK—
model_metaSTRING—