calesthio/OpenMontage · error · ValueError

Video Omni requires video URLs; local video paths cannot be

Error message

Video Omni requires video URLs; local video paths cannot be silently uploaded.

What it means

Error "Video Omni requires video URLs; local video paths cannot be silently uploaded." thrown in calesthio/OpenMontage.

Source

Thrown at tools/video/kling_official_video.py:557

            item_type="first_frame",
        )
        add_image(
            normalize_image_input(inputs.get("reference_tail_image_url"), inputs.get("reference_tail_image_path")),
            kind="reference_tail_image",
            item_type="end_frame",
        )
        for url in inputs.get("reference_image_urls") or []:
            add_image(normalize_image_input(url=url), kind="reference_image_urls")
        for path in inputs.get("reference_image_paths") or []:
            add_image(normalize_image_input(path=path), kind="reference_image_paths")
        return image_list, references_used

    def _normalize_omni_video_list(
        self,
        inputs: dict[str, Any],
    ) -> tuple[list[dict[str, Any]], list[dict[str, Any]]]:
        if inputs.get("reference_video_path") or inputs.get("video_paths"):
            raise ValueError("Video Omni requires video URLs; local video paths cannot be silently uploaded.")

        video_list: list[dict[str, Any]] = []
        references_used: list[dict[str, Any]] = []

        def add_video(item: dict[str, Any], source_type: str) -> None:
            if item.get("video_path"):
                raise ValueError("Video Omni requires video URLs; local video paths cannot be silently uploaded.")
            video_url = item.get("video_url") or item.get("url")
            if not video_url:
                raise ValueError("video_list items must include video_url")
            record = {"video_url": video_url}
            if item.get("refer_type"):
                record["refer_type"] = item["refer_type"]
            if "keep_original_sound" in item:
                value = item["keep_original_sound"]
                record["keep_original_sound"] = "yes" if value is True else "no" if value is False else value
            video_list.append(record)
            references_used.append(

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Pass video URLs (public HTTPS) in video_list; the Omni endpoint does not accept local video paths.
  2. Upload local videos to a public/signed URL first, then reference that URL.

When it happens

Trigger: Kling Omni video is given local video file paths; the API requires hosted video 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/42f7c204364e5700. Report an issue: GitHub.