> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Causal Forcing I2V ComfyUI Workflow Example

> Generate videos from images using Causal Forcing or Causal Forcing++ with Wan2.1 — achieving smooth, temporally consistent video in as few as 1 inference step.

**Causal Forcing** is a video generation technique that applies **recurrent conditioning** during inference, where each generated frame is fed back into the model to predict the next frame. This produces smooth, temporally consistent videos from a single start image in as few as **1 to 4 inference steps**.

This workflow uses **Wan2.1** and supports both **Causal Forcing** (standard) and **Causal Forcing++** (enhanced) modes.

<img src="https://raw.githubusercontent.com/Comfy-Org/workflow_templates/main/templates/video_causal_forcing_i2v-1.webp" alt="Causal Forcing I2V workflow" />

<Tip>
  <Tabs>
    <Tab title="Portable or self deployed users">
      Make sure your ComfyUI is updated.

      * [Download ComfyUI](https://www.comfy.org/download)
      * [Update Guide](/installation/update_comfyui)

      Workflows in this guide can be found in the [Workflow Templates](/interface/features/template).
      If you can't find them in the template, your ComfyUI may be outdated. (Desktop version's update will delay sometime)

      If nodes are missing when loading a workflow, possible reasons:

      1. You are not using the latest ComfyUI version (Nightly version)
      2. Some nodes failed to import at startup
    </Tab>

    <Tab title="Desktop or Cloud users">
      * The Desktop is base on ComfyUI stable release, it will auto-update when there is a new Desktop stable release available.
      * [Cloud](https://cloud.comfy.org) will update after ComfyUI stable release.

      So, if you find any core node missing in this document, it might be because the new core nodes have not yet been released in the latest stable version. Please wait for the next stable release.
    </Tab>
  </Tabs>
</Tip>

<CardGroup cols={1}>
  <Card title="Download Workflow" icon="download" href="https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_causal_forcing_i2v.json">
    Download JSON or search "Causal Forcing" in Template Library
  </Card>
</CardGroup>

## How it works

Unlike standard video generation which processes all frames in parallel, Causal Forcing treats video generation as a **sequential process**:

1. The model takes an input image as the **first frame**
2. It generates the next frame conditioned on the previous one
3. Each new frame becomes the input for the next prediction
4. This repeats for the desired number of frames

This recurrent approach creates **strong temporal consistency** — each frame naturally follows from the one before it — and can produce high-quality results with very few inference steps (1 to 4).

<Card title="Learn about Subgraph" icon="book-open" href="/interface/features/subgraph">
  This workflow uses a Subgraph node for modular processing. Check out the Subgraph documentation to learn how to customize and extend the workflow.
</Card>

### Causal Forcing vs Causal Forcing++

| Mode                 | Description                                                                                                       |
| -------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Causal Forcing**   | Standard recurrent conditioning. Good quality with 2–4 steps.                                                     |
| **Causal Forcing++** | Enhanced mode that applies additional conditioning for better temporal coherence. Works well with just 1–2 steps. |

## Using the workflow

### Inputs

The workflow accepts a single input image (the first frame) and a text prompt describing the desired video content (optional).

| Setting                         | Description                                                                                 |
| ------------------------------- | ------------------------------------------------------------------------------------------- |
| **first\_frame** (required)     | The starting image for the video. Load a PNG/JPG via the **LoadImage** node.                |
| **positive\_prompt** (optional) | A text description of the desired video content. Leave empty for no conditioning.           |
| **duration** (optional)         | The number of frames to generate. Default: number of frames in the model's expected output. |

### WAN I2V subgraph parameters

These are exposed as controls on the blueprint subgraph node:

| Parameter    | Default | Description                                  |
| ------------ | ------- | -------------------------------------------- |
| `unet_name`  | —       | The Wan2.1 I2V model checkpoint to use       |
| `clip_name`  | —       | The CLIP / text encoder model for the prompt |
| `vae_name`   | —       | The VAE model for encoding/decoding          |
| `width`      | —       | Output video width                           |
| `height`     | —       | Output video height                          |
| `noise_seed` | —       | Seed for reproducibility                     |

## Steps to run

1. **Load an image** — use the **LoadImage** node to load your starting frame
2. **Write a prompt** (optional) — describe the desired video content
3. **Set duration** — how many frames to generate
4. **Select models** — choose Wan2.1 I2V checkpoint, CLIP, and VAE
5. **Choose mode** — Causal Forcing or Causal Forcing++ (set via the subgraph's internal configuration or a Causal Forcing-specific input if available)
6. **Run** — frames will be generated sequentially and saved to `ComfyUI/output/`

## Model downloads

Download the Wan2.1 I2V model and required files. Place them in the corresponding `models/` subdirectories.

### Wan2.1 I2V

<CardGroup cols={2}>
  <Card title="Wan2.1 I2V 14B" icon="download" href="https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp16.safetensors?download=true">
    wan2.1\_i2v\_480p\_14B\_fp16.safetensors — Wan2.1 I2V 14B checkpoint
  </Card>

  <Card title="Wan2.1 I2V 1.3B" icon="download" href="https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_fp16.safetensors?download=true">
    wan2.1\_t2v\_1.3B\_fp16.safetensors — Wan2.1 1.3B checkpoint (8GB VRAM minimum)
  </Card>
</CardGroup>

### CLIP and VAE

<CardGroup cols={2}>
  <Card title="CLIP (google-bert)" icon="download" href="https://huggingface.co/google-bert/bert-base-uncased/resolve/main/model.safetensors">
    google-bert/bert-base-uncased — CLIP text encoder
  </Card>

  <Card title="VAE (Wan2.1)" icon="download" href="https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/Wan2.1_VAE_bf16.safetensors?download=true">
    Wan2.1\_VAE\_bf16.safetensors — Wan2.1 VAE
  </Card>
</CardGroup>

### Model storage location

```
📂 ComfyUI/
├── 📂 models/
│   ├── 📂 diffusion_models/
│   │      └── wan2.1_i2v_480p_14B_fp16.safetensors (or 1.3B variant)
│   ├── 📂 text_encoders/
│   │      └── bert-base-uncased (folder with model.safetensors)
│   └── 📂 vae/
│          └── Wan2.1_VAE_bf16.safetensors
```
