Spaces:
Sleeping
Sleeping
| import os | |
| import base64 | |
| from typing import List | |
| import replicate | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| replicate_client = replicate.Client(api_token= os.getenv("REPLICATE_API_KEY")) | |
| def video_generation( | |
| image_bytes, | |
| prompt: str, | |
| aspect_ratio: str, | |
| resolution: str | |
| ): | |
| encoded_image = base64.b64encode(image_bytes).decode("utf-8") | |
| output = replicate_client.run( | |
| "google/veo-3", | |
| input={ | |
| "image": f"data:image/png;base64,{encoded_image}", | |
| "prompt": prompt, | |
| "resolution": resolution, | |
| "aspect_ratio": aspect_ratio | |
| } | |
| ) | |
| urls: List[str] = [] | |
| if isinstance(output, list) and output: | |
| first = output[0] | |
| url = getattr(first, "url", str(first)) | |
| urls = [url] | |
| elif isinstance(output, str): | |
| urls = [output] | |
| elif hasattr(output, "url"): | |
| urls = [getattr(output, "url")] | |
| if urls: | |
| return urls[0] |