LCMGenerate_img2img_controlnet
Img2img steered by a ControlNet
- image
- pipe
- control_image
- IMAGE
LCMGenerate_img2img_controlnet is the img2img generation node with ControlNet conditioning bolted on. It's the counterpart to LCMGenerate_img2img (same strength, loopback, and structure) plus two extra inputs: control_image and control_weight. The node runs the ControlNet-equipped LCM pipe that LCMLoader_controlnet built, so you can rework an image while keeping its edges, depth, or pose locked to a reference.
What changed from the plain img2img node
The ControlNet flavor swaps the T2I-Adapter inputs for:
- control_image - the conditioning image (canny edges, depth map, pose skeleton, whatever your ControlNet expects).
- control_weight (default 1.0) - how strongly the condition steers. Start at 0.6–0.8, not 1.0.
And the pipe input is the important one: it must come from LCMLoader_controlnet, because that's the loader that actually loads the ControlNet into the pipeline. Wiring a plain LCMLoader pipe into this node gives you nothing - the control_image/control_weight inputs would be ignored and the whole point of the node evaporates.
Everything else matches the img2img node: mode (Inpaint/Outpaint), seed, text, steps (default 4), width/height, cfg, image, outpaint_size/direction, batch, strength, loopback, loopback_iterations, prompt_weighting.
Setup
Two-part model setup on top of the standard install (ComfyUI Manager, search LCM_Inpaint-Outpaint_Comfy, or the clone + pip install -r requirements.txt):
LCM_Dreamshaper_v7diffusers →ComfyUI/models/diffusers/.- Your ControlNet → a subfolder in
ComfyUI/models/controlnet/so it appears inLCMLoader_controlnet's mode dropdown.
The honest balance problem
Here's the real tension with ControlNet on an LCM model: LCM is distilled to make a handful of big denoising jumps, so there's very little denoising "time" for a condition to assert itself. ControlNet on 4 steps can feel like it's barely doing anything at low weight, then suddenly collapse into oversaturated artifacts the moment you push it. The trick is patience: keep CFG low (1–2 per the distillation playbook, not the pack's 8.0 default), run 4–8 steps, and tune control_weight against strength together - the two fight each other for control of the output.
It's late-2023 code from the pack's author (taabata / Sensitive-Paper6812), one of the first people to demo ControlNet + LCM + ComfyUI together. It works, it's fast, and it's a legitimately cool way to play with structural control at 4 steps. But if you want something maintained and easier to debug, native ComfyUI ControlNet with an LCM checkpoint is the modern route. This node is the historical, single-node version of that idea.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 2 options: Inpaint, Outpaint | |
| seed | INT | 00–18446744073709550000 | — |
| text | STRING | — | |
| steps | INT | 40–360 | — |
| width | INT | 5120–5000 | — |
| height | INT | 5120–5000 | — |
| cfg | FLOAT | 8.00–30 | — |
| image | IMAGE | — | |
| outpaint_size | INT | 2560–5000 | — |
| outpaint_direction | COMBO | 4 options: left, right, top, bottom | |
| pipe | class | — | |
| batch | INT | 11–100 | — |
| strength | FLOAT | 1.00–1 | — |
| prompt_weighting | COMBO | 2 options: disable, enable | |
| loopback | COMBO | 2 options: disable, enable | |
| loopback_iterations | INT | 41–5000 | — |
| control_image | IMAGE | — | |
| control_weight | FLOAT | 1.00–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |