Image_and_Video / app.py
chburhan64's picture
Update app.py
505f557 verified
import gradio as gr
import torch
from diffusers import StableDiffusionPipeline, DiffusionPipeline
import os
# Load Text-to-Image Model (Redshift Diffusion)
device = "cuda" if torch.cuda.is_available() else "cpu"
image_pipe = StableDiffusionPipeline.from_pretrained(
"nitrosocke/redshift-diffusion", torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32
).to(device)
# Load Image-to-Video Model (Zeroscope v2 XL)
video_model = DiffusionPipeline.from_pretrained(
"cerspense/zeroscope_v2_XL", torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32
).to(device)
# Function to Generate Image from Text
def generate_image(prompt):
image = image_pipe(prompt).images[0]
image_path = "generated_image.png"
image.save(image_path)
return image_path
# Function to Convert Image to Video
def generate_video(image_path):
image = image_pipe(prompt).images[0] # Reload image for video generation
video_frames = video_model(image) # Generate video frames
video_path = "generated_video.mp4"
video_frames.save(video_path) # Save output video
return video_path
# Gradio Interface
with gr.Blocks() as demo:
gr.Markdown("## 🎨 AI Cartoon Image & Video Generator")
with gr.Row():
prompt_input = gr.Textbox(label="Enter Text Prompt", placeholder="A 3D cartoon cat playing in a park")
generate_image_btn = gr.Button("Generate Image")
image_output = gr.Image(label="Generated Image")
with gr.Row():
generate_video_btn = gr.Button("Convert to Video")
video_output = gr.Video(label="Generated Video")
download_image = gr.File(label="Download Image")
download_video = gr.File(label="Download Video")
generate_image_btn.click(generate_image, inputs=[prompt_input], outputs=[image_output, download_image])
generate_video_btn.click(generate_video, inputs=[image_output], outputs=[video_output, download_video])
demo.launch()