Skip to content
Automation
Skill

/wan-t2v-video

Build WAN 2.2 Text-to-Video workflows. Dual hi-lo models, lightning LoRAs, VACE modules, and KSamplerAdvanced two-pass

From plugin
comfyui-mcp
74242 skills4 agents11 commands1 MCP
Install
$ npx -y skills add artokun/comfyui-mcp --skill wan-t2v-video --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/wan-t2v-video

Context preview

The summary Claude sees to decide when to auto-load this skill.

Build WAN 2.2 Text-to-Video workflows. Dual hi-lo models, lightning LoRAs, VACE modules, and KSamplerAdvanced two-pass

SKILL.md

wan-t2v-video.SKILL.md
name: wan-t2v-video
description: Build WAN 2.2 Text-to-Video workflows. Dual hi-lo models, lightning LoRAs, VACE modules, and KSamplerAdvanced two-pass
globs:
  - "**/*.json"

WAN 2.2 Text-to-Video (T2V) Workflows

Overview

WAN 2.2 T2V generates videos from text prompts using a 14B parameter MoE (Mixture of Experts) architecture split across two specialized models:

  • HighNoise model handles early denoising. It establishes structure, motion, composition
  • LowNoise model handles late denoising. It refines details, sharpens output

This dual-model technique is the same as FLF/I2V (see wan-flf-video skill) but without image conditioning nodes.

Key difference from I2V/FLF: T2V does NOT use `CLIPVisionEncode`, `WanFirstLastFrameToVideo`, or any image input. It uses `EmptyHunyuanLatentVideo` for latent initialization and text-only conditioning.

Models

UNET (Installed)

| Model | Loader | Notes | |-------|--------|-------| | `Wan2_2-T2V-A14B_HIGH_fp8_e4m3fn_scaled_KJ.safetensors` | `UNETLoader` | HighNoise expert, 14.3GB FP8 | | `Wan2_2-T2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors` | `UNETLoader` | LowNoise expert, 14.3GB FP8 |

Text Encoder

| Component | Node | Model | Notes | |-----------|------|-------|-------| | **CLIP (T5)** | `CLIPLoader` (type=`wan`) | `umt5_xxl_fp8_e4m3fn_scaled.safetensors` | UMT5-XXL fp8, in clip/ |

VAE

| Component | Node | Model | |-----------|------|-------| | **VAE** | `VAELoader` | `wan_2.1_vae.safetensors` |

VACE Modules (Installed — For Advanced Control)

| Model | Size | Notes | |-------|------|-------| | `Wan2_2_Fun_VACE_module_A14B_HIGH_bf16.safetensors` | 5.8GB | HighNoise VACE module | | `Wan2_2_Fun_VACE_module_A14B_LOW_bf16.safetensors` | 5.8GB | LowNoise VACE module |

VACE modules add reference image / pose / depth conditioning to T2V. See WanVideoWrapper section below.

Lightning LoRAs (Installed)

T2V Lightning v1.1 (Paired Hi/Lo)

| LoRA | Applies To | Path | |------|-----------|------| | `wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise` | HighNoise UNET | `Unknown/no tags/` | | `wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise` | LowNoise UNET | `Unknown/no tags/` |

T2V Lightning Seko V2.0 (Alternative Paired)

| LoRA | Path | |------|------| | `Wan2.2_HN_T2V_Lightning_4steps-lora-rank64-Seko_V2.0_HIGH` | Root loras/ | | `Wan2.2_HN_T2V_Lightning_4steps-lora-rank64-Seko_V2.0_LOW` | Root loras/ |

T2V CFG-Step Distill (Higher Quality)

| LoRA | Path | Notes | |------|------|-------| | `lightx2v_T2V_14B_cfg_step_distill_v2_lora_rank128_bf16` | Root loras/ | CFG+step distilled, use with more steps |

Sampler Settings

Lightning (4-Step, Recommended for Speed)

| Parameter | Pass 1 (Hi) | Pass 2 (Lo) | |-----------|-------------|-------------| | model | Hi + Hi Lightning LoRA | Lo + Lo Lightning LoRA | | add_noise | enable | disable | | steps | 4 | 4 | | cfg | 1.0 | 1.0 | | sampler_name | euler | euler | | scheduler | simple | simple | | start_at_step | 0 | 2 | | end_at_step | 2 | 4 | | return_with_leftover_noise | enable | disable |

Standard (20-Step, Full Quality)

| Parameter | Pass 1 (Hi) | Pass 2 (Lo) | |-----------|-------------|-------------| | model | Hi + ModelSamplingSD3 (shift=8) | Lo + ModelSamplingSD3 (shift=8) | | add_noise | enable | disable | | steps | 20 | 20 | | cfg | 3.5 | 3.5 | | sampler_name | euler | euler | | scheduler | simple | simple | | start_at_step | 0 | 10 | | end_at_step | 10 | 20 | | return_with_leftover_noise | enable | disable |

ModelSamplingSD3

Required for WAN 2.2 flow matching. Apply to BOTH models:

{
  "class_type": "ModelSamplingSD3",
  "inputs": { "model": ["<unet>", 0], "shift": 8 }
}

T2V shift values:

  • Standard: shift=8 (good balance of motion and detail)
  • Lightning: shift=5 (lower shift for distilled models)
  • Range 6 to 9: higher shift = more detail, lower shift = stronger motion

EmptyHunyuanLatentVideo

Creates the initial video latent for T2V (no image input):

{
  "class_type": "EmptyHunyuanLatentVideo",
  "inputs": {
    "width": 832,
    "height": 480,
    "length": 81,
    "batch_size": 1
  }
}

This replaces `WanFirstLastFrameToVideo` (which is for FLF/I2V only). The latent goes directly to KSamplerAdvanced Pass 1.

Negative Prompt

The tones are vibrant, overexposed, static, details are unclear, subtitles, style, work, painting, image, still, overall grayish, worst quality, low quality, JPEG compression artifacts, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, distorted limbs, merged fingers, motionless image, cluttered background, three legs, many people in the background, walking backwards

Pipeline Flow

UNETLoader (HIGH T2V) → ModelSamplingSD3 (shift) → LoraLoaderModelOnly (Hi Lightning) → MODEL_HI
UNETLoader (LOW T2V) → ModelSamplingSD3 (shift) → LoraLoaderModelOnly (Lo Lightning) → MODEL_LO
CLIPLoader (wan) → CLIP
  ├─ CLIPTextEncode (positive) → CONDITIONING
  └─ CLIPTextEncode (negative) → CONDITIONING
VAELoader → VAE

EmptyHunyuanLatentVideo (832x480, 81 frames) → LATENT

KSamplerAdvanced (Hi: MODEL_HI, steps 0-2, add_noise=enable, return_leftover=enable)
  → noisy LATENT
KSamplerAdvanced (Lo: MODEL_LO, steps 2-4, add_noise=disable, return_leftover=disable)
  → final LATENT

VAEDecode → IMAGE → VHS_VideoCombine → MP4

Complete Workflow: T2V Lightning (4-Step)

{
  "1": { "class_type": "UNETLoader", "inputs": { "unet_name": "Wan2_2-T2V-A14B_HIGH_fp8_e4m3fn_scaled_KJ.safetensors", "weight_dtype": "default" }, "_meta": { "title": "UNET HighNoise T2V" }},
  "2": { "class_type": "UNETLoader", "inputs": { "unet_name": "Wan2_2-T2V-A14B-LOW_fp8_e4m3fn_scaled_KJ.safetensors", "weight_dtype": "default" }, "_meta": { "title": "UNET LowNoise T2V" }},
  "3": { "class_type": "ModelSamplingSD3", "inputs": { "model": ["1", 0], "shift": 5 }, "_meta": { "title": "Hi Shift" }},
  "4": { "class_type": "ModelSamplingSD3", "inputs": {
Read more
Ships withcomfyui-mcp

This project is no longer maintained. ComfyUI now ships official agent and MCP tooling — Comfy Agent and Comfy MCP — built and supported by the Comfy-Org team with deeper integration than a community project can match.

Get the whole plugin

Other skills on comfyui-mcp.