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 6 days ago· 2,281
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—