Controlnet Adapter v2
Attach ControlNet or Revision in the Searge SDXL workflow
- data
- source_image
- data
- preview
This is the node that hooks a source image into the Searge SDXL workflow as spatial guidance - ControlNet or Revision. You feed it an image, tell it what kind of control to apply (canny edges, depth, sketch, recolor, or Revision), and it writes that setup into the data-stream bus so the Magic Box's apply controlnet stage uses it. Searge supports up to five of these applied together, which was one of the headline features of the v4.0 rewrite.
ControlNet is the technique for controlling where things go while your prompt controls what they are - you extract structure (edges, depth, a pose) from a reference and the model generates within that structure. Revision is the SDXL-specific cousin: instead of spatial structure it uses a CLIP-vision embedding of the image to transfer style and content, no text prompt required.
How it works
The controlnet_mode you pick decides which control-lora model gets used and how the source image is interpreted. If controlnet_preprocessor is on, the node runs the appropriate preprocessor on your source image first (Canny edge detection, depth estimation, and so on); if it's off, it assumes you've already fed it a prepared control image. The preview output lets you eyeball the preprocessed result, which is genuinely handy for dialing in edge thresholds.
The inputs and outputs that matter
controlnet_mode-none,revision,canny,depth,recolor,sketch, orcustom. The main switch.nonedisables this adapter.source_image(optionalIMAGE) - the reference you're conditioning on. Without it, there's nothing to control.controlnet_preprocessor(boolean) - whether to preprocess the source. Turn it on if you're feeding a normal photo; off if you're feeding a pre-made edge/depth map.strength(default 0.5) - how hard the control pushes. Higher sticks tighter to the structure; the SD-era habit of 1.0 is often too much on SDXL.low_threshold/high_threshold- Canny edge sensitivity, only relevant in canny mode.start_percent/end_percent(0 to 1) - when during denoising the control applies. Ending early (say 0.5) lets the model add its own detail after composition is locked.
Optional data in, and outputs are data (SRG_DATA_STREAM) plus preview (IMAGE).
How to install it
Manager: search SeargeSDXL, install, restart. Manual, opencv first (it's what powers the Canny preprocessor, so this one especially needs it):
python -m pip install opencv-python
cd ComfyUI/custom_nodes
git clone https://github.com/SeargeDP/SeargeSDXL.git
Restart. Then download the models the README requires for this to work: ControlNetHED.pth and res101.pth into models/annotators, clip_vision_g.safetensors into models/clip_vision (for Revision), and the control-lora-*-rank256 files (canny/depth/recolor/sketch, ~774 MB each) into models/controlnet.
Common issues & troubleshooting
It does nothing / no models found. The control-lora files and the annotators aren't optional for this node - download them per the README and select them in the SeargeControlnetModels box, or the adapter has nothing to apply.
Weak or unreliable results. This is the honest caveat, and it isn't Searge's fault: SDXL ControlNets have always been the weak spot of the ecosystem. Our ControlNet notes are blunt that SDXL never got the clean, comprehensive set SD 1.5 had - lineart in particular has a reputation for producing mush. Depth and canny are your most dependable modes; expect to fight the others.
Structure too rigid or ignored. Adjust strength and the start/end_percent window. Full-strength control through the entire sample locks composition hard and starves detail; releasing the condition partway (end around 0.5) is the community's standing advice for structure-heavy work.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| controlnet_mode | COMBO | none | 7 options: none, revision, canny, depth, recolor, sketch, +1 |
| controlnet_preprocessor | BOOLEAN | false | — |
| strength | FLOAT | 0.500–10 | — |
| low_threshold | FLOAT | 0.250–1 | — |
| high_threshold | FLOAT | 0.500–1 | — |
| start_percent | FLOAT | 0.000–1 | — |
| end_percent | FLOAT | 1.000–1 | — |
| noise_augmentation | FLOAT | 0.000–1 | — |
| revision_enhancer | BOOLEAN | false | — |
| dataopt | SRG_DATA_STREAM | — | |
| source_imageopt | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| data | SRG_DATA_STREAM | — |
| preview | IMAGE | — |