calesthio/OpenMontage · error · ValueError

image_to_video requires reference_image_url for api_family=t

Error message

image_to_video requires reference_image_url for api_family=turbo

What it means

Error "image_to_video requires reference_image_url for api_family=turbo" thrown in calesthio/OpenMontage.

Source

Thrown at tools/video/kling_official_video.py:358

    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",
        }

    def _build_omni_request(self, inputs: dict[str, Any], operation: str) -> dict[str, Any]:
        explicit_model = inputs.get("model_name") or inputs.get("model_variant")

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Set reference_image_url to a public URL when calling image_to_video with api_family=turbo.
  2. If you only have a local file, either upload it first or switch to api_family=classic which accepts local paths.

When it happens

Trigger: image_to_video with api_family=turbo is called without reference_image_url.

Common situations: See trigger scenarios.


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