can i use this with guff weights i tried with but the output is blur
#1
by
7iFiNalBoSS
- opened
from diffusers import WanImageToVideoPipeline, UniPCMultistepScheduler, GGUFQuantizationConfig, WanTransformer3DModel
from huggingface_hub import hf_hub_download
from PIL import Image
import requests
from io import BytesIO
from diffusers.utils import export_to_video
# ==============================
# GGUF Model Paths
# ==============================
REPO_ID = "QuantStack/Wan2.2-I2V-A14B-GGUF"
HIGH_NOISE_GGUF = "HighNoise/Wan2.2-I2V-A14B-HighNoise-Q2_K.gguf"
LOW_NOISE_GGUF = "LowNoise/Wan2.2-I2V-A14B-LowNoise-Q2_K.gguf"
high_noise_path = hf_hub_download(repo_id=REPO_ID, filename=HIGH_NOISE_GGUF)
low_noise_path = hf_hub_download(repo_id=REPO_ID, filename=LOW_NOISE_GGUF)
print("Loading quantized transformers...")
transformer_high_noise = WanTransformer3DModel.from_single_file(
high_noise_path,
quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16),
config="FastDM/Wan2.2-I2V-A14B-Merge-Lightning-V1.0-Diffusers",
subfolder="transformer",
torch_dtype=torch.bfloat16,
)
transformer_low_noise = WanTransformer3DModel.from_single_file(
low_noise_path,
quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16),
config="FastDM/Wan2.2-I2V-A14B-Merge-Lightning-V1.0-Diffusers",
subfolder="transformer_2",
torch_dtype=torch.bfloat16,
)
print("Creating sharded pipeline...")
pipe = WanImageToVideoPipeline.from_pretrained(
"Wan-AI/Wan2.2-I2V-A14B-Diffusers",
transformer=transformer_high_noise, # High noise
transformer_2=transformer_low_noise, # Low noise
torch_dtype=torch.bfloat16,
)
# Replace scheduler
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=8.0)
# ==============================
# Shard across multiple GPUs
# ==============================
device_map = {
"transformer": "cuda:0", # put high-noise transformer on GPU 0
"transformer_2": "cuda:1", # put low-noise transformer on GPU 1
"vae": "cuda:0", # keep VAE with transformer on GPU 0
"text_encoder": "cuda:0", # relatively small, put with GPU 0
"scheduler": "cpu" # scheduler is lightweight, keep on CPU
}
pipe = pipe.to(device_map)
print("Loading input image...")
image_url = "https://cloud.inference.sh/u/4mg21r6ta37mpaz6ktzwtt8krr/01k1g7k73eebnrmzmc6h0bghq6.png"
img = Image.open(BytesIO(requests.get(image_url).content)).convert("RGB")
print("Generating video...")
frames = pipe(img, "animate", num_inference_steps=40, guidance_scale=3.5).frames[0]
export_to_video(frames, "wan2.2_sharded.mp4", fps=8)
print("β
Video saved: wan2.2_sharded.mp4")```
from diffusers import WanImageToVideoPipeline, UniPCMultistepScheduler, GGUFQuantizationConfig, WanTransformer3DModel from huggingface_hub import hf_hub_download from PIL import Image import requests from io import BytesIO from diffusers.utils import export_to_video # ============================== # GGUF Model Paths # ============================== REPO_ID = "QuantStack/Wan2.2-I2V-A14B-GGUF" HIGH_NOISE_GGUF = "HighNoise/Wan2.2-I2V-A14B-HighNoise-Q2_K.gguf" LOW_NOISE_GGUF = "LowNoise/Wan2.2-I2V-A14B-LowNoise-Q2_K.gguf" high_noise_path = hf_hub_download(repo_id=REPO_ID, filename=HIGH_NOISE_GGUF) low_noise_path = hf_hub_download(repo_id=REPO_ID, filename=LOW_NOISE_GGUF) print("Loading quantized transformers...") transformer_high_noise = WanTransformer3DModel.from_single_file( high_noise_path, quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16), config="FastDM/Wan2.2-I2V-A14B-Merge-Lightning-V1.0-Diffusers", subfolder="transformer", torch_dtype=torch.bfloat16, ) transformer_low_noise = WanTransformer3DModel.from_single_file( low_noise_path, quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16), config="FastDM/Wan2.2-I2V-A14B-Merge-Lightning-V1.0-Diffusers", subfolder="transformer_2", torch_dtype=torch.bfloat16, ) print("Creating sharded pipeline...") pipe = WanImageToVideoPipeline.from_pretrained( "Wan-AI/Wan2.2-I2V-A14B-Diffusers", transformer=transformer_high_noise, # High noise transformer_2=transformer_low_noise, # Low noise torch_dtype=torch.bfloat16, ) # Replace scheduler pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=8.0) # ============================== # Shard across multiple GPUs # ============================== device_map = { "transformer": "cuda:0", # put high-noise transformer on GPU 0 "transformer_2": "cuda:1", # put low-noise transformer on GPU 1 "vae": "cuda:0", # keep VAE with transformer on GPU 0 "text_encoder": "cuda:0", # relatively small, put with GPU 0 "scheduler": "cpu" # scheduler is lightweight, keep on CPU } pipe = pipe.to(device_map) print("Loading input image...") image_url = "https://cloud.inference.sh/u/4mg21r6ta37mpaz6ktzwtt8krr/01k1g7k73eebnrmzmc6h0bghq6.png" img = Image.open(BytesIO(requests.get(image_url).content)).convert("RGB") print("Generating video...") frames = pipe(img, "animate", num_inference_steps=40, guidance_scale=3.5).frames[0] export_to_video(frames, "wan2.2_sharded.mp4", fps=8) print("β Video saved: wan2.2_sharded.mp4")```
Please try to set guidance_scale=1.0 and num_inference_steps=4,