Nodes/ComfyUI-nkxx/1. 🎬 Veo 首尾帧异步提交 (Grsai)
ComfyUI Node

1. 🎬 Veo 首尾帧异步提交 (Grsai)

Submit in a second, render in the background

By nkxx188·Created 11 months ago·Updated 6 months ago· 14
1. 🎬 Veo 首尾帧异步提交 (Grsai)
  • first_frame
  • last_frame
  • response
promptA cinematic drone shot of a futuristic city
modelveo3.1-fast
aspect_ratio16:9
api_key

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_Async nodes.
CategoryNkxx/Grsai/视频 (异步)

Inputs (6)

NameTypeDefaultDescription
promptSTRINGA cinematic drone shot of a futuristic city
modelCOMBOveo3.1-fast6 options: veo3.1-fast, veo3.1-fast-1080p, veo3.1-fast-4k, veo3.1-pro, veo3.1-pro-1080p, veo3.1-pro-4k
aspect_ratioCOMBO16:92 options: 16:9, 9:16
api_keyoptSTRING
first_frameoptIMAGE
last_frameoptIMAGE

Outputs (1)

NameTypeDescription
responseSTRING