# app.py import gradio as gr from hunyuan_model import HunyuanVideoPipeline from diffusers.utils import export_to_video import huggingface_hub import spaces @spaces.GPU(duration=120) def generate_video(image, video_length=85, infer_steps=30, seed=123): pipeline = HunyuanVideoPipeline.from_pretrained( "AeroScripts/leapfusion-hunyuan-image2video", variant="fp8", torch_dtype=torch.float16 ) generator = torch.Generator().manual_seed(seed) frames = pipeline( image, video_length=video_length, num_inference_steps=infer_steps, generator=generator ).frames video_path = export_to_video(frames) return video_path interface = gr.Blocks(title="Hunyuan-ITV") with interface: gr.Markdown("# Hunyuan Image-to-Video Converter") with gr.Row(): with gr.Column(): input_image = gr.Image(label="Input Image", type="filepath") video_length = gr.Slider(16, 120, value=85, label="Frame Count") infer_steps = gr.Slider(10, 50, value=30, step=5, label="Inference Steps") seed = gr.Number(123, label="Random Seed") submit_btn = gr.Button("Generate Video") with gr.Column(): output_video = gr.Video(label="Generated Video") submit_btn.click( generate_video, inputs=[input_image, video_length, infer_steps, seed], outputs=output_video ) if __name__ == "__main__": interface.launch(server_name="0.0.0.0", server_port=7860)