Nodes/ComfyUI-Apt_Preset/Stack_ControlNet
ComfyUI Node

Stack_ControlNet

The Plain Single-Model ControlNet Chain Link

By cardenluoĀ·Created 2 years agoĀ·Updated 21 days agoĀ· 309
Stack_ControlNet
  • image
  • cn_stack
  • cn_stack
ā—„controlnet▾►
ā—„strength0.80ā–ŗ
ā—„start_percent0.00ā–ŗ
ā—„end_percent1.00ā–ŗ

Where Stack_CN_union and Stack_CN_union3 are built around modern union checkpoints (one file, pick your condition from a dropdown), Stack_ControlNet is the plain version: one image, one specific-purpose ControlNet model, standard strength and timing controls, and a chain input so you can link several of these together. Reach for this one when you're using single-purpose checkpoints - say BFL's official Flux Depth model, or a single-condition SDXL ControlNet - rather than a union model with a type selector.

Inputs

  • image - your preprocessed control image.
  • controlnet - a dropdown populated at runtime from your models/controlnet folder. The schema only shows None as a sample because this list depends entirely on what you've actually downloaded; Apt_Preset ships no model weights.
  • strength (default 0.8) - how strongly the condition pushes.
  • start_percent / end_percent (0–1, default 0 and 1) - when during sampling it's active.
  • cn_stack (optional) - chain another Stack_ControlNet node in here to build up a list of several ControlNets (canny + depth + pose, each its own node instance, linked together).

Output: cn_stack, a CN_STACK object for the pack's own downstream sampler/loader node.

Something worth flagging: the strength range

strength here goes from -10 to 10, not the 0–10 range Stack_CN_union uses for the same field. Nothing in the README or in standard ControlNet math suggests a negative strength does anything predictable - the useful range for any ControlNet, union or single-purpose, is generally 0 to somewhere around 2 (the old SD-era default was 1.0; modern models tend to want less, not more). Treat the negative half of that slider as an unintentional artifact of however the node was built, not a documented feature, and stick to positive values unless you're deliberately poking at it out of curiosity.

Chaining multiple conditions

The cn_stack in/out pair is a linked-list pattern: plug the output of one Stack_ControlNet into the cn_stack input of the next, and keep going for as many separate ControlNet models as your workflow needs. This is the node to use when each condition comes from its own dedicated checkpoint rather than one union model's mode selector - use Stack_CN_union instead when you've loaded a union checkpoint and just want to pick condition types off a menu.

Install

ComfyUI Manager: search "ComfyUI-Apt_Preset," install, restart. Manually: cd ComfyUI/custom_nodes && git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git, then restart ComfyUI. The repo's install.bat only runs on Windows - on Linux or a cloud box, open it to see what Python packages it lists and install those yourself, or let ComfyUI Manager's "install missing nodes" flow handle it.

As with the union variants, this node does nothing without an actual ControlNet checkpoint sitting in models/controlnet - the pack provides the wiring, not the weights.

Troubleshooting

If controlnet only shows None, ComfyUI hasn't found a compatible file in models/controlnet - add one and restart.

This pack has real reported import failures unrelated to any single node - a comfyui subreddit thread documents a console error reading (IMPORT FAILED): ...ComfyUI-Apt_Preset after loading a workflow that used it. The people who hit it fixed it with ComfyUI Manager's "install missing custom nodes," or by deleting and re-cloning the repo by hand and restarting.

CategoryApt_Preset/stack/😺backup

Inputs (6)

NameTypeDefaultDescription
imageoptIMAGE—
controlnetoptCOMBO1 options: None
strengthoptFLOAT0.80-10–10—
start_percentoptFLOAT0.000–1—
end_percentoptFLOAT1.000–1—
cn_stackoptCN_STACK—

Outputs (1)

NameTypeDescription
cn_stackCN_STACK—