calesthio/OpenMontage · error · ValueError

each multi_prompt item must be an object with prompt

Error message

each multi_prompt item must be an object with prompt

What it means

Error "each multi_prompt item must be an object with prompt" thrown in calesthio/OpenMontage.

Source

Thrown at tools/video/kling_official_video.py:485

            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]] = []

        def add_image(value: str | None, *, kind: str, item_type: str | None = None) -> None:
            if not value:
                return

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Make every multi_prompt entry an object containing a non-empty 'prompt' key.
  2. Validate the structure client-side before submitting, e.g. all(isinstance(p, dict) and p.get('prompt') for p in multi_prompt).

When it happens

Trigger: A multi_prompt entry is not an object or lacks the required 'prompt' key.

Common situations: See trigger scenarios.


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