Nodes/Unified Conditioning Merge (with timestep ranges)/CLIP Text Encode SDXL v3 (Global + Enhanced)
ComfyUI Node

CLIP Text Encode SDXL v3 (Global + Enhanced)

The refined version of the cutoff encoder

By RandyHaylor·Created 5 months ago·Updated 5 months ago· 2
CLIP Text Encode SDXL v3 (Global + Enhanced)
  • clip
  • latent
  • conditioning
  • upscaled_conditioning
  • reference_full_prompt
◄upscaled_conditioning_multiplier1.00►
◄section_count2►
◄support_a1111_style_embedding_texttrue►
◄remove_text_for_unsupported_embeddingstrue►
◄filter_known_a1111_embedding_tags_not_installed_locallytrue►
◄join_separator,►
◄zoom1.00►
◄offset_x0.00►
◄offset_y0.00►
◄section_1_global_text►
◄section_1_enhanced_text►
◄section_1_global_text_weight1.00►
◄section_1_enhanced_text_weight1.00►
◄section_1_clip_l_strength1.00►
◄section_1_clip_g_strength1.00►
◄section_2_global_text►
◄section_2_enhanced_text►
◄section_2_global_text_weight1.00►
◄section_2_enhanced_text_weight1.00►
◄section_2_clip_l_strength1.00►
◄section_2_clip_g_strength1.00►
◄section_3_global_text►
◄section_3_enhanced_text►
◄section_3_global_text_weight1.00►
◄section_3_enhanced_text_weight1.00►
◄section_3_clip_l_strength1.00►
◄section_3_clip_g_strength1.00►
◄section_4_global_text►
◄section_4_enhanced_text►
◄section_4_global_text_weight1.00►
◄section_4_enhanced_text_weight1.00►
◄section_4_clip_l_strength1.00►
◄section_4_clip_g_strength1.00►
◄section_5_global_text►
◄section_5_enhanced_text►
◄section_5_global_text_weight1.00►
◄section_5_enhanced_text_weight1.00►
◄section_5_clip_l_strength1.00►
◄section_5_clip_g_strength1.00►
◄section_6_global_text►
◄section_6_enhanced_text►
◄section_6_global_text_weight1.00►
◄section_6_enhanced_text_weight1.00►
◄section_6_clip_l_strength1.00►
◄section_6_clip_g_strength1.00►
◄section_7_global_text►
◄section_7_enhanced_text►
◄section_7_global_text_weight1.00►
◄section_7_enhanced_text_weight1.00►
◄section_7_clip_l_strength1.00►
◄section_7_clip_g_strength1.00►
◄section_8_global_text►
◄section_8_enhanced_text►
◄section_8_global_text_weight1.00►
◄section_8_enhanced_text_weight1.00►
◄section_8_clip_l_strength1.00►
◄section_8_clip_g_strength1.00►
◄section_9_global_text►
◄section_9_enhanced_text►
◄section_9_global_text_weight1.00►
◄section_9_enhanced_text_weight1.00►
◄section_9_clip_l_strength1.00►
◄section_9_clip_g_strength1.00►
◄section_10_global_text►
◄section_10_enhanced_text►
◄section_10_global_text_weight1.00►
◄section_10_enhanced_text_weight1.00►
◄section_10_clip_l_strength1.00►
◄section_10_clip_g_strength1.00►
◄section_11_global_text►
◄section_11_enhanced_text►
◄section_11_global_text_weight1.00►
◄section_11_enhanced_text_weight1.00►
◄section_11_clip_l_strength1.00►
◄section_11_clip_g_strength1.00►
◄section_12_global_text►
◄section_12_enhanced_text►
◄section_12_global_text_weight1.00►
◄section_12_enhanced_text_weight1.00►
◄section_12_clip_l_strength1.00►
◄section_12_clip_g_strength1.00►
◄section_13_global_text►
◄section_13_enhanced_text►
◄section_13_global_text_weight1.00►
◄section_13_enhanced_text_weight1.00►
◄section_13_clip_l_strength1.00►
◄section_13_clip_g_strength1.00►
◄section_14_global_text►
◄section_14_enhanced_text►
◄section_14_global_text_weight1.00►
◄section_14_enhanced_text_weight1.00►
◄section_14_clip_l_strength1.00►
◄section_14_clip_g_strength1.00►
◄section_15_global_text►
◄section_15_enhanced_text►
◄section_15_global_text_weight1.00►
◄section_15_enhanced_text_weight1.00►
◄section_15_clip_l_strength1.00►
◄section_15_clip_g_strength1.00►
◄section_16_global_text►
◄section_16_enhanced_text►
◄section_16_global_text_weight1.00►
◄section_16_enhanced_text_weight1.00►
◄section_16_clip_l_strength1.00►
◄section_16_clip_g_strength1.00►
◄section_17_global_text►
◄section_17_enhanced_text►
◄section_17_global_text_weight1.00►
◄section_17_enhanced_text_weight1.00►
◄section_17_clip_l_strength1.00►
◄section_17_clip_g_strength1.00►
◄section_18_global_text►
◄section_18_enhanced_text►
◄section_18_global_text_weight1.00►
◄section_18_enhanced_text_weight1.00►
◄section_18_clip_l_strength1.00►
◄section_18_clip_g_strength1.00►
◄section_19_global_text►
◄section_19_enhanced_text►
◄section_19_global_text_weight1.00►
◄section_19_enhanced_text_weight1.00►
◄section_19_clip_l_strength1.00►
◄section_19_clip_g_strength1.00►
◄section_20_global_text►
◄section_20_enhanced_text►
◄section_20_global_text_weight1.00►
◄section_20_enhanced_text_weight1.00►
◄section_20_clip_l_strength1.00►
◄section_20_clip_g_strength1.00►
◄section_21_global_text►
◄section_21_enhanced_text►
◄section_21_global_text_weight1.00►
◄section_21_enhanced_text_weight1.00►
◄section_21_clip_l_strength1.00►
◄section_21_clip_g_strength1.00►
◄section_22_global_text►
◄section_22_enhanced_text►
◄section_22_global_text_weight1.00►
◄section_22_enhanced_text_weight1.00►
◄section_22_clip_l_strength1.00►
◄section_22_clip_g_strength1.00►
◄section_23_global_text►
◄section_23_enhanced_text►
◄section_23_global_text_weight1.00►
◄section_23_enhanced_text_weight1.00►
◄section_23_clip_l_strength1.00►
◄section_23_clip_g_strength1.00►
◄section_24_global_text►
◄section_24_enhanced_text►
◄section_24_global_text_weight1.00►
◄section_24_enhanced_text_weight1.00►
◄section_24_clip_l_strength1.00►
◄section_24_clip_g_strength1.00►
◄section_25_global_text►
◄section_25_enhanced_text►
◄section_25_global_text_weight1.00►
◄section_25_enhanced_text_weight1.00►
◄section_25_clip_l_strength1.00►
◄section_25_clip_g_strength1.00►
◄section_26_global_text►
◄section_26_enhanced_text►
◄section_26_global_text_weight1.00►
◄section_26_enhanced_text_weight1.00►
◄section_26_clip_l_strength1.00►
◄section_26_clip_g_strength1.00►
◄section_27_global_text►
◄section_27_enhanced_text►
◄section_27_global_text_weight1.00►
◄section_27_enhanced_text_weight1.00►
◄section_27_clip_l_strength1.00►
◄section_27_clip_g_strength1.00►
◄section_28_global_text►
◄section_28_enhanced_text►
◄section_28_global_text_weight1.00►
◄section_28_enhanced_text_weight1.00►
◄section_28_clip_l_strength1.00►
◄section_28_clip_g_strength1.00►
◄section_29_global_text►
◄section_29_enhanced_text►
◄section_29_global_text_weight1.00►
◄section_29_enhanced_text_weight1.00►
◄section_29_clip_l_strength1.00►
◄section_29_clip_g_strength1.00►
◄section_30_global_text►
◄section_30_enhanced_text►
◄section_30_global_text_weight1.00►
◄section_30_enhanced_text_weight1.00►
◄section_30_clip_l_strength1.00►
◄section_30_clip_g_strength1.00►
◄section_31_global_text►
◄section_31_enhanced_text►
◄section_31_global_text_weight1.00►
◄section_31_enhanced_text_weight1.00►
◄section_31_clip_l_strength1.00►
◄section_31_clip_g_strength1.00►
◄section_32_global_text►
◄section_32_enhanced_text►
◄section_32_global_text_weight1.00►
◄section_32_enhanced_text_weight1.00►
◄section_32_clip_l_strength1.00►
◄section_32_clip_g_strength1.00►

If you've seen BlenderNeko's BNK_CutoffRegionsToConditioning, you know the two-text-per-region idea: one text field is what you see (the target), another is what the model actually encodes (the region text). This node is that model, rebuilt ergonomically and fully self-contained - no ComfyUI_Cutoff plugin needed.

Each section in this v3 encoder has two fields. section_N_global_text is a chunk of your natural prompt - the plain text you'd paste anywhere. Comma-joined, all the global texts form your user-visible prompt, and they double as Cutoff's target text: space-split into words, each word gets masked in other sections' encoding passes. section_N_enhanced_text is the expanded version that the model actually encodes at this section's position - the region text. If enhanced_text is empty or identical to global_text, the section is a passthrough chunk: contributes tokens to the base prompt, creates no region.

Why two fields? Because you can write a short readable global prompt ("a weathered lighthouse") and an expanded region text ("a weathered lighthouse with peeling white paint and a rusted lantern room") that gives the model more to work with while the isolation targets stay clean.

Per-stream control

The node runs Cutoff independently per CLIP stream (L and G), and each section has clip_l_strength and clip_g_strength widgets (default 1, range -10..10). Set one to 0 and that section is excluded from that stream entirely - a cleaner way to do "this goes only to G" than the old (tag:0) tricks. The underlying cutoff knobs (strict_mask, start_from_masked) are hardcoded to 1.0/1.0. The author tried exposing them in the earlier node, users got confused, so they're not exposed here - and 1.0/1.0 is what worked in practice anyway.

Inputs and outputs

clip, section_count (0..32, default 2), the per-section *_global_text / *_enhanced_text / *_weight / *_clip_l_strength / *_clip_g_strength widgets, plus the shared settings: join_separator (default ","), zoom/offset_x/offset_y for the SDXL size/crop metadata, upscaled_conditioning_multiplier for two-stage workflows, and the A1111 embedding toggles. Optional latent input sets target W/H.

Outputs are the same triple as the rest of the enhanced family: conditioning, upscaled_conditioning, and reference_full_prompt (STRING - dump what 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; the node is under unified-conditioning-merge. No models, no pip deps.

Troubleshooting

  • enhanced_text must contain all the words in global_text - the node validates this and surfaces warnings via a realtime widget. A mismatch is the most common setup mistake.
  • If section_count is smaller than the number of sections you've filled, the extra widgets are hidden but their values persist in the workflow JSON - re-expand and they come back.
  • Multi-section output is combine-style (parallel branches). Keep that in mind if you chain it into a flat merge downstream - the pack blocks that configuration for good reason.
Categoryunified-conditioning-merge

Inputs (203)

NameTypeDefaultDescription
clipCLIP—
upscaled_conditioning_multiplierFLOAT1.00—
section_countINT20–32—
support_a1111_style_embedding_textBOOLEANtrue—
remove_text_for_unsupported_embeddingsBOOLEANtrue—
filter_known_a1111_embedding_tags_not_installed_locallyBOOLEANtrueList can be modified in custom node folder: known_a1111_embedding_names_to_filter_when_not_installed_locally.txt
join_separatorSTRING,String inserted between sections in the base prompt when the prior section did not already end with this separator. Default ','. Set empty to insert no separator (sections then concatenate directly, with single commas still preserved from any trailing punctuation the user typed in the section).
zoomFLOAT1.001–100—
offset_xFLOAT0.00-1–1—
offset_yFLOAT0.00-1–1—
section_1_global_textSTRING—
section_1_enhanced_textSTRING—
section_1_global_text_weightFLOAT1.00-10–10—
section_1_enhanced_text_weightFLOAT1.00-10–10—
section_1_clip_l_strengthFLOAT1.00-10–10—
section_1_clip_g_strengthFLOAT1.00-10–10—
section_2_global_textSTRING—
section_2_enhanced_textSTRING—
section_2_global_text_weightFLOAT1.00-10–10—
section_2_enhanced_text_weightFLOAT1.00-10–10—
section_2_clip_l_strengthFLOAT1.00-10–10—
section_2_clip_g_strengthFLOAT1.00-10–10—
section_3_global_textSTRING—
section_3_enhanced_textSTRING—
section_3_global_text_weightFLOAT1.00-10–10—
section_3_enhanced_text_weightFLOAT1.00-10–10—
section_3_clip_l_strengthFLOAT1.00-10–10—
section_3_clip_g_strengthFLOAT1.00-10–10—
section_4_global_textSTRING—
section_4_enhanced_textSTRING—
section_4_global_text_weightFLOAT1.00-10–10—
section_4_enhanced_text_weightFLOAT1.00-10–10—
section_4_clip_l_strengthFLOAT1.00-10–10—
section_4_clip_g_strengthFLOAT1.00-10–10—
section_5_global_textSTRING—
section_5_enhanced_textSTRING—
section_5_global_text_weightFLOAT1.00-10–10—
section_5_enhanced_text_weightFLOAT1.00-10–10—
section_5_clip_l_strengthFLOAT1.00-10–10—
section_5_clip_g_strengthFLOAT1.00-10–10—
section_6_global_textSTRING—
section_6_enhanced_textSTRING—
section_6_global_text_weightFLOAT1.00-10–10—
section_6_enhanced_text_weightFLOAT1.00-10–10—
section_6_clip_l_strengthFLOAT1.00-10–10—
section_6_clip_g_strengthFLOAT1.00-10–10—
section_7_global_textSTRING—
section_7_enhanced_textSTRING—
section_7_global_text_weightFLOAT1.00-10–10—
section_7_enhanced_text_weightFLOAT1.00-10–10—
section_7_clip_l_strengthFLOAT1.00-10–10—
section_7_clip_g_strengthFLOAT1.00-10–10—
section_8_global_textSTRING—
section_8_enhanced_textSTRING—
section_8_global_text_weightFLOAT1.00-10–10—
section_8_enhanced_text_weightFLOAT1.00-10–10—
section_8_clip_l_strengthFLOAT1.00-10–10—
section_8_clip_g_strengthFLOAT1.00-10–10—
section_9_global_textSTRING—
section_9_enhanced_textSTRING—
section_9_global_text_weightFLOAT1.00-10–10—
section_9_enhanced_text_weightFLOAT1.00-10–10—
section_9_clip_l_strengthFLOAT1.00-10–10—
section_9_clip_g_strengthFLOAT1.00-10–10—
section_10_global_textSTRING—
section_10_enhanced_textSTRING—
section_10_global_text_weightFLOAT1.00-10–10—
section_10_enhanced_text_weightFLOAT1.00-10–10—
section_10_clip_l_strengthFLOAT1.00-10–10—
section_10_clip_g_strengthFLOAT1.00-10–10—
section_11_global_textSTRING—
section_11_enhanced_textSTRING—
section_11_global_text_weightFLOAT1.00-10–10—
section_11_enhanced_text_weightFLOAT1.00-10–10—
section_11_clip_l_strengthFLOAT1.00-10–10—
section_11_clip_g_strengthFLOAT1.00-10–10—
section_12_global_textSTRING—
section_12_enhanced_textSTRING—
section_12_global_text_weightFLOAT1.00-10–10—
section_12_enhanced_text_weightFLOAT1.00-10–10—
section_12_clip_l_strengthFLOAT1.00-10–10—
section_12_clip_g_strengthFLOAT1.00-10–10—
section_13_global_textSTRING—
section_13_enhanced_textSTRING—
section_13_global_text_weightFLOAT1.00-10–10—
section_13_enhanced_text_weightFLOAT1.00-10–10—
section_13_clip_l_strengthFLOAT1.00-10–10—
section_13_clip_g_strengthFLOAT1.00-10–10—
section_14_global_textSTRING—
section_14_enhanced_textSTRING—
section_14_global_text_weightFLOAT1.00-10–10—
section_14_enhanced_text_weightFLOAT1.00-10–10—
section_14_clip_l_strengthFLOAT1.00-10–10—
section_14_clip_g_strengthFLOAT1.00-10–10—
section_15_global_textSTRING—
section_15_enhanced_textSTRING—
section_15_global_text_weightFLOAT1.00-10–10—
section_15_enhanced_text_weightFLOAT1.00-10–10—
section_15_clip_l_strengthFLOAT1.00-10–10—
section_15_clip_g_strengthFLOAT1.00-10–10—
section_16_global_textSTRING—
section_16_enhanced_textSTRING—
section_16_global_text_weightFLOAT1.00-10–10—
section_16_enhanced_text_weightFLOAT1.00-10–10—
section_16_clip_l_strengthFLOAT1.00-10–10—
section_16_clip_g_strengthFLOAT1.00-10–10—
section_17_global_textSTRING—
section_17_enhanced_textSTRING—
section_17_global_text_weightFLOAT1.00-10–10—
section_17_enhanced_text_weightFLOAT1.00-10–10—
section_17_clip_l_strengthFLOAT1.00-10–10—
section_17_clip_g_strengthFLOAT1.00-10–10—
section_18_global_textSTRING—
section_18_enhanced_textSTRING—
section_18_global_text_weightFLOAT1.00-10–10—
section_18_enhanced_text_weightFLOAT1.00-10–10—
section_18_clip_l_strengthFLOAT1.00-10–10—
section_18_clip_g_strengthFLOAT1.00-10–10—
section_19_global_textSTRING—
section_19_enhanced_textSTRING—
section_19_global_text_weightFLOAT1.00-10–10—
section_19_enhanced_text_weightFLOAT1.00-10–10—
section_19_clip_l_strengthFLOAT1.00-10–10—
section_19_clip_g_strengthFLOAT1.00-10–10—
section_20_global_textSTRING—
section_20_enhanced_textSTRING—
section_20_global_text_weightFLOAT1.00-10–10—
section_20_enhanced_text_weightFLOAT1.00-10–10—
section_20_clip_l_strengthFLOAT1.00-10–10—
section_20_clip_g_strengthFLOAT1.00-10–10—
section_21_global_textSTRING—
section_21_enhanced_textSTRING—
section_21_global_text_weightFLOAT1.00-10–10—
section_21_enhanced_text_weightFLOAT1.00-10–10—
section_21_clip_l_strengthFLOAT1.00-10–10—
section_21_clip_g_strengthFLOAT1.00-10–10—
section_22_global_textSTRING—
section_22_enhanced_textSTRING—
section_22_global_text_weightFLOAT1.00-10–10—
section_22_enhanced_text_weightFLOAT1.00-10–10—
section_22_clip_l_strengthFLOAT1.00-10–10—
section_22_clip_g_strengthFLOAT1.00-10–10—
section_23_global_textSTRING—
section_23_enhanced_textSTRING—
section_23_global_text_weightFLOAT1.00-10–10—
section_23_enhanced_text_weightFLOAT1.00-10–10—
section_23_clip_l_strengthFLOAT1.00-10–10—
section_23_clip_g_strengthFLOAT1.00-10–10—
section_24_global_textSTRING—
section_24_enhanced_textSTRING—
section_24_global_text_weightFLOAT1.00-10–10—
section_24_enhanced_text_weightFLOAT1.00-10–10—
section_24_clip_l_strengthFLOAT1.00-10–10—
section_24_clip_g_strengthFLOAT1.00-10–10—
section_25_global_textSTRING—
section_25_enhanced_textSTRING—
section_25_global_text_weightFLOAT1.00-10–10—
section_25_enhanced_text_weightFLOAT1.00-10–10—
section_25_clip_l_strengthFLOAT1.00-10–10—
section_25_clip_g_strengthFLOAT1.00-10–10—
section_26_global_textSTRING—
section_26_enhanced_textSTRING—
section_26_global_text_weightFLOAT1.00-10–10—
section_26_enhanced_text_weightFLOAT1.00-10–10—
section_26_clip_l_strengthFLOAT1.00-10–10—
section_26_clip_g_strengthFLOAT1.00-10–10—
section_27_global_textSTRING—
section_27_enhanced_textSTRING—
section_27_global_text_weightFLOAT1.00-10–10—
section_27_enhanced_text_weightFLOAT1.00-10–10—
section_27_clip_l_strengthFLOAT1.00-10–10—
section_27_clip_g_strengthFLOAT1.00-10–10—
section_28_global_textSTRING—
section_28_enhanced_textSTRING—
section_28_global_text_weightFLOAT1.00-10–10—
section_28_enhanced_text_weightFLOAT1.00-10–10—
section_28_clip_l_strengthFLOAT1.00-10–10—
section_28_clip_g_strengthFLOAT1.00-10–10—
section_29_global_textSTRING—
section_29_enhanced_textSTRING—
section_29_global_text_weightFLOAT1.00-10–10—
section_29_enhanced_text_weightFLOAT1.00-10–10—
section_29_clip_l_strengthFLOAT1.00-10–10—
section_29_clip_g_strengthFLOAT1.00-10–10—
section_30_global_textSTRING—
section_30_enhanced_textSTRING—
section_30_global_text_weightFLOAT1.00-10–10—
section_30_enhanced_text_weightFLOAT1.00-10–10—
section_30_clip_l_strengthFLOAT1.00-10–10—
section_30_clip_g_strengthFLOAT1.00-10–10—
section_31_global_textSTRING—
section_31_enhanced_textSTRING—
section_31_global_text_weightFLOAT1.00-10–10—
section_31_enhanced_text_weightFLOAT1.00-10–10—
section_31_clip_l_strengthFLOAT1.00-10–10—
section_31_clip_g_strengthFLOAT1.00-10–10—
section_32_global_textSTRING—
section_32_enhanced_textSTRING—
section_32_global_text_weightFLOAT1.00-10–10—
section_32_enhanced_text_weightFLOAT1.00-10–10—
section_32_clip_l_strengthFLOAT1.00-10–10—
section_32_clip_g_strengthFLOAT1.00-10–10—
latentoptLATENT—

Outputs (3)

NameTypeDescription
conditioningCONDITIONING—
upscaled_conditioningCONDITIONING—
reference_full_promptSTRING—