◎ Radiance Resolution
One dropdown that sets your resolution, latent channels, and even video length
- latent
- width
- height
- channels
- info
- frame_rate
- frame_count
- latent_format
- duration_sec
The boring-but-constant ComfyUI task is getting your empty latent to the right resolution and the right channel count. Get the resolution wrong and you waste VRAM; get the channels wrong and you get noise or flat color instead of an image, because a 16-channel Flux latent fed to a 4-channel SDXL setup doesn't gracefully degrade. ◎ Radiance Resolution bundles both decisions into one node: pick a preset, and it hands you a correctly-dimensioned, correctly-channelled empty latent plus every number you might need downstream.
If you've been hand-typing width and height into Empty Latent Image every time, this is the upgrade. It's the kind of node you don't miss until you realize you've memorized "1024x1024, 16 channels, Flux" as a sequence you type into three different widgets.
How it works
It's a resolution calculator that returns a ready-made empty LATENT. Pick a preset from 43 built-ins - 4K DCI, 2K DCI, anamorphic 2.39:1, Super 35, IMAX, plus Flux/SDXL/SD1.5 quick picks and social ratios - and the node aligns the dimensions to 8-pixel steps, selects the right channel count from model_type (Flux/SD3 = 16 channels, SDXL/SD 1.5 = 4), and builds the latent tensor. An internal preview card shows you the aspect ratio, megapixels, and latent info before you commit.
Three clever optional modes: orientation overrides a preset's native orientation (flip a landscape preset to portrait), scale_factor multiplies the whole thing (0.5 for a half-res test pass), and mp_target + mp_aspect_ratio let you say "give me 2 megapixels at 16:9" and have it solve for width and height. There's also a video mode: flip enable_video on and the same node produces a frame-count latent with a frame_rate, so a single node feeds both image and video pipelines.
The inputs that matter
preset- the big dropdown. Set it and thewidth/heightwidgets are ignored (they only apply when preset isCustom).model_type-Auto (Flux 16ch),Flux / SD3 (16ch), orSDXL / SD 1.5 (4ch). Get this right; it decides the latent channels.batch_size- frames in the batch for images; flipenable_videoand instead setvideo_framesandframe_rate.
Outputs: the latent itself, then a small library of useful numbers - width, height, channels, info (a human-readable string), frame_rate, frame_count, duration_sec, and latent_format (a string like flux_16ch that you wire into Radiance Sampler Pro or Unified Loader's latent_format input so the sampler can validate channels).
How to install it
Part of the radiance pack. ComfyUI Manager → search "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/Image. It has an internal preview, so if that card isn't rendering, a hard refresh of your browser tab usually fixes it.
Common issues
Channel confusion is the classic trap, and it's worth spelling out because it's the reason this node exists: a 1024x1024 latent is meaningless without its channel count. If your output comes back as noise or a color wash, check that model_type matches the checkpoint you loaded - this is the modern, labeled version of the old "you loaded the wrong VAE" moment from the KB's VAE essay. Also note mp_target silently overrides preset and manual W/H whenever it's above 0, so if the node "ignores" your preset, a leftover megapixel target is why.
For single-image tinkerers this is a convenience. For video or multi-res pipelines - where resolution, channels, and frame count all have to agree - it turns three error-prone widgets into one.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | Flux Square (1024×1024) | Resolution preset. Cinema, Social, Flux, SDXL, SD 1.5 presets available. Select 'Custom' to use manual width/height. |
| width | INT | 102464–16384 | Custom width (only used when preset is 'Custom'). Auto-aligned to 8px. |
| height | INT | 102464–16384 | Custom height (only used when preset is 'Custom'). Auto-aligned to 8px. |
| orientation | COMBO | As Preset | Override orientation. 'As Preset' uses the preset's native orientation. |
| model_type | COMBO | Auto (Flux 16ch) | Determines latent channel count. Flux/SD3 = 16 channels. SDXL/SD 1.5 = 4 channels. |
| batch_size | INT | 11–64 | Number of latent frames in batch. |
| enable_videoopt | BOOLEAN | false | Enable video sequence mode (replaces batch parameter). |
| video_framesopt | INT | 811–100000 | Total number of video frames. |
| frame_rateopt | FLOAT | 241–120 | Playback frame rate. |
| scale_factoropt | FLOAT | 1.000.25–4 | Scale the resolution by this factor. 0.5 = half res, 2.0 = double res. Applied after preset/custom. |
| latent_channelsopt | INT | 00–256 | Override latent channel count. 0 = use model_type default. Common: 4 (SD/SDXL), 16 (Flux/SD3). Set manually for custom architectures or experimentation. |
| mp_targetopt | FLOAT | 0.000–64 | MEGAPIXEL TARGET: When > 0, auto-calculates W×H from this MP target and mp_aspect_ratio. Overrides preset and custom W/H. 0 = disabled (use preset/custom instead). |
| mp_aspect_ratioopt | COMBO | 16:9 | Aspect ratio for megapixel target mode (only used when mp_target > 0). |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | Empty latent tensor at the selected resolution. |
| width | INT | Final image width (pixels). |
| height | INT | Final image height (pixels). |
| channels | INT | Latent channel count. |
| info | STRING | Resolution info string. |
| frame_rate | FLOAT | Playback frame rate. Always the widget value — never 0.0. |
| frame_count | INT | Total video frames (or batch size for images). |
| latent_format | STRING | Latent format string — wire to Sampler Pro latent_format input. |
| duration_sec | FLOAT | Duration in seconds (video_frames / frame_rate). 0.0 for images. |