Nodes/ComfyUI Easy Use/XY Inputs: Controlnet //EasyUse
ComfyUI Node Runs on cloud

XY Inputs: Controlnet //EasyUse

ControlNet — sweep a ControlNet strength across a grid

By yolain·Created 3 years ago·Updated 9 days ago· 2,633
XY Inputs: Controlnet //EasyUse
  • image
  • control_net
  • X or Y
control_net_name
target_parameter
batch_count3
first_strength0.00
last_strength1.00
first_start_percent0.00
last_start_percent1.00
first_end_percent0.00
last_end_percent1.00
strength1.00
start_percent0.00
end_percent1.00

Finding the right ControlNet strength is guesswork - too low and it ignores your reference, too high and the image goes stiff and traced. This node turns that guesswork into a contact sheet. It defines one axis of an XY plot that walks a ControlNet parameter from one value to another, so you generate a whole row (or grid) at, say, strength 0.4, 0.6, 0.8, 1.0 and just look at which one's right.

It's part of ComfyUI-Easy-Use's XY Inputs family - a set of axis-generator nodes that feed the pack's easy XYPlot. This particular one is aimed squarely at ControlNet tuning.

Why you'd reach for it

Because ControlNet has that Goldilocks problem and eyeballing a single strength wastes runs. ControlNet conditions on spatial structure - edges, depth, pose - while the prompt decides content, and the strength is how hard it enforces that structure. Sweeping it lets you see the whole tradeoff at once instead of re-running with tweaks. You can also sweep start_percent / end_percent - the window over which the control is active - which is often the more interesting dial: applying a pose only for the first 60% of steps holds composition while letting the model finish freely.

How it works

You pick a target_parameter (strength, start_percent, or end_percent) and a first/last value, plus a batch_count for how many steps to divide that range into. The node emits an X_Y axis describing that sweep. You wire it into easy XYPlot as the X or Y axis, alongside your loader and sampler, and the plot node runs one generation per value and tiles them into a labelled grid. Feed it the same ControlNet + preprocessed image you'd use normally.

The inputs that matter

  • control_net_name + image - the ControlNet model and your preprocessed control image (canny map, depth map, pose, etc.).
  • target_parameter - what to sweep: strength, start_percent, or end_percent.
  • batch_count - how many samples across the range (default 3). More = finer grid, more compute.
  • first_strength / last_strength (and the matching first_/last_start_percent, first_/last_end_percent) - the range endpoints for whichever parameter you chose.

Output is X or Y (type X_Y) - it only does anything once plugged into easy XYPlot.

Installing it

ComfyUI Manager: search ComfyUI Easy Use, install, restart. Or cd ComfyUI/custom_nodes && git clone https://github.com/yolain/ComfyUI-Easy-Use, install requirements, restart. No models of its own, but you'll need a ControlNet model and a preprocessor (Fannovel16's controlnet_aux is the usual source of canny/depth/pose maps) to produce the control image.

Where people trip

First: this node does nothing by itself - it's an axis generator, so if you wire it straight into a sampler expecting an image, that's the mistake. It must feed easy XYPlot. Second: set the endpoints to match the parameter you picked - choosing target_parameter: strength but only editing the start_percent fields sweeps nothing useful. Third: batch_count multiplies your generation time (and on a paid GPU, your cost) - a 5×5 grid is 25 renders, so start coarse (3–4) to bracket the range, then refine. And make sure the image you feed is already preprocessed; this node applies the ControlNet, it doesn't run the canny/depth extraction for you.

CategoryEasyUse/XY Inputs

Inputs (14)

NameTypeDefaultDescription
control_net_nameCOMBO0 options:
imageIMAGE
target_parameterCOMBO3 options: strength, start_percent, end_percent
batch_countINT31–30
first_strengthFLOAT0.000–10
last_strengthFLOAT1.000–10
first_start_percentFLOAT0.000–1
last_start_percentFLOAT1.000–1
first_end_percentFLOAT0.000–1
last_end_percentFLOAT1.000–1
strengthFLOAT1.000–10
start_percentFLOAT0.000–1
end_percentFLOAT1.000–1
control_netoptCONTROL_NET

Outputs (1)

NameTypeDescription
X or YX_Y