多文本区域条件设置
Different prompts for different boxes on the canvas
- conditioning_to
- clip
- body_boxs
- textList
- text0
- text1
- CONDITIONING
MultiTextSetArea ("多文本区域条件设置", multi-text area conditioning) is regional prompting done with rectangles: you hand it a set of boxes on the canvas, a list of texts, and it returns a conditioning where each text only applies inside its own box. The girl on the left keeps her red hair, the one on the right keeps her blue - because each has her own prompt and her own territory.
Regional prompting exists because prompt adherence is global: one prompt describing two subjects reliably smears their attributes together, and no amount of rewording fixes it. The KB calls this the standing answer to two-character attribute bleeding. ComfyUI implements it through area conditioning - the model literally gets told "this text applies to this region of the latent." This node is a batch-friendly wrapper over exactly that mechanism.
How it works
You feed it conditioning, a CLIP, and a list of boxes (body_boxs, type BOXS - the pack's box format: width, height, x, y), plus your texts. It encodes each text with the CLIP, stamps the corresponding box onto it as an area condition, and concatenates all of them into the conditioning you get back. Each region also carries a strength value, which the canvas editor lets you set per box - so you can have the left region at full influence and the right at 60%.
One implementation detail worth knowing: it sets set_area_to_bounds = False, meaning each area keeps its own bounds rather than being clamped to the full canvas. That's the flexible, Forge-Couple-flavored behavior - regions don't forcibly tile the whole image.
The inputs and outputs
conditioning_to- the base conditioning to extend.clip- the CLIP for encoding.body_boxs(BOXS) - the list of boxes, one per text.textList, or individualtext0,text1, ... - the prompts, one per box.- Output:
CONDITIONING- the combined regional conditioning.
The box list comes from the pack's box-producing nodes, so plan to build it upstream. Texts and boxes are matched by index, and it uses whichever is shorter - mismatch the count and you'll silently get fewer regions than you intended.
Installing it
From ComfyUI_Lam: Manager → search "ComfyUI_Lam", or:
cd ComfyUI/custom_nodes
git clone https://github.com/yanlang0123/ComfyUI_Lam
Restart, find it in the lam category. It needs a CLIP and a box list - no extra models. Skip the README's heavy install; that's for the pack's face/inpainting nodes, not this one.
Common issues
Regional conditioning is fiddly by nature. The classic failures: boxes too small for the subject (the model has no room to render what the text demands), overlapping boxes (regions fight over pixels), and too few steps (regions need enough denoising to actually take shape). Start with generous boxes and normal strength, then shrink.
And a 2026-era honesty note: instruction-edit models are eating regional prompting's lunch for one-shot compositions, and better text encoders reduce the need to bolt regions on at all. But if you need a repeatable two-subject pipeline with per-region strength control, this is still the category of tool that does it - the KB's position is that the technique remains the standing answer for attribute bleeding. If the workflow's saved canvas values vanish when you rebuild the node by hand, that's the pack's "values live in workflow JSON" quirk biting you - load the saved workflow instead of rebuilding.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning_to | CONDITIONING | — | |
| clip | CLIP | — | |
| body_boxs | BOXS | — | |
| textListopt | LIST | — | |
| text0opt | TEXT,STRING | — | |
| text1opt | TEXT,STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |