SV3D Batch Schedule
Scripting the camera orbit for Stable Video 3D
- clip_vision
- init_image
- vae
- positive
- negative
- latent
This one's worth being upfront about: SV3D - Stability AI's Stable Video 3D - is a 2024-era model, and it's genuinely fallen off the community's radar since. It doesn't show up in current KJNodes discussion, current video-model comparisons, or anywhere else in a search of what people are actually running today; Wan, LTX, and their descendants have taken over the space SV3D briefly occupied. That's not a knock on this node so much as an honest heads-up: if you're here because you found "SV3D" in an old workflow or tutorial, you're looking at a legacy corner of the ecosystem, not the current state of the art for orbital/3D video generation.
What it does, on its own terms: SV3D takes a single input image and generates a video of that object rotating through a camera orbit - Stability's model was trained specifically on 21-frame orbits, which is exactly why batch_size defaults to 21 here, not an arbitrary round number. This node builds the azimuth/elevation conditioning schedule that drives that orbit, rather than making you hand-write the camera path.
How the schedule works
azimuth_points_string and elevation_points_string use a frame:(angle) keyframe syntax you'll recognize if you've touched AnimateDiff-style prompt scheduling anywhere else in ComfyUI - the default reads 0:(0.0), 9:(180.0), 20:(360.0), meaning azimuth starts at 0°, hits 180° by frame 9, and completes a full 360° rotation by frame 20 - a full orbit across the default 21-frame batch. interpolation (linear, ease_in, ease_out, ease_in_out) controls how the camera moves between those keyframes rather than jumping at a constant rate.
One hard rule, straight from the node's own description: the azimuth schedule has to keep moving forward. SV3D is still a video model under the hood, not a true 3D renderer you can point anywhere - you can't schedule the camera to reverse direction partway through an orbit. Elevation has no such restriction; the default sample keeps it flat at 0.0 throughout, but you're free to vary it.
The inputs and outputs that matter
clip_vision,init_image,vae- the standard SV3D conditioning inputs.width/height(default 576 each) andbatch_size(default 21) - match the model's native training resolution and orbit length unless you have a specific reason not to; drifting far from 21 frames means asking the model to do something outside what it was actually trained on.azimuth_points_string/elevation_points_string- your camera schedule.interpolation- the easing between keyframes.- Outputs:
positive,negative,latent- a standard conditioning/latent set that goes straight into a KSampler like any other video generation.
How to install it
Standard KJNodes install: ComfyUI Manager → search "KJNodes for ComfyUI" → install, or cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, pip install -r ComfyUI-KJNodes/requirements.txt, then restart. The pack ships the scheduling logic, not the model - you'll need SV3D's own checkpoint separately, from stabilityai/sv3d on Hugging Face (gated, requires accepting Stability's license on the model page before you can download it).
Common issues & troubleshooting
Frame indices in your schedule strings need to actually fall inside batch_size. A keyframe at frame 25 in a 21-frame batch has nowhere to land.
Backward azimuth values will fight the model, not just look wrong in the schedule. If you write a schedule that dips back down before continuing forward, expect visibly broken output rather than a smooth reversal - SV3D genuinely doesn't support that motion.
Being an older, quieter model, don't expect much community support if something goes sideways. There's no active, current troubleshooting thread to lean on here the way there is for the video models everyone's actively using - you're mostly working from the node's own description and the model card.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| clip_vision | CLIP_VISION | — | |
| init_image | IMAGE | — | |
| vae | VAE | — | |
| width | INT | 57616–16384 | — |
| height | INT | 57616–16384 | — |
| batch_size | INT | 211–4096 | — |
| interpolation | COMBO | 4 options: linear, ease_in, ease_out, ease_in_out | |
| azimuth_points_string | STRING | 0:(0.0), 9:(180.0), 20:(360.0) | — |
| elevation_points_string | STRING | 0:(0.0), 9:(0.0), 20:(0.0) | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |