StableZero123_Conditioning_Batched
Stable Zero123 with batching
- clip_vision
- init_image
- vae
- positive
- negative
- latent
Stable Zero123 is the "look at this object from the side" model - a Stability release that turns a single image of an object into a 3D-ish understanding by generating it from other camera angles. StableZero123_Conditioning_Batched is the conditioning node for that model, with a batch twist: it lets you generate a whole batch of views at once, each at a different elevation and azimuth, so you get a full turntable sweep in a single sampler run instead of one angle at a time.
How it works: the node takes your init_image, runs it through clip_vision (Stable Zero123's CLIP vision encoder) to get the image's pooled embedding, and through the vae to get a latent that's attached as concat_latent_image. Then it builds camera embeddings - the positional encoding of (elevation, azimuth) - and concatenates them onto the pooled image embedding to form the positive conditioning. For each item in batch_size, it increments elevation and azimuth by elevation_batch_increment and azimuth_batch_increment, so item 0 might be (0°, 0°), item 1 (0°, 30°), item 2 (0°, 60°), and so on. The negative conditioning is the same structure but zeroed out, and the latent output is an empty [batch, 4, h/8, w/8] noise target. Outputs: positive, negative, latent - all three feed the sampler.
The inputs worth touching: clip_vision, init_image, vae, width/height (256×256 default - this model was trained at low res), batch_size, and then the two that make batching useful: elevation/azimuth set the first item's angle, and the two _batch_increment fields space the rest of the batch around it. Set azimuth_batch_increment: 30 with batch_size: 12 and you get a full 360° orbit in one run.
The sibling single-image node (StableZero123_Conditioning) does one angle at a time; the _Batched variant is the one to reach for when you actually want to reconstruct or inspect an object. Same model, same workflow, just a per-item camera angle.
It's core (comfy_extras/nodes_stable3d.py), ships with ComfyUI, no install. Load the Zero123 checkpoint through a checkpoint loader and the CLIP vision encoder through the clip-vision loader, and you're set.
Where people trip up: using a big modern resolution instead of the model's 256-ish comfort zone - Zero123 was trained small and quality falls off fast as you scale up. And forgetting that the increments are additive per item in the batch, so mixing elevation/azimuth with increments means the first item is at the base angle and every item after shifts. If your sweep looks like it's missing the front view, check your base azimuth, not the increments.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_vision | CLIP_VISION | — | |
| init_image | IMAGE | — | |
| vae | VAE | — | |
| width | INT | 25616–16384 | — |
| height | INT | 25616–16384 | — |
| batch_size | INT | 11–4096 | — |
| elevation | FLOAT | 0.0-180–180 | — |
| azimuth | FLOAT | 0.0-180–180 | — |
| elevation_batch_increment | FLOAT | 0.0-180–180 | — |
| azimuth_batch_increment | FLOAT | 0.0-180–180 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |