Veo Extend Video (Ace Data Cloud)
Two models, one job — make the clip longer
- status
- task_id
- video_url
- trace_id
Veo clips are short. Genuinely short - seconds, not minutes - and no amount of prompting changes that, because length is a product decision, not a parameter. Extend is the escape hatch: it takes a video you already generated and continues it, keeping the look and motion going.
It's also the pickiest node in the pack. Where the video-submission nodes accept four model choices and four resolutions, Extend accepts two of each, and the two aren't the same sets.
How it works
It POSTs to a different endpoint than the generation nodes - /veo/extend rather than /veo/videos - with video_id, model and async: true, and gets a task ID back like everything else here. The continuation is a fresh render conditioned on the tail of your existing clip, so it's a new paid job, not a free "append frames" operation.
One implementation detail worth knowing because it tells you what's genuinely optional: the client only includes prompt in the request if it's non-empty, and only includes aspect_ratio if you moved it off 16:9. So a bare extend with no direction is legal. Veo will just keep going on its own.
The inputs
- video_id - the ID of the video to continue, not its URL. The client rejects a URL outright with
An existing Veo video ID is required; do not enter a URL, which is a nicer failure than a confusing remote error. The nodes in this pack hand you atask_id; the video's own ID is what Ace records against the completed task, so grab it from there or from the console. - model -
veo31-fastorveo31, defaultveo31-fast. That's all that's allowed. Veo 3 models can't extend, and the client will tell you so. - prompt - multiline, empty by default. Optional here, unlike the generation nodes. Use it when you want the continuation to head somewhere specific.
- aspect_ratio -
16:9or9:16. - resolution -
default,720p,1080p. Note there's no4kand nogifin this list; the enum is its own thing, and asking for 4k won't get you anywhere.
Outputs are the pack-standard four: status, task_id, video_url, trace_id. A successful submit comes back pending with an empty video_url - feed task_id to Veo Retrieve Task and get the finished URL that way, then into Veo Load Video if you want a file.
Install and key
ComfyUI Manager → Custom Nodes → search Veo → confirm publisher acedatacloud and package Veo by Ace Data Cloud → install, restart. Source route:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/AceDataCloud/VeoComfyUI.git
cd VeoComfyUI && python -m pip install -r requirements.txt
requests is the only dependency - no models to download, no GPU needed. This pack wants ComfyUI 0.39.0+ (native VIDEO type), and it reads its credential from the environment of the running process:
export ACEDATACLOUD_API_KEY='paste-your-key-here'
python main.py
Where people get burned
The video-ID-versus-URL confusion is the number one offender, mostly because the field sits right next to a URL field in other nodes. Remember: generation nodes give you a task_id; extend, get-1080p, upsample and reshoot all want a video ID. Pasting the CDN link never works.
Second, a chain problem the README is explicit about. Extend happily accepts a previously extended result, so you can stack continuations - but the other editing nodes won't touch that output. Edit Objects and Reshoot require an original Veo video ID, so once you've extended, the clip is off the menu for those two. If you're planning to erase something from the background, do it before you extend.
And the standing hazard of this whole pack: it's a paid submission node marked as an output node, so it runs on Queue Prompt even with nothing wired downstream. Mute it while you're editing the graph. When a job looks stuck, retrieve the same task ID instead of resubmitting - nothing in this pack retries a paid call for you.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video_id | STRING | — | |
| model | COMBO | veo31-fast | 2 options: veo31-fast, veo31 |
| prompt | STRING | — | |
| aspect_ratio | COMBO | 16:9 | 2 options: 16:9, 9:16 |
| resolution | COMBO | default | 3 options: default, 720p, 1080p |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| status | STRING | — |
| task_id | STRING | — |
| video_url | STRING | — |
| trace_id | STRING | — |