Overview
The Sora 2 Character API allows you to create reusable characters from videos and maintain character consistency across multiple video generations. By referencing@id (unique Cameo ID or Character ID) in your prompts, you can make specific characters appear in different videos.
Since the API prohibits direct use of human faces, the Character API provides a compliant solution: create a character as a virtual entity first, then reference it via
@id in prompts.Core Concepts
How the Character API works:- Create Character: Generate a unique character ID from a video URL
- Reference Character: Include
@character_idor@usernamein video generation prompts - Maintain Consistency: Characters retain their appearance and features across different videos
Why Use Characters?
Typical use cases for the Character API:E-commerce Scenarios
Product Characterization
Turn product packaging into characters to maintain consistent brand logos, text, and visual identity. Reference the product via
@character_id in subsequent videos to ensure consistent appearance across different scenes.- Product showcase videos: Same product appearing in different environments (outdoor, indoor, workplace)
- Brand marketing: Brand mascots maintaining consistent imagery across multiple short videos
- Package display: Logos and text on product packaging remain clear and consistent from multiple angles
Animation Scenarios
Virtual Characters
Virtual personas, cartoon characters, and anime figures are ideal for character creation. Once created, characters can appear repeatedly across different plots and scenes while maintaining consistent design.
- Series animation shorts: Protagonists maintaining same appearance across episodes
- Brand IP characters: Virtual spokespersons appearing in different marketing videos
- Educational content: Teaching virtual instructors maintaining consistent image across videos
Other Scenarios
- Game Assets: Promotional videos for game characters
- Virtual Streamers: Series video content for virtual content creators
- IP Derivatives: Video content creation for existing IP characters
Endpoint
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | ✅ | Fixed value: sora-character |
url | string | ✅ | Video URL containing the character to be created |
timestamps | string | ✅ | Time range where character appears (in seconds), format: "start,end"Example: "1,3" means seconds 1-3 of the videoRange difference: minimum 1 second, maximum 3 seconds |
Parameter Details
url - Video URL Requirements
url - Video URL Requirements
- Video Length: 15 seconds or less
- Format: MP4, MOV, and other common formats
- Content: Must NOT contain real human faces or obvious human body outlines
- Accessibility: URL must be publicly accessible (CDN addresses supported)
- Use CDN-hosted videos for better success rates
- Ensure sufficient video clarity (720p or above recommended)
- Character should have distinctive features (color, shape, texture, etc.)
timestamps - Time Range Settings
timestamps - Time Range Settings
- Format: String type, e.g.,
"1,3" - Meaning: Specifies the time segment in the video where the character appears (from which second to which second)
- Unit: Seconds (integers or decimals accepted)
- Total Video Length: Video can be any length up to 15 seconds
- Time Segment Constraints:
- Segment duration (end seconds - start seconds): minimum 1 second, maximum 3 seconds
- Start time cannot be less than 0
- End time cannot exceed total video duration
- Video total length 15s,
timestamps: "1,3"means use video content from seconds 1-3 as character (segment duration 2s) - Video total length 15s,
timestamps: "8,11"means use video content from seconds 8-11 as character (segment duration 3s) - Video total length 10s,
timestamps: "5,6"means use video content from seconds 5-6 as character (segment duration 1s)
- Find the time segment in the video where character features are most prominent
- Avoid time segments where character is occluded or motion-blurred
- Segment duration can be 1-3 seconds based on actual needs, typically around 2 seconds works well
Future Support: Create from Async Task ID
Future Support: Create from Async Task ID
Current Status: Not yet availableFuture updates will support creating characters directly using Sora 2 async video generation task
video_id, eliminating the need to download and re-upload videos to CDN. This will significantly streamline the workflow.Expected parameter format:Code Examples
cURL Example
cURL
Python Examples
Response Format
Success Response
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique character identifier (Character ID) Can be referenced as @char_abc123def456 in video generation prompts |
username | string | Character username (unique) Can be referenced as @my_character_2024 in video generation prompts |
display_name | string | Character display name (can be duplicated) For display purposes only, cannot be used for referencing |
permalink | string | Permanent link to character homepage |
profile_picture_url | string | URL of character profile picture |
Pricing
| Item | Price | Notes |
|---|---|---|
| Character Creation | $0.01 / request | Promotional pricing during beta period |
Currently in promotional period with very low pricing. Official pricing may be adjusted. Please follow official announcements.
Using Characters in Video Generation
After creating a character, use it in Sora 2 video generation:Usage Method
Reference the character in theprompt parameter:
Complete Example
Limitations and Considerations
Success Rate Factors
Factors Affecting Success Rate
- Real human faces or bodies in video
- Low video quality (blurry, shaky)
- Indistinct character features
- Instability of iOS reverse engineering technology
Tips to Improve Success Rate
- Use clear virtual character videos
- Select segments with prominent character features
- Ensure stable, shake-free video
- Retry if necessary
Video Requirements
| Requirement | Description |
|---|---|
| Maximum Length | 15 seconds or less |
| Recommended Resolution | 720p or above |
| Format | MP4, MOV, and other common formats |
| Content Restrictions | Must NOT contain real faces, violence, adult content, or other prohibited material |
| Character Clarity | Character should occupy reasonable screen proportion with distinctive features |
Technical Limitations
Since character creation is based on iOS reverse engineering technology, there may be some technical instability. If creation fails, we recommend:
- Check if video content meets requirements
- Adjust
timestampstime range to select clearer segments - Use retry mechanism (2-3 attempts recommended)
- Contact technical support if failures persist
Best Practices
Selecting Optimal Video Segments
Retry Strategy
Character Management
Maintain a character database:FAQ
Why does creation fail with 'contains human face' error?
Why does creation fail with 'contains human face' error?
The API has strict restrictions on real human faces. Even AI-generated realistic faces may be detected. Recommended alternatives:
- Cartoon/anime-style virtual characters
- Products, objects, or other non-human content
- Abstract artistic style characters
Do created characters expire?
Do created characters expire?
Once successfully created, characters remain valid long-term and can be used repeatedly in video generation. However, we recommend saving the character’s
id and username information.Can I modify an existing character?
Can I modify an existing character?
Currently, modifying existing characters is not supported. If adjustments are needed:
- Create a new character
- Use the new character in new video generations
- Old characters remain usable and won’t be deleted
How to improve character consistency in videos?
How to improve character consistency in videos?
- Explicit Reference: Use
@usernameat the beginning of prompts - Detailed Description: Describe character actions and scenes, but avoid repeating character appearance descriptions
- Examples:
How to choose the best timestamps?
How to choose the best timestamps?
Selection tips:
- Watch Video: Review entire video to find clearest character segments
- Front Angle: Prioritize front-facing or 3/4 angle segments
- Good Lighting: Avoid too dark or overexposed segments
- No Occlusion: Ensure character is complete and unobstructed
- Stable Footage: Avoid rapid movement or camera shake
Are there limits for batch character creation?
Are there limits for batch character creation?
- Rate Limits: Follow API request rate limits (see API manual for details)
- Concurrency Control: Recommend 3-5 concurrent requests to avoid throttling
- Cost Considerations: While current pricing is low ($0.01/request), batch creation still incurs costs
Can characters be used in different Sora models?
Can characters be used in different Sora models?
After creation, characters are primarily used for Sora 2 video generation. Future support for other Sora series models may be added. Please follow official updates.