param_preset_pack
Bundle your ControlNet strengths and mix factors into one wire
- Drun
Same idea as Model_Preset_pack, but for numbers instead of filenames. If you've got a handful of strength and mix values scattered around your graph - two ControlNet strengths, a blend-timing value, a couple of generic mix factors - this bundles them into a single wire so you can save, recall, or just tidy up that whole set as one unit instead of nine separate widgets.
Part of ComfyUI-Apt_Preset's stack category, alongside Model_Preset_pack and photoshop_preset_pack. Same pattern, three different kinds of payload.
How it works
Nine numeric fields, all optional, all packed into one output typed DPIPE. Two of the nine are explicitly ControlNet-flavored: CN1_Strength and CN2_Strength for two independent ControlNet units, plus CN12_Strength and CN12_SwitchTime - a combined strength and a switch-time value, which reads as "how strong when both are blended together" and "at what point in the run does control hand off from CN1 to CN2." The rest - mix1_factor, mix2_factor, factor, intA, intB - are generic slots without a fixed purpose baked into the node itself; use them for whatever numeric values your specific workflow needs to carry along, whether that's a seed, a step count, or a blend ratio for some other node entirely.
Like Model_Preset_pack, this node does no computation - it just holds the numbers you gave it in one bundle. The actual use of any of these values happens wherever param_preset_Unpack feeds them into a real node downstream.
Inputs and outputs
All nine inputs are optional numeric fields:
- CN1_Strength / CN2_Strength - 0 to 3, default 1. Independent ControlNet strengths.
- CN12_Strength / CN12_SwitchTime - 0 to 3 and 0 to 1 respectively, default 1 each. A combined strength and a timing value for a two-ControlNet handoff.
- mix1_factor / mix2_factor / factor - 0 to 1, default 1 each. Generic blend ratios.
- intA / intB - 0 to 9999, default 1 each. Generic integers for whatever you need.
The output is Drun, typed DPIPE - only param_preset_Unpack is built to read it.
Installing it
ComfyUI Manager: search "ComfyUI-Apt_Preset", install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git
Restart afterward. install.bat for Windows dependencies is in the repo; Linux/Mac, install from the requirements file inside your ComfyUI venv. This node has no dependency of its own - it's nine numbers in a box.
Common issues
Wired Drun somewhere and it won't connect. DPIPE is a custom type specific to this pack - it only plugs into param_preset_Unpack, not into a native ComfyUI FLOAT/INT socket. If you need a raw number somewhere else, unpack first.
Values didn't change anything after unpacking. Same story as the model preset pair: pack/unpack nodes don't apply values, they just carry them. Confirm the unpacked outputs are actually wired into the nodes that use them - a ControlNet strength, a mix node's factor - and not left dangling.
Forgot what factor, intA, or intB were supposed to mean in an old saved workflow. That's the cost of the generic slots: unlike the named ControlNet fields, these three have no fixed purpose baked into the node, so their meaning lives entirely in how your specific workflow used them. Label the node or leave yourself a note if you're saving a preset that leans on them.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| CN1_Strengthopt | FLOAT | 1.0000–3 | — |
| CN2_Strengthopt | FLOAT | 1.0000–3 | — |
| CN12_Strengthopt | FLOAT | 1.0000–3 | — |
| CN12_SwitchTimeopt | FLOAT | 1.000–1 | — |
| mix1_factoropt | FLOAT | 1.000–1 | — |
| mix2_factoropt | FLOAT | 1.000–1 | — |
| factoropt | FLOAT | 1.000–1 | — |
| intAopt | INT | 10–9999 | — |
| intBopt | INT | 10–9999 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Drun | DPIPE | — |