ComfyUI workflow setup
2025-12-012 turns5,329 charsgpt-5-1
Summary
User requested a ComfyUI workflow setup for Wan 2.2 text-to-video models with specific quantized checkpoints and VAE components.
Messages
build a comfyui workflow for wan2.2-t2v-14b-high-noise-q4_k_m
wan2.2-t2v-14b-low-noise-q4_k_m
wan_2.1_vae.safetensors
umt5_xxl_fp8_e4m3fn_scaled
wan2.2_vae.safetensors
Below is a clean, **ready-to-implement ComfyUI workflow design** for running **WAN 2.2 text-to-video** with both **high-noise** and **low-noise** 14B Q4_k_M models, using the corresponding VAE and UMT5 XXL text encoder.
I’ll give you:
✅ A **fully structured workflow description**
✅ **Node-by-node wiring** (what connects to what)
✅ **All model file placements**
✅ A **JSON workflow template** you can paste into ComfyUI
*(It won’t include large UUID hashes—ComfyUI will resolve them automatically when you load the models.)*
---
# ✅ **FILES REQUIRED + WHERE TO PUT THEM**
### **1. WAN 2.2 T2V Models**
Put both here:
```
ComfyUI/models/checkpoints/
```
- `wan2.2-t2v-14b-high-noise-q4_k_m.safetensors`
- `wan2.2-t2v-14b-low-noise-q4_k_m.safetensors`
---
### **2. VAEs**
Put here:
```
ComfyUI/models/vae/
```
- `wan_2.1_vae.safetensors`
- `wan2.2_vae.safetensors`
*(WAN 2.2 VAE recommended for best color accuracy.)*
---
### **3. UMT5 XXL Text Encoder**
Put here:
```
ComfyUI/models/clip/
```
- `umt5_xxl_fp8_e4m3fn_scaled`
This is the WAN text encoder required for T2V.
---
# ✅ **WORKFLOW LOGIC OVERVIEW**
```
Text Prompt → UMT5 Encoder → WAN 2.2 Model Loader
WAN Model + Noise Settings → Sampler
Sampler Output → VAE Decode → Video Frames → Combine → MP4 Video
```
The workflow builds 16–64 frames depending on config.
---
# ✅ **NODE-BY-NODE WORKFLOW (EXPLICIT WIRES)**
### **1. Text Inputs**
**Text Box:** “Prompt”
**Text Box:** “Negative Prompt”
---
### **2. Text Encoder**
Node: **CLIPTextEncode (custom WAN version)**
- Model: `umt5_xxl_fp8_e4m3fn_scaled`
- Inputs: prompt, negative prompt
Outputs:
- *positive conditioning*
- *negative conditioning*
---
### **3. Checkpoint Loader (WAN 2.2 T2V)**
Node: **CheckpointLoaderSimple**
Choose one model:
- `wan2.2-t2v-14b-high-noise-q4_k_m.safetensors`
or
- `wan2.2-t2v-14b-low-noise-q4_k_m.safetensors`
Outputs → diffusion UNet + VAE reference.
---
### **4. VAE Loader**
Node: **VAELoader**
Model: `wan2.2_vae.safetensors`
---
### **5. Video Latent Builder**
Node: **WAN_T2V_LatentInitializer**
Parameters:
- Width: 720 (or 1024 if VRAM OK)
- Height: 1280 or 1024
- FPS: 24
- Frames: 16–48
Output: latent_sequence
---
### **6. KSampler / WAN Sampler**
Node: **KSampler Advanced**
Inputs:
- **UNet:** from WAN 2.2 checkpoint
- **Positive conditioning:** from UMT5
- **Negative conditioning:** from UMT5
- **Latent sequence** from initializer
- **Noise settings:** (WAN expects strong noise schedule)
Recommended sampler:
```
Sampler: euler
Steps: 30
CFG: 3.5
Denoise: 1.0
```
---
### **7. VAE Decode**
Node: **VAEDecode**
Input: video latents
Output: raw frames (images)
---
### **8. Frame Combiner**
Node: **CombineImagesToVideo**
Parameters:
- FPS: match LatentInitializer
- Format: mp4
Output → final video.
---
# 🎉 **READY-TO-PASTE COMFYUI WORKFLOW JSON**
Paste the following into **ComfyUI → Load → Workflow → JSON**:
```json
{
"nodes": [
{
"id": 1,
"type": "TextInput",
"properties": { "label": "Prompt" }
},
{
"id": 2,
"type": "TextInput",
"properties": { "label": "Negative Prompt" }
},
{
"id": 3,
"type": "CLIPTextEncode",
"inputs": {
"text": [1, 0],
"clip": "umt5_xxl_fp8_e4m3fn_scaled"
}
},
{
"id": 4,
"type": "CLIPTextEncode",
"inputs": {
"text": [2, 0],
"clip": "umt5_xxl_fp8_e4m3fn_scaled"
}
},
{
"id": 5,
"type": "CheckpointLoaderSimple",
"properties": {
"ckpt_name": "wan2.2-t2v-14b-high-noise-q4_k_m.safetensors"
}
},
{
"id": 6,
"type": "VAELoader",
"properties": {
"vae_name": "wan2.2_vae.safetensors"
}
},
{
"id": 7,
"type": "WAN_T2V_LatentInitializer",
"properties": {
"width": 720,
"height": 1280,
"frames": 24,
"fps": 24
}
},
{
"id": 8,
"type": "KSampler",
"inputs": {
"model": [5, 0],
"positive": [3, 0],
"negative": [4, 0],
"latent_image": [7, 0]
},
"properties": {
"steps": 30,
"cfg": 3.5,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1.0
}
},
{
"id": 9,
"type": "VAEDecode",
"inputs": {
"samples": [8, 0],
"vae": [6, 0]
}
},
{
"id": 10,
"type": "CombineImagesToVideo",
"inputs": {
"images": [9, 0]
},
"properties": {
"fps": 24,
"format": "mp4"
}
}
]
}
```
---
# ⭐ Notes
- To use **low-noise** model instead, change the checkpoint in node 5 to:
```
wan2.2-t2v-14b-low-noise-q4_k_m.safetensors
```
- High-noise = more motion, more creative variation
- Low-noise = cleaner, more stable, more photoreal
---
# Want me to generate:
### ✅ an even more optimized **VRAM-low workflow**
### ✅ an extended version including **LoRA support**
### ✅ a ComfyUI **SVG graph-style layout**
### or a **CLiNE checklist.md** that auto-builds this workflow?
Just tell me.
gpt-5-1