◎ Radiance Cinematic Encoder
A prompt builder that knows whether you're on Flux or SDXL
- clip
- image_ref
- positive
- negative
- image_ref
- positive_text
- negative_text
- token_count
Most "prompt enhancer" nodes are word soup generators that don't know what encoder they're talking to. Radiance Cinematic Encoder is the opposite: its whole trick is that it auto-detects your architecture and picks the prompt format accordingly - flowing prose for Flux/T5/Kolors, structured tag blocks for SD1.5/SDXL. It's also a real CLIP encoder, not just a string factory: a clip goes in and ready-to-sample CONDITIONING comes out.
That matters more in 2026 than it sounds. The rules changed when models moved to LLM text encoders: (word:1.3) attention weights are silently discarded on Flux, BREAK is meaningless without a 77-token chunk boundary, and a forty-keyword negative is never computed at CFG 1. A node that still writes those conventions is a trap for people who swapped architectures. This one is written around the difference.
How it works
You feed it a CLIP model and a base_prompt (your subject - it's called Prompt A because there's a base_prompt_b for A/B testing, switched with active_prompt so you can flip between two subjects without rewiring). Then you stack up to twenty or so optional dropdowns - framing, camera body, lens, aperture, lighting, film stock, color grading, aspect ratio, scene mood - and it assembles the whole thing into a final prompt, encodes it, and hands you positive and negative conditioning.
The inputs a beginner actually touches, ranked:
- target_arch (default Auto) - the auto-detection is genuinely good, but if you know the pack guessed wrong, this is the override. Prose for flux/sd3/wan/kolors/ltx; structured for sdxl/sd1.5.
- context_window - token budget. Standard (CLIP 77) for SDXL; flip to Medium or Large for Flux's T5 if you're writing long prompts.
- negative_strength - Off/Soft/Standard/Aggressive. The tooltip's advice is worth taking: Soft is recommended for Flux. A big structured negative is inert on a distilled model and can actively hurt at higher CFG.
- subject_weight - wraps your subject in
(subject:weight)attention syntax. Works on SD1.5/SDXL; on Flux/T5 it becomes literal text the encoder may or may not care about. Worth knowing before you crank it. - style_preset - 29 one-click looks (Classic Hollywood, Film Noir, Cyberpunk...). Good starting points.
- lora_keywords - trigger words injected into the prompt, so your LoRA stacks stay in sync with the text.
You also get clip_skip (0 = all layers; typical SD1.5=1, SDXL=0) and a prompt_enhancer that either fixes grammar or injects aesthetic tags - nice, not essential.
Outputs
Six of them, and the useful ones are: positive and negative CONDITIONING for your sampler; positive_text and negative_text strings (wire to a text preview to see exactly what got built - worth doing once, because the assembly is a black box otherwise); and token_count, the actual count from the CLIP tokenizer, which is how you catch a prompt silently overflowing its context window. There's also an image_ref pass-through if you want a reference image routed alongside the conditioning.
Install
Part of the fxtdstudios/radiance pack - Manager search "Radiance", or:
cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements_linux.txt
then restart. Heavy install (OpenEXR, OpenColorIO, colour-science, transformers), slow first boot, and if Manager's security level blocks it you clone manually per the README. If dependency conflicts appear with other packs, reinstall Radiance's requirements last.
One last honest note: the community reception to the pack was split - the launch thread upvoted it but several commenters flagged the "32-bit pipeline" claims as overstated in places, and the docs were called thin. The prompt nodes are the part that behaves as advertised.
Inputs (30)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | CLIP model for encoding. | |
| base_promptopt | STRING | A cinematic scene... | Primary subject/scene description (Prompt A). |
| base_prompt_bopt | STRING | Alternate subject for A/B testing. Select with active_prompt. | |
| active_promptopt | COMBO | A | Switch between Prompt A and Prompt B without rewiring. |
| style_presetopt | COMBO | → Classic Hollywood | One-click style preset. |
| target_archopt | COMBO | Auto | Auto selects prose for Flux/T5 architectures. Set manually if auto-detect is wrong. Prose = Flux/SD3/SD3.5/Kolors/Wan. Structured = SD1.5/SDXL. |
| context_windowopt | COMBO | Standard (CLIP 77) | Token budget. Use Large for Flux with long prompts. |
| framingopt | COMBO | Medium Shot (MS) | Shot framing type. |
| camera_typeopt | COMBO | ARRI Alexa 35 | Camera body. |
| lens_focalopt | COMBO | 50mm Standard Prime | Lens + focal length. |
| aperture_dofopt | COMBO | f/2.8 (Cinematic Separation) | Depth of field. |
| lightingopt | COMBO | Cinematic Haze / Volumetric Fog | Lighting style. |
| style_aestheticopt | COMBO | Photorealistic (Raw) | Visual aesthetic. |
| film_stockopt | COMBO | None | Film stock emulation. |
| shutter_speedopt | COMBO | None | Motion blur characteristics. |
| color_gradingopt | COMBO | None | Color grading look. |
| aspect_ratioopt | COMBO | None | Frame aspect ratio. |
| scene_moodopt | COMBO | None | Injects curated emotional vocabulary into the prompt. Works with both CLIP and T5 encoders. |
| art_directionopt | STRING | Art direction notes injected right after subject. E.g. 'golden light raking across the face, hero in silhouette' | |
| subject_weightopt | FLOAT | 1.000.5–1.5 | Wrap subject in (subject:weight) attention syntax. |
| prompt_weight_modeopt | COMBO | balanced | Controls token budget ordering. 'subject_first' leads with subject emphasis. 'technique_first' leads with camera for style-driven shots. |
| custom_detailsopt | STRING | Additional custom details appended at the end. | |
| year_eraopt | INT | 20251800–2100 | Era context for period-specific looks. |
| negative_strengthopt | COMBO | Standard | Auto-negative strength. 'Soft' is recommended for Flux. |
| negative_customopt | STRING | Your custom negative terms, merged with auto-generated negatives. | |
| clip_skipopt | INT | 00–24 | CLIP layers to skip (0 = all). Typical SD1.5=1, SDXL=0. |
| lora_keywordsopt | STRING | LoRA trigger words injected into the prompt. | |
| use_breakopt | COMBO | Off | Auto-insert BREAK tokens at chunk boundaries for long prompts. |
| prompt_enhanceropt | COMBO | Off | Auto-fix prompt grammar or inject high-quality aesthetic tags. |
| image_refopt | IMAGE | Optional reference image. Passed through to output for routing convenience. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | Positive conditioning for the sampler. |
| negative | CONDITIONING | Negative conditioning for the sampler. |
| image_ref | IMAGE | Optional reference image passed through. |
| positive_text | STRING | Final positive prompt string — wire to a text preview node. |
| negative_text | STRING | Final negative prompt string. |
| token_count | INT | Actual token count from the CLIP tokenizer. |