
Wan2.1 VACE First–Last Frame introduces endpoint-anchored video synthesis: you provide a starting frame and an ending frame, and the model plans a temporally coherent path between them. Instead of naive optical-flow interpolation, the workflow synthesizes intermediate content in latent space using Wan2.1’s VACE prior, guided by your prompt and optional LoRA. This delivers stable identity, style continuity, and believable motion planning across the entire sequence.
In ComfyUI, the pipeline pairs WanVaceToVideo with a ModelSamplingSD3 profile, KSampler, and a strict frame/layout regimen: spatial dimensions must be divisible by 16, and the total frame count follows a 4n+1 rule (Length − 1 divisible by 4). This structure, plus TrimVideoLatent for exact clip length, produces transitions that are both smooth and controllable. The 14B model supports clean 480p and 720p outputs, while the lighter 1.3B is optimized for 480p. With optional LoRA (e.g., CausVid), you can cut sampling steps dramatically while maintaining temporal coherence.
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.
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 "Wan2.1 VACE 첫 번째-마지막 프레임" (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_wan_vace_flf2v_api.json");
const asset = client.assets.fromFile("input.png");
wf.setInput("147", "image", asset); // LoadImage
const job = await client.run(wf);
await job.getOutputs("69")[0].toFile("output.png"); // SaveVideoThe 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














