Nodes/VideoX-Fun/Wan 2.2 Fun Sampler for Video to Video
ComfyUI Node

Wan 2.2 Fun Sampler for Video to Video

Video-to-video and control-conditioned generation on Wan 2.2-Fun

By aigc-apps·Created 2 years ago·Updated 20 days ago· 2,174
Wan 2.2 Fun Sampler for Video to Video
  • funmodels
  • prompt
  • negative_prompt
  • validation_video
  • control_video
  • start_image
  • end_image
  • ref_image
  • riflex_k
  • images
video_length81
base_resolution640
seed43
steps25
cfg7.00
denoise_strength0.70
schedulerFlow
teacache_threshold0.100
enable_teacachetrue
num_skip_start_steps5
teacache_offloadtrue
cfg_skip_ratio0.00
camera_conditions

This is the most capable single sampler in the whole pack - it's built to handle video-to-video restyling, Canny/Depth/Pose control conditioning, reference-image guidance, and camera-motion control, all through one node, pairing with the -Control and -Control-Camera checkpoints from LoadWan2_2FunModel. If you're doing anything more structured than plain T2V/I2V - matching motion from an existing clip, driving generation off a pose skeleton, holding a character consistent via a reference image - this is the node for it.

How it works

It's a denoise-strength-driven sampler: give it a source video and a denoise_strength below 1.0, and it partially renoises and resamples rather than starting from scratch, similar to img2img denoise but for video. Layer in a control_video (pose, depth, canny - whatever the checkpoint was trained on) for structural conditioning, a ref_image to anchor identity, or camera_conditions for Wan2.2-Fun's camera-control checkpoints, and it combines them during sampling.

The inputs that matter

  • funmodels - from LoadWan2_2FunModel, -Control or -Control-Camera.
  • prompt / negative_prompt - STRING_PROMPT type, wire from FunTextBox.
  • denoise_strength - default 0.7, range 0.05-1.0. Lower means the output stays closer to the input video; higher gives the model more room to diverge. This is the one knob you'll actually tune per-shot.
  • video_length - default 81, range 1-161, step 4.
  • base_resolution - 512/640/768/896/960/1024, default 640.
  • steps - default 25, up to 200 (lower default than the I2V/InP samplers, since V2V generally needs less work per step to hold structure).
  • cfg - default 7, range 1-20.
  • enable_teacache and its threshold/offload/skip-step controls (default on) - the pack's step-caching, with the usual detail-stability tradeoff at aggressive settings.
  • validation_video (optional, IMAGE) - the source clip for straight video-to-video.
  • control_video (optional, IMAGE) - a preprocessed conditioning video (pose, depth, canny, etc.), matching whatever the checkpoint was trained against.
  • start_image / end_image (optional, IMAGE) - endpoint anchors, same idea as the Inpaint sampler.
  • ref_image (optional, IMAGE) - a reference image for identity/style anchoring.
  • camera_conditions (optional, STRING) - for the -Control-Camera checkpoints' camera-motion parameters.
  • riflex_k (optional, RIFLEXT_ARGS) - from FunRiflex, for pushing past the native frame ceiling.

Output: images - a frame batch.

Installing it

Part of the base VideoX-Fun install. Search ComfyUI Manager for VideoX-Fun; if it's not indexed, clone manually:

cd ComfyUI/custom_nodes
git clone https://github.com/aigc-apps/VideoX-Fun
pip install -r VideoX-Fun/requirements.txt

Restart ComfyUI.

Common issues

You don't have a control video ready. For pose specifically, this pack ships its own extractor - VideoToOpenpose - so you can generate one from any source video without leaving the pack. For Canny, Depth, or MLSD conditioning, you'll need ComfyUI's separate controlnet-aux preprocessor nodes; VideoX-Fun doesn't ship those itself.

Output barely changes from the input video. denoise_strength is too low for what you're asking it to do. Push it up incrementally - 0.7 is a reasonable middle ground, but heavier restyles want it closer to 0.9-1.0.

Output ignores the input video entirely. The opposite problem - denoise_strength too high, or control_video/validation_video not actually connected. Check the wiring before assuming the model's misbehaving.

Camera control does nothing. camera_conditions only means anything against a -Control-Camera checkpoint - it's silently inert on a plain -Control or -InP model.

Slow, even with fewer default steps than other samplers. This node is doing more work per step than a plain I2V sampler when you've got control conditioning and a reference image both wired in. Keep enable_teacache on, and drop resolution for iteration passes before you touch step count.

CategoryCogVideoXFUNWrapper

Inputs (22)

NameTypeDefaultDescription
funmodelsFunModels
promptSTRING_PROMPT
negative_promptSTRING_PROMPT
video_lengthINT811–161
base_resolutionCOMBO6406 options: 512, 640, 768, 896, 960, 1024
seedINT430–18446744073709550000
stepsINT251–200
cfgFLOAT7.001–20
denoise_strengthFLOAT0.700.05–1
schedulerCOMBOFlow1 options: Flow
teacache_thresholdFLOAT0.1000–1
enable_teacacheCOMBOtrue2 options: false, true
num_skip_start_stepsINT50–50
teacache_offloadCOMBOtrue2 options: false, true
cfg_skip_ratioFLOAT0.000–1
validation_videooptIMAGE
control_videooptIMAGE
start_imageoptIMAGE
end_imageoptIMAGE
ref_imageoptIMAGE
camera_conditionsoptSTRING
riflex_koptRIFLEXT_ARGS

Outputs (1)

NameTypeDescription
imagesIMAGE