ComfyUI Node

toobusy ZIT ControlNet

Depth, canny, and pose control bolted onto Z-Image Turbo

By nicekriss·Created about a year ago·Updated 3 days ago· 16
toobusy ZIT ControlNet
  • depth_image
  • canny_image
  • pose_image
  • zit_control
patch_nameZ-Image-Turbo-Fun-Controlnet-Union.safetensors
depth_enabletrue
depth_strength0.40
depth_preprocesstrue
canny_enabletrue
canny_strength1.00
canny_preprocesstrue
pose_enabletrue
pose_strength1.00
pose_preprocesstrue
preprocessor_resolution512
canny_low100
canny_high200

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, default Z-Image-Turbo-Fun-Controlnet-Union.safetensors, looked up in models/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, then canny_*, then pose_*. 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 _preprocess off 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.

Categorytoobusy/Make

Inputs (16)

NameTypeDefaultDescription
patch_nameCOMBOZ-Image-Turbo-Fun-Controlnet-Union.safetensorsFun ControlNet Union model patch (models/model_patches). One union file drives all three control types.
depth_enableBOOLEANtrue
depth_strengthFLOAT0.40-10–10
depth_preprocessBOOLEANtrue
canny_enableBOOLEANtrue
canny_strengthFLOAT1.00-10–10
canny_preprocessBOOLEANtrue
pose_enableBOOLEANtrue
pose_strengthFLOAT1.00-10–10
pose_preprocessBOOLEANtrue
preprocessor_resolutionINT512128–2048
canny_lowINT1000–255
canny_highINT2000–255
depth_imageoptIMAGE
canny_imageoptIMAGE
pose_imageoptIMAGE

Outputs (1)

NameTypeDescription
zit_controlZIT_CONTROL