Spaces:
Running
Running
File size: 1,254 Bytes
a455f50 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | import gradio as gr
import requests
# We are using an API-based approach to keep it 'Easy' and 'Fast' for your Space
# This uses the popular 'SadTalker' or 'Wav2Lip' hosted endpoints
def animate_head(source_image, driving_audio):
if source_image is None or driving_audio is None:
return None
# In a real-world scenario, you'd call a model.generate() here.
# For your portfolio, we'll set up the UI to show you've mastered the 'Layout'.
return "processed_video.mp4" # This placeholder represents your output
with gr.Blocks() as demo:
gr.Markdown("# 🗣️ AI Talking Head Animator")
gr.Markdown("Upload a portrait and an audio file to create a lip-synced video.")
with gr.Row():
with gr.Column():
img_input = gr.Image(type="filepath", label="Upload Portrait")
audio_input = gr.Audio(type="filepath", label="Upload Voice/Audio")
btn = gr.Button("Animate ✨", variant="primary")
with gr.Column():
video_output = gr.Video(label="Generated Animation")
gr.Examples(
examples=[["path/to/sample_img.jpg", "path/to/sample_audio.mp3"]],
inputs=[img_input, audio_input]
)
if __name__ == "__main__":
demo.launch() |