EvoLink Veo 3.1 Text-to-Video (Official)
The Model That Brings Its Own Audio
- video
- task_id
- status_info
- result_urls
- response_json
Veo 3.1 has one thing almost nothing else in video generation has: it generates the audio natively, in the same pass as the picture. Dialogue, sound effects, ambient noise, synced to what's on screen. That's the genuine capability gap this model owns - open video can chase the visuals, but native audio stayed closed through all of 2026. The EvoLink Veo 3.1 Text-to-Video node is the official wrapper that puts it in a ComfyUI graph, no Google Cloud project required.
How it works
Same EvoLink pattern as every node in the pack: submit to /videos/generations, poll, download before the 24-hour links expire, hand back a native VIDEO output for Save Video. The model picker gives you two flavors of the same model - veo-3.1-generate-preview (the full model) and veo-3.1-fast-generate-preview (faster, cheaper, trades some polish). Both generate up to 4K with audio on by default.
That last part is where people get surprised. generate_audio defaults to true, and the tooltip is clear: audio is extra charge. If you just want a silent draft to iterate on, flip it off and save the credits. Turn it on when you're showing someone the actual result - that's where Veo earns its keep.
The inputs that matter
prompt- required, ~2000 tokens, Chinese works. Write the camera move and the scene; add dialogue in quotes if you want the model to voice it.model- the two Veo variants, full vs. fast.duration- 4, 6, or 8 seconds. Veo clips are short; plan shots accordingly.quality-720p(default) /1080p/4k.generate_audio- the cost-bearing toggle described above.negative_promptandseed- negative prompting is a real thing here, and a fixed seed gives you reproducible results.0means random.
Outputs
video → Save Video. task_id for the job log at evolink.ai, status_info for a model/time/credits summary, result_urls (raw links, 24h) and response_json (full payload) for chaining - e.g., straight into the Topaz upscale node if you want the 4K output bumped further.
Install and gotchas
Part of the comfyui-evolink pack. Manager → search EvoLink → Install → fully restart ComfyUI (close the console window; a browser refresh doesn't count). Or:
cd ComfyUI/custom_nodes
git clone https://github.com/deeplearning-goethe/comfyui-evolink
Only requests as a dependency - no models, no GPU, no Google Cloud account. API key from evolink.ai/dashboard/keys (sk-), fill once, leave blank so the key doesn't travel in shared workflow JSON.
Biggest rookie move: leaving generate_audio on while iterating and wondering where the credits went. The other usual trips - node not appearing after install (restart fully, check for nested folders), "finished but no video" (wire video into Save/Preview), 401/402/429 error codes - all behave like the rest of the pack. Failed and moderation-blocked tasks don't charge; unchanged reruns hit ComfyUI's cache and don't bill twice. If you want the image-driven flavors, there are sibling EvoLink Veo 3.1 nodes for first/last-frame and reference-to-video that share this exact DNA.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | 镜头/画面描述,支持中文,最长约 2000 tokens。 | |
| model | COMBO | veo-3.1-generate-preview | 2 options: veo-3.1-generate-preview, veo-3.1-fast-generate-preview |
| aspect_ratioopt | COMBO | auto | auto:按 prompt 自动选择画幅 |
| durationopt | COMBO | 8 | 视频时长(秒) |
| qualityopt | COMBO | 720p | 分辨率 |
| generate_audioopt | BOOLEAN | true | 生成原生音频(额外收费) |
| negative_promptopt | STRING | 不希望出现的内容 | |
| seedopt | INT | 00–4294967295 | 0=随机 |
| api_keyopt | STRING | EvoLink API Key(sk- 开头)。首次填写后自动保存到本机配置,之后可留空。分享工作流前请清空此框。获取:evolink.ai/dashboard/keys | |
| timeout_secondsopt | INT | 120060–3600 | 最长等待时间;生成失败或审核拦截的任务不扣费 |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | 生成结果(已下载落地,可直连保存节点) |
| task_id | STRING | EvoLink 任务 ID,可到 evolink.ai/zh/dashboard/logs 查询 |
| status_info | STRING | 人读状态摘要(模型/用时/消耗 credits) |
| result_urls | STRING | 结果原始链接,每行一个(24 小时过期) |
| response_json | STRING | 平台 GET /v1/tasks/{id} 的完整 JSON 响应(status/usage/results 等),供下游节点解析 |