Working version of wan2.1 diffuser - use this as benchmark
Browse files
app.py
CHANGED
@@ -9,7 +9,6 @@ from diffusers.schedulers.scheduling_unipc_multistep import UniPCMultistepSchedu
|
|
9 |
from diffusers.schedulers.scheduling_flow_match_euler_discrete import FlowMatchEulerDiscreteScheduler
|
10 |
from huggingface_hub import hf_hub_download
|
11 |
from lycoris import create_lycoris_from_weights
|
12 |
-
from transformers import AutoConfig
|
13 |
|
14 |
# Define model options
|
15 |
MODEL_OPTIONS = {
|
@@ -70,12 +69,9 @@ def generate_video(
|
|
70 |
seed = int(seed)
|
71 |
|
72 |
torch.manual_seed(seed)
|
73 |
-
|
74 |
-
# Load config from the model
|
75 |
-
config = AutoConfig.from_pretrained(model_id)
|
76 |
|
77 |
-
vae = AutoencoderKLWan.from_pretrained(model_id, subfolder="vae",
|
78 |
-
pipe = WanPipeline.from_pretrained(model_id, vae=vae,
|
79 |
|
80 |
if scheduler_type == "UniPCMultistepScheduler":
|
81 |
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=flow_shift)
|
@@ -226,7 +222,7 @@ with gr.Blocks() as demo:
|
|
226 |
|
227 |
generate_btn.click(
|
228 |
fn=generate_video,
|
229 |
-
inputs=[
|
230 |
model_choice,
|
231 |
prompt,
|
232 |
negative_prompt,
|
@@ -246,6 +242,12 @@ with gr.Blocks() as demo:
|
|
246 |
outputs=[output_video, used_seed]
|
247 |
)
|
248 |
|
249 |
-
gr.Markdown("""
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
|
251 |
-
demo.launch()
|
|
|
9 |
from diffusers.schedulers.scheduling_flow_match_euler_discrete import FlowMatchEulerDiscreteScheduler
|
10 |
from huggingface_hub import hf_hub_download
|
11 |
from lycoris import create_lycoris_from_weights
|
|
|
12 |
|
13 |
# Define model options
|
14 |
MODEL_OPTIONS = {
|
|
|
69 |
seed = int(seed)
|
70 |
|
71 |
torch.manual_seed(seed)
|
|
|
|
|
|
|
72 |
|
73 |
+
vae = AutoencoderKLWan.from_pretrained(model_id, subfolder="vae", torch_dtype=torch.float32)
|
74 |
+
pipe = WanPipeline.from_pretrained(model_id, vae=vae, torch_dtype=torch.float16)
|
75 |
|
76 |
if scheduler_type == "UniPCMultistepScheduler":
|
77 |
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=flow_shift)
|
|
|
222 |
|
223 |
generate_btn.click(
|
224 |
fn=generate_video,
|
225 |
+
inputs=[
|
226 |
model_choice,
|
227 |
prompt,
|
228 |
negative_prompt,
|
|
|
242 |
outputs=[output_video, used_seed]
|
243 |
)
|
244 |
|
245 |
+
gr.Markdown("""
|
246 |
+
## Tips for best results:
|
247 |
+
- Smaller videos: Flow shift 2.0–5.0
|
248 |
+
- Larger videos: Flow shift 7.0–12.0
|
249 |
+
- Use frame count in 4k+1 form (e.g., 33, 65)
|
250 |
+
- Limit frame count and resolution to avoid timeout
|
251 |
+
""")
|
252 |
|
253 |
+
demo.launch()
|