Nodes/ComfyUI-nkxx/2. 🎬 Veo 异步查询状态 (Grsai)
ComfyUI Node

2. 🎬 Veo 异步查询状态 (Grsai)

The 'is it done yet?' node for your Grsai Veo queue

By nkxx188·Created 11 months ago·Updated 6 months ago· 14
2. 🎬 Veo 异步查询状态 (Grsai)
    • report
    api_key

    This is the second node in the Grsai Veo async pipeline: after VeoMultiRefSubmitTask_Async (or VeoFramesSubmitTask_Async) hands you a task ID, this one tells you whether the job has actually rendered yet. It takes no prompt, no model, no images - just an optional API key - and it returns one STRING, report, which is a whole status board for every Veo task the pack knows about.

    How the polling works

    Mechanically it's a poller over the local task database. It reads ComfyUI-nkxx/data/grsai_veo_history.json, and for every task that isn't already done it asks the Grsai API for status. Newly-flagged succeeded tasks get their video URL stored in the DB; failures get their reason stashed too. Then it prints a human-readable summary: each line looks like [运行中 45%] (veo3.1-fast) - your prompt first 20 chars..., with statuses translated from API speak (a moderation failure reads "违规" rather than a raw enum). The last line shows your remaining credits, which is the pack's way of making sure you don't discover the bill at the end of the week.

    Why you'd use it

    Because it's a query node it only does one thing, but it does it well: you run it repeatedly - or wire it into a workflow that re-runs itself - and watch report move from 排队中 (queued) to 运行中 (running) to 待下载 (ready to download). When you see 待下载, it's time to run VeoGetNextVideo_Async, which grabs the video URL out of that same DB and downloads it.

    The inputs are nearly empty: just api_key, same fallback chain as everything in this pack - node field, then GRSAI_KEY env var, then whatever's hardcoded in __init__.py. No key means the node returns "API Key 不能为空" and you're stuck. There's nothing else to configure, which is honestly the appeal after the submit node's menu of options.

    You'll want this node if you're building a proper async Veo workflow instead of blocking ComfyUI on a 15-minute sync call. The standard pattern is: submit with VeoMultiRefSubmitTask_Async, poll with this, download with VeoGetNextVideo_Async. If you're only making one video now and then, the sync Veo3_1_RefGenerator_Sync node is simpler - but the moment you're batching several jobs, the async trio becomes the sane option, and this is the middle node that tells you where things stand.

    Install and the channel trap

    Install comes from the pack README - clone https://github.com/jieg9341-lab/ComfyUI-nkxx into ComfyUI/custom_nodes/, restart, and let it auto-install requests, pandas, openpyxl, yt-dlp, opencv-python, aiohttp. No weights to download; this node never touches a GPU. The only real gotcha: it's channel-specific. This is the Grsai query node; the Wujiai channel has its own VeoQueryTasks with a separate database and host, and they don't see each other's tasks. Grab the wrong one and your report will be empty (or show only the other channel's history as a no-op) while the work you're waiting on sits in the other queue.

    CategoryNkxx/Grsai/视频 (异步)

    Inputs (1)

    NameTypeDefaultDescription
    api_keyoptSTRING

    Outputs (1)

    NameTypeDescription
    reportSTRING