Views
No views yet
1import torch
2from diffusers import WanTransformer3DModel, AutoencoderKLWan
3
4# Load the transformer
5transformer = WanTransformer3DModel.from_pretrained(
6 "the-sweater-cat/Wan2.1-Fun-V1.1-1.3B-Control-Diffusers",
7 subfolder="transformer",
8 torch_dtype=torch.bfloat16,
9)
10
11# Load the VAE
12vae = AutoencoderKLWan.from_pretrained(
13 "the-sweater-cat/Wan2.1-Fun-V1.1-1.3B-Control-Diffusers",
14 subfolder="vae",
15 torch_dtype=torch.float32,
16)in_channels=48 = 16 noise + 16 image + 16 control).| Component | Class | Size |
|---|---|---|
| Transformer | WanTransformer3DModel | 3.0 GB |
| Text encoder | UMT5EncoderModel | 22 GB |
| Image encoder | CLIPVisionModel | 1.2 GB |
| VAE | AutoencoderKLWan | 485 MB |
| Tokenizer | AutoTokenizer (google/umt5-xxl) | 21 MB |
| Scheduler | UniPCMultistepScheduler | config only |
WanTransformer3DModel using key remapping (983/985 tensors).ref_conv.weight and ref_conv.bias (99,840 params) -- these implement reference-frame token injection which diffusers' WanTransformer3DModel does not support. The model still works for control-to-video tasks.ref_conv dropped: no reference-frame token injection (the model can still do depth/canny/pose control)WanFunControlPipeline in diffusers yet (huggingface/diffusers#12235) -- custom inference code is needed to handle the 48-channel input (concatenating noise + image + control latents)