Nodes/CRT-Nodes/WAN 2.2 Batch Sampler (CRT)
ComfyUI Node

WAN 2.2 Batch Sampler (CRT)

The whole two-model Wan pipeline in one node

By PGCRT·Created 2 years ago·Updated 7 days ago· 129
WAN 2.2 Batch Sampler (CRT)
  • model_high_noise
  • model_low_noise
  • positive
  • negative
  • vae
  • start_image
  • high_noise_latent_batch
  • final_latent_batch
  • final_images_batch
  • comparison_grid
  • settings_string
batch_count3
width480
height832
frame_count1
seed4149210799938517
increment_seedtrue
steps8
boundary0.500
sigma_shift1.00
cfg_high_noise1.0
cfg_low_noise1.0
sampler_nameeuler
schedulersimple
enable_vae_decodetrue
create_comparison_gridtrue
save_videos_imagestrue
save_folder_path.\ComfyUI\output
save_subfolder_nameFAST_BATCH
save_filename_prefixoutput
fps16
processing_modeParallel
offload_conditioningfalse

A proper Wan 2.2 workflow is more nodes than it has any right to be: two KSamplers (one per expert model, switching over at a sigma boundary), a seed loop if you want to compare a few generations, a VAE decode, maybe a grid compositor to lay the results out side by side, and a save node with its own naming scheme. This node collapses all of that into one box. It's the biggest single node in the CRT-Nodes pack's sampling category, and it earns the size - it's doing the work of six or seven stock nodes.

Why Wan needs two models in the first place

Wan 2.2 is a mixture-of-experts model: a high-noise expert handles early structure and motion, a low-noise expert takes over for detail, and the switch between them happens at a sigma value the community calls the boundary. This split is also why speed LoRAs behave weirdly on Wan 2.2 - the community's hard-learned lesson (from a landmark PSA thread that's still the standard advice) is to put your lightx2v or CausVid speed LoRA on the low-noise pass only and leave the high-noise pass clean, because stacking it on both destroys motion, lighting and emotion. This node's model_high_noise / model_low_noise split and separate cfg_high_noise / cfg_low_noise sliders are built directly around that architecture, and around that community practice.

The inputs and outputs that matter

There's a lot here, but a handful of fields do most of the work:

  • model_high_noise / model_low_noise - the two Wan 2.2 expert checkpoints. This is the one thing people get wrong first: Wan 2.2 needs two models, not one, unlike Wan 2.1.
  • boundary (default 0.5) and sigma_shift (default 1) - where the handoff between experts happens and how the noise schedule is shifted. Community defaults for full-quality generation sit around 20-30 steps at CFG 3.5+ on the high-noise pass; this node's defaults (cfg_high_noise/cfg_low_noise both at 1, steps at 8) are tuned for the fast, distilled-LoRA path instead, so if you're chasing maximum quality rather than speed, expect to raise steps and high-noise CFG yourself.
  • positive (required) and optional negative - if you skip negative, an empty one is auto-generated.
  • start_image (optional) - plug in a reference image and the node switches to image-to-video automatically; leave it empty for text-to-video.
  • batch_count and increment_seed - generate several variations from one graph, each on seed+N if increment is on.
  • processing_mode - Parallel (fast, high VRAM) versus Sequential (slow, low VRAM); offload_conditioning forces sequential mode and moves text conditioning to CPU between items for a bit more headroom.
  • create_comparison_grid and save_videos_images with save_folder_path/save_subfolder_name/save_filename_prefix - the node will lay your batch out as a grid and write everything to disk itself, no separate save node needed.

Outputs cover the whole pipeline: high_noise_latent_batch, final_latent_batch, final_images_batch, comparison_grid, and a settings_string for logging exactly what you ran.

How to install it

Part of CRT-Nodes - ComfyUI Manager, search CRT-Nodes, install; or git clone https://github.com/PGCRT/CRT-Nodes.git into custom_nodes, pip install -r requirements.txt, restart.

Common issues & troubleshooting

One model where two are expected. If you wire the same checkpoint into both model_high_noise and model_low_noise, it'll run, but you're not getting Wan 2.2's actual architecture - make sure you've downloaded both experts.

Output looks flat or over-plasticky. That's the classic symptom of a speed LoRA applied to both passes. Check lora_batch_config in the accompanying LoRA-select node (if you're using one) and keep the high-noise pass clean.

Parallel mode runs out of VRAM. Switch processing_mode to Sequential and, if it's still tight, enable offload_conditioning.

Frame count beyond 81 looks strange. Wan's native context window is 81 frames - pushing well past that without a dedicated extension technique tends to loop or degrade rather than smoothly continue.

CategoryCRT/Sampling

Inputs (28)

NameTypeDefaultDescription
batch_countINT31–128Number of items to generate with different seeds. Higher values = more VRAM in parallel mode.
model_high_noiseMODELModel used for the initial high-noise denoising phase. Typically handles structure and composition.
model_low_noiseMODELModel used for the final low-noise refinement phase. Typically handles details and fine features.
positiveCONDITIONINGPositive prompt conditioning. Describes what you want to generate.
widthINT48016–4096Output width in pixels. Will be quantized to nearest multiple of 16.
heightINT83216–4096Output height in pixels. Will be quantized to nearest multiple of 16.
frame_countINT11–4096Number of frames to generate. Use 1 for images, >1 for videos.
seedINT41492107999385170–18446744073709550000Starting seed for generation. Each batch item uses seed+N if increment is enabled.
increment_seedBOOLEANtrueIf enabled, each batch item gets seed+1, seed+2, etc. If disabled, all use the same seed.
stepsINT81–10000Total number of denoising steps. More steps = better quality but slower generation.
boundaryFLOAT0.5000–1Sigma value where switching from high-noise to low-noise model occurs. Lower = earlier switch.
sigma_shiftFLOAT1.000–100Shifts the noise schedule. Higher values = more denoising emphasis on high-frequency details.
cfg_high_noiseFLOAT1.00–100Classifier-Free Guidance scale for high-noise phase. Higher = stronger prompt adherence.
cfg_low_noiseFLOAT1.00–100Classifier-Free Guidance scale for low-noise phase. Higher = stronger prompt adherence.
sampler_nameCOMBOeulerSampling algorithm. Different samplers have different quality/speed tradeoffs.
schedulerCOMBOsimpleNoise schedule that controls how denoising steps are distributed.
enable_vae_decodeBOOLEANtrueDecode latents to images. Disable to only output latents.
create_comparison_gridBOOLEANtrueCreate a side-by-side comparison grid of all batch outputs.
save_videos_imagesBOOLEANtrueSave outputs to disk. Disable to only use outputs in workflow.
save_folder_pathSTRING.\ComfyUI\outputRoot folder where outputs will be saved.
save_subfolder_nameSTRINGFAST_BATCHSubfolder name inside the root folder for organizing outputs.
save_filename_prefixSTRINGoutputPrefix for output filenames. Seed will be appended automatically.
fpsINT161–120Frames per second for video outputs. Only relevant when frame_count > 1.
processing_modeCOMBOParallelParallel = process all batches together (fast, high VRAM). Sequential = one at a time (slow, low VRAM).
offload_conditioningBOOLEANfalseOffload text conditioning to CPU between items. Reduces VRAM slightly, forces sequential mode.
negativeoptCONDITIONINGOptional negative conditioning. If disconnected, empty negative conditioning is auto-generated from positive.
vaeoptVAEVAE model for encoding/decoding. Required if enable_vae_decode is True or using I2V mode.
start_imageoptIMAGEStarting image for Image-to-Video generation. When provided, switches to I2V mode automatically.

Outputs (5)

NameTypeDescription
high_noise_latent_batchLATENT
final_latent_batchLATENT
final_images_batchIMAGE
comparison_gridIMAGE
settings_stringSTRING