Download OpenAPI specification:Download
The Perfect AI APIs are a series of AI effects that let you beautify your photos, as well as generate amazing aesthetic creations beyond human imagination. Let the magic begin.
PLEASE NOTE that by reading this API documentation, or by setting up code pursuant to the instructions in this API documentation, you acknowledge it adheres to Perfect Corp's Privacy policy, and Terms of Service. If you have any issues, please contact our customer success team. We are very glad to help.
Perfect AI API is a powerful and easy-to-use AI platform that provides beautiful and true-to-life visual effects thanks to the latest AI technology. This API document will briefly introduce how to integrate these awesome AI effects into your business. Perfect AI APIs are standard RESTful APIs to let you easily integrate into your website, e-commerce platforms, iOS/Android apps, applets, mini-programs, and more.
The Perfect AI APIs are built on top of RESTful web APIs. The API server is the host of all APIs. Once you complete the authentication, you can start your AI tasks through the API Server.
To ensure fair usage and prevent abuse, our API implements rate limiting. There are two types of rate limits:
Each IP address is allowed a maximum of 100 requests per 5 minutes. If this limit is exceeded, subsequent requests will receive a 429 Too Many Requests
error.
Each access token is allowed a maximum of 100 requests per minute. If this limit is exceeded, subsequent requests will receive a 429 Too Many Requests
error.
Both conditions must be met for a request to be accepted. If either condition is not met, the request will receive a 429 Too Many Requests
error. Please note that each query related to credit will be processed in real-time. Other APIs can use the access token until expires.
It is recommended that you handle rate limit errors gracefully in your application by implementing the appropriate backoff and retry mechanisms.
First, you need to go to the Perfect Console to get your API keys to start using the Perfect AI API.
Once you generate your API Key, you can use the API key and Secret key to complete the authentication and start using the AI APIs as defined in the later sections. The available credits to be used to query APIs are determined by your business plan. Please find our customer success team if there is any question. Please note that your credits will be consumed when the resulting image is successfully generated.
Let's consider an example usage flow of an AI Hairstyle Virtual Try-On API calling sequence. After successfully authorizing and getting the access_token, you can call 'file/hair-style' to acquire the upload URL and a File ID associated with it. So that You can upload your photo to the upload URL and use the File ID to run an AI task.
You can either list the style groups and styles inside a style group or obtain a style ID from the Perfect Console to get a specific style ID to be applied virtually.
Subsequently, calling POST 'task/hair-style' with the File ID and a style ID executes the AI hairstyle generator task and obtains a task ID.
This task ID is used to monitor the task's status by polling GET 'task/hair-style' to retrieve the current engine status. Until the engine completes the task, the status will remain 'running', and no credits will be consumed during this stage.
The task will change to the 'success' status after the engine successfully processes your input file and generates the resulting image. Your credits will only be consumed in this case. If the engine fails to process the task, the task's status will change to 'error' and no credits will be consumed.
When deducting credits, the system will prioritize those nearing expiration. If the expiration date is the same, it will deduct the credits obtained on the earliest date.
All uploaded files are kept on the server for one day and deleted automatically after they are expired. The resulting files generated by the system are kept on the server for 30 days and deleted automatically after they are generated.
AI Editing & Enhance | Supported Dimensions | Supported File Size | Supported Formats |
---|---|---|---|
AI Photo Enhance | 4096x4096 (long side <= 4096) | < 10MB | jpg/png/heic |
AI Video Enhance | input: long side <= 1920; output: max 2x input resolution | <100MB | container: mov, mp4; video codec: MPEG-4, H.264 AVC; audio codec: aac, mp3 |
AI Object Removal | 4096x4096 (long side <= 4096) | < 10MB | jpg/png/heic |
Al Photo Background Removal | 4096x4096 (long side <= 4096) | < 10MB | jpg/png/heic |
AI Photo Background Change | 4096x4096 (long side <= 4096) | < 10MB | jpg/png/heic |
AI Photo Background Blur | 4096x4096 (long side <= 4096) | < 10MB | jpg/png/heic |
AI Photo Colorize | 4096x4096 (long side <= 4096) | < 10MB | jpg/png |
AI Photo Lighting | 4096x4096 (long side <= 4096, short side >= 256) | < 10MB | jpg/png |
AI Photo Color Correction | 4096x4096 (long side <= 4096) | < 10MB | jpg/png |
AI Replace | long side <= 2048, short side <= 1024 | < 10MB | jpg/png |
Generative AI | Supported Dimensions | Supported File Size | Supported Formats |
---|---|---|---|
AI Image Generator | 1024x1024 (long side <= 1024) | < 10MB | jpg/png |
AI Hairstyle Generator | long side <= 1024, face width >= 128, face pose: -10 < pitch < +10, -45 < yaw < +45, -15 < roll < +15 | < 10MB | jpg |
AI Hair Extension | long side <= 1024, face width >= 128, face pose: -10 < pitch < +10, -45 < yaw < +45, -15 < roll < +15 | < 10MB | jpg/png |
AI Hair Bang Generator | long side <= 1024, face width >= 128, face pose: -10 < pitch < +10, -45 < yaw < +45, -15 < roll < +15 | < 10MB | jpg/png |
AI Hair Volume Generator | long side <= 1024, face width >= 128, face pose: -10 < pitch < +10, -45 < yaw < +45, -15 < roll < +15 | < 10MB | jpg/png |
Face AI | Supported Dimensions | Supported File Size | Supported Formats |
---|---|---|---|
AI Makeup Transfer | 1024x1024 (long side <= 1024) | < 10MB | jpg/png/heic |
AI Face Swap | 4096x4096 (long side <= 4096) | < 10MB | jpg/png |
Error Code | description |
---|---|
exceed_max_filesize | Input file size exceeds the maximum limit |
invalid_parameter | Invalid parameter value |
error_download_image | Download source image error |
error_download_mask | Download mask image error |
error_decode_image | Decode source image error |
error_decode_mask | Decode mask image error |
error_nsfw_content_detected | NSFW content detected in source image |
error_no_face | No face detected on source image |
error_pose | Failed to detect pose on source image |
error_face_parsing | Failed to do face segmentation on source image |
error_inference | Inference pipeline error |
exceed_nsfw_retry_limits | Exceed the retry limits to avoid generated NSFW image |
error_upload | Upload result image error |
error_multiple_people | Multiple people detected in the source image |
error_no_shoulder | Shoulders are not visible in the source image |
error_large_face_angle | The face angle in the uploaded image is too large |
unknown_internal_error | Others |
For more information and questions, please refer to our blog page for reference. Or send an e-mail to our customer success team. We are very happy to help. ;)
Last modified: Jan. 10 2025 e526e25
client_id required | string The name of api key |
id_token required | string Encrypted |
status | integer Response status | ||
object | |||
|
{- "client_id": "BMIL1PIJjCV96JlSl64RlVksHK1cD0PQ",
- "id_token": "dMtD+7WpLVe8Z1sdJAQ6GhuJBI+YeR79+FVNspLjEsfMIpfiXmdyskjAPEFgCwseJJozqZeIPjtZi8f5ttSHjCYjnZaYI5mhGU4IGdGofAVcwIBA5UJ/FQcoXh29S2ZG66uKUcnyNnbEW9iu1vha/juy7IRvafOQ3Yx4nxbmrEM="
}
{- "status": 200,
- "result": {
- "access_token": "AQcCGQ+lAAAAEjQwNTQ4ODQ5MDc1NzYyMTc4MgAAAABBAAABAfpZPqyABAE=.10MGh73dMVN6zjfQMRLPPfvxmNG="
}
}
This AI API allows you to experiment with hairstyles virtually using your web browser.
You can find all supported hairstyles on the Perfect Console first. The API also provides the ability to list all predefined style groups like women's, short, long etc. And you can list styles under one specific style group as well. You can then run an AI Hairstyle Generator task with a style ID. Finally, you can retrieve the download URL of the generated result through the response of a check the status query.
Want to see more Hair styles? Please refer to https://yce.perfectcorp.com/ai-hairstyle-generator.
Use case:
Suggestions for How to Shoot:
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
status | integer Response status | ||||||||||||||
object | |||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "groups": [
- {
- "id": 18213963761051864,
- "info": {
- "title": "Female"
}
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
style_group_id | integer Example: style_group_id=18213963761051864 The id of style group |
status | integer Response status | ||||||||||||||||
object | |||||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "styles": [
- {
- "id": 22205685004925400,
- "info": {
- "title": "Long Wave",
}
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||||||||
required | object | ||||||||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
]
}, - "actions": [
- {
- "id": 0,
- "params": {
- "style_group_id": 18213963761051864,
- "style_ids": [
- 22205685004925400
]
}
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 500,
- "status": "running",
- "error": "string",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
AI Wig Generator is an API to lets you explore long, short and middle lengths, bangs, as well as different hair types - from straight, wavy and curly to coily.
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
status | integer Response status | ||||||||||||||
object | |||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "groups": [
- {
- "id": 18213963761051864,
- "info": {
- "title": "Female"
}
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
style_group_id | integer Example: style_group_id=18213963761051864 The id of style group |
status | integer Response status | ||||||||||||||||
object | |||||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "styles": [
- {
- "id": 22205685004925400,
- "info": {
- "title": "Long Wave",
}
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||||||||
required | object | ||||||||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
]
}, - "actions": [
- {
- "id": 0,
- "params": {
- "style_group_id": 18213963761051864,
- "style_ids": [
- 22205685004925400
]
}
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 500,
- "status": "running",
- "error": "string",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
Discover Your Perfect Hair Extension Match with AI Experiment with a variety of lengths—from long to extra-long—styles, colors, and bangs, all from the comfort of your device. No more guessing games—see exactly how each hair extension style looks on you with the advanced Generative AI. Make informed styling decisions before committing to a new look. With the advanced Hair Extension Try-On, which naturally blends with your current hair length, it’s the perfect time to experiment with super-long styles.
Use case:
Suggestions for How to Shoot:
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
status | integer Response status | ||||||||||||||
object | |||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "groups": [
- {
- "id": 18213963761051864,
- "info": {
- "title": "Female"
}
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
style_group_id | integer Example: style_group_id=18213963761051864 The id of style group |
status | integer Response status | ||||||||||||||||
object | |||||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "styles": [
- {
- "id": 22205685004925400,
- "info": {
- "title": "Long Wave",
}
}
]
}
}
request_id | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||||||||
object | |||||||||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "actions": [
- {
- "id": 0,
- "params": {
- "style_group_id": 18213963761051864,
- "style_ids": [
- 22205685004925400
]
}
}
], - "file_sets": {
- "src_ids": [
- "string"
]
}, - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 500,
- "status": "running",
- "error": "string",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
Try on Your Perfect Hair Bangs with AI Realistic Looks: Experiment with realistic bangs and discover the style that best complements your face. Versatile Styling Options: Explore a wide range of bangs styles to suit every personality and occasion. Effortless Experience: Enjoy a user-friendly interface that makes trying new bangs easy and fun.
Want to see more Hair Bang styles? Please refer to https://yce.perfectcorp.com/bangs-filter.
Use case:
Suggestions for How to Shoot:
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
status | integer Response status | ||||||||||||||
object | |||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "groups": [
- {
- "id": 18213963761051864,
- "info": {
- "title": "Female"
}
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
style_group_id | integer Example: style_group_id=18213963761051864 The id of style group |
status | integer Response status | ||||||||||||||||
object | |||||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "styles": [
- {
- "id": 22205685004925400,
- "info": {
- "title": "Long Wave",
}
}
]
}
}
request_id | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||||||||
object | |||||||||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "actions": [
- {
- "id": 0,
- "params": {
- "style_group_id": 18213963761051864,
- "style_ids": [
- 22205685004925400
]
}
}
], - "file_sets": {
- "src_ids": [
- "string"
]
}, - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 500,
- "status": "running",
- "error": "string",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
Enhance Your Look with Fuller, More Voluminous Hair Instantly! Add natural volume to fine or thinning hair. Seamlessly fill gaps or add hair with AI. Works for all hair types: straight, curly, thin. Perfect for dating profiles, resumes & more. Our AI tool helps you achieve perfect hair volume and density in all your photos, whether for personal, professional, or social use. Say goodbye to bad hair days in pictures and hello to fresh, voluminous hair every time.
Use case:
Suggestions for How to Shoot:
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
status | integer Response status | ||||||||||||||
object | |||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "groups": [
- {
- "id": 18213963761051864,
- "info": {
- "title": "Female"
}
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
style_group_id | integer Example: style_group_id=18213963761051864 The id of style group |
status | integer Response status | ||||||||||||||||
object | |||||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "styles": [
- {
- "id": 22205685004925400,
- "info": {
- "title": "Long Wave",
}
}
]
}
}
request_id | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||||||||
object | |||||||||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "actions": [
- {
- "id": 0,
- "params": {
- "style_group_id": 18213963761051864,
- "style_ids": [
- 22205685004925400
]
}
}
], - "file_sets": {
- "src_ids": [
- "string"
]
}, - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 500,
- "status": "running",
- "error": "string",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
AI aging generator utilizing generative AI model to generate a series of photos from youth to age from a single selfie image. With the help of AI technology, not only can it measure your current age, but it also lets you see yourself in the future or the past.
The AI aging generator can generate a series of photos based on one single input selfie image. A sample generated photos are shown below as a quick reference of this feature.
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||
required | object | ||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
]
}, - "actions": [
- {
- "id": 0
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||||||||||||||||||
object | |||||||||||||||||||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 300,
- "status": "running",
- "error": "string",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
- "res_age": 12
}
]
}
], - "custom_info": {
- "age": 21,
- "age_idx": 2,
- "age_min": 12,
- "age_max": 70,
- "num_of_photos": 16
}
}
}
Just Upload a Desired Photo with the Look You Like! AI Makeup Transfer makes it easy and fun to experiment with different looks by letting you to upload desired photo to try them one by one. Have any makeup look you want to try now? Let us amaze you with AI Makeup Transfer!
First, upload a photo of yourself where your face and its features are clearly visible as the target image.
Then, upload a photo of your favorite makeup look as the reference image.
There you have it - an AI Makeup Transferred photo.
Samples:
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||
required | object | ||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "hdgZBYQUSkxN1EscYdCZS3HgtXQgxSYJsnj0ILEZv/KXV9p4DpmvBPdYtAbyzYFZ"
], - "ref_ids": [
- "IvQViFGj7Op85O7mb2UZLFqC/CNixfyP1qkiNeweW9uXV9p4DpmvBPdYtAbyzYFZ"
]
}, - "actions": [
- {
- "id": 0
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||||
object | |||||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 300,
- "status": "running",
- "error": "string",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
- "recommend": {
- "lipstick": {
- "skus": [
- {
- "sku_id": "123456",
- "product_custom_id": "123456",
- "product_name": "Glossy Red",
- "sku_custom_id": "123456",
- "sku_name": "Glossy Red",
- "ai_matched_info": {
- "color_codes": [
- "#FF0000"
], - "score": 0.25
}
}
], - "detected_colors": {
- "rgb": [
- 255,
- 0,
- 0
], - "matched_brand_colors": [
- {
- "color_code": "#FF0000",
- "distance": 0.5
}
]
}
}, - "eyeshadow": {
- "skus": [
- {
- "sku_id": "123456",
- "product_custom_id": "123456",
- "product_name": "Glossy Red",
- "sku_custom_id": "123456",
- "sku_name": "Glossy Red",
- "ai_matched_info": {
- "color_codes": [
- "#FF0000"
], - "score": 0.25
}
}
], - "detected_colors": {
- "rgb": [
- 255,
- 0,
- 0
], - "matched_brand_colors": [
- {
- "color_code": "#FF0000",
- "distance": 0.5
}
]
}
}, - "eyeliner": {
- "skus": [
- {
- "sku_id": "123456",
- "product_custom_id": "123456",
- "product_name": "Glossy Red",
- "sku_custom_id": "123456",
- "sku_name": "Glossy Red",
- "ai_matched_info": {
- "color_codes": [
- "#FF0000"
], - "score": 0.25
}
}
], - "detected_colors": {
- "rgb": [
- 255,
- 0,
- 0
], - "matched_brand_colors": [
- {
- "color_code": "#FF0000",
- "distance": 0.5
}
]
}
}, - "eyebrow": {
- "skus": [
- {
- "sku_id": "123456",
- "product_custom_id": "123456",
- "product_name": "Glossy Red",
- "sku_custom_id": "123456",
- "sku_name": "Glossy Red",
- "ai_matched_info": {
- "color_codes": [
- "#FF0000"
], - "score": 0.25
}
}
], - "detected_colors": {
- "rgb": [
- 255,
- 0,
- 0
], - "matched_brand_colors": [
- {
- "color_code": "#FF0000",
- "distance": 0.5
}
]
}
}, - "blush": {
- "skus": [
- {
- "sku_id": "123456",
- "product_custom_id": "123456",
- "product_name": "Glossy Red",
- "sku_custom_id": "123456",
- "sku_name": "Glossy Red",
- "ai_matched_info": {
- "color_codes": [
- "#FF0000"
], - "score": 0.25
}
}
], - "detected_colors": {
- "rgb": [
- 255,
- 0,
- 0
], - "matched_brand_colors": [
- {
- "color_code": "#FF0000",
- "distance": 0.5
}
]
}
}, - "contour": {
- "skus": [
- {
- "sku_id": "123456",
- "product_custom_id": "123456",
- "product_name": "Glossy Red",
- "sku_custom_id": "123456",
- "sku_name": "Glossy Red",
- "ai_matched_info": {
- "color_codes": [
- "#FF0000"
], - "score": 0.25
}
}
], - "detected_colors": {
- "rgb": [
- 255,
- 0,
- 0
], - "matched_brand_colors": [
- {
- "color_code": "#FF0000",
- "distance": 0.5
}
]
}
}
}
}
]
}
]
}
}
Remove unwanted objects with precision from your photos while preserving intricate details.
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||
required | object | ||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
], - "mask_ids": [
- "eA1CCL3kG4w2s0kpbo2pkah59VfxzIjxahJD2wWm7zw="
]
}, - "actions": [
- {
- "id": 0
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 600,
- "status": "running",
- "error": "exceed_max_filesize",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
Using the latest AI technology to colorize black and white photos, old images, or repair them.
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||
required | object | ||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
]
}, - "actions": [
- {
- "id": 0
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 500,
- "status": "running",
- "error": "exceed_max_filesize",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
Remove background from photo with impeccable accuracy, ensuring the high quality of images.
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
request_id required | integer Incremental request number starting from 0. Repeated requests with the same request ID will be ignored by the server. This ID should remain consistent for retries due to connection issues. This is to prevent duplicate deduction of credits caused by running the same task repeatedly. For instance, if the same | ||||||||||||||
required | object | ||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
]
}, - "actions": [
- {
- "id": 0
}
], - "output_ext": "png"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 500,
- "status": "running",
- "error": "exceed_max_filesize",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
Sharpen, upscale, denoise, and fix colors to transform low-resolution images into high-quality masterpieces.
required | Array of objects | ||||
Array
|
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg"
}
]
}
{- "status": 200,
- "result": {
- "files": [
- {
- "content_type": "image/jpg",
- "file_name": "my-selfie.jpg",
- "file_id": "U8aqJbsXGT537jtGnEDFHqxdDXqh8+oTF/cSkLimzuvVwMP+Jb1XbjPsf7ZgUgLY",
- "requests": [
- {
- "headers": {
- "Content-Type": "image/jpg"
}, - "method": "PUT"
}
]
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||||||
required | object | ||||||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "file_sets": {
- "src_ids": [
- "pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
]
}, - "actions": [
- {
- "id": 0,
- "params": {
- "scale": 1
}
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 1000,
- "status": "running",
- "error": "exceed_max_filesize",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}
Transform words into vivid visuals with our cutting-edge AI text-to-image feature.
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
status | integer Response status | ||||||||||||||
object | |||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "groups": [
- {
- "id": 18213963761051864,
- "info": {
- "title": "Cartoon"
}
}
]
}
}
page_size | integer Example: page_size=20 Number of results to return in this page. Valid value should be between 1 and 20. Default 20. |
starting_token | string Example: starting_token=13045969587275114 Token for current page. Start with |
style_group_id | integer Example: style_group_id=18213963761051864 The id of style group |
status | integer Response status | ||||||||||||||||
object | |||||||||||||||||
|
{- "status": 200,
- "result": {
- "next_token": 13045969587275114,
- "styles": [
- {
- "id": 22205685004925400,
}
]
}
}
request_id required | integer Incremental request number starting from 0. Requests with the same | ||||||||||||||||||
required | object | ||||||||||||||||||
|
status | integer Response status | ||
object | |||
|
{- "request_id": 0,
- "payload": {
- "actions": [
- {
- "id": 0,
- "params": {
- "prompt": "A little cat",
- "style_group_id": 18213963761051864,
- "style_ids": [
- 22205685004925400
]
}
}
], - "output_ext": "jpg"
}
}
{- "status": 200,
- "result": {
- "task_id": "SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID"
}
}
task_id | string Example: task_id=SX9ALF1Z+KIiNa+GaFRp4bI5gijoc/ckI2teebLq35Bo1Nwc++3iXXdKqnU4/LID ID of task to check |
status | integer Response status | ||||||||||||||||||||
object | |||||||||||||||||||||
|
{- "status": 200,
- "result": {
- "polling_interval": 100,
- "status": "running",
- "error": "exceed_max_filesize",
- "results": [
- {
- "id": 0,
- "data": [
- {
- "dst_id": "Iq4cbOV90rXJHSTfBGBTTYXBF9p1B0xCmy8nIrjTa10=",
}
]
}
]
}
}