calesthio/OpenMontage · error · ValueError

multi_prompt must be a list

Error message

multi_prompt must be a list

What it means

Error "multi_prompt must be a list" thrown in calesthio/OpenMontage.

Source

Thrown at tools/video/kling_official_video.py:481

        if "watermark" in inputs:
            payload["watermark_info"] = {"enabled": bool(inputs.get("watermark"))}
        callback_url = validate_callback_url(inputs.get("callback_url"))
        if callback_url:
            payload["callback_url"] = callback_url
        if inputs.get("external_task_id"):
            payload["external_task_id"] = inputs["external_task_id"]

    def _copy_multi_shot_fields(self, inputs: dict[str, Any], payload: dict[str, Any]) -> None:
        if inputs.get("multi_shot") is None and not inputs.get("multi_prompt"):
            return
        payload["multi_shot"] = bool(inputs.get("multi_shot", True))
        shot_type = str(inputs.get("shot_type") or "customize")
        if shot_type not in {"customize", "intelligence"}:
            raise ValueError("shot_type must be one of: customize, intelligence")
        payload["shot_type"] = shot_type
        if inputs.get("multi_prompt"):
            if not isinstance(inputs["multi_prompt"], list):
                raise ValueError("multi_prompt must be a list")
            normalized: list[dict[str, Any]] = []
            for item in inputs["multi_prompt"]:
                if not isinstance(item, dict) or not item.get("prompt"):
                    raise ValueError("each multi_prompt item must be an object with prompt")
                allowed = {
                    key: item[key]
                    for key in ("prompt", "duration", "camera_control", "image_refs", "element_refs")
                    if key in item
                }
                normalized.append(allowed)
            payload["multi_prompt"] = normalized

    def _normalize_omni_image_list(
        self,
        inputs: dict[str, Any],
    ) -> tuple[list[dict[str, Any]], list[dict[str, Any]]]:
        image_list: list[dict[str, Any]] = []
        references_used: list[dict[str, Any]] = []

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Pass multi_prompt as a JSON list (array), not a string or object.
  2. Each entry must be an object such as {"prompt": "...", "duration": 5}.

When it happens

Trigger: multi_prompt is passed as a non-list value (e.g. a string or dict) for a multi-prompt Kling video request.

Common situations: See trigger scenarios.


AI-assisted analysis of calesthio/OpenMontage@95e1c3d0ab (2026-08-15). Data as JSON: /api/errors/a3180d7e7724cf85. Report an issue: GitHub.