1. 🎬 Veo 首尾帧异步提交 (Grsai)
Submit in a second, render in the background
- first_frame
- last_frame
- response
Step 1 of the author's numbered Veo async pipeline: submit a first/last-frame Veo 3.1 job to the Grsai API and get out of the way. No progress bar, no blocking, no waiting on a multi-minute render - the node posts the job, stores the task ID in the pack's local database, and returns a status string. The render happens in the background, and steps 2/3 (query, download) pick it up later.
It's the async twin of Veo3_1_FramesGenerator_Sync, with the same inputs: prompt (multiline), model (the full six-model list - veo3.1-fast through veo3.1-pro-4k; note the async frames path does support Pro, unlike the sync ref node), aspect_ratio (16:9 / 9:16), plus optional first_frame / last_frame IMAGE inputs and api_key (blank = pack-wide Grsai key).
The one output, response, is a status string: task ID plus a nudge to run the query node next. The real bookkeeping happens invisibly - the task lands in data/grsai_veo_history.json tagged with your prompt, model, submission time, and status: pending. JSON file, so it survives restarts; Veo jobs render on Google's servers regardless of whether your ComfyUI box is up.
Why async instead of the sync node? Because a Veo 3.1 Pro clip at 4K is not a quick call. Firing off several frame-controlled shots and continuing to work locally (running a Wan loop, iterating a batch) is a vastly better use of your time, and this is the node that enables it. The sync version is fine for one-off tinkering; this is for actual production rhythm.
Install is pack-wide:
cd ComfyUI/custom_nodes
git clone https://github.com/jieg9341-lab/ComfyUI-nkxx
Restart; first boot auto-installs requests, pandas, yt-dlp, opencv-python, aiohttp. Grsai key from nkxx.grsai.ai.
Grounded gotchas:
- Last frame without a first frame is rejected here too - same rule as the sync node: "Veo 不支持仅使用尾帧生成。若使用尾帧控制,必须同时提供首帧。" End-frame-only requests come back as a failed submit, not a job.
- It re-submits on every graph run (forced re-execution). Leave it in an Auto-Queue workflow and you'll be generating Veo clips on repeat - spectacular way to drain credits.
- The database trims old completed history (default 10 for Veo), so collect your finished clips within a reasonable window or they age out of the queue view.
- Nothing downloads at this step. The pipeline only completes with the query +
VeoGetNextVideo_Asyncnodes.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A cinematic drone shot of a futuristic city | — |
| model | COMBO | veo3.1-fast | 6 options: veo3.1-fast, veo3.1-fast-1080p, veo3.1-fast-4k, veo3.1-pro, veo3.1-pro-1080p, veo3.1-pro-4k |
| aspect_ratio | COMBO | 16:9 | 2 options: 16:9, 9:16 |
| api_keyopt | STRING | — | |
| first_frameopt | IMAGE | — | |
| last_frameopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| response | STRING | — |