Aabao 角色创建
Teach Sora a person, then generate with them
- username
- character_id
- video
- Filenames
- status
AabaoCharacter is the pack's character-consistency node: you hand it a video of a person, and the Aabao reseller's sora-2-characters model learns who that person is so later generations can reuse them. That's a genuinely useful thing - one of the recurring pains of Sora-style closed models is keeping the same face across clips, and this is the API-level answer: the provider stores the character under an ID, and you reference that ID (or username) in future requests. What it is not, and this trips people up, is a node that takes a local file. It takes a public URL.
How it works
The node POSTs model + video to the provider's video/character endpoint. The server is the one that fetches your video - it downloads from the URL you give it and builds the character profile from the footage. That's why the input contract is strict: the URL must be a real, publicly accessible http:// or https:// link. No multipart file upload, no base64 data URI - the code validates this up front and tells you exactly that in the status output if you try. Recommended hosts from the pack docs: Aliyun OSS, Tencent COS, Qiniu - anything that serves a direct video link.
The create_only toggle changes what happens after registration:
- create_only = true (default): just registers the character, returns
usernameandcharacter_id. Use those in later generations. - create_only = false: also generates a video right away using the
promptfield (the character's action, e.g. "wave and smile").
Inputs and outputs
- video_url - required, and the thing everyone stumbles on. Paste a public video link here.
- create_only - true to just make the character, false to also generate.
- prompt - only needed when
create_onlyis false; describes what the character should do. - model -
sora-2-charactersby default, but the full Aabao video model list is available. - api_provider / api_key - provider is fixed to
aabao; key from config.json or the field.
Outputs: username, character_id (both STRING, the things you save and reuse), video (VIDEO - the generated clip if any), Filenames (VHS), and status (STRING, which carries the friendly Chinese error messages when something goes wrong).
Install
Standard pack install - ComfyUI Manager → search "ComfyUI_Sora", or:
cd ComfyUI/custom_nodes
git clone https://github.com/xuchenxu168/ComfyUI_Sora
cd ComfyUI_Sora && pip install -r requirements.txt
Restart and set aabao_api_key.
Common issues
- "必须提供 video_url" - you left it blank, or you tried to wire a local VIDEO object in. There's no local-file path here; upload to a host first.
- "服务器无法下载视频" / curl errors - the provider tried to fetch your URL and failed. The server needs to reach the link: no localhost, no private IPs, no signed-expiring links that rot before the fetch. A stable CDN link is the fix.
- Character doesn't look right - the model learns from whatever's in your clip. Feed it a few seconds of clean, well-lit, front-facing footage of the person with their face visible; anything else teaches it the wrong face.
- "Request timeout" - character creation is a server-side job and can take a while; the node waits up to the configured timeout (600s default in config.json). If you're timing out, the provider's queue is slow, not necessarily your setup.
This node is the pack's answer to "same person in every shot" - and the prerequisite for running your own recurring cast across the Aabao storyboard and image-to-video nodes. Just remember the public-URL rule before you wire it up.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| api_provider | COMBO | aabao | 1 options: aabao |
| api_key | STRING | — | |
| video_url | STRING | — | |
| create_only | BOOLEAN | true | — |
| promptopt | STRING | — | |
| modelopt | COMBO | sora-2-characters | 7 options: sora-2, sora-2-15s, sora-2-landscape, sora-2-landscape-15s, sora-2-portrait, sora-2-portrait-15s, +1 |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| username | STRING | — |
| character_id | STRING | — |
| video | VIDEO | — |
| Filenames | VHS_FILENAMES | — |
| status | STRING | — |