wan / v2.7 / fal / image-to-video
Turn a still into motion with Wan 2.7, GPU not included
- source_image
- loras
- start_image
- end_image
- api_config
- video
- workflow_id
- raw_json
Image-to-video is the community's favorite video mode for a reason: anchoring the first frame to a real image kills most of the consistency problems that plague pure text-to-video. This node gives you that workflow with Wan 2.7 - which you cannot run locally - running on Civitai's fleet, billed in Buzz. You wire in an image, type a motion prompt, and a few seconds of clip come back as a native VIDEO output.
Be honest about what you're signing up for. Wan 2.7 is the closed-weight step after Wan 2.2, and the community's verdict on it is… mixed to disappointed, with many people saying 2.2 still looks better and the free LTX 2 is the smarter play. So this node isn't about chasing the latest model - it's about having any Wan 2.7 pipeline when your card can't run a 14B model. For that job it's genuinely convenient: no models, no LoRA hunting, no VRAM.
How it works
Same skeleton as every node in this pack: the node packages your prompt and image, submits a videoGen workflow to Civitai's orchestration API (the fal provider hosts the actual job), long-polls until it's done, and converts the returned MP4 into ComfyUI's VIDEO type. Nothing runs on your machine - your image and prompt go to Civitai's servers, so this is the exact tradeoff of every API-wrapper node: convenience and a key in your graph, in exchange for your data leaving the box.
The inputs that matter
Only prompt and cfg_scale (default 4) are required. The interesting parts are in the optional drawer:
source_image- the image to animate. Accepts a URL, data URL, or base64, so wire in aLoadImageor drop a URL string.start_image/end_image- this is the "first-and-last-frame" trick: give it both and the model works toward the ending frame, which makes looping and planned compositions way more controllable.video_url- a clip to continue from (MP4/MOV, 2–10s, max 100 MB), turning the node into extension rather than cold start.duration(1–30s, default 5),frame_rate(default 24),resolution(720p/1080p),seed,steps(10–50),negative_prompt,loras,enable_safety_checker, andenable_prompt_expansion(default on - Civitai rewrites your prompt before generation, which helps but can surprise you).
One handy extra: audio_url takes a WAV/MP3 (3–30s, up to 15 MB) and the job generates with that audio track. Audio + video in one shot is exactly the kind of thing that's painful to glue together locally, so it's worth knowing it's there.
Install and auth
Install the pack once and you get all ~160 Civitai nodes. From ComfyUI Manager: Custom Nodes Manager → search Civitai Comfy Nodes → Install → restart. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt # just requests
Credentials resolve from a Civitai Auth node, the CIVITAI_API_TOKEN env var, a stored key/OAuth (Civitai sidebar), or an interactive browser login - in that order. Headless servers want the env var.
Where people get burned
First, cost: video generation is the expensive end of any metered catalog, and a 30-second clip is a lot of billed work. Second, don't trust any "Wan 2.7 open weights" download page you find - they're fabricated. Third, the outputs are only as good as the input image: a soft or poorly-composed still makes a soft video. Start at 5 seconds, 720p, low CFG, and scale up only when the motion is right.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| cfg_scale | FLOAT | 4.000–100 | — |
| source_imageopt | IMAGE | Either A URL, A DataURL or a Base64 string | |
| frame_rateopt | INT | 240–2147483647 | — |
| durationopt | INT | 51–30 | — |
| seedopt | INT | 00–4294967295 | — |
| stepsopt | INT | 2010–50 | — |
| lorasopt | CIVITAI_LORAS | — | |
| resolutionopt | COMBO | 1080p | 2 options: 720p, 1080p |
| enable_safety_checkeropt | BOOLEAN | false | — |
| start_imageopt | IMAGE | First frame image URL | |
| end_imageopt | IMAGE | Last frame image for first-and-last-frame-to-video | |
| video_urlopt | STRING | URL of a video clip to continue from (MP4/MOV, 2-10s, max 100 MB) | |
| negative_promptopt | STRING | — | |
| enable_prompt_expansionopt | BOOLEAN | true | — |
| audio_urlopt | STRING | URL of audio file (WAV/MP3, 3-30 seconds, up to 15 MB) | |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |