Nodes/ComfyUI-nkxx/1.5 🎬 Veo 多参异步提交 (Grsai)
ComfyUI Node

1.5 🎬 Veo 多参异步提交 (Grsai)

Send up to 3 reference images to Veo 3.1 without blocking your queue

By nkxx188·Created 11 months ago·Updated 6 months ago· 14
1.5 🎬 Veo 多参异步提交 (Grsai)
  • ref_image_1
  • ref_image_2
  • ref_image_3
  • response
promptA character turnaround
modelveo3.1-fast
aspect_ratio16:9
api_key

Veo 3.1 has no open weights - you cannot download it, so every "Veo in ComfyUI" workflow is really "ComfyUI that phones a cloud API." This node is the fire-and-forget half of that deal. You drop in a prompt and up to three reference images, it uploads them to the Grsai channel this pack resells, and hands you back a task ID in a string instead of sitting there for ten minutes. That's the entire point: submit now, babysit later.

The async flow

The display name is "1.5 🎬 Veo 多参异步提交 (Grsai)", which reads as a numbering scheme - 1. submit, 2. query, 3. download. It's the second submitter in that family, the multi-reference one, sitting between the first/last-frame submitter and the query node. If you've ever run a synchronous Veo call and watched ComfyUI hang on a progress bar for a quarter of an hour, you already know why the async flavor exists: the sync nodes in this pack poll for up to 900 seconds with a progress bar, and anything that long shouldn't own your queue.

How the upload-and-submit works

How it works under the hood is worth knowing because it's the same machinery every node in this pack uses. Each reference image gets saved to a temp file and uploaded to Grsai's storage, which returns a URL. The node builds a payload with model, your prompt, aspectRatio, and the uploaded image URLs, POSTs it to https://grsai.dakka.com.cn/v1/video/veo, and stores the returned task ID in a thread-locked JSON database at ComfyUI-nkxx/data/grsai_veo_history.json with a pending status. That file survives restarts, which is why you can submit, close the app, and come back to query later. One sneaky detail: it appends a random zero-width character to your prompt so ComfyUI's duplicate-prompt caching doesn't skip the run.

The inputs that matter

The inputs that matter, briefly:

  • prompt - the video prompt. This is a cloud model, so moderation happens on Google's side, no way around it.
  • model - only the FAST family (veo3.1-fast, veo3.1-fast-1080p, veo3.1-fast-4k). Multi-reference jobs don't support Pro here; if you need Pro, reach for the sync or first/last-frame nodes instead.
  • ref_image_1/2/3 - up to three IMAGE inputs, all optional. They get uploaded in order.
  • api_key - leave blank and it falls back to the GRSAI_KEY environment variable or whatever's hardcoded in __init__.py.

The single output, response, is a STRING containing the task ID and a hint to use the query node. You don't wire it anywhere; read it, or tee it into a text display. The query node reads the database, not this string.

Install and the traps

Install is the whole pack at once - see the pack README. git clone https://github.com/jieg9341-lab/ComfyUI-nkxx into ComfyUI/custom_nodes/, restart, and on first load it auto-installs requests, pandas, openpyxl, yt-dlp, opencv-python and aiohttp. No model files to download, ever - you're calling Grsai's API, and you need a key from nkxx.grsai.ai before any of this works. Where people get burned: blank key returns "API Key 不能为空" and nothing happens; forgetting that only fast models take multi-ref; and assuming the queue is free. Every submit costs credits, so the pack's circuit breaker (which trips if you leave Auto Queue on and spam identical prompts) is genuinely protecting your wallet.

CategoryNkxx/Grsai/视频 (异步)

Inputs (7)

NameTypeDefaultDescription
promptSTRINGA character turnaround
modelCOMBOveo3.1-fast3 options: veo3.1-fast, veo3.1-fast-1080p, veo3.1-fast-4k
aspect_ratioCOMBO16:92 options: 16:9, 9:16
api_keyoptSTRING
ref_image_1optIMAGE
ref_image_2optIMAGE
ref_image_3optIMAGE

Outputs (1)

NameTypeDescription
responseSTRING