Load Diffuser Controlnet
Load Diffuser Controlnet
- CONTROL_NET
The controlnet here isn't doing composition control the way you'd normally think of ControlNet - canny edges, depth maps, pose skeletons. In this pack it's what keeps the outpainted region coherent with the original image around the edges of your mask, and it's loaded through this node because, like the unet loader next to it, it's driving a diffusers pipeline internally rather than ComfyUI's own controlnet stack.
That's also why you can't just point ComfyUI's built-in Load ControlNet Model node at the same file and skip this one - diffusers expects its own folder and config layout, and this loader is what bridges the gap.
What it needs: controlnet_model is a dropdown pulled from whatever's in your ComfyUI/models/controlnet folder. The README points at xinsir's controlnet-union-sdxl-1.0, specifically the promax variant - worth knowing that this is a real, well-regarded model outside this pack too: it's the union checkpoint that folded a dozen SDXL conditioning types (canny, depth, pose, segmentation, and more) into one file, and it's still widely considered the single most capable ControlNet artifact for SDXL. This pack isn't using all twelve of its conditioning modes, just leaning on it for the outpaint task. controlnet_type picks which JSON config the node loads to interpret that file - default is controlnet-sdxl-promax, matching the model above; the README's own instructions are to drop config file(s) into configs/your controlnet type/ if you need a different setup. device and dtype follow the same auto-by-default pattern as the rest of the pack - leave them alone unless you're deliberately forcing precision.
Output: a single CONTROL_NET, which plugs into the Diffusers Image Outpaint node's control_net input. Note that how strongly it's applied isn't set here - that's the controlnet_strength slider on the main node, not this loader. This node is purely "which file, which config."
Installing it: bundled with the rest of the pack - clone ComfyUI-DiffusersImageOutpaint into custom_nodes or grab it through the Manager, restart, and pip install -r requirements.txt from the extension folder if the Manager didn't already handle it. The only extra step specific to this node is getting a controlnet file into the right folder - note it's models/controlnet, not diffusion_models where the unet goes. Mixing the two up is an easy first mistake.
Where people get burned: the author is upfront that they've only actually tried one combination - RealVisXL_V5.0_Lightning paired with the promax controlnet-union - and that pairing RealVisXL with the non-promax controlnet-union gave them an error. So if you're reaching for a different SDXL controlnet-union model because that's what you already have downloaded, know you're off the tested path; it might work, but the author can't promise it and hasn't tried much beyond their one known-good combo. If generation throws a missing 'loaded_keys' error the moment it starts, that's not specific to this node - it's a version mismatch in transformers/diffusers, fixed with pip install transformers==4.45.0 --upgrade diffusers==0.32.2 --upgrade run inside your ComfyUI environment.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| controlnet_model | COMBO | The controlnet model used for denoising the input latent. | |
| device | COMBO | auto | Device for inference, default is auto checked by comfyui |
| dtype | COMBO | auto | Model precision for inference, default is auto checked by comfyui |
| controlnet_type | COMBO | controlnet-sdxl-promax | The json configs used for controlnet. (Put config(s) in "configs/your controlnet type"). |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONTROL_NET | CONTROL_NET | — |