Nodes/Nynxz/Qwen3-VL Ground
ComfyUI Node

Qwen3-VL Ground

Ask the model where 'the sky' is, and fuse from what it finds

By Nynxz·Created about a month ago·Updated 29 days ago· 5
Qwen3-VL Ground
  • clip
  • fusion_input
  • fusion_input
  • debug
phrasesthe main subject
shaperect
feather0.10
strength2.0
max_tokens256
seed0

The default fusion in this pack blends reference images across a geometric pattern - a checkerboard, a grid, a random scatter. That works, but it doesn't know anything about what's actually in your images. Qwen3-VL Ground fixes that in the most direct way possible: it asks the model itself where a phrase is in each image, turns the answer into a region, and attaches those regions to the fusion input so the encode can compose your edit from named parts. "The sky" isn't a cell pattern anymore - it's where the model actually found the sky.

The wiring

This is the bridge this pack needs: Fusion Input → Qwen3-VL Ground → Fusion encode, and on the encode you raise region_strength above 0 for the regions to bite. The inputs:

  • clip - the same Qwen3-VL text encoder the Fusion encode uses.
  • fusion_input - the collected references.
  • phrases - what to take from each image, one per line, in image order. Blank or missing lines leave that image ungrounded, which means it stays a full-frame background in the blend.
  • shape - rect or ellipse, how each box is rasterized into a region.
  • feather - soft edge on each region (normalized units) so grounded areas blend rather than hard-cut. Default 0.1.
  • strength - how hard a grounded region claims its area vs. a full-frame source. 1 = equal footing; above 1 (default 2) makes the grounded image dominate where it was found.
  • max_tokens and seed - the generation budget and sampling seed (grounding runs deterministic regardless).

Two outputs: fusion_input (the input with regions attached, for the encode) and debug (the model's raw replies - wire it to a text node and you can see exactly what the model said it found, which is the first thing to check when a region looks wrong).

How it works

The mechanism is native Qwen3-VL inference plus a bbox parser: for each image it runs the grounding prompt ("Where is <phrase>?"), parses the model's box reply into normalized regions, and rides them along on the fusion input entries. Because it's the same encoder and the same token stream, the regions land in the same coordinate frame the encode reads.

Where people get burned

Phrase-to-image mapping is positional and literal - line 1 grounds image 1, so order matters, and a phrase the model can't find produces a degenerate box that can silently own a corner of the blend. That's exactly what Fusion Regions Preview is for: stick it on the ground node's output, look at the boxes before you generate. And keep region_strength on the encode in mind - a perfectly grounded region does nothing until that knob is above zero, which has tripped up more than one user.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/Nynxz/ComfyUI-NynxzExperimental

or search "Nynxz" in ComfyUI Manager, then restart. No pack dependencies - the real prerequisite is the Qwen3-VL CLIP and the fusion pipeline around it.

CategoryNynxz/Qwen3-VL

Inputs (8)

NameTypeDefaultDescription
clipCLIPThe same Qwen3-VL text encoder the Fusion encode uses.
fusion_inputNYNXZ_FUSION_INPUT
phrasesSTRINGthe main subjectWhat to take from each image, one per line, in image order. A blank or missing line leaves that image ungrounded (full-frame background in the blend).
shapeCOMBOrectRegion shape rasterised from each box.
featherFLOAT0.100–0.5Soft edge on each region (normalised units), so grounded areas blend rather than hard-cut.
strengthFLOAT2.00–8How hard a grounded region claims its area vs a full-frame source. 1 = equal footing; above 1 makes the grounded image dominate where it was found.
max_tokensINT25616–2048Token budget per image for the grounding reply.
seedINT00–18446744073709550000

Outputs (2)

NameTypeDescription
fusion_inputNYNXZ_FUSION_INPUT
debugSTRING