animated_image / app.py
jainakshat687's picture
Update app.py
5269d3b verified
import gradio as gr
import numpy as np
import random
import torch
from diffusers import DiffusionPipeline
import imageio
from PIL import Image
device = "cpu"
pipe = DiffusionPipeline.from_pretrained(
"stabilityai/sdxl-turbo",
torch_dtype=torch.float32
).to(device)
def generate_animation(prompt):
image = pipe(
prompt=prompt,
num_inference_steps=2,
guidance_scale=0.0
).images[0]
frames = []
for i in range(10):
scale = 1 + (i * 0.03)
w, h = image.size
resized = image.resize((int(w*scale), int(h*scale)))
# crop center
left = (resized.width - w)//2
top = (resized.height - h)//2
frame = resized.crop((left, top, left+w, top+h))
frames.append(frame)
gif_path = "animation.gif"
imageio.mimsave(gif_path, frames, fps=5)
return gif_path
with gr.Blocks() as demo:
gr.Markdown("# 🎬 CPU AI Animation (Lightweight)")
prompt = gr.Textbox(label="Enter Prompt")
output = gr.Image(type="filepath")
btn = gr.Button("Generate Animation")
btn.click(generate_animation, inputs=prompt, outputs=output)
demo.launch()