Nodes/ComfyUI Essentials/πŸ”§ SD3 Attention Seeker L/G
ComfyUI Node Runs on cloud

πŸ”§ SD3 Attention Seeker L/G

Per-layer dials for your CLIP text encoders

By cubiqΒ·Created 3 years agoΒ·Updated about a year agoΒ· 1,152
πŸ”§ SD3 Attention Seeker L/G
  • clip
  • CLIP
β—„apply_to_querytrueβ–Ί
β—„apply_to_keytrueβ–Ί
β—„apply_to_valuetrueβ–Ί
β—„apply_to_outtrueβ–Ί
β—„clip_l_01.00β–Ί
β—„clip_l_11.00β–Ί
β—„clip_l_21.00β–Ί
β—„clip_l_31.00β–Ί
β—„clip_l_41.00β–Ί
β—„clip_l_51.00β–Ί
β—„clip_l_61.00β–Ί
β—„clip_l_71.00β–Ί
β—„clip_l_81.00β–Ί
β—„clip_l_91.00β–Ί
β—„clip_l_101.00β–Ί
β—„clip_l_111.00β–Ί
β—„clip_g_01.00β–Ί
β—„clip_g_11.00β–Ί
β—„clip_g_21.00β–Ί
β—„clip_g_31.00β–Ί
β—„clip_g_41.00β–Ί
β—„clip_g_51.00β–Ί
β—„clip_g_61.00β–Ί
β—„clip_g_71.00β–Ί
β—„clip_g_81.00β–Ί
β—„clip_g_91.00β–Ί
β—„clip_g_101.00β–Ί
β—„clip_g_111.00β–Ί
β—„clip_g_121.00β–Ί
β—„clip_g_131.00β–Ί
β—„clip_g_141.00β–Ί
β—„clip_g_151.00β–Ί
β—„clip_g_161.00β–Ί
β—„clip_g_171.00β–Ί
β—„clip_g_181.00β–Ί
β—„clip_g_191.00β–Ί
β—„clip_g_201.00β–Ί
β—„clip_g_211.00β–Ί
β—„clip_g_221.00β–Ί
β—„clip_g_231.00β–Ί
β—„clip_g_241.00β–Ί
β—„clip_g_251.00β–Ί
β—„clip_g_261.00β–Ί
β—„clip_g_271.00β–Ί
β—„clip_g_281.00β–Ί
β—„clip_g_291.00β–Ί
β—„clip_g_301.00β–Ί
β—„clip_g_311.00β–Ί

SD3 and SDXL both run two CLIP text encoders side by side - CLIP-L (12 layers) and CLIP-G (OpenCLIP's bigger variant, 32 layers) - and their outputs get combined into the conditioning your sampler actually sees. Normally your only lever on that process is CLIP skip: drop the last N layers, all or nothing. SD3 Attention Seeker L/G replaces that blunt instrument with a strength multiplier for every single layer of both towers, plus toggles for which attention projection inside each layer actually gets touched.

Think of it as the CLIP-side equivalent of this same pack's Flux Model Blocks Buster - same underlying idea of dialing individual transformer layers up or down, applied to the text encoder instead of the diffusion backbone.

How it works

apply_to_query, apply_to_key, apply_to_value, apply_to_out are on/off switches for which attention projections inside each layer the per-layer multipliers actually hit - leave them all on unless you're deliberately isolating one projection. clip_l_0 through clip_l_11 (12 values) and clip_g_0 through clip_g_31 (32 values) are the multipliers themselves - 44 sliders total, each 0–5 with a default of 1.0 (identity). Push a given layer toward 0 to weaken its contribution to the final conditioning, above 1 to push it harder.

Inputs and outputs

clip, the four apply_to_* booleans, and the 44 per-layer float multipliers. Output: CLIP, patched - feed it into your text encode node exactly like the unpatched CLIP.

Installing it

Via ComfyUI Manager, search "ComfyUI Essentials". Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_essentials

Restart. Maintenance-only pack since April 2025.

Common issues & troubleshooting

44 sliders is overwhelming and you don't know where to start. Leave everything at its default (all multipliers at 1.0, all four apply_to_* on) and change one layer at a time - this node has no established "good settings" the way CLIP skip does, so if you touch several layers at once you won't be able to tell which change actually did anything.

Changes seem to do nothing. Double-check that apply_to_query/key/value/out haven't all been switched off - if none of the projections are enabled, the per-layer multipliers have nothing to act on regardless of what you set them to.

Output degrades badly at moderate settings. CLIP-G in particular has 32 layers feeding into a fairly deep pipeline - small multiplier changes compound across layers more than they might on the shallower CLIP-L side. If things break down fast, you're probably changing too many layers at once rather than isolating one.

Categoryessentials/conditioning

Inputs (49)

NameTypeDefaultDescription
clipCLIPβ€”
apply_to_queryBOOLEANtrueβ€”
apply_to_keyBOOLEANtrueβ€”
apply_to_valueBOOLEANtrueβ€”
apply_to_outBOOLEANtrueβ€”
clip_l_0FLOAT1.000–5β€”
clip_l_1FLOAT1.000–5β€”
clip_l_2FLOAT1.000–5β€”
clip_l_3FLOAT1.000–5β€”
clip_l_4FLOAT1.000–5β€”
clip_l_5FLOAT1.000–5β€”
clip_l_6FLOAT1.000–5β€”
clip_l_7FLOAT1.000–5β€”
clip_l_8FLOAT1.000–5β€”
clip_l_9FLOAT1.000–5β€”
clip_l_10FLOAT1.000–5β€”
clip_l_11FLOAT1.000–5β€”
clip_g_0FLOAT1.000–5β€”
clip_g_1FLOAT1.000–5β€”
clip_g_2FLOAT1.000–5β€”
clip_g_3FLOAT1.000–5β€”
clip_g_4FLOAT1.000–5β€”
clip_g_5FLOAT1.000–5β€”
clip_g_6FLOAT1.000–5β€”
clip_g_7FLOAT1.000–5β€”
clip_g_8FLOAT1.000–5β€”
clip_g_9FLOAT1.000–5β€”
clip_g_10FLOAT1.000–5β€”
clip_g_11FLOAT1.000–5β€”
clip_g_12FLOAT1.000–5β€”
clip_g_13FLOAT1.000–5β€”
clip_g_14FLOAT1.000–5β€”
clip_g_15FLOAT1.000–5β€”
clip_g_16FLOAT1.000–5β€”
clip_g_17FLOAT1.000–5β€”
clip_g_18FLOAT1.000–5β€”
clip_g_19FLOAT1.000–5β€”
clip_g_20FLOAT1.000–5β€”
clip_g_21FLOAT1.000–5β€”
clip_g_22FLOAT1.000–5β€”
clip_g_23FLOAT1.000–5β€”
clip_g_24FLOAT1.000–5β€”
clip_g_25FLOAT1.000–5β€”
clip_g_26FLOAT1.000–5β€”
clip_g_27FLOAT1.000–5β€”
clip_g_28FLOAT1.000–5β€”
clip_g_29FLOAT1.000–5β€”
clip_g_30FLOAT1.000–5β€”
clip_g_31FLOAT1.000–5β€”

Outputs (1)

NameTypeDescription
CLIPCLIPβ€”