Nodes/ComfyUI-IcyHider/Icy GLIGENTextBoxApply
ComfyUI Node

Icy GLIGENTextBoxApply

GLIGEN boxes — placing 'the cat' at pixel (200, 100) instead of hoping

By icekiub-ai·Created 9 months ago·Updated 9 months ago· 31
Icy GLIGENTextBoxApply
  • conditioning_to
  • clip
  • gligen_textbox_model
  • CONDITIONING
text
width64
height64
x0
y0

IcyGLIGENTextBoxApply is the IcyHider clone of GLIGENTextBoxApply, and it's the answer to a specific, frustrating question: "how do I tell the model where to put a thing my prompt mentions?" ControlNet gives you that via images and preprocessors; GLIGEN gives it to you with plain text and a box.

What GLIGEN is

GLIGEN (Grounded Language-to-Image Generation) is a grounding model family that was a real deal back in the SD 1.5 era: a separate model you load with a GLIGEN loader, then feed text-plus-rectangle pairs so the sampler puts the described object inside that rectangle. It's the "grounding by layout" tool of that era - the ancestor of the text-grounded masking patterns people use today with VLMs and bounding boxes.

The node's inputs:

  • conditioning_to - the conditioning you're adding the grounded box to.
  • clip - the text encoder, for tokenizing text.
  • gligen_textbox_model - the loaded GLIGEN model itself (from a GLIGENLoader, a file you must have on disk).
  • text - the thing you're placing. "a cat," "a lamp," whatever the box should contain.
  • width / height / x / y - the rectangle in image pixels, x/y from the top-left. This is the whole point: the prompt now means "this object lives here," not "somewhere, hopefully."

Output: a CONDITIONING that feeds the sampler. Stack multiple GLIGENTextBoxApply nodes - one per object - and you can lay out a whole scene by boxes.

The honest picture in 2026

Two things you need before getting excited. First, GLIGEN models exist for SD 1.5 and SDXL, and not for the model families that dominate 2026 - there's no Flux GLIGEN. Second, even in its heyday GLIGEN was fiddly: box placement is approximate, the model can ignore or overflow the box, and results vary by checkpoint. If you're on a modern base and want grounded layout, the community's current move is a VLM for bounding boxes + an inpainting pass, not GLIGEN. Reach for this node when you're working an SD 1.5/SDXL workflow that already has a GLIGEN model file - it's genuinely good at "exactly these three objects in these three regions."

Install and the "Icy" part

Pack install is the same for all of these: ComfyUI Manager → "IcyHider" → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/icekiub-ai/ComfyUI-IcyHider.git

Restart. No Python deps; the GLIGEN model is your own file. The node lives in IcyHider Comfy Core, and like every conditioning-output node in this pack, the wrapper changes nothing functional - GLIGENTextBoxApply is the exact code underneath. If boxes aren't landing where you drew them, that's GLIGEN being GLIGEN, not the wrapper.

CategoryIcyHider Comfy Core

Inputs (8)

NameTypeDefaultDescription
conditioning_toCONDITIONING
clipCLIP
gligen_textbox_modelGLIGEN
textSTRING
widthINT648–16384
heightINT648–16384
xINT00–16384
yINT00–16384

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING