Wan2.2 T2V A14B text-to-video on the RunPod video endpoint, full-precision fp16 experts. Two-expert schedule: the high-noise expert samples steps 0..k and hands its leftover noise to the low-noise expert for k..N, where k = round(steps x boundary_ratio). Graph shape and every sampler default are taken from ComfyUI 0.34.0's own video_wan2_2_14B_t2v template, not invented: euler/simple, shift 5.0, 20 steps split at 10, CFG 3.5, EmptyHunyuanLatentVideo, 16 fps. speed_mode=lightx2v_4step splices the distilled LoRA onto both experts and forces the template's lightning schedule, through the V.06.04 post-render transform.
Tags: motionwan2.2text-to-videorunpod-serverlessvolume-backed
Inputs (16)#
The typed parameter surface callers bind when they request this workflow. Enum options and numeric bounds are the values the workflow document declares.
promptstringrequireddefault a paper boat drifting down a rain gutter, water beading on its folds, late afternoon lightnegative_promptstringdefault 色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走seedintegerdefault -1resolutionenumdefault 480p_landscape_832x480480p_landscape_832x480480p_portrait_480x832720p_landscape_1280x720720p_portrait_720x1280square_624x624lengthintegerdefault 81min 5max 121fpsintegerdefault 16min 8max 30stepsintegerdefault 20min 4max 40boundary_ratiofloatdefault 0.5min 0.1max 0.9cfgfloatdefault 3.5min 1.0max 10.0shiftfloatdefault 5.0min 1.0max 12.0speed_modeenumdefault qualityqualitylightx2v_4stepsamplerenumdefault eulereuleruni_pcdpmpp_2mschedulerenumdefault simplesimplebetamotion_presetenumdefault nonenonestatic cameraslow push inorbit lefthandhelddolly outloraenumdefault nonenonebreast-slider-v2lora_strengthfloatdefault 1min -2max 2ComfyUI node graph (16)#
The executable ComfyUI prompt graph: 16 nodes across 12 distinct node classes, wired by 18 data dependencies. Nodes tinted green come from a custom node pack this workflow declares; the rest are ComfyUI core / baked-community classes.
Nodes (16)#
1UNETLoadercoreunet_name = wan2.2_t2v_high_noise_14B_fp16.safetensorsweight_dtype = defaultMODEL2UNETLoadercoreunet_name = wan2.2_t2v_low_noise_14B_fp16.safetensorsweight_dtype = defaultMODEL3CLIPLoadercoreclip_name = umt5_xxl_fp16.safetensorstype = wandevice = defaultCLIP4VAELoadercorevae_name = wan_2.1_vae.safetensorsVAE5ModelSamplingSD3coremodel = ◂ node 1 · out[0]shift = {{shift}} tmplMODEL6ModelSamplingSD3coremodel = ◂ node 2 · out[0]shift = {{shift}} tmplMODEL7CLIPTextEncodecoretext = {{constructed_prompt}} tmplclip = ◂ node 3 · out[0]CONDITIONING8CLIPTextEncodecoretext = {{negative_prompt}} tmplclip = ◂ node 3 · out[0]CONDITIONING9EmptyHunyuanLatentVideocorewidth = {{resolution_map[resolution].width}} tmplheight = {{resolution_map[resolution].height}} tmpllength = {{length}} tmplbatch_size = 1LATENT10KSamplerAdvancedcoremodel = ◂ node 5 · out[0]positive = ◂ node 7 · out[0]negative = ◂ node 8 · out[0]latent_image = ◂ node 9 · out[0]add_noise = enablenoise_seed = {{seed}} tmplsteps = {{steps}} tmplcfg = {{cfg}} tmplsampler_name = {{sampler}} tmplscheduler = {{scheduler}} tmplstart_at_step = 0end_at_step = {{int(round(steps * boundary_ratio))}} tmplreturn_with_leftover_noise = enableLATENT11KSamplerAdvancedcoremodel = ◂ node 6 · out[0]positive = ◂ node 7 · out[0]negative = ◂ node 8 · out[0]latent_image = ◂ node 10 · out[0]add_noise = disablenoise_seed = {{seed}} tmplsteps = {{steps}} tmplcfg = {{cfg}} tmplsampler_name = {{sampler}} tmplscheduler = {{scheduler}} tmplstart_at_step = {{int(round(steps * boundary_ratio))}} tmplend_at_step = {{steps}} tmplreturn_with_leftover_noise = disableLATENT12VAEDecodecoresamples = ◂ node 11 · out[0]vae = ◂ node 4 · out[0]IMAGE13CreateVideocoreimages = ◂ node 12 · out[0]fps = {{fps}} tmplVIDEO14SaveVideocorevideo = ◂ node 13 · out[0]filename_prefix = wan22-t2vformat = mp4codec = h26415ImageFromBatchcoreimage = ◂ node 12 · out[0]batch_index = {{length - 1}} tmpllength = 1IMAGE16SaveImagecoreimages = ◂ node 15 · out[0]filename_prefix = wan22-t2v-lastframePrompt construction#
template{base_prompt}{motion}Variables (2)#
base_prompt{{prompt}} tmplmotion{{motion_map[motion_preset]}} tmplParameter banks (6)#
The prompt / configuration lookup tables this workflow keys into from its inputs — the vocabulary that turns a style / palette / preset selection into graph parameters.
option_policy (1)#
lora{"breast-slider-v2": {"distribution": "service", "content": "racy"}}resolution_map (5)#
480p_landscape_832x480{"width": 832, "height": 480}480p_portrait_480x832{"width": 480, "height": 832}720p_landscape_1280x720{"width": 1280, "height": 720}720p_portrait_720x1280{"width": 720, "height": 1280}square_624x624{"width": 624, "height": 624}requires_families (2)#
wan22-t2vwan-sharedmotion_map (6)#
nonestatic camera, static cameraslow push in, slow push inorbit left, camera orbits lefthandheld, handheld cameradolly out, camera dollies outlora_pair_map (1)#
breast-slider-v2{"high": "wan22-breast-slider-v2-high.safetensors", "low": "wan22-breast-slider-v2-low.safetensors"}post_render (2)#
wan_lora_pair{"input": "lora", "strength_input": "lora_strength", "pair_map": "lora_pair_map", "none_value": "none"}wan_speed_mode{"input": "speed_mode", "fast_value": "lightx2v_4step", "lora_high": "wan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors", "lora_low": "wan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensors", "steps": 4, "split": 2, "cfg": 1.0, "strength": 1.0}Models & dependencies#
Models required (8)#
wan2.2_t2v_high_noise_14B_fp16.safetensorswan2.2_t2v_low_noise_14B_fp16.safetensorsumt5_xxl_fp16.safetensorswan_2.1_vae.safetensorswan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensorswan2.2_t2v_lightx2v_4steps_lora_v1.1_low_noise.safetensorswan22-breast-slider-v2-high.safetensorswan22-breast-slider-v2-low.safetensorsOutput contract#
What a successful run of this workflow returns.
typevideoformatmp4codech264fps_sourcefixedaudiofalsealphafalseexpected_dimensions{"width": "{{resolution_map[resolution].width}}", "height": "{{resolution_map[resolution].height}}", "frames": "{{length}}"}Taxonomy & routing#
How the control plane classifies this workflow — from the committed workflow-taxonomy-registry.json. It drives the consistency / control surface the agentic director can exercise over the workflow.
assetFamilykeyframe-anchored-motionoutputPackageProfilevideo-master-profilecontrolModalitiesmodel-locksampler-scheduler-lockseed-lockprompt-template-lockmotion-vector-locktemporal-lockconsistencyDimensionsmotionidentitylightingnotesWan2.2 T2V A14B, full-precision two-expert schedule on the RunPod video endpoint. controlModalities lists only what the graph really exposes: there is no camera control here, and motion_preset is prompt text, not a camera path.