calcuis/wan-gguf

calcuis
Texto a video

Versión cuantizada en GGUF de Wan Video para generación de video, empaquetada para flujos de Text-to-Video e Image-to-Video en ComfyUI, Diffusers y gguf-connector. El repositorio publica variantes cuantizadas de modelos Wan 2.1, incluyendo VACE 1.3B, pensadas para reducir el consumo de memoria y permitir inferencia en máquinas antiguas o de gama baja.

Como usar

Instalación en ComfyUI:

Coloca el archivo GGUF del modelo en ./ComfyUI/models/diffusion_models. Coloca t5xxl-um en ./ComfyUI/models/text_encoders. Coloca el VAE en ./ComfyUI/models/vae. Para el flujo i2v, coloca clip-vision-h en ./ComfyUI/models/clip_vision. Ejecuta el archivo .bat del directorio principal si usas el paquete GGUF indicado.

Si usas un encoder UMT5XXL FP8 escalado, activa CPU offload en el cargador GGUF CLIP cambiando el dispositivo a CPU; según la ficha, esto no debería afectar la velocidad.

Ejemplo con Diffusers:

import torch
from transformers import UMT5EncoderModel
from diffusers import AutoencoderKLWan, WanVACEPipeline, WanVACETransformer3DModel, GGUFQuantizationConfig
from diffusers.schedulers.scheduling_unipc_multistep import UniPCMultistepScheduler
from diffusers.utils import export_to_video

model_path = "https://huggingface.co/calcuis/wan-gguf/blob/main/wan2.1-v5-vace-1.3b-q4_0.gguf"

transformer = WanVACETransformer3DModel.from_single_file(
    model_path,
    quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16),
    torch_dtype=torch.bfloat16,
)

text_encoder = UMT5EncoderModel.from_pretrained(
    "chatpig/umt5xxl-encoder-gguf",
    gguf_file="umt5xxl-encoder-q4_0.gguf",
    torch_dtype=torch.bfloat16,
)

vae = AutoencoderKLWan.from_pretrained(
    "callgg/wan-decoder",
    subfolder="vae",
    torch_dtype=torch.float32,
)

pipe = WanVACEPipeline.from_pretrained(
    "callgg/wan-decoder",
    transformer=transformer,
    text_encoder=text_encoder,
    vae=vae,
    torch_dtype=torch.bfloat16,
)

flow_shift = 3.0
pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config, flow_shift=flow_shift)
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()

prompt = "a pig moving quickly in a beautiful winter scenery nature trees sunset tracking camera"
negative_prompt = "blurry ugly bad"

output = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    width=720,
    height=480,
    num_frames=57,
    num_inference_steps=24,
    guidance_scale=2.5,
    conditioning_scale=0.0,
    generator=torch.Generator().manual_seed(0),
).frames[0]

export_to_video(output, "output.mp4", fps=16)

Funcionalidades

Modelo de texto a video basado en Wan Video cuantizado en formato GGUF.
Incluye variantes de cuantización Q2, Q3, Q4, Q5, Q6, Q8, F16 y F32 con tamaños desde cientos de MB hasta decenas de GB según el archivo.
Compatible con flujos de ComfyUI colocando el modelo, encoder, VAE y clip vision en sus carpetas correspondientes.
Soporta ejecución alternativa con Diffusers mediante WanVACEPipeline y carga directa de archivo GGUF.
Usa arquitectura etiquetada como pig para el nodo GGUF; puede requerir añadir pig a IMG_ARCH_LIST en comfyui-gguf si se usa ese cargador.
El modelo VACE 1.3B se reporta como funcional para t2v y vace, adecuado para equipos antiguos o de bajos recursos.
Licencia Apache 2.0.

Casos de uso

Generar videos cortos desde prompts de texto con Wan Video en hardware con menos memoria.
Ejecutar flujos VACE 1.3B en ComfyUI o Diffusers usando pesos GGUF cuantizados.
Probar variantes de cuantización para equilibrar tamaño, calidad y requisitos de VRAM/RAM.
Crear demos de movimiento, escenas cinematográficas, personajes estilizados o clips de naturaleza a partir de prompts y negative prompts.