Nodes/comfyui_transit_node/CYAI 查询认证结果 (真人素材组)
ComfyUI Node

CYAI 查询认证结果 (真人素材组)

Polling until somebody finishes a liveness check (give it more than 10 minutes)

By Gin3601·Created 11 days ago·Updated 9 days ago· 0
CYAI 查询认证结果 (真人素材组)
    • group_id
    ◄api_key►
    ◄base_urlhttps://www.cyai.club►
    ◄byted_token►
    ◄project_namedefault►
    ◄poll_interval10►
    ◄max_wait600►

    Second half of the real-person flow, and the simplest node in the pack: you give it the token from CYAI 创建真人认证会话, it asks the platform "is it done yet?" every few seconds until the answer is yes, then it hands you a group id. That group id is the thing you've been chasing - it's the container your subject's assets have to live in for Seedance to accept their face as a reference at all.

    If you skipped the first node and are here wondering why any of this exists: Volcengine rejects inline images containing real people with InputImageSensitiveContentDetected.PrivacyInformation, and neither base64 nor a public URL gets around it. Only an asset:// reference passes, assets must live in a group, and a real person's group can only be created by a completed liveness verification. This node is the "did the human cooperate?" half of that.

    How it works

    It loops on GetVisualValidateResult at poll_interval seconds apart, sending the BytedToken and your ProjectName. When the response contains a GroupId, it returns it and stops. Until then it keeps trying.

    There's one piece of real engineering in there worth knowing about, because it explains behaviour that would otherwise look like a bug: upstream errors on a session that hasn't finished yet, and the node treats a thrown error as "not ready" rather than "fail". It stashes the message, sleeps, and tries again. So a run that spends nine minutes erroring and then succeeds is normal, not luck. The only thing that actually stops it early is clicking cancel - the loop calls ComfyUI's interrupt check each pass, so you won't be trapped waiting out the clock.

    When the clock does run out you get a timeout error quoting the last upstream error, which is usually something far more informative than "timeout", so read the whole message before assuming the worst.

    Inputs and outputs

    api_key, base_url, byted_token, project_name, poll_interval (default 10s), max_wait (default 600s). The token is the only one that isn't infrastructure - paste it in or wire it from the session node. Just under a minute of that 600 is typically enough for the session to register; the rest is waiting on a person.

    One output: group_id. Send it to CYAI 上传素材's group_id input, or write it down and reuse it in every future workflow for that subject - it doesn't expire per-run, and it's the reason you only have to do the liveness dance once.

    Installing it

    Part of the pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Gin3601/comfyui_transit_node.git
    

    Restart, look in CYAI/Asset. Zero dependencies, nothing to download. Manager: search CYAI Seedance, install the pack.

    Where people get burned

    The default timeout is too short for real life. 600 seconds is ten minutes, and the tooltip itself admits it: "认证需本人操作,建议给足时间". If you're verifying yourself you'll be done in two minutes. If you emailed a link to someone in another timezone, 600 isn't a timeout, it's a dare. Push max_wait to the 3600 ceiling and stop pretending the queue is a scheduler.

    It holds the queue while it waits. This is a blocking poll inside a ComfyUI execution, not a background job. The rest of your graph - and anything else you queue behind it - waits. Which is why the sane arrangement is a tiny two-node graph that does the session and the query on its own, run separately from the real workflow that consumes the group id.

    Expect the group_id output to be missing from the log even when it works. It's a plain STRING, so if it's connected to nothing that consumes it, the whole node won't execute - ComfyUI runs only the subgraph feeding an output node. Wire it to the upload node, or to a text display, or you'll queue it forever and see nothing.

    project_name has to match the session. Create under default, query under default. The pack's defaults make this a non-issue until someone edits one field and not the other, and then it looks exactly like a verification that never completes.

    CategoryCYAI/Asset

    Inputs (6)

    NameTypeDefaultDescription
    api_keySTRING中转站 API Key(sk-xxx)
    base_urlSTRINGhttps://www.cyai.club中转站地址
    byted_tokenSTRINGCreateVisualValidateSession 返回的 BytedToken
    project_nameSTRINGdefault项目名,默认 default
    poll_intervalINT101–60轮询间隔(秒)
    max_waitINT60030–3600最长等待(秒),认证需本人操作,建议给足时间

    Outputs (1)

    NameTypeDescription
    group_idSTRING真人认证对应的素材组 ID