KIE • Shot Sequence
A Storyboard Your Video Model Will Actually Obey
- shot_sequence_json
- total_duration
- director_prompt
No model, no API call, no credits
This one is a text builder. It takes a shared visual setup plus up to six shots and emits three strings. Nothing is generated, nothing leaves your machine, and it costs nothing to run - which makes it the most obviously safe node in this batch and, if you're doing AI video seriously, quietly one of the most useful.
The premise is that video models respond to camera language, and that most people write it badly or not at all. "Wide shot, eye level, 35mm, slow dolly in, gimbal-smooth" is a different sentence than "a woman walks down a street." This node makes you pick that language from dropdowns once, then attach it to each shot, then hands your video node a director's prompt it can actually follow. The node's own description is upfront that these camera controls are translated into prompt guidance when the provider doesn't expose native camera parameters - which is most providers, most of the time. Treat it as structured prompting, not a control layer.
The inputs
Shared setup, required, chosen once for the whole sequence: shot_size (default medium), camera_angle (default eye level), lens (default 35mm natural), motion_speed (default slow), stabilization (default gimbal smooth).
Then six optional shot blocks. Each has four fields - shot_N_prompt, shot_N_duration (an INT, 1 to 15 seconds), shot_N_movement (a 21-value enum: locked-off, pan left/right, tilt up/down, dolly in/out, truck left/right, pedestal up/down, orbit clockwise, and on), and shot_N_focus (a free-text string for things like a rack focus). Only shot 1's prompt is strictly required, and shots with an empty prompt are silently skipped rather than submitted as blanks - so you can build a three-shot sequence by leaving 4–6 alone.
Outputs, and how they wire up
- shot_sequence_json - a JSON array of shots, each with its prompt, duration and full camera block. This is the one that matters:
KIE • Kling 3.0 Omni Studiotakes ashot_sequence_jsoninput for its manual-shot mode, which is exactly this socket. - total_duration - an INT summing the shot durations, for sanity-checking against a provider's clip ceiling.
- director_prompt - a
STRINGof human-readable shot directions, all joined into one line.
For KIE • Seedance Studio, the natural wiring is director_prompt → camera_direction (that node appends camera direction to your prompt) or fold it into prompt yourself. KIE • Camera Director, its single-shot sibling, does the same job for one setup if you don't need a sequence.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Restart ComfyUI. You still need a KIE key for the downstream generation nodes - set it once at Settings → KIE.ai Nodes Next → Connection - but this node itself runs fine without one, so it's a safe first thing to add while you're deciding whether the pack is for you.
How I'd use it
Plan here, generate there. Write the whole sequence, check total_duration against what your video model will actually accept, then send one shot at a time so a bad take costs you one clip instead of a whole sequence. Providers limit clip length hard - several providers cap out around five seconds - so a six-shot, 30-second plan is realistically six generations plus a stitch, and the JSON is what keeps them feeling like one scene.
One caveat the node can't solve: prompt-level camera language is a suggestion, not a constraint. If you need a specific move, check whether your provider has native camera parameters and use those instead - the shot language is still useful for everything that doesn't.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| shot_size | COMBO | medium | 9 options: extreme wide, wide, full body, medium wide, medium, medium close-up, +3 |
| camera_angle | COMBO | eye level | 10 options: eye level, low angle, high angle, bird's-eye, worm's-eye, Dutch angle, +4 |
| lens | COMBO | 35mm natural | 11 options: 14mm ultra-wide, 18mm wide, 24mm cinematic wide, 35mm natural, 50mm standard, 85mm portrait, +5 |
| motion_speed | COMBO | slow | 6 options: very slow, slow, moderate, fast, very fast, speed ramp |
| stabilization | COMBO | gimbal smooth | 5 options: tripod stable, gimbal smooth, steadicam organic, handheld subtle, handheld energetic |
| shot_1_prompt | STRING | Establish the subject and environment | — |
| shot_1_duration | INT | 21–15 | — |
| shot_1_movement | COMBO | locked-off | 21 options: locked-off, pan left, pan right, tilt up, tilt down, dolly in, +15 |
| shot_1_focus | STRING | Optional per-shot focus behavior, such as a rack focus or deep focus. | |
| shot_2_promptopt | STRING | — | |
| shot_2_durationopt | INT | 21–15 | — |
| shot_2_movementopt | COMBO | push-in with parallax | 21 options: locked-off, pan left, pan right, tilt up, tilt down, dolly in, +15 |
| shot_2_focusopt | STRING | Optional per-shot focus behavior, such as a rack focus or deep focus. | |
| shot_3_promptopt | STRING | — | |
| shot_3_durationopt | INT | 21–15 | — |
| shot_3_movementopt | COMBO | push-in with parallax | 21 options: locked-off, pan left, pan right, tilt up, tilt down, dolly in, +15 |
| shot_3_focusopt | STRING | Optional per-shot focus behavior, such as a rack focus or deep focus. | |
| shot_4_promptopt | STRING | — | |
| shot_4_durationopt | INT | 21–15 | — |
| shot_4_movementopt | COMBO | push-in with parallax | 21 options: locked-off, pan left, pan right, tilt up, tilt down, dolly in, +15 |
| shot_4_focusopt | STRING | Optional per-shot focus behavior, such as a rack focus or deep focus. | |
| shot_5_promptopt | STRING | — | |
| shot_5_durationopt | INT | 21–15 | — |
| shot_5_movementopt | COMBO | push-in with parallax | 21 options: locked-off, pan left, pan right, tilt up, tilt down, dolly in, +15 |
| shot_5_focusopt | STRING | Optional per-shot focus behavior, such as a rack focus or deep focus. | |
| shot_6_promptopt | STRING | — | |
| shot_6_durationopt | INT | 21–15 | — |
| shot_6_movementopt | COMBO | push-in with parallax | 21 options: locked-off, pan left, pan right, tilt up, tilt down, dolly in, +15 |
| shot_6_focusopt | STRING | Optional per-shot focus behavior, such as a rack focus or deep focus. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| shot_sequence_json | STRING | — |
| total_duration | INT | — |
| director_prompt | STRING | — |