| |
|
|
|
|
| import click |
| import gradio as gr |
|
|
| import sys |
| sys.path.append("..") |
| from cli import generate_video, configure_model |
|
|
| with gr.Blocks() as demo: |
| gr.Markdown("Video Generator") |
| with gr.Row(): |
| prompt = gr.Textbox( |
| label="Prompt", |
| value="A hand with delicate fingers picks up a bright yellow lemon from a wooden bowl filled with lemons and sprigs of mint against a peach-colored background. The hand gently tosses the lemon up and catches it, showcasing its smooth texture. A beige string bag sits beside the bowl, adding a rustic touch to the scene. Additional lemons, one halved, are scattered around the base of the bowl. The even lighting enhances the vibrant colors and creates a fresh, inviting atmosphere.", |
| ) |
| negative_prompt = gr.Textbox(label="Negative Prompt", value="") |
| seed = gr.Number(label="Seed", value=1710977262, precision=0) |
| with gr.Row(): |
| width = gr.Number(label="Width", value=848, precision=0) |
| height = gr.Number(label="Height", value=480, precision=0) |
| num_frames = gr.Number(label="Number of Frames", value=163, precision=0) |
| with gr.Row(): |
| cfg_scale = gr.Number(label="CFG Scale", value=4.5) |
| num_inference_steps = gr.Number(label="Number of Inference Steps", value=200, precision=0) |
| btn = gr.Button("Generate Video") |
| output = gr.Video() |
|
|
| btn.click( |
| generate_video, |
| inputs=[ |
| prompt, |
| negative_prompt, |
| width, |
| height, |
| num_frames, |
| seed, |
| cfg_scale, |
| num_inference_steps, |
| ], |
| outputs=output, |
| ) |
|
|
|
|
| @click.command() |
| @click.option("--model_dir", required=True, help="Path to the model directory.") |
| @click.option("--cpu_offload", is_flag=True, help="Whether to offload model to CPU") |
| def launch(model_dir, cpu_offload): |
| configure_model(model_dir, cpu_offload) |
| demo.launch() |
|
|
|
|
| if __name__ == "__main__": |
| launch() |
|
|