CPlus Control Box
Every sampler dial in one node (and the catch)
- positive_prompt
- negative_prompt
- model
- vae
- model
- positive
- negative
- latent_out
- seed
- cfg
- steps
- denoise
- scaler
- vae
- width
- height
- latent_width
- latent_height
If you've ever squinted at a ComfyUI graph with a dozen KSampler widgets scattered around and thought "I wish all these dials lived in one place," that's exactly the itch the CPlus Control Box scratches. Feed it your model, both prompts, and your VAE, set the seed, cfg, steps, denoise, and resolution in a single panel, and it hands back a ready-made latent plus every one of those settings as typed outputs you can wire anywhere. One box, all the sampler math, no hunting across the graph.
What it actually is
It's a parameter hub, not a sampler. It doesn't generate anything itself - it bundles. The name and the marketing ("works with all models") make it sound like a magic quality button, but the honest read is simpler: it's an all-in-one dashboard for the inputs a KSampler eats, plus the empty latent a sampler starts from.
That's the same convenience pattern as rgthree's Context nodes or a bank of primitive nodes, except instead of bundling arbitrary values down one wire, this one bundles specifically the sampler settings and emits them on separate, typed outputs. The nice side effect: because everything leaves as real typed data rather than widgets, you can feed seed, cfg, or steps into a text/math/script node if you ever want to drive them programmatically.
The inputs and outputs that matter
Everything here is a required input - you can't leave a dial empty. The four data inputs are model, positive_prompt, negative_prompt, and vae, which is what you're actually passing through. The rest are the dials:
seed(default 1234567891),cfg(8),steps(20),denoise(1) - the standard sampler knobs, same ranges you'd see on a KSampler.width/height(1024/1024) - your working resolution, passed through as outputs.scaler(1.0, range 0.01–4) - a multiplier that scales the size of the latent the node creates. This is the slightly unusual knob; think of it as "build my latent at this fraction/multiple of the base resolution."latent_width/latent_height/latent_batch_size- the explicit dimensions and batch count for the latent it generates, which come out aslatent_out.
On the output side you get all fourteen: model, positive, negative, latent_out, vae, and the numbers (seed, cfg, steps, denoise, scaler, width, height, latent_width, latent_height). Wire model, positive, negative, latent_out, seed, cfg, steps, and denoise straight into a KSampler, and vae into a VAEDecode, and you have a complete txt2img in two nodes past the loader.
How to install it - the catch
Here's where it gets real. The GitHub link in the pack metadata returns a 404 - the repo isn't public. That means ComfyUI Manager's "install via git" path and the usual git clone command won't work for this one, no matter how many times you refresh. The README's actual distribution is a zip you buy/download through the author's Ko-fi page (ko-fi.com/s/2e67e2ae70).
So the real install, straight from the README:
# 1. Download the zip from the Ko-fi link
# 2. Extract it and RENAME the folder from CPlus_Ardenius-main to CPlus_Ardenius
# 3. Copy that folder into ComfyUI/custom_nodes/
# 4. Restart ComfyUI, click Refresh, then double-click the canvas and search "CPlus control box"
The folder rename is the one step that will silently break everything if you skip it - ComfyUI won't find a node module named ...-main. Good news: the pack has no model files and no Python dependencies to download, so once the folder is in place it just works.
Common issues
The folder name is the classic gotcha - if the node doesn't appear in the node menu, check you dropped CPlus_Ardenius (no -main) into custom_nodes/, then restart the server and hit Refresh in the UI. That's also the standard fix when ComfyUI loads but the node is missing after a zip install. One thing to know going in: this is a tiny, single-author pack with essentially zero community footprint - search results for it are just the author's own announcement posts from 2024, so don't expect a support thread when something's off.
The honest verdict
It's a tidy quality-of-life node for people who want their sampler settings in one visible panel - genuinely nicer to look at than a dozen floating KSamplers. But it adds no capability you can't replicate with stock nodes plus a couple of primitives, it's paywalled behind a Ko-fi download, and the dead GitHub link is a real smell for a beginner. If the one-panel ergonomics speak to you, it does its job. If you're just starting out, save the money and get comfortable wiring a KSampler by hand first - the skill transfers, and you'll understand what this box is hiding.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| cfg | FLOAT | 8.00.1–15 | — |
| steps | INT | 201–100 | — |
| denoise | FLOAT | 1.000.01–1 | — |
| scaler | FLOAT | 1.000.01–4 | — |
| seed | INT | 12345678911–9999999999 | — |
| positive_prompt | CONDITIONING | — | |
| negative_prompt | CONDITIONING | — | |
| model | MODEL | — | |
| vae | VAE | — | |
| width | INT | 102464–8192 | — |
| height | INT | 102464–8192 | — |
| latent_width | INT | 102464–8192 | — |
| latent_height | INT | 102464–8192 | — |
| latent_batch_size | INT | 11–4096 | — |
Outputs (14)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent_out | LATENT | — |
| seed | INT | — |
| cfg | FLOAT | — |
| steps | INT | — |
| denoise | FLOAT | — |
| scaler | FLOAT | — |
| vae | VAE | — |
| width | INT | — |
| height | INT | — |
| latent_width | INT | — |
| latent_height | INT | — |