Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
import torch
|
| 2 |
-
from diffusers import AutoencoderKLWan, WanPipeline
|
| 3 |
from diffusers.utils import export_to_video
|
| 4 |
from diffusers.loaders.lora_conversion_utils import _convert_non_diffusers_lora_to_diffusers # Keep this if it's the base
|
| 5 |
import gradio as gr
|
|
@@ -307,6 +307,10 @@ pipe = WanPipeline.from_pretrained(
|
|
| 307 |
vae=vae,
|
| 308 |
torch_dtype=torch.bfloat16 # bfloat16 for pipeline
|
| 309 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 310 |
logger.info("Moving pipeline to CUDA...")
|
| 311 |
pipe.to("cuda")
|
| 312 |
|
|
@@ -342,7 +346,7 @@ logger.info("Manual diff_b/diff patches applied.")
|
|
| 342 |
|
| 343 |
# --- Gradio Interface Function ---
|
| 344 |
@spaces.GPU
|
| 345 |
-
def generate_video(prompt, negative_prompt, height, width, num_frames, guidance_scale, steps, fps):
|
| 346 |
logger.info("Starting video generation...")
|
| 347 |
logger.info(f" Prompt: {prompt}")
|
| 348 |
logger.info(f" Negative Prompt: {negative_prompt if negative_prompt else 'None'}")
|
|
@@ -397,7 +401,7 @@ with gr.Blocks() as demo:
|
|
| 397 |
height_input = gr.Slider(minimum=256, maximum=768, step=64, value=480, label="Height (multiple of 8)")
|
| 398 |
width_input = gr.Slider(minimum=256, maximum=1024, step=64, value=832, label="Width (multiple of 8)")
|
| 399 |
with gr.Row():
|
| 400 |
-
num_frames_input = gr.Slider(minimum=16, maximum=100, step=1, value=25, label="Number of Frames")
|
| 401 |
fps_input = gr.Slider(minimum=5, maximum=30, step=1, value=15, label="Output FPS")
|
| 402 |
steps = gr.Slider(minimum=1.0, maximum=30.0, value=4.0, label="Steps")
|
| 403 |
guidance_scale_input = gr.Slider(minimum=1.0, maximum=20.0, step=0.5, value=5.0, label="Guidance Scale")
|
|
|
|
| 1 |
import torch
|
| 2 |
+
from diffusers import AutoencoderKLWan, WanPipeline, UniPCMultistepScheduler
|
| 3 |
from diffusers.utils import export_to_video
|
| 4 |
from diffusers.loaders.lora_conversion_utils import _convert_non_diffusers_lora_to_diffusers # Keep this if it's the base
|
| 5 |
import gradio as gr
|
|
|
|
| 307 |
vae=vae,
|
| 308 |
torch_dtype=torch.bfloat16 # bfloat16 for pipeline
|
| 309 |
)
|
| 310 |
+
flow_shift = 8.0 # 5.0 for 720P, 3.0 for 480P
|
| 311 |
+
pipe.scheduler = UniPCMultistepScheduler.from_config(
|
| 312 |
+
pipe.scheduler.config, flow_shift=flow_shift
|
| 313 |
+
)
|
| 314 |
logger.info("Moving pipeline to CUDA...")
|
| 315 |
pipe.to("cuda")
|
| 316 |
|
|
|
|
| 346 |
|
| 347 |
# --- Gradio Interface Function ---
|
| 348 |
@spaces.GPU
|
| 349 |
+
def generate_video(prompt, negative_prompt, height, width, num_frames, guidance_scale, steps, fps, progress=gr.Progress(track_tqdm=True)):
|
| 350 |
logger.info("Starting video generation...")
|
| 351 |
logger.info(f" Prompt: {prompt}")
|
| 352 |
logger.info(f" Negative Prompt: {negative_prompt if negative_prompt else 'None'}")
|
|
|
|
| 401 |
height_input = gr.Slider(minimum=256, maximum=768, step=64, value=480, label="Height (multiple of 8)")
|
| 402 |
width_input = gr.Slider(minimum=256, maximum=1024, step=64, value=832, label="Width (multiple of 8)")
|
| 403 |
with gr.Row():
|
| 404 |
+
num_frames_input = gr.Slider(minimum=16, maximum=100, step=1, value=25, label="Number of Frames")
|
| 405 |
fps_input = gr.Slider(minimum=5, maximum=30, step=1, value=15, label="Output FPS")
|
| 406 |
steps = gr.Slider(minimum=1.0, maximum=30.0, value=4.0, label="Steps")
|
| 407 |
guidance_scale_input = gr.Slider(minimum=1.0, maximum=20.0, step=0.5, value=5.0, label="Guidance Scale")
|