From 5ec46ba818e997c36ac65c59b36e79f3bdf29f55 Mon Sep 17 00:00:00 2001 From: SolitaryThinker Date: Mon, 28 Jul 2025 00:59:26 +0000 Subject: [PATCH] checkpoint --- examples/inference/basic/basic.py | 26 ++++++++++++++++++++---- fastvideo/entrypoints/video_generator.py | 3 +++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/examples/inference/basic/basic.py b/examples/inference/basic/basic.py index 37f15b516..3a256f815 100644 --- a/examples/inference/basic/basic.py +++ b/examples/inference/basic/basic.py @@ -1,6 +1,6 @@ from fastvideo import VideoGenerator - -# from fastvideo.configs.sample import SamplingParam +import time +from fastvideo.configs.sample import SamplingParam OUTPUT_PATH = "video_samples" def main(): @@ -9,9 +9,10 @@ def main(): # If a local path is provided, FastVideo will make a best effort # attempt to identify the optimal arguments. generator = VideoGenerator.from_pretrained( + # "weizhou03/Wan2.1-Fun-1.3B-InP-Diffusers", "Wan-AI/Wan2.1-T2V-1.3B-Diffusers", # FastVideo will automatically handle distributed setup - num_gpus=2, + num_gpus=1, use_fsdp_inference=True, dit_cpu_offload=False, vae_cpu_offload=False, @@ -19,7 +20,16 @@ def main(): # image_encoder_cpu_offload=False, ) - # sampling_param = SamplingParam.from_pretrained("Wan-AI/Wan2.1-T2V-1.3B-Diffusers") + sampling_param = SamplingParam.from_pretrained("Wan-AI/Wan2.1-T2V-1.3B-Diffusers") + sampling_param.num_inference_steps = 50 + + # with open('Prompts.txt', 'r') as file: + # prompts = file.readlines() + + # for prompt in prompts: + # prompt = prompt.strip() + # video = generator.generate_video(prompt, output_path=OUTPUT_PATH, save_video=True, sampling_param=sampling_param) + # sampling_param.num_frames = 45 # sampling_param.image_path = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/astronaut.jpg" # Generate videos with the same simple API, regardless of GPU count @@ -28,7 +38,10 @@ def main(): "wide with interest. The playful yet serene atmosphere is complemented by soft " "natural light filtering through the petals. Mid-shot, warm and cheerful tones." ) + start_time = time.perf_counter() video = generator.generate_video(prompt, output_path=OUTPUT_PATH, save_video=True) + end_time = time.perf_counter() + gen_time = end_time - start_time # video = generator.generate_video(prompt, sampling_param=sampling_param, output_path="wan_t2v_videos/") # Generate another video with a different prompt, without reloading the @@ -39,7 +52,12 @@ def main(): "the breeze, enhancing the lion's commanding presence. The tone is vibrant, " "embodying the raw energy of the wild. Low angle, steady tracking shot, " "cinematic.") + start_time = time.perf_counter() video2 = generator.generate_video(prompt2, output_path=OUTPUT_PATH, save_video=True) + end_time = time.perf_counter() + gen_time2 = end_time - start_time + print(f"Time taken to generate video: {gen_time} seconds") + print(f"Time taken to generate video: {gen_time2} seconds") if __name__ == "__main__": diff --git a/fastvideo/entrypoints/video_generator.py b/fastvideo/entrypoints/video_generator.py index 2933b2f05..b17a0460d 100644 --- a/fastvideo/entrypoints/video_generator.py +++ b/fastvideo/entrypoints/video_generator.py @@ -10,6 +10,7 @@ import math import os import time from typing import Any +from copy import deepcopy import imageio import numpy as np @@ -202,6 +203,8 @@ class VideoGenerator: if sampling_param is None: sampling_param = SamplingParam.from_pretrained( fastvideo_args.model_path) + else: + sampling_param = deepcopy(sampling_param) kwargs["prompt"] = prompt sampling_param.update(kwargs)