Comfy-Org/ComfyUI · error · ValueError
kling-video-o1 does not support storyboards.
Error message
kling-video-o1 does not support storyboards.
What it means
Client-side guard rejecting storyboard usage with kling-video-o1: storyboards are detected as enabled when the storyboards dict is non-None and its 'storyboards' key is not 'disabled', and that combination with o1 raises. The o1 model path does not implement multi-shot/storyboard prompting.
Source
Thrown at comfy_api_nodes/nodes_kling.py:708
prompt: str,
aspect_ratio: str,
duration: int,
resolution: str = "1080p",
storyboards: dict | None = None,
generate_audio: bool = False,
seed: int = 0,
) -> IO.NodeOutput:
_ = seed
if model_name == "kling-video-o1":
if duration not in (5, 10):
raise ValueError("kling-video-o1 only supports durations of 5 or 10 seconds.")
if generate_audio:
raise ValueError("kling-video-o1 does not support audio generation.")
if resolution == "4k":
raise ValueError("kling-video-o1 does not support 4k resolution.")
stories_enabled = storyboards is not None and storyboards["storyboards"] != "disabled"
if stories_enabled and model_name == "kling-video-o1":
raise ValueError("kling-video-o1 does not support storyboards.")
validate_string(prompt, strip_whitespace=True, min_length=0 if stories_enabled else 1, max_length=2500)
multi_shot = None
multi_prompt_list = None
if stories_enabled:
count = int(storyboards["storyboards"].split()[0])
multi_shot = True
multi_prompt_list = []
for i in range(1, count + 1):
sb_prompt = storyboards[f"storyboard_{i}_prompt"]
sb_duration = storyboards[f"storyboard_{i}_duration"]
validate_string(sb_prompt, field_name=f"storyboard_{i}_prompt", min_length=1, max_length=512)
multi_prompt_list.append(
MultiPromptEntry(
index=i,
prompt=sb_prompt,
duration=str(sb_duration),
)View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Set storyboards to 'disabled' when using kling-video-o1
- Switch to a storyboard-capable Kling model (v2 family) to keep multi-shot prompting
- Express multi-scene intent inside the single o1 prompt instead of storyboard slots
Example fix
// before
model_name = "kling-video-o1"; storyboards = {"storyboards": "3 shots", ...}
// after
model_name = "kling-video-o1"; storyboards = None # or {"storyboards": "disabled"} Defensive patterns
Strategy: validation
Validate before calling
def storyboards_enabled(storyboards: dict | None) -> bool:
return storyboards is not None and storyboards.get("storyboards") != "disabled"
def o1_storyboards_ok(model_name: str, storyboards: dict | None) -> bool:
return model_name != "kling-video-o1" or not storyboards_enabled(storyboards)
assert o1_storyboards_ok(model_name, storyboards) Type guard
def storyboard_combo_valid(model_name: str, storyboards: dict | None) -> bool:
if model_name != "kling-video-o1":
return True
return storyboards is None or storyboards.get("storyboards") == "disabled" Try / catch
try:
out = await kling_t2v_node(model_name=model, storyboards=storyboards, ...)
except ValueError as e:
if "does not support storyboards" in str(e):
out = await kling_t2v_node(model_name=model, storyboards=None, ...)
else:
raise Prevention
- Set the storyboards group to 'disabled' before switching to o1
- Move multi-scene direction into a single descriptive prompt for o1 runs
When it happens
Trigger: Passing a storyboard group (storyboards != 'disabled') together with model_name='kling-video-o1'; enabling the storyboard feature then switching models; programmatic runs including a storyboards dict.
Common situations: Reusing storyboard-enabled workflows after changing the model; the storyboard UI group surviving a model swap it was built for another model.
Related errors
- kling-video-o1 only supports durations of 5 or 10 seconds.
- kling-video-o1 does not support audio generation.
- kling-video-o1 does not support 4k resolution.
- Total storyboard duration ({total_storyboard_duration}s) mus
- Positive prompt is empty
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/7ae3ce7562506b08.
Report an issue: GitHub.