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() | |