# FastVideo VideoGenerator Gradio Demo This is a Gradio-based web interface for generating videos using the FastVideo framework. The demo allows users to create videos from text prompts with various customization options. ## Overview The demo uses the FastVideo framework to generate videos based on text prompts. It provides a simple web interface built with Gradio that allows users to: - Enter text prompts to generate videos - Customize video parameters (dimensions, number of frames, etc.) - Use negative prompts to guide the generation process - Set or randomize seeds for reproducibility --- ## Requirements - Linux-based OS - Python 3.10 - Cuda 12.4 - FastVideo ## Installation ```bash pip install fastvideo ``` ## Usage Run the demo with: ```bash python fastvideo/v1/examples/inference/gradio/gradio_demo.py ``` This will start a web server at `http://0.0.0.0:7860` where you can access the interface. --- ## Model Initialization ```python args = FastVideoArgs(model_path="FastVideo/FastHunyuan-Diffusers", num_gpus=2) generator = VideoGenerator.from_pretrained( model_path=args.model_path, num_gpus=args.num_gpus ) ``` This demo initializes a `VideoGenerator` with the minimum required arguments for inference. Users can seamlessly adjust inference options between generations, including prompts, resolution, video length, or even the number of inference steps, *without ever needing to reload the model*. ## Video Generation The core functionality is in the `generate_video` function, which: 1. Processes user inputs 2. Uses the FastVideo VideoGenerator from earlier to run inference (`generator.generate_video()`) 3. Returns an output path that Gradio uses to display the generated video ## Gradio Interface The interface is built with several components: - A text input for the prompt - A video display for the result - Inference options in a collapsible accordion: - Height and width sliders - Number of frames slider - Guidance scale slider - Inference steps slider - Negative prompt options - Seed controls ### Inference Options - **Height/Width**: Control the resolution of the generated video - **Number of Frames**: Set how many frames to generate - **Guidance Scale**: Control how closely the generation follows the prompt - **Inference Steps**: More steps can improve quality but take longer - **Negative Prompt**: Specify what you don't want to see in the video - **Seed**: Control randomness for reproducible results