Nodes/Comfyui-zhenzhen/Zhenzhen Sora2 Character
ComfyUI Node

Zhenzhen Sora2 Character

One @mention, same actor in every Sora 2 shot

By T8mars·Created 12 months ago·Updated a day ago· 719
Zhenzhen Sora2 Character
    • id
    • username
    • permalink
    • profile_picture_url
    • response
    timestamps1,3
    seed0
    url
    from_task
    api_key
    skip_errorfalse

    Character consistency is the reason most people abandon text-to-video in disgust. Comfly_sora2_character is the Comfly pack's answer: it clips a few seconds out of a Sora 2 video, registers that person as a reusable character, and gives you a username you can drop into any future Sora 2 prompt with an @ in front. @alice_walking_down_street and the same person shows up. Multiple characters per scene? The README says you can guest-star several at once, just stack the @s.

    Like every node in this pack, it's a relay call to ai.comfly.chat - same API key, no local compute, billed per character extraction.

    The two ways to feed it

    • url - a direct link to a Sora 2 video (hosted somewhere reachable).
    • from_task - a task_id from a previous Comfly_sora2 generation. This is the convenient one: generate, then immediately register the actor from the same job's task id.

    They're mutually exclusive - the node errors if you fill both, or neither. Pick one.

    timestamps is where people stumble. It's a start,end string like "1,3", and the extracted clip must be between 1 and 3 seconds long (the node checks the difference). Three seconds of clean footage is plenty to learn a face, but a two-frame wobble in your source video will do the learning for you, badly. The seed just gives you reproducibility across runs.

    What you get back

    • id - the internal character id
    • username - the string you actually use. This is the important one: type @username into a Comfly_sora2 prompt to summon the character.
    • permalink - a link to the character's page on the relay, if you need to show someone
    • profile_picture_url - the extracted mugshot
    • response - the JSON log

    There's no image or video output, which surprises people. This node produces identity, not content - wire username into the text of your video node's prompt, not into a node socket.

    Install

    Standard for the pack: ComfyUI Manager → search "Comfyui_Comfly" → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ainewsto/Comfyui_Comfly
    

    API key from ai.comfly.chat goes in the optional api_key field and is persisted to Comflyapi.json.

    Where it gets fiddly

    The whole flow is: generate a Sora 2 video → run this node on its task_id → drop @username into the next prompt. Two things bite. First, the 1–3 second clip window is strict, so pick timestamps that isolate a clean, well-lit moment - a face in motion beats a blink. Second, this all rides on the relay's Sora 2 backend, and character extraction on a low-res or fast-cut clip comes back looking like a stranger. If your cast member drifts across shots, re-extract from a better source video rather than tweaking the prompt. It's a neat trick when it works - just budget a couple of attempts to get a registration you trust.

    Categoryzhenzhen/Openai

    Inputs (6)

    NameTypeDefaultDescription
    timestampsSTRING1,3
    seedINT00–2147483647
    urloptSTRING
    from_taskoptSTRING
    api_keyoptSTRING
    skip_erroroptBOOLEANfalse开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。

    Outputs (5)

    NameTypeDescription
    idSTRING
    usernameSTRING
    permalinkSTRING
    profile_picture_urlSTRING
    responseSTRING