CLIP Text Encode SDXL Enhanced (Detail Isolation)
It eats a chain of sections
- clip
- prompt_sections
- latent
- conditioning
- upscaled_conditioning
- reference_full_prompt
This node is the receiving end of a two-part system. Its little sibling, CLIPTextEncodeSDXLEnhancedDetailIsolationSection, is a building block you chain together to describe each chunk of your prompt; this one takes the assembled chain and produces the actual SDXL conditioning. If you've used the v3 encoder, the math is familiar - same per-stream Cutoff isolation, same target-text/region-text structure - but the sections arrive through the graph instead of widgets.
Why bother with the split? Because a graph-based chain is rearrangeable. You can move a section node in front of another, bypass it, or keep one section's settings intact while you tweak its neighbors. On the widget version, reordering means copy-pasting text between fields. If you're building a reusable prompt structure, the chain is nicer to work with.
What this node carries vs. what the sections carry
The primary node keeps only the global and image-geometry settings: upscaled_conditioning_multiplier, zoom, offset_x, offset_y, and the optional latent input (for target W/H). Everything per-section - the global_text/enhanced_text pair, weights, CLIP-L/G strengths, and the A1111 embedding toggles - lives on the section nodes themselves, each with its own values. Different sections can use different toggle settings, which the widget versions can't easily express.
Inputs and outputs
Inputs: clip, upscaled_conditioning_multiplier, join_separator (inserted between chained sections in the base prompt), zoom/offset_x/offset_y, plus the optional prompt_sections (DETAIL_ISOLATION_SECTION_CHAIN) and latent inputs.
Outputs are the family standard: conditioning (primary, sized to the latent), upscaled_conditioning (same tokens, upscaled metadata for two-stage workflows), and reference_full_prompt (STRING - the joined prompt text CLIP actually encoded).
Install
ComfyUI Manager → search "Unified Conditioning", or:
cd ComfyUI/custom_nodes
git clone https://github.com/RandyHaylor/unified-conditioning-combine-with-timestep-range.git unified-conditioning-merge
Restart ComfyUI; it's under unified-conditioning-merge. No models, no pip deps.
Troubleshooting
- An empty
conditioningoutput usually means no section nodes are wired in - the chain is the whole input. Start with at least one...DetailIsolationSectionnode feedingprompt_sections. - If a section seems to vanish from the result, check whether its
enhanced_textwas left empty - that makes it a passthrough chunk, which is often exactly what you want, but it's also the easiest way to silently "lose" a region. reference_full_promptis your ground truth for what got built. When the isolation isn't doing what you expect, read it before you suspect the math.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | — | |
| upscaled_conditioning_multiplier | FLOAT | 1.00 | — |
| join_separator | STRING | , | String inserted between chained sections in the base prompt when the prior section did not already end with this separator. Default ','. Empty = no separator inserted (sections concatenate directly; single commas still preserved from typed trailing punctuation). |
| zoom | FLOAT | 1.001–100 | — |
| offset_x | FLOAT | 0.00-1–1 | — |
| offset_y | FLOAT | 0.00-1–1 | — |
| prompt_sectionsopt | DETAIL_ISOLATION_SECTION_CHAIN | — | |
| latentopt | LATENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| conditioning | CONDITIONING | — |
| upscaled_conditioning | CONDITIONING | — |
| reference_full_prompt | STRING | — |