
이 워크플로는 Wan 2.1의 인페인팅 기반 비디오 디퓨전을 활용해 이미지 2장을 짧고 일관된 비디오로 변환합니다. 시작 프레임과 끝 프레임을 제공하면 WanFunInpaintToVideo 노드가 두 이미지에 고정된 피사체 및 장면 디테일을 유지하면서 그 사이의 모션을 합성하도록 모델을 가이드합니다. 텍스트 프롬프트(CLIPTextEncode 사용)가 스타일 및 콘텐츠를 조정하고, 네거티브 프롬프트는 아티팩트를 억제하는 데 도움이 됩니다.
내부적으로 Step1에서 핵심 구성 요소를 로딩합니다: UNETLoader(Wan2.1 / Wan), 잠재 데이터 <-> 픽셀 공간 변환을 위한 VAELoader/VAEDecode, 텍스트 조건화를 위한 CLIPLoader. 시작/끝 프레임은 LoadImage로 불러와 CLIPVisionLoader + CLIPVisionEncode로 인코딩되어 UNet용 이미지 조건화를 생성합니다. KSampler은 ModelSamplingSD3로 올바른 시그마 스케줄을 적용해 디퓨전 과정을 구동하며, CFGZeroStar 및 SkipLayerGuidanceDiT로 가이드를 안정화합니다. Attention Booster 그룹은 UNetTemporalAttentionMultiply를 적용해 프레임 간 시간적 일관성을 강화합니다. 마지막으로 CreateVideo가 프레임을 합치고 SaveVideo가 완성된 클립을 저장합니다.
API
코드에서 이 워크플로우 사용하기
모든 Comfy 워크플로우는 JSON 그래프입니다. 아래 페이로드는 이 워크플로우 그 자체로, ComfyUI에서 실행되는 것과 동일합니다 — URL에서 가져오거나, 버전 관리에 보관하거나, ComfyUI에서 불러와 노드별로 실행할 수 있습니다.
Comfy SDK로 TypeScript 또는 Python에서 실행하세요. 동일한 코드는 Comfy Cloud 또는 직접 호스팅하는 ComfyUI 모두에 적용됩니다 — 기본 URL만 다릅니다.
// Install (beta)
npm i @comfyorg/sdk
// Run "Wan 2.1 인페인팅" (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("wan2.1_fun_inp_api.json");
const asset = client.assets.fromFile("input.png");
wf.setInput("72", "image", asset); // LoadImage
wf.setInput("6", "text", "your prompt here"); // CLIPTextEncode
const job = await client.run(wf);
await job.getOutputs("80")[0].toFile("output.png"); // SaveVideoSDK는 API 형식의 워크플로우를 사용합니다: 이 워크플로우를 ComfyUI에서 열고 파일 → 워크플로우 내보내기(API)를 사용하세요.
FAQ













