Wan 2.2 14B Fun Camera Control

This ComfyUI workflow turns a single still image into a smooth, camera-driven video using Wan 2.2 14B Fun Camera Control. It loads the Wan 2.2 model with UNETLoader and ModelSamplingSD3, encodes your text prompt with CLIPLoader + CLIPTextEncode, and builds a camera path with WanCameraEmbedding. The WanCameraImageToVideo node fuses your prompt, start image, and camera embeddings to generate temporally consistent frames that follow pan, zoom, and rotation cues. Frames are decoded with VAELoader + VAEDecode, assembled with CreateVideo, and written out via SaveVideo.

Under the hood, the workflow runs a two-pass denoise with KSamplerAdvanced: a High noise phase to establish motion, structure, and parallax, followed by a Low noise phase to refine details and reduce flicker. This separation helps keep subjects stable while letting the virtual camera move dynamically. The template includes an optional LightX2V 4 Steps LoRA (via LoraLoaderModelOnly) to accelerate generation at the cost of motion richness and fine detail; use the Default (Without Lightning LoRA) path for the best dynamics. The provided fp8_scaled Wan 2.2 checkpoint is optimized for 640×640 and, on an RTX 4090D 24GB, typically uses ~84% VRAM and takes about 536s for the first run and ~513s for subsequent runs at that resolution.

API

Use this workflow from code

Every Comfy workflow is a JSON graph. The payload below is this workflow, exactly as ComfyUI runs it — fetch it from the URL, keep it in version control, or load it in ComfyUI and run it node by node.

video_wan2_2_14B_fun_camera.json
Fetching workflow JSON…

Run it from TypeScript or Python with the Comfy SDK. The same code targets Comfy Cloud or a ComfyUI you host yourself — only the base URL changes.

// Install (beta)
npm i @comfyorg/sdk

// Run "Wan 2.2 14B Fun Camera Control" (TypeScript)
import { Comfy } from "@comfyorg/sdk";

const client = new Comfy({ apiKey: "comfyui-..." });

// This workflow, exported in API format (see note below)
const wf = await client.workflows.fromFile("video_wan2_2_14B_fun_camera_api.json");

const asset = client.assets.fromFile("input.png");
wf.setInput("97", "image", asset); // LoadImage

wf.setInput("107", "text", "your prompt here"); // CLIPTextEncode

const job = await client.run(wf);
await job.getOutputs("73")[0].toFile("output.png"); // SaveVideo

The SDK takes a workflow in API format: open this workflow in ComfyUI and use File → Export Workflow (API).

Comfy Cloud API access requires a plan with an API key.

FAQ

Frequently Asked Questions

View all workflows
Showing 30 of 30 templates