๐ Controls 12 (Drawer)
Twelve controls in one node โ the full control panel
- value_1
- value_2
- value_3
- value_4
- value_5
- value_6
- value_7
- value_8
- value_9
- value_10
- value_11
- value_12
If DrawerControls4 is the sampler cluster and DrawerControls8 is the character sheet, DrawerControls12 is the full control panel - twelve slots in one node, the biggest of the Drawer Controls family (1 / 4 / 8 / 12) from ComfyUI-Drawer. It's the one you reach for when a workflow genuinely has a dozen things a user might touch and you don't want a dozen floating nodes to manage.
Realistic use: a model-to-image workflow where someone should be able to set steps, CFG, seed, denoise, sampler, scheduler, a couple of lora weights, a prompt toggle, and a size knob - all from one place, all in a drawer on a tablet. That's exactly the scenario this node exists for, because ComfyUI-Drawer's whole pitch is turning a graph into touch-friendly controls.
The slot mechanics
Each of the twelve slots is two text widgets:
- value_N - the value, as text.
- def_N - the definition string. First token is the type:
int,float,bool,combo,string- with aliases (integer,number,number:float,toggle,boolean) andstring | Label/string | Label | multilineforms for text. Everything after the type is what the Deck renders: label, min, max, step. Example:float | Denoise | 0 | 1 | 0.05 | 0.6.
Outputs value_1 through value_12, all typed *, each feeding any widget via Convert to input on the target node. Give the node a ๐ title and the connected slots render as Deck controls - unconnected slots stay hidden. Combo slots pull their options live from the widget they're wired into.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/Kuroi961/ComfyUI-Drawer.git
pip install -r ComfyUI-Drawer/requirements.txt
Or search ComfyUI-Drawer in ComfyUI Manager. requirements.txt is just Send2Trash; no model files to grab.
Gotchas
- The bigger the node, the more discipline you need. Twelve
def_Nstrings with no labels make an unusable drawer - write the label in every def. *outputs skip type checking, so adef_Nofintfeeding a FLOAT widget breaks downstream, not at the socket. Match the def to the target widget.- Empty
def_N= string behavior; a numeric-looking string arriving at an INT input is the classic symptom. - If twelve slots feel like too many, you're probably trying to expose everything. The Drawer pattern is selective: only the knobs people actually turn. Controls4 covers most workflows.
One more thing worth knowing: because only connected outputs show in the Deck, you can use a 12-slot node for a 5-control workflow and the unused slots simply don't exist from the user's point of view. That's the real reason to reach for the big one - headroom that costs you nothing.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| value_1 | STRING | โ | |
| def_1 | STRING | โ | |
| value_2 | STRING | โ | |
| def_2 | STRING | โ | |
| value_3 | STRING | โ | |
| def_3 | STRING | โ | |
| value_4 | STRING | โ | |
| def_4 | STRING | โ | |
| value_5 | STRING | โ | |
| def_5 | STRING | โ | |
| value_6 | STRING | โ | |
| def_6 | STRING | โ | |
| value_7 | STRING | โ | |
| def_7 | STRING | โ | |
| value_8 | STRING | โ | |
| def_8 | STRING | โ | |
| value_9 | STRING | โ | |
| def_9 | STRING | โ | |
| value_10 | STRING | โ | |
| def_10 | STRING | โ | |
| value_11 | STRING | โ | |
| def_11 | STRING | โ | |
| value_12 | STRING | โ | |
| def_12 | STRING | โ |
Outputs (12)
| Name | Type | Description |
|---|---|---|
| value_1 | * | โ |
| value_2 | * | โ |
| value_3 | * | โ |
| value_4 | * | โ |
| value_5 | * | โ |
| value_6 | * | โ |
| value_7 | * | โ |
| value_8 | * | โ |
| value_9 | * | โ |
| value_10 | * | โ |
| value_11 | * | โ |
| value_12 | * | โ |