Storyboard-Character
Build a Sora character from a local clip
- video
- character_id
- username
- permalink
- profile_picture_url
- profile_image
- response
StoryboardCharacter is the pack's other character-creation node, and it's the one that works the way you'd hope: give it a local video, and it registers a reusable character with the Sora reseller (T8, Comfly, or Aabao) using a slice of that footage. Where AabaoCharacter demands a public URL, this node accepts a local VIDEO object, picks frames from it, and for Aabao it will even try a direct multipart file upload. If you have a clip of your subject on disk and want a character ID you can reuse, this is the friendlier door.
How it works
You give it a timestamps string in the form start,end in seconds (default 1,3), and the node validates that range: the slice must be between 1 and 3 seconds long, start at or after 0, and end after it starts. Then it calls the provider's character endpoint with those timestamps and your video reference. The provider looks at that 1–3 second slice and builds a character profile from it, returning a character_id, a username, and a shareable permalink. If download_profile_image is on, it also fetches the provider's profile picture and hands it back as an IMAGE tensor.
Source handling differs by provider:
- Aabao - can take a local video path and upload it (multipart) if you haven't given a URL.
- T8 / Comfly - pass an external
video_url; theurlfield in the payload is what the server fetches.
Inputs and outputs
- timestamps - required.
start,endin seconds, slice length must be 1–3s. The whole node revolves around this. - video - optional local VIDEO input; the node reads
saved_path/pathoff it. - video_url - optional fallback external URL (required for the t8/comfly path).
- character_name - a name for the character; used on the Aabao path.
- seed / timeout / download_profile_image - reproducibility, request timeout (60–600s), and whether to fetch the profile picture.
Outputs: character_id, username, permalink, profile_picture_url (all STRING), profile_image (IMAGE), and response (STRING - a JSON summary, including a friendly error message when validation fails).
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
Keys come from config.json - the node looks up t8_*, comfly_*, or aabao_* keys and base URLs (it even has a zhenzhen_* fallback for the T8 key, a leftover from the pack's earlier provider).
Common issues
- "Duration < 1s" / "Duration > 3s" - the node is strict: your start/end slice must land between 1 and 3 seconds. A
1,3range is 2 seconds and passes;1,5doesn't. - "Bad URL scheme" -
video_urlmust start with http(s). No local paths in that field. - "No key found for provider" - the node couldn't find a key for the selected provider in config.json or the node field. Check which provider you're on - the default is T8.
- Character from the wrong part of the video - the timestamps select the slice, so make sure the 1–3s window actually shows the person's face clearly. That's the footage the model learns from.
- profile_image comes back blank/grey - the download failed (or was skipped); the node returns a blank placeholder IMAGE rather than erroring. Check
profile_picture_urland grab it manually.
Reach for this when you've got the subject on disk and you want their character ID for downstream storyboard or remix work. It's the local-first sibling to AabaoCharacter's URL-only approach.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| api_provider | COMBO | t8 | 7 options: t8, t8-us, t8-hk, comfly, comfly-us, comfly-hk, +1 |
| api_key | STRING | — | |
| timestamps | STRING | 1,3 | — |
| videoopt | VIDEO | — | |
| video_urlopt | STRING | — | |
| character_nameopt | STRING | — | |
| seedopt | INT | 00–2147483647 | — |
| timeoutopt | INT | 30060–600 | — |
| download_profile_imageopt | BOOLEAN | true | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| character_id | STRING | — |
| username | STRING | — |
| permalink | STRING | — |
| profile_picture_url | STRING | — |
| profile_image | IMAGE | — |
| response | STRING | — |