A2 Video Generator
The core of SkyReels-A2 — compose three references into a video
- a2_model
- clip_image_list
- vae_image_list
- prompt
- negative_prompt
- video_tensor
A2VideoGenerator is the node you came here for. It's the actual sampler in the ComfyUI-SkyReels-A2 pack: it takes the loaded model, your three reference images (as prepared by ReferenceImages), and your prompts, and runs Skywork's SkyReels-A2 pipeline to produce a video. SkyReels-A2 is a 14B fine-tune of Wan 2.1 built for "Compose Anything" generation - a person reference, an object reference, and a background reference get fused into a single shot, the same idea as Pika Ingredients, which is why it drew a crowd of "can't wait for Kijai to make this into nodes" when the weights dropped in April 2025.
How it works
This is a flow-matching diffusers pipeline under the hood - a Wan 2.1 transformer with a UniPCMultistepScheduler, seeded from your seed value via torch.Generator. The node calls the pipeline with the CLIP-processed reference list (clip_image_list) and the VAE-processed one (vae_image_list), the positive and negative prompts, and your resolution, frame count, guidance scale, and step count, asking for a raw pt tensor back. Nothing about the generation is happening in ComfyUI itself; this node is a carefully-argued pass-through to a diffusers call.
Inputs that matter
- a2_model - the output of LoadA2Model. There is no way around it: if you haven't loaded the 14B pipeline, this node has nothing to run.
- clip_image_list / vae_image_list - both outputs of ReferenceImages. All three refs have to be wired or it won't start.
- prompt / negative_prompt - the typed outputs of A2Prompt and NegativePrompt.
- seed - default 42. Set it for reproducibility; you'll be changing it a lot.
- guidance_scale - default 5. Wan is a flow-matching model, so this behaves differently than SDXL-era CFG; 5 is a solid starting point, and if you push toward 1 you're effectively disabling guidance.
- num_frames - default 81, which is the model's native context (~5 seconds). Pushing past it invites repetition and weird drift, the classic Wan limit.
- num_inference_steps - default 50. This is a 14B model; 50 steps at 480p is minutes even on a 4090. Fewer steps is faster and worse; there's no free lunch here.
- vae_combine -
before(default) bakes the reference images into the start of the latent sequence;afterfolds them in as conditioning latents instead. Keepbeforeunless you're experimenting. - height / width / device - resolution must match ReferenceImages; device is
cuda(CPU is technically an option and practically a joke for a 14B model).
Output
One output, video_tensor (type TENSOR) - the raw frames. Feed it to the pack's CombineImages node, which builds the final composite (it also trims the model's conditioning preamble frames, so don't expect all 81 back).
Installing it
Same pack, every node: ComfyUI Manager → search "SkyReels", or
cd ComfyUI/custom_nodes
git clone https://github.com/Yuan-ManX/ComfyUI-SkyReels-A2.git
cd ComfyUI-SkyReels-A2
pip install -r requirements.txt
Then download the model (see LoadA2Model) and restart. The install is genuinely heavy - flash_attn, diffusers from git, assorted leftovers - but the workflow itself is just the six nodes wired in a line.
Common issues
Realistic expectations first: this is a 14B fine-tune in bf16 plus fp32 VAE/encoder, so it wants 24GB-class VRAM and is slow. The community's honest verdict on the model was mixed - the compose idea is great, but multi-reference identity consistency didn't always hold, and people who wanted speed leaned on Kijai's Wan wrapper with fp8 weights rather than this pack. If you see mismatched subject/object/background, that's the model's known weakness, not a broken setting. And because the pack rides git-master diffusers, a later upgrade can break the pipeline call - pin your environment once it works.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| a2_model | MODEL | — | |
| clip_image_list | IMAGE_LIST | — | |
| vae_image_list | IMAGE_LIST | — | |
| prompt | PROMPT | — | |
| negative_prompt | NEGATIVEPROMPT | — | |
| height | INT | 480 | — |
| width | INT | 832 | — |
| seed | INT | 42 | — |
| guidance_scale | FLOAT | 5.00 | — |
| num_frames | INT | 81 | — |
| num_inference_steps | INT | 50 | — |
| vae_combine | COMBO | before | 2 options: before, after |
| device | COMBO | cuda | 2 options: cuda, cpu |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video_tensor | TENSOR | — |