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

  1. Set storyboards to 'disabled' when using kling-video-o1
  2. Switch to a storyboard-capable Kling model (v2 family) to keep multi-shot prompting
  3. 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

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


AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14). Data as JSON: /api/errors/7ae3ce7562506b08. Report an issue: GitHub.