calesthio/OpenMontage · error · ValueError

Turbo image_to_video requires reference_image_url; local pat

Error message

Turbo image_to_video requires reference_image_url; local paths cannot be silently uploaded.

What it means

Error "Turbo image_to_video requires reference_image_url; local paths cannot be silently uploaded." thrown in calesthio/OpenMontage.

Source

Thrown at tools/video/kling_official_video.py:355

            "references_used": self._reference_metadata_from_classic_payload(payload),
            "element_ids": element_ids(payload.get("element_list")),
        }

    def _build_turbo_request(self, inputs: dict[str, Any], operation: str) -> dict[str, Any]:
        settings = {
            "resolution": inputs.get("resolution", "720p"),
            "duration": int(str(inputs.get("duration", "5"))),
        }
        options = self._options_payload(inputs)
        if operation == "text_to_video":
            settings["aspect_ratio"] = inputs.get("aspect_ratio", "16:9")
            payload = {"prompt": self._prompt(inputs), "settings": settings}
            if options:
                payload["options"] = options
            path = "/text-to-video/kling-3.0-turbo"
        elif operation == "image_to_video":
            if inputs.get("reference_image_path") and not inputs.get("reference_image_url"):
                raise ValueError("Turbo image_to_video requires reference_image_url; local paths cannot be silently uploaded.")
            image_url = inputs.get("reference_image_url")
            if not image_url:
                raise ValueError("image_to_video requires reference_image_url for api_family=turbo")
            contents = [{"type": "prompt", "text": self._prompt(inputs)}, {"type": "first_frame", "url": image_url}]
            payload = {"contents": contents, "settings": settings}
            if options:
                payload["options"] = options
            path = "/image-to-video/kling-3.0-turbo"
        else:
            raise ValueError(f"Unsupported turbo video operation: {operation}")
        return {
            "protocol": "turbo",
            "path": path,
            "payload": payload,
            "operation": operation,
            "api_family": "turbo",
            "model": "kling-3.0-turbo",
        }

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Provide reference_image_url pointing to a publicly accessible HTTPS image.
  2. Upload the local image to a public/signed URL first (e.g. via an asset upload step), then pass that URL — the turbo API will not accept local paths.

When it happens

Trigger: Turbo image_to_video is given a local reference image path; the Turbo API only accepts hosted URLs and local files are not auto-uploaded.

Common situations: See trigger scenarios.


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