{"record":{"id":"09e00f19178cd4f6","repo":"calesthio/OpenMontage","slug":"image-to-video-requires-reference-image-url-for-ap","errorCode":null,"errorMessage":"image_to_video requires reference_image_url for api_family=turbo","messagePattern":"image_to_video requires reference_image_url for api_family=turbo","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"tools/video/kling_official_video.py","lineNumber":358,"sourceCode":"\n    def _build_turbo_request(self, inputs: dict[str, Any], operation: str) -> dict[str, Any]:\n        settings = {\n            \"resolution\": inputs.get(\"resolution\", \"720p\"),\n            \"duration\": int(str(inputs.get(\"duration\", \"5\"))),\n        }\n        options = self._options_payload(inputs)\n        if operation == \"text_to_video\":\n            settings[\"aspect_ratio\"] = inputs.get(\"aspect_ratio\", \"16:9\")\n            payload = {\"prompt\": self._prompt(inputs), \"settings\": settings}\n            if options:\n                payload[\"options\"] = options\n            path = \"/text-to-video/kling-3.0-turbo\"\n        elif operation == \"image_to_video\":\n            if inputs.get(\"reference_image_path\") and not inputs.get(\"reference_image_url\"):\n                raise ValueError(\"Turbo image_to_video requires reference_image_url; local paths cannot be silently uploaded.\")\n            image_url = inputs.get(\"reference_image_url\")\n            if not image_url:\n                raise ValueError(\"image_to_video requires reference_image_url for api_family=turbo\")\n            contents = [{\"type\": \"prompt\", \"text\": self._prompt(inputs)}, {\"type\": \"first_frame\", \"url\": image_url}]\n            payload = {\"contents\": contents, \"settings\": settings}\n            if options:\n                payload[\"options\"] = options\n            path = \"/image-to-video/kling-3.0-turbo\"\n        else:\n            raise ValueError(f\"Unsupported turbo video operation: {operation}\")\n        return {\n            \"protocol\": \"turbo\",\n            \"path\": path,\n            \"payload\": payload,\n            \"operation\": operation,\n            \"api_family\": \"turbo\",\n            \"model\": \"kling-3.0-turbo\",\n        }\n\n    def _build_omni_request(self, inputs: dict[str, Any], operation: str) -> dict[str, Any]:\n        explicit_model = inputs.get(\"model_name\") or inputs.get(\"model_variant\")","sourceCodeStart":340,"sourceCodeEnd":376,"githubUrl":"https://github.com/calesthio/OpenMontage/blob/95e1c3d0ab93482159818560f6a8c8e866b9139f/tools/video/kling_official_video.py#L340-L376","documentation":"Error \"image_to_video requires reference_image_url for api_family=turbo\" thrown in calesthio/OpenMontage.","triggerScenarios":"image_to_video with api_family=turbo is called without reference_image_url.","commonSituations":"See trigger scenarios.","solutions":["Set reference_image_url to a public URL when calling image_to_video with api_family=turbo.","If you only have a local file, either upload it first or switch to api_family=classic which accepts local paths."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"95e1c3d0ab93482159818560f6a8c8e866b9139f","analyzedAt":"2026-08-15T06:31:20.014Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}