Spaces:
Runtime error
Runtime error
| import requests | |
| import gradio as gr | |
| import base64 | |
| # Function to call the NVIDIA API and generate a video | |
| def generate_video(image): | |
| # Convert the uploaded image to a base64 string | |
| with open(image, "rb") as img_file: | |
| image_base64 = base64.b64encode(img_file.read()).decode('utf-8') | |
| invoke_url = "https://ai.api.nvidia.com/v1/genai/stabilityai/stable-video-diffusion" | |
| headers = { | |
| "Authorization": "Bearer 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", | |
| "Accept": "application/json", | |
| } | |
| payload = { | |
| "image": f"data:image/png;base64,{image_base64}", | |
| "cfg_scale": 2.5, | |
| "seed": 0 | |
| } | |
| response = requests.post(invoke_url, headers=headers, json=payload) | |
| response.raise_for_status() | |
| response_body = response.json() | |
| # Assuming the response contains a URL to the generated video | |
| video_url = response_body.get('video_url') | |
| return video_url | |
| # Create a Gradio interface with a heading | |
| def create_interface(): | |
| title = "Moving Product Shots" | |
| # Gradio Interface | |
| iface = gr.Interface( | |
| fn=generate_video, | |
| inputs=gr.Image(type="filepath", label="Upload Your Product Image"), | |
| outputs=gr.Video(label="Generated Product Video"), # Use gr.Video to display the video output | |
| title=title, | |
| description="Upload a product shot to generate a moving video version of it." | |
| ) | |
| iface.launch() | |
| # Run the interface | |
| create_interface() | |