fearflixai / app.py
LittleLirow's picture
Mock story for testing
5673360
raw
history blame
No virus
1.83 kB
import animation
import bgm
import join
import narrator
import story
import subtitles
import gradio as gr
def generate_video(text, auth_openai, auth_elevenlabs, auth_replicate, auth_rev):
generated_story = "Once upon a time, there was a sample story. The end." # story.text2story(text, auth_openai)
narrator.text2voice(generated_story, "audio_out.mp3", auth_elevenlabs)
deforum_str, max_frames = subtitles.audio2subtitle(auth_rev)
animation.story2video(deforum_str, max_frames, auth_replicate)
# generated_music = bgm.text2audio(text=text, duration=20, guidance_scale=5, random_seed=24, n_candidates=3)
generated_video = join.join_artifacts()
return [generated_video, generated_video]
with gr.Blocks() as demo:
gr.Markdown("Generate a narrated horror story video from a text prompt.")
with gr.Row():
with gr.Column():
auth_openai_input = gr.Textbox(label="OpenAI Auth Key", max_lines=1, type='password')
auth_eleven_input = gr.Textbox(label="Eleven Labs Auth Key", max_lines=1, type='password')
auth_replicate_input = gr.Textbox(label="Replicate Auth Key", max_lines=1, type='password')
auth_rev_input = gr.Textbox(label="Rev AI Auth Key", max_lines=1, type='password')
prompt_input = gr.Textbox(label="Write me a story about...", lines=5)
generate_button = gr.Button("Generate Video")
with gr.Column():
video_out = gr.Video(label="Video Player", interactive=False)
output_file = gr.File(label="File Output")
output_file.type = "video/mp4"
generate_button.click(generate_video, inputs=[prompt_input, auth_openai_input, auth_eleven_input, auth_replicate_input, auth_rev_input], outputs=[video_out, output_file])
demo.launch(debug=True, enable_queue=True)