toobusy ZIT ControlNet
Depth, canny, and pose control bolted onto Z-Image Turbo
- depth_image
- canny_image
- pose_image
- zit_control
ControlNet's whole deal is spatial control - edges, depth, pose decide where things go while the prompt decides what they are - and it took a strange turn for Z-Image Turbo. Instead of one ControlNet per condition, the community got a single union model: Z-Image-Turbo-Fun-Controlnet-Union, one file that drives depth, canny and pose together, applied as model patches rather than the classic ControlNet wrapper. toobusy ZIT ControlNet is a module that snaps onto toobusy Z-Image Turbo and manages all three conditions in one node - each with its own image input, on/off toggle, strength, and in-node preprocessing.
The mechanism is a fold, per the node's own docstring. For each active slot it runs ImageScaleToTotalPixels + the preprocessor + ModelPatchLoader + QwenImageDiffsynthControlnet + a preview, then bundles the results into a single ZIT_CONTROL link. The Z-Image Turbo node applies that bundle as stacked Fun-ControlNet-Union model patches on its final model - internal loader, override, and LoRA paths alike. From your side of the graph it's one node in, one wire out.
Inputs and outputs that matter
patch_name- the union model file, defaultZ-Image-Turbo-Fun-Controlnet-Union.safetensors, looked up inmodels/model_patches. One union file handles all three control types.- Three slot blocks, and they're all the same shape:
depth_enable/depth_strength/depth_preprocess, thencanny_*, thenpose_*. Depth defaults to a gentle 0.4 strength, canny and pose to 1.0. preprocessor_resolution- 512 default; raise it for detail-heavy control maps.canny_low/canny_high- the Canny edge thresholds, 100/200 default. Lower the pair to catch weaker edges.depth_image,canny_image,pose_image- optional. Feed a ready-made control map here and flip that slot's_preprocessoff to skip in-node preprocessing.
One output: zit_control, which goes into the zit_control input on toobusy Z-Image Turbo. Leave it unconnected and Z-Image Turbo behaves exactly as before - the module is strictly additive.
The gotcha: preprocessors are optional dependencies
Depth and pose preprocessing need the comfyui_controlnet_aux node pack (MiDaS for depth, DWPose for pose). Canny falls back to a core node. If you don't have the aux pack installed and a slot errors out, the clean paths are: install comfyui_controlnet_aux, or turn that slot's _preprocess off and feed a ready-made control map. The pack's README lists this under ZIT ControlNet's needs explicitly.
Installing it
It's part of the toobusy pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/nicekriss/toobusy.git toobusy
or search "toobusy" in ComfyUI Manager, then restart. The union patch file goes in ComfyUI/models/model_patches/ and is yours to download - nothing is bundled.
The honest take: if your Z-Image work is all text-to-image, skip this. If you want composition control - a specific pose from a reference, edges from a sketch (which pairs naturally with toobusy Paint Canvas), depth to hold a scene together - this is the tidy way to get it, and one union file for all three conditions beats the old one-ControlNet-per-type sprawl.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| patch_name | COMBO | Z-Image-Turbo-Fun-Controlnet-Union.safetensors | Fun ControlNet Union model patch (models/model_patches). One union file drives all three control types. |
| depth_enable | BOOLEAN | true | — |
| depth_strength | FLOAT | 0.40-10–10 | — |
| depth_preprocess | BOOLEAN | true | — |
| canny_enable | BOOLEAN | true | — |
| canny_strength | FLOAT | 1.00-10–10 | — |
| canny_preprocess | BOOLEAN | true | — |
| pose_enable | BOOLEAN | true | — |
| pose_strength | FLOAT | 1.00-10–10 | — |
| pose_preprocess | BOOLEAN | true | — |
| preprocessor_resolution | INT | 512128–2048 | — |
| canny_low | INT | 1000–255 | — |
| canny_high | INT | 2000–255 | — |
| depth_imageopt | IMAGE | — | |
| canny_imageopt | IMAGE | — | |
| pose_imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| zit_control | ZIT_CONTROL | — |