ππΏ FlowState WAN Studio
All-in-one Wan 2.2 video β including the two-expert MoE dance
- starting_frame
- audio
- video
Wan is where local video generation consolidated - Alibaba's open Apache 2.0 family, frozen at 2.2, and still the base most open video work sits on. FlowState WAN Studio is the pack's flagship: a single node that loads the models, runs the two-stage MoE sampling, decodes, and hands you a playable video. No graph of loaders, schedulers, and latent nodes to build. Type a prompt, optionally drop in a starting frame, and hit run.
The mechanism, and why it needs two models
Wan 2.2 is a mixture-of-experts video model: denoising is split between a high-noise expert that handles motion and composition and a low-noise expert that handles detail. That's why this node asks for two diffusion models - high_noise_model_name and low_noise_model_name - where you'd expect one. Internally it runs the high-noise model through the first half of the steps (KSamplerAdvanced, from step 0 to the midpoint) with noise added, then hands the partially-denoised latents to the low-noise model for the second half with add_noise disabled. It's the same split the community exploits with speed LoRAs on the low-noise pass only, just baked in so you never have to orchestrate it.
The node also:
- Uses ComfyUI's
WanImageToVideoto encode your prompt and prepare the latent batch (it handles text-to-video and image-to-video via the optionalstarting_frame). - Applies a fixed baked-in negative prompt -
blurring, warping, blurred, morphing- so there's no negative field to fiddle with. - Decodes with tiled VAE decode (512px tiles, temporal overlap) because decoding a full video in one pass will OOM a mid-range card.
- Assembles the frames with
CreateVideoand optionally saves viaSaveVideo, all internally.
Inputs that matter
high_noise_model_name/low_noise_model_name- the two Wan 2.2 expert checkpoints. On constrained hardware, Wan's 5B dense model runs in both slots; on a bigger card you use the 14B/27B MoE pair.num_video_frames(25 default),fps(12 default) - length and playback speed. Keep fps near 12β16 for Wan.fixed_output- this one's easy to misread. True means same output every run (the seed is pinned); False means it rolls a fresh random seed each run so you get variations. It's a seed-lock toggle wearing a confusing name.resolution- presets plus a "Use Starting Frame Resolution" option that reads the dims off yourstarting_frameimage, which is the sane way to do image-to-video.save_video(False default) - if off, the node still hands back avideooutput you can route intoFlowState_VideoPreview; flip it on and it writes tooutput/video/FlowState_WANStudio(thefilename_prefixsupports%date%-style tags).pos_prompt- the whole text input. There's no negative prompt because the author hardcoded one.audio(optional) - mux an audio track into the saved file.
Outputs
video (VIDEO). That's it - wire it to FlowState_VideoPreview to watch, or FlowState_VideoCreator if you want to control the container yourself.
Install
Pack install is the easy half:
cd ComfyUI/custom_nodes
git clone https://github.com/flowstateeng/FlowState-Creator-Nodes
then restart, or search FlowState-Creator-Nodes in ComfyUI Manager. No pip dependencies. The heavy half is the model files: two Wan diffusion models (high + low noise), the Wan text encoder (clip_name), and the Wan VAE (vae_name). Those are multi-gigabyte downloads, and unlike the pack they're non-negotiable.
Where people get burned
The #1 mistake is loading only one diffusion model and wondering why the dropdown for the other is empty - you need both populated. Second: if fixed_output is on and you change the prompt but get suspiciously similar motion, you're seeing seed-lock, not a bug; flip it off for variety. And sage_attention will sit on "disabled" until you install Sage Attention plus KJNodes - the suite's startup log tells you which is missing. Video is also just hungry: 25 frames at 1280Γ720 on a 14B model will test a mid-range card, which is exactly why the tiled decode and the 5B dense option exist.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| model_label | STRING | --- π€ Model Settings --- | Label -------------------------------- - This field is not functional. It is just a label for the group of settings below. |
| high_noise_model_name | COMBO | Diffusion Model List -------------------------------- - List of available diffusion models. | |
| low_noise_model_name | COMBO | Diffusion Model List -------------------------------- - List of available diffusion models. | |
| aumentation_label | STRING | --- π₯ Augmentation Settings --- | Label -------------------------------- - This field is not functional. It is just a label for the group of settings below. |
| high_noise_lora | COMBO | LoRA List -------------------------------- - List of available Low-Rank Adaptation models. - Used to transfer a pre-trained style (cyberpunk, anime, photorealism, disney, etc.) to a generated output image. | |
| low_noise_lora | COMBO | LoRA List -------------------------------- - List of available Low-Rank Adaptation models. - Used to transfer a pre-trained style (cyberpunk, anime, photorealism, disney, etc.) to a generated output image. | |
| style_lora | COMBO | LoRA List -------------------------------- - List of available Low-Rank Adaptation models. - Used to transfer a pre-trained style (cyberpunk, anime, photorealism, disney, etc.) to a generated output image. | |
| encoders_label | STRING | --- π£ Encoder Settings --- | Label -------------------------------- - This field is not functional. It is just a label for the group of settings below. |
| clip_name | COMBO | CLIP / Text Encoder List -------------------------------- - List of available Text Encoders and CLIP models. - Used to convert your text prompts into semantic attention vectors (i.e., numbers) that the model can process. - Contrastive Language-Image Pre-training (CLIP) | |
| vae_name | COMBO | VAE List -------------------------------- - List of available Variational Autoencoders (VAE). - Used to encode and decode images. | |
| video_label | STRING | --- π₯ Video Settings --- | Label -------------------------------- - This field is not functional. It is just a label for the group of settings below. |
| resolution | COMBO | Resolution Selector -------------------------------- - Select "Custom" to use the entered custom_width & custom_height. - Select "Use Starting Frame Resolution" to use the resolution of the input image. - Select a preset resolution & orientation. | |
| orientation | COMBO | Orientaion Selector -------------------------------- - Resolutions given in horizontal orientation. Select vertical to swap resolution aspect ratio. | |
| custom_width | INT | 102416β16384 | Width -------------------------------- - Defines the width of the image. |
| custom_height | INT | 102416β16384 | Height -------------------------------- - Defines the height of the image. |
| num_video_frames | INT | 251β16384 | Number of Video Frames -------------------------------- - The number of frames you want in your final video. |
| fixed_output | BOOLEAN | true | Fixed Output -------------------------------- - Choose to get the same output every time or get variations. |
| save_label | STRING | --- πΎ File Save Settings --- | Label -------------------------------- - This field is not functional. It is just a label for the group of settings below. |
| fps | INT | 121β120 | Frames Per Second -------------------------------- - The number of frames per second in the created video. |
| save_video | BOOLEAN | false | Save Video -------------------------------- - Choose whether to save the video. |
| filename_prefix | STRING | video/FlowState_WANStudio | Filename Prefix -------------------------------- - The prefix for the file to save. - This may include formatting information such as %date:yyyy-MM-dd% or %Empty Latent Image.width% to include values from nodes. - This is ignored if you choose not to save the video. |
| prompt_label | STRING | --- π Prompt(s) --- | Label -------------------------------- - This field is not functional. It is just a label for the group of settings below. |
| pos_prompt | STRING | β Describe the video you want WAN to create. | Positive Prompt -------------------------------- - β Describe the video you want WAN to create. |
| starting_frameopt | IMAGE | Starting Frame -------------------------------- - Optionally, select an input image to use as the starting frame. | |
| audioopt | AUDIO | Video Audio -------------------------------- - Optional audio to be added to the video. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | The created video. |