Rodin - BBox Controlnet
It says ControlNet. It is not a ControlNet.
- bbox
Let's get this out of the way: the Rodin - BBox Controlnet node has nothing to do with the ControlNet you know from image generation. No model weights, no conditioning, no control strength. If the knowledge-base ControlNet essay is your mental model, unlearn it for a second - this is a glorified dimension formatter, and that's fine, because that's what it's for.
What it does
It takes three integers - Width, Height, Length, each 1–300 (default 100) - and spits out a bbox string like [100, 100, 100]. That string is exactly what the Rodin generation nodes accept in their optional bbox input. Wire this node's output into, say, the bbox socket on the Gen 2.5 Regular Image node and you're telling the API the physical size of the object's bounding box in centimeters. The README even has a dedicated screenshot for this: "How to set Model height (in cm)." It's how you make sure your 3D chair comes out chair-sized instead of model-railroad-sized.
The mechanism is literally that - check the source and main_func just builds str([Width, Height, Length]). There's no API call here at all. The node doesn't need a key, doesn't need the internet, and works whether or not the rest of the pack is even functional.
Where it fits in the workflow
The generation nodes' optional bbox input expects a string, and this node exists so you get three tidy number boxes instead of typing [120, 60, 60] by hand. That's the whole value. Two things worth knowing:
- It's optional. Leave
bboxunwired and Rodin just makes the object whatever size it wants, which is fine for drafts. - Some nodes also have a separate height_cm optional input - a single height in centimeters that scales proportionally. The bbox node controls all three dimensions explicitly, which is the stricter option.
Honest sizing advice
A bounding box of [100, 100, 100] is 1 meter cubed - humanoid-friendly. Characters typically want height around 170–180, a mug wants single digits, and a car is pushing toward 450. Set it to what the object is, not what looks nice in the preview. And remember the unit is centimeters, so the defaults will make a lot of everyday objects absurdly large if you just hit "Run" without thinking.
Installing it
Same pack as everything else here:
cd ComfyUI/custom_nodes
git clone https://github.com/DeemosTech/ComfyUI-Rodin.git
pip install -r requirements.txt
Or grab "ComfyUI-Rodin" via ComfyUI Manager and restart. There are no model files and no heavy dependencies - this node would work with the Python standard library alone.
Troubleshooting
Because it's pure string formatting, there's essentially nothing to break. If a downstream node rejects your bbox, the usual culprit is a format mismatch - this node emits exactly [W, H, L] with brackets and commas, which is what the API expects. If you're typing the string manually somewhere, match that format. And no, it won't ever give you a MISS_API_KEY - that's the one thing it can't do.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| Width | INT | 1001–300 | — |
| Height | INT | 1001–300 | — |
| Length | INT | 1001–300 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| bbox | STRING | — |