freeai-app's picture
Create app_base.py
8e701c3 verified
import os
import gradio as gr
import datetime
from gtts import gTTS
from moviepy.editor import ImageClip, AudioFileClip
def generate_image(prompt):
return f"🖼️ Image generated for: {prompt}"
def generate_video(prompt, duration):
img_path = "temp.jpg"
with open(img_path, "wb") as f:
f.write(b"\x00") # placeholder image
tts = gTTS(text=prompt, lang="en")
audio_path = "speech.mp3"
tts.save(audio_path)
img_clip = ImageClip(img_path, duration=duration)
audio_clip = AudioFileClip(audio_path)
img_clip = img_clip.set_audio(audio_clip)
video_path = "output.mp4"
img_clip.write_videofile(video_path, fps=24)
return video_path
def process_request(prompt, duration, request: gr.Request):
img = generate_image(prompt)
vid = generate_video(prompt, duration)
return vid, img, f"🎥 Public mode (no limits in backup)."
with gr.Blocks() as demo:
gr.Markdown("# 🎬 Backup App – Video Generator with Narration")
prompt = gr.Textbox(label="Prompt (Journal Text)")
duration = gr.Slider(5, 60, value=10, step=1, label="Duration (seconds)")
btn = gr.Button("Generate Video")
output_vid = gr.Video()
output_img = gr.Textbox()
status = gr.Markdown()
btn.click(process_request, [prompt, duration], [output_vid, output_img, status])
demo.launch()