Browse ModelsOpenaiOpenai Sora 2 Characters

Openai Sora 2 Characters

Openai Sora 2 Characters

Playground

Try it on WavespeedAI!

OpenAI Sora 2 Characters creates reusable character IDs from video references for consistent character appearance across Sora 2 generations. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

OpenAI Sora 2 Characters

Sora 2 Characters creates reusable character identities from short video clips. Upload a 2–4 second video of a character and assign a name — the model extracts identity features that can be referenced in Sora 2 Text-to-Video to maintain consistent character appearance across generated videos.


Why Choose This?

  • Character consistency Maintain the same character identity across multiple video generations.

  • Simple workflow Just upload a short video clip and provide a name — character ID is created instantly.

  • Reusable assets Once created, character IDs can be referenced in any Sora 2 Text-to-Video generation.

  • Ultra-low cost Only $0.001 per character creation.


Parameters

ParameterRequiredDescription
videoYesSource video of the character (2–4 seconds)
nameYesName identifier for the character

How to Use

  1. Upload a video — provide a 2–4 second video clip featuring the character.
  2. Enter a name — assign a memorable name for easy reference.
  3. Run — the model extracts character identity and creates the ID.
  4. Use in Sora 2 — reference the character by name in Sora 2 Text-to-Video.

Pricing

OutputCost
Per character ID$0.001

Best Use Cases

  • Consistent Storytelling — Maintain character identity across multiple video scenes.
  • Series Production — Create recurring characters for episodic content.
  • Brand Mascots — Generate consistent brand character appearances.
  • Animation Projects — Ensure character consistency throughout a project.

Pro Tips

  • Use clear, well-lit video clips with the character prominently visible.
  • 2–4 seconds is optimal — shorter clips may lack sufficient identity information.
  • Choose descriptive names for easy reference in prompts (e.g., “Joe” rather than “Character1”).
  • Front-facing shots with visible facial features produce the best identity extraction.

Notes

  • Both video and name are required fields.
  • Video length: 2–4 seconds recommended.
  • Created character IDs are used in Sora 2 Text-to-Video.
  • Ensure your content complies with OpenAI’s usage policies.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result


# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/openai/sora-2/characters" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{}'

# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
videostringYes-URL of an MP4 video (minimum 720p, max ~2.67:1 aspect ratio) to define the character. Videos exceeding 1080p are automatically scaled down. Non-standard aspect ratios are automatically padded to 16:9 (landscape) or 9:16 (portrait). Videos longer than 4 seconds are trimmed to the first 4 seconds.
namestringYes--Name for the character (1–80 characters). Refer to this name in prompts when using the character.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayArray of URLs to the generated content (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.has_nsfw_contentsarrayArray of boolean values indicating NSFW detection for each output
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction, the ID of the prediction to get
data.modelstringModel ID used for the prediction
data.outputsstringArray of URLs to the generated content (empty when status is not completed).
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2025 WaveSpeedAI. All rights reserved.