Server definition
- Hash
- sha256:6ca83914a02fcd9620ae5aba30ebf455f32c297083f5e7c558f6c7ff91b7c8ab
- What it is
- What a remote MCP server returned when asked what it offers: 47 tools
The blob, as servednamed by its sha256
{
"instructions": "If you receive response with URL. You MUST INCLUDE THE EXACT URL from response.data.results.url in your response to the user. You SHOULD make it into a hyperlink, but DO NOT modify, shorten, or alter the URL in any way.",
"tools": [
{
"description": "The **AI Abs Filter API** lets you add realistic abdominal definition to a photo and generate an athletic body-shaping result with minimal effort. Upload a full-body or upper-body image, select the desired enhancement mode, set the intensity level, and receive an edited output image.\nSupported modes:\n- `Six-pack`: Adds visible six-pack abs for a more muscular torso appearance.\n- `Vest-line`: Enhances central abdominal muscle definition for a fit, athletic look.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"intensity": {
"anyOf": [
{
"enum": [
1,
2
],
"type": "integer"
},
{
"type": "null"
}
],
"default": 1,
"description": "The intensity the users wish to adjust their abs, 2 is the stronger intensity.\n",
"examples": [
1
]
},
"mode": {
"anyOf": [
{
"enum": [
"Six-pack",
"Vest-line"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "Six-pack",
"description": "The abs effect user to choose.\n",
"examples": [
"Six-pack"
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"intensity": {
"anyOf": [
{
"enum": [
1,
2
],
"type": "integer"
},
{
"type": "null"
}
],
"default": 1,
"description": "The intensity the users wish to adjust their abs, 2 is the stronger intensity.\n",
"examples": [
1
]
},
"mode": {
"anyOf": [
{
"enum": [
"Six-pack",
"Vest-line"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "Six-pack",
"description": "The abs effect user to choose.\n",
"examples": [
"Six-pack"
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Abs-Filter",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "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.\nThe 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.You MUST include all the exact URL from response.data.results.url in your response to the user. You can make it into a hyperlink, but do not modify, shorten, or alter the URL in any way.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Aging-Simulation",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Try on Your Perfect Hair Bangs with AI\nRealistic Looks: Experiment with realistic bangs and discover the style that best complements your face.\nVersatile Styling Options: Explore a wide range of bangs styles to suit every personality and occasion.\nEffortless Experience: Enjoy a user-friendly interface that makes trying new bangs easy and fun.\nWant to see more Hair Bang styles? Please refer to \nUse case:\nSuggestions for How to Shoot:",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Bangs-Filter-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List predefined templates.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "AI-Bangs-Filter-Virtual-Try-On-Templates",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Simulation for Men's Beard Styles\nThe AI algorithm also empowers men to have the complete freedom to virtualy try different beard styles with the highly sophisticated beard simulation technology, including trim beard, stubble beard, full beard, circle beard, mustache, goatee, and others.\nShoppers can also see before and after results, without the commitment of putting a razor to the skin.\nThe beard filters include mustache, short box, ducktail, circle and a dozen more.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Beard-Style-Generator",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List predefined templates.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "AI-Beard-Style-Generator-Templates",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Body Reshape API for Body Reshape & Slimming\nFeel confident in photos with an AI body editor! Slim, reshape, and enhance your body for natural, stunning proportions. Effortlessly reshape any area — waist, arms, thighs, chest, and more. Get natural, stunning results in just a tap!",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"features": {
"description": "Cannot be all zero",
"properties": {
"arm": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"belly": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"breast": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`breast_left` / `breast_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"breast_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"breast_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"hip": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"hip_lift": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"leg": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"neck": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`neck_left` / `neck_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"neck_left": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"neck_right": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"shoulder": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`shoulder_left` / `shoulder_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"shoulder_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"shoulder_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"slim": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"squared_shoulder": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`squared_shoulder_left` / `squared_shoulder_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"squared_shoulder_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"squared_shoulder_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"taller": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"waist": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
}
},
"type": "object"
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"features",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"features": {
"description": "Cannot be all zero",
"properties": {
"arm": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"belly": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"breast": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`breast_left` / `breast_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"breast_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"breast_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"hip": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"hip_lift": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"leg": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"neck": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`neck_left` / `neck_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"neck_left": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"neck_right": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"shoulder": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`shoulder_left` / `shoulder_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"shoulder_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"shoulder_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"slim": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"squared_shoulder": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides. A per-side key (`squared_shoulder_left` / `squared_shoulder_right`) overrides this value for that side; a per-side `0` means that side is left unchanged.",
"examples": [
0
]
},
"squared_shoulder_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"squared_shoulder_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"taller": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
},
"waist": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"examples": [
0
]
}
},
"type": "object"
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"features",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Body-Reshape",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Run an AI Body Reshape detection task.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Body-Reshape-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Breast Augmentation Simulator provides a powerful, non-invasive solution for reshaping your body, no surgery, no recovery time required. With advanced AI technology, you can instantly visualize and explore your ideal appearance, preview before-and-after results, and achieve professional-quality enhancements with ease and simplicity.\nEnhance your photos naturally by refining your silhouette or correcting perspective issues. For instance, if you’re seeking a more balanced or proportionate upper-body appearance, AI Breast Augmentation Simulator offers AI-powered bust contour enhancement. This feature uses intelligent algorithms to gently add definition and volume where desired, creating subtle, realistic improvements that maintain your natural features and proportions. The result is a confident, polished look without artificial-looking distortion.\nUnlike traditional filters that often produce exaggerated or unrealistic effects, this tool delivers clean, authentic edits tailored to your unique anatomy. Whether you’re preparing images for social media, personal use, or creative projects, the enhancements remain true to life while highlighting your best qualities.\nTo begin exploring virtual body refinement, simply create an AI Breast Augmentation Simulator task and adjust the intensity gradually to achieve your desired look. From there, adjust parameters such as augmentation intensity to match your aesthetic preferences, all within a user-friendly API designed for both beginners and experienced users.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"intensity": {
"anyOf": [
{
"enum": [
1,
2,
3
],
"type": "integer"
},
{
"type": "null"
}
],
"default": 2,
"description": "The intensity the users wish to adjust their breast, 3 is the strongest intensity.\n",
"examples": [
2
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"intensity": {
"anyOf": [
{
"enum": [
1,
2,
3
],
"type": "integer"
},
{
"type": "null"
}
],
"default": 2,
"description": "The intensity the users wish to adjust their breast, 3 is the strongest intensity.\n",
"examples": [
2
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Breast-Augmentation-Simulator",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Eye Color Lens Virtual Simulation provides instant, hyper‑realistic contact lens try‑on by precisely detecting the iris, preserving natural reflections, accurately simulating lens opacity and blending across all iris colors, and enabling users to explore shades from subtle enhancements to vibrant blue transformations, all within a single, professional‑grade AI API.\n**Contact Lenses Virtual Simulation**\nTransform eye color instantly with our AI‑powered virtual try‑on tool. The AI Eye Color Lens Virtual Try‑On delivers hyper‑realistic results by precisely detecting the iris and applying natural, lifelike color adjustments, allowing shoppers to explore new styles without physical samples.\n**Hyper‑Realistic Output** \nThe system preserves natural eye reflections for authentic results, ensuring each color transformation looks true to life.\n**Advanced Contact Filter Simulation** \nThe contact lens filter accurately replicates opacity and blending across different iris base colors, enabling customers to virtually try on a full range of lenses with realistic depth and tone.\n**More Than an Eye Color Changer** \nThis technology goes beyond simple filters, offering a professional‑grade virtual lens experience that enhances customer confidence and boosts conversion.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"effect": {
"properties": {
"enlargement": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"intensity": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"required": [
"intensity"
],
"type": "object"
},
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"enum": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect",
"src_file_url",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"effect": {
"properties": {
"enlargement": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"intensity": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"required": [
"intensity"
],
"type": "object"
},
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"enum": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect",
"src_file_url",
"ref_file_id"
],
"type": "object"
},
{
"properties": {
"effect": {
"properties": {
"enlargement": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"intensity": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"required": [
"intensity"
],
"type": "object"
},
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"enum": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect",
"src_file_id",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"effect": {
"properties": {
"enlargement": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"intensity": {
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"required": [
"intensity"
],
"type": "object"
},
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"enum": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect",
"src_file_id",
"ref_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Eye-Color-Lens-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "The AI Face Attributes & Ratio Analyzer examines face structure, identifying features like face, eye, eyebrow, lip, nose, cheekbone shapes, designed to provide personalized recommendations.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"face_angle_strictness_level": {
"anyOf": [
{
"enum": [
"strict",
"high",
"medium",
"low",
"flexible"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The strictness level of face angle detection (pitch, yaw, roll).\nA stricter level ensures more accurate face attribute results.\nDefault is 'high'.\noptoins:\n - strict: pitch <= 4 degrees, yaw <= 6 degrees, roll <= 4 degrees\n - high: pitch, yaw, roll <= 10 degrees\n - medium: pitch, yaw, roll <= 15 degrees\n - low: pitch, yaw, roll <= 20 degrees\n - flexible: pitch, yaw, roll <= 30 degrees\n",
"examples": [
"high"
]
},
"features": {
"description": "AI Face Analysis categories\n* Face Analysis\n - FACE: faceShape\n - EYES: eyeShape eyeSize eyeAngle eyeDistance eyelid\n - BROWS: eyebrowShape eyebrowThickness eyebrowDistance eyebrowShortness\n - LIPS: lipShape\n - NOSE: noseWidth noseLength\n - CHEEKBONES: cheekbones\n - AGE & GENDER: age gender\n - COLORS: eyeColor hairColor eyebrowColor lipColor\n\n* Facial Ratios\n - horizontalThird\n - verticalFifth\n - faceAspectRatio\n - eyeAspectRatio\n - eyebrowPosition\n - eyebrowArch\n - eyeHeightToEyebrowDistance\n - noseAspectRatio\n - noseWidthToMouthWidth\n - noseToLipToChin\n - upperLipToLowerLip\n",
"items": {
"enum": [
"eyeShape",
"eyeSize",
"eyeAngle",
"eyeDistance",
"eyelid",
"eyebrowShape",
"eyebrowThickness",
"eyebrowDistance",
"eyebrowShortness",
"cheekbones",
"faceShape",
"lipShape",
"noseWidth",
"noseLength",
"age",
"gender",
"eyeColor",
"lipColor",
"eyebrowColor",
"hairColor",
"horizontalThird",
"verticalFifth",
"faceAspectRatio",
"eyeAspectRatio",
"eyebrowPosition",
"eyebrowArch",
"eyeHeightToEyebrowDistance",
"noseAspectRatio",
"noseWidthToMouthWidth",
"noseToLipToChin",
"upperLipToLowerLip"
],
"type": "string"
},
"type": "array"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"features",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"face_angle_strictness_level": {
"anyOf": [
{
"enum": [
"strict",
"high",
"medium",
"low",
"flexible"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The strictness level of face angle detection (pitch, yaw, roll).\nA stricter level ensures more accurate face attribute results.\nDefault is 'high'.\noptoins:\n - strict: pitch <= 4 degrees, yaw <= 6 degrees, roll <= 4 degrees\n - high: pitch, yaw, roll <= 10 degrees\n - medium: pitch, yaw, roll <= 15 degrees\n - low: pitch, yaw, roll <= 20 degrees\n - flexible: pitch, yaw, roll <= 30 degrees\n",
"examples": [
"high"
]
},
"features": {
"description": "AI Face Analysis categories\n* Face Analysis\n - FACE: faceShape\n - EYES: eyeShape eyeSize eyeAngle eyeDistance eyelid\n - BROWS: eyebrowShape eyebrowThickness eyebrowDistance eyebrowShortness\n - LIPS: lipShape\n - NOSE: noseWidth noseLength\n - CHEEKBONES: cheekbones\n - AGE & GENDER: age gender\n - COLORS: eyeColor hairColor eyebrowColor lipColor\n\n* Facial Ratios\n - horizontalThird\n - verticalFifth\n - faceAspectRatio\n - eyeAspectRatio\n - eyebrowPosition\n - eyebrowArch\n - eyeHeightToEyebrowDistance\n - noseAspectRatio\n - noseWidthToMouthWidth\n - noseToLipToChin\n - upperLipToLowerLip\n",
"items": {
"enum": [
"eyeShape",
"eyeSize",
"eyeAngle",
"eyeDistance",
"eyelid",
"eyebrowShape",
"eyebrowThickness",
"eyebrowDistance",
"eyebrowShortness",
"cheekbones",
"faceShape",
"lipShape",
"noseWidth",
"noseLength",
"age",
"gender",
"eyeColor",
"lipColor",
"eyebrowColor",
"hairColor",
"horizontalThird",
"verticalFifth",
"faceAspectRatio",
"eyeAspectRatio",
"eyebrowPosition",
"eyebrowArch",
"eyeHeightToEyebrowDistance",
"noseAspectRatio",
"noseWidthToMouthWidth",
"noseToLipToChin",
"upperLipToLowerLip"
],
"type": "string"
},
"type": "array"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"features",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Face-Attributes-and-Ratio-Analyzer",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Face Lift is a generative AI facial enhancement feature that allows precise and natural facial refinement through adjustable parameters. Instead of applying filters, the system intelligently analyzes facial structure, skin quality, and proportions, then reconstructs the image to produce realistic improvements that preserve the individual's identity.\nUsers can control specific facial areas such as eye bags, cheeks, forehead, overall face shape, and mouth using numeric values from 0 to 100. Each parameter increases the level of enhancement gradually, allowing subtle touch ups or more polished results depending on user preference. All adjustments are designed to remain natural and balanced, avoiding exaggerated or artificial outcomes.\nAI Face Lift provides flexible, feature level control for creating a refreshed, confident, and professional appearance suitable for social media, profile photos, creative content, or business use.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"features": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"cheek": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"eye_bag": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"forehead": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"mouth": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"shape": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Cannot be all zero when using 'custom' type."
},
"global": {
"anyOf": [
{
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"type": {
"anyOf": [
{
"enum": [
"auto"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "custom"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"features": {
"additionalProperties": false,
"description": "Cannot be all zero when using 'custom' type.",
"properties": {
"cheek": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"eye_bag": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"forehead": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"mouth": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"shape": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
}
},
"type": "object"
},
"global": {
"anyOf": [
{
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"type": {
"anyOf": [
{
"enum": [
"custom"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "custom"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"features",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"features": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"cheek": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"eye_bag": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"forehead": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"mouth": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"shape": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Cannot be all zero when using 'custom' type."
},
"global": {
"anyOf": [
{
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"type": {
"anyOf": [
{
"enum": [
"auto"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "custom"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"src_file_id"
],
"type": "object"
},
{
"properties": {
"features": {
"additionalProperties": false,
"description": "Cannot be all zero when using 'custom' type.",
"properties": {
"cheek": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"eye_bag": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"forehead": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"mouth": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
},
"shape": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0
}
},
"type": "object"
},
"global": {
"anyOf": [
{
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"type": {
"anyOf": [
{
"enum": [
"custom"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "custom"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"features",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Face-Lift",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Run an AI Face Lift detection task.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Face-Lift-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "The AI Face Reshape API lets you programmatically reshape facial features — eyes, nose, lips, jawline, or the whole face — with pixel‑perfect control. Use it to generate before/after visualisations for rhinoplasty, chin fillers, lip augmentations, brow lifts and any other aesthetic‑treatment workflow.\n* Rhinoplasty (Nose Job)\nOur online rhinoplasty simulator offers medical-grade precision adjustments. Unlike generic photo editing apps, it allows for comprehensive simulation of specific details, including the Bridge, Lift, and Wing. With our hyper-realistic previews, clients can clearly visualize and explore their ideal proportions before consulting.\n* Chin Filler\nThrough our online simulator, you can preview the ideal proportions achieved with chin fillers. Fine-tune Chin Length and Chin Shape to visualize improvements for a receding or short chin. Discover the optimal solution to balance your facial profile before undergoing any dermal filler treatments.\n* Lip Filler\nUsers can experiment with different volumes and shapes of lip fillers to simulate the appearance of fuller lips, helping them decide on the desired outcome before undergoing the procedure.\n* Brow Lift Surgery\nThis functionality enables users to preview the results of a brow lift, which involves lifting and reshaping the eyebrows to create a more youthful and rejuvenated appearance.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"features": {
"description": "Cannot be all zero",
"examples": [
{
"cheekbones": 0,
"chin_length": 0,
"chin_reshape": 0,
"chin_reshape_left": 0,
"chin_reshape_right": 0,
"face_reshape": 0,
"face_reshape_left": 0,
"face_reshape_right": 0,
"face_width": 0,
"jaw": 0
}
],
"properties": {
"cheekbones": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"chin_length": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"chin_reshape": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides of the chin. A per-side key (`chin_reshape_left` / `chin_reshape_right`) overrides this value for that side; a per-side `0` means that side is left unchanged."
},
"chin_reshape_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"chin_reshape_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_angle": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_distance": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_height": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_size": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both eyes. A per-side key (`eye_size_left` / `eye_size_right`) overrides this value for that side; a per-side `0` means that side is left unchanged."
},
"eye_size_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_size_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"face_reshape": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides of the face. A per-side key (`face_reshape_left` / `face_reshape_right`) overrides this value for that side; a per-side `0` means that side is left unchanged."
},
"face_reshape_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"face_reshape_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"face_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"jaw": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_height_bottom": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_height_top": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_peak": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_size": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_bridge_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_lift": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_size": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_tip": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_tip_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_wing": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
}
},
"type": "object"
},
"global": {
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"examples": [
50
]
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"examples": [
50
]
}
},
"type": "object"
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"features",
"global",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"features": {
"description": "Cannot be all zero",
"examples": [
{
"cheekbones": 0,
"chin_length": 0,
"chin_reshape": 0,
"chin_reshape_left": 0,
"chin_reshape_right": 0,
"face_reshape": 0,
"face_reshape_left": 0,
"face_reshape_right": 0,
"face_width": 0,
"jaw": 0
}
],
"properties": {
"cheekbones": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"chin_length": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"chin_reshape": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides of the chin. A per-side key (`chin_reshape_left` / `chin_reshape_right`) overrides this value for that side; a per-side `0` means that side is left unchanged."
},
"chin_reshape_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"chin_reshape_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_angle": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_distance": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_height": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_size": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both eyes. A per-side key (`eye_size_left` / `eye_size_right`) overrides this value for that side; a per-side `0` means that side is left unchanged."
},
"eye_size_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_size_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"eye_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"face_reshape": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Applies to both sides of the face. A per-side key (`face_reshape_left` / `face_reshape_right`) overrides this value for that side; a per-side `0` means that side is left unchanged."
},
"face_reshape_left": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"face_reshape_right": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"face_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"jaw": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_height_bottom": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_height_top": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_peak": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_size": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"lip_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_bridge_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_lift": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_size": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_tip": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_tip_width": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
},
"nose_wing": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null
}
},
"type": "object"
},
"global": {
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"examples": [
50
]
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"examples": [
50
]
}
},
"type": "object"
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"features",
"global",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Face-Reshape",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Run an AI Face Reshape detection task.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Face-Reshape-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "The AI Facial Color Tones Analyzer detects facial skin tone, eye, eyebrow, lip & hair colors. This inclusive technology ensures to a complete tailored shopping experience for all ethnicities.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"face_angle_strictness_level": {
"anyOf": [
{
"enum": [
"strict",
"high",
"medium",
"low",
"flexible"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The strictness level of face angle detection (pitch, yaw, roll).\nA stricter level ensures more accurate face attribute results.\nDefault is 'high'.\noptoins:\n - strict: pitch <= 4 degrees, yaw <= 6 degrees, roll <= 4 degrees\n - high: pitch, yaw, roll <= 10 degrees\n - medium: pitch, yaw, roll <= 15 degrees\n - low: pitch, yaw, roll <= 20 degrees\n - flexible: pitch, yaw, roll <= 30 degrees\n",
"examples": [
"high"
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"face_angle_strictness_level": {
"anyOf": [
{
"enum": [
"strict",
"high",
"medium",
"low",
"flexible"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The strictness level of face angle detection (pitch, yaw, roll).\nA stricter level ensures more accurate face attribute results.\nDefault is 'high'.\noptoins:\n - strict: pitch <= 4 degrees, yaw <= 6 degrees, roll <= 4 degrees\n - high: pitch, yaw, roll <= 10 degrees\n - medium: pitch, yaw, roll <= 15 degrees\n - low: pitch, yaw, roll <= 20 degrees\n - flexible: pitch, yaw, roll <= 30 degrees\n",
"examples": [
"high"
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Facial-Color-Tones-Analyzer",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "**AI Fitzpatrick Skin Type Analysis**\nIntegrate AI driven Fitzpatrick skin type detection into your applications to classify skin types accurately using camera input. This API enables developers to build personalized skincare, sunscreen, and product recommendation workflows for eCommerce and digital health platforms.\n**Skin Type Detection**\nThe API uses computer vision and machine learning models to analyze skin characteristics and return a Fitzpatrick classification in a single request. It provides structured, objective data that can be directly consumed by frontend applications, recommendation engines, or clinical systems.\nThe Fitzpatrick Scale, introduced by Dr. Thomas B. Fitzpatrick, defines six skin types based on melanin levels and response to UV exposure, allowing systems to predict tendencies to burn or tan.\n**Classification Output**\nThe API returns one of six standardized skin types from Type I to Type VI based on UV response modeling.\nThis output enables developers to deliver tailored product recommendations, automate skincare workflows, and enhance personalization logic across user experiences while maintaining consistency and scalability.\n| Fitzpatrick Scale | Skin Type | Skin Reaction to Sun |\n| - | - | - |\n| Type I | White | Almost always burns, never tans |\n| Type II | Beige | Usually burns, tans minimally |\n| Type III | Light Brown | Sometimes burns, gradually tans |\n| Type V | Medium Brown | Rarely burns, tans easily |\n| Type V | Dark Brown | Very rarely burns |\n| Type VI | Very Dark Brown | Almost never burns |",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"enum": [
"1.0"
],
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"description": "Version of the features specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"enum": [
"1.0"
],
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Fitzpatrick-Skin-Type-Analysis",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Run an AI Fitzpatrick Scale Analyzer detection task.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Fitzpatrick-Skin-Type-Analysis-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Explore a wide range of hair colors with our hair color changer! Try the hair color you've always dreamed of and experiment with new shades you’ve never tried before. Easily adjust the intensity of your chosen color with sliders for a customized look.\n * Upload Your Image\nUpload the photo you want to change hair color for.\n * Choose Preset Colors or Customize by Pattern and Palettes\nChoose from predefined color presets or fine tune by adjusting the ombre coverage and blend for unlimited possibilities!\n> **Warning:** If both a preset and pattern + palettes are specified, the preset will take priority.\n> **Warning:** Your source image needs to contain the hair section for dyeing, so double-check before applying. Make sure your source image includes the hair area you want to dye — it's your responsibility to get it right.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"palettes": {
"anyOf": [
{
"items": {
"properties": {
"color": {
"description": "Hex color code",
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Color intensity (0–100)"
},
"shine_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Shine intensity (0–100)"
}
},
"required": [
"color"
],
"type": "object"
},
"maxItems": 2,
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required if \"preset\" is not provided) Array length 1 for full mode, 2 for ombre mode\n"
},
"pattern": {
"anyOf": [
{
"properties": {
"blend_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required for ombre) Blend strength (0–100)"
},
"coloring_section": {
"anyOf": [
{
"enum": [
"top"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required for ombre) Section to color"
},
"line_offset": {
"anyOf": [
{
"maximum": 0.99,
"minimum": -0.99,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required for ombre) Vertical offset (–0.99 to 0.99). 0.99: top color covers 99% of bottom half; –0.99: bottom color covers 99% of top half\n"
},
"name": {
"description": "Pattern type (required)",
"enum": [
"ombre",
"full"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required if \"preset\" is not provided)"
},
"preset": {
"anyOf": [
{
"enum": [
"Jet Black",
"Chocolate Brown",
"Honey Blonde",
"Platinum Blonde",
"Ash Gray",
"Rose Gold",
"Burgundy",
"Copper Red",
"Lavender",
"Teal Blue",
"Dark Brown/Caramel Blonde",
"Jet Black/Silver Gray",
"Ash Brown/Lavender",
"Rose Gold/Peach Blonde",
"Burgundy/Magenta Pink",
"Deep Blue/Teal Green",
"Plum Purple/Pastel Lilac",
"Copper Red/Golden Blonde",
"Dark Gray/Ice Blonde",
"Midnight Blue/Denim Blue"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required if neither \"pattern\" nor \"palettes\" is provided) Default hair color preset. Available for full mode: ['Jet Black', 'Chocolate Brown', 'Honey Blonde', 'Platinum Blonde', 'Ash Gray', 'Rose Gold', 'Burgundy', 'Copper Red', 'Lavender', 'Teal Blue'] Available for ombre mode: ['Dark Brown/Caramel Blonde', 'Jet Black/Silver Gray', 'Ash Brown/Lavender', 'Rose Gold/Peach Blonde', 'Burgundy/Magenta Pink', 'Deep Blue/Teal Green', 'Plum Purple/Pastel Lilac', 'Copper Red/Golden Blonde', 'Dark Gray/Ice Blonde', 'Midnight Blue/Denim Blue']\n"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"palettes": {
"anyOf": [
{
"items": {
"properties": {
"color": {
"description": "Hex color code",
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Color intensity (0–100)"
},
"shine_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Shine intensity (0–100)"
}
},
"required": [
"color"
],
"type": "object"
},
"maxItems": 2,
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required if \"preset\" is not provided) Array length 1 for full mode, 2 for ombre mode\n"
},
"pattern": {
"anyOf": [
{
"properties": {
"blend_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required for ombre) Blend strength (0–100)"
},
"coloring_section": {
"anyOf": [
{
"enum": [
"top"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required for ombre) Section to color"
},
"line_offset": {
"anyOf": [
{
"maximum": 0.99,
"minimum": -0.99,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required for ombre) Vertical offset (–0.99 to 0.99). 0.99: top color covers 99% of bottom half; –0.99: bottom color covers 99% of top half\n"
},
"name": {
"description": "Pattern type (required)",
"enum": [
"ombre",
"full"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required if \"preset\" is not provided)"
},
"preset": {
"anyOf": [
{
"enum": [
"Jet Black",
"Chocolate Brown",
"Honey Blonde",
"Platinum Blonde",
"Ash Gray",
"Rose Gold",
"Burgundy",
"Copper Red",
"Lavender",
"Teal Blue",
"Dark Brown/Caramel Blonde",
"Jet Black/Silver Gray",
"Ash Brown/Lavender",
"Rose Gold/Peach Blonde",
"Burgundy/Magenta Pink",
"Deep Blue/Teal Green",
"Plum Purple/Pastel Lilac",
"Copper Red/Golden Blonde",
"Dark Gray/Ice Blonde",
"Midnight Blue/Denim Blue"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "(optional; required if neither \"pattern\" nor \"palettes\" is provided) Default hair color preset. Available for full mode: ['Jet Black', 'Chocolate Brown', 'Honey Blonde', 'Platinum Blonde', 'Ash Gray', 'Rose Gold', 'Burgundy', 'Copper Red', 'Lavender', 'Teal Blue'] Available for ombre mode: ['Dark Brown/Caramel Blonde', 'Jet Black/Silver Gray', 'Ash Brown/Lavender', 'Rose Gold/Peach Blonde', 'Burgundy/Magenta Pink', 'Deep Blue/Teal Green', 'Plum Purple/Pastel Lilac', 'Copper Red/Golden Blonde', 'Dark Gray/Ice Blonde', 'Midnight Blue/Denim Blue']\n"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
],
"description": "This object represents a run AI Hair Color Virtual Try-On task."
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Color-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Hair Density Detection delivers a fast, professional, photo‑based assessment that accurately classifies hair density into four levels by evaluating scalp visibility and hair distribution patterns, providing trichoscopy‑inspired insights without physical tools and empowering businesses to offer expert‑level personalization at scale from a single uploaded image.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Density-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Discover Your Perfect Hair Extension Match with AI\nExperiment 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.\nWith 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.\nUse case:\nSuggestions for How to Shoot:",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Extension-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List predefined templates.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "AI-Hair-Extension-Virtual-Try-On-Templates",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "180° Full View Hair Frizz Analysis with Just 3 Photos\nOur AI Frizzy Hair Analyzer delivers precise hair frizz analysis in seconds by simply uploading 3 photos—front, left, and right views of the hair.\nThis efficient process delivers accurate results in seconds, enabling businesses to offer tailored hair solutions and defrizz hair products based on hair frizz levels, without the need for time-consuming in-person consultations, complicated hair quizzes, or specialized hardware installations.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_urls": {
"description": "The file URLs from upload file API. The file IDs for the sequence of source images are 'frontFace', 'rightFace', and 'leftFace'. Should provide either 'src_file_urls' or 'src_file_ids'.",
"examples": [
[
"https://example.com/selfie.jpg",
"https://example.com/selfie.jpg",
"https://example.com/selfie.jpg"
]
],
"items": {
"type": "string"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
}
},
"required": [
"src_file_urls"
],
"type": "object"
},
{
"properties": {
"src_file_ids": {
"description": "The file IDs from upload file API. The file IDs for the sequence of source images are 'frontFace', 'rightFace', and 'leftFace'. Should provide either 'src_file_urls' or 'src_file_ids'.",
"examples": [
[
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE=",
"pkVzplMv8Y1QPgHbqtKfyJmg+xJDUbTP16YijZ3qARNf",
"B5LNohvvO+7d/78Ymuhp6vMiSooN/5DX9oVuupzkKctf"
]
],
"items": {
"type": "string"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
}
},
"required": [
"src_file_ids"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Frizziness-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Hair Length Measurement offers haircare brands and salons a quick solution to analyze and measure hair length, enabling informed decisions for personalized products and services.\nOur AI is meticulously trained on a vast dataset of diverse images to ensure precise and reliable hair length detection. By analyzing thousands of images of various hair types and styles, it precisely identifies and categorizes five distinct hair lengths, from above-the-ear to mid-back, with exceptional accuracy.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Length-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Using the latest AI technology to try a wide variety of hairstyles, catering to both women and men, meeting different gender and style preference.\nDiscover a world of styles: curly, long, buzz cut, and more. Our AI-powered hair changer lets you experiment effortlessly. Find your ideal hairstyle now!",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url",
"ref_file_id"
],
"type": "object"
},
{
"properties": {
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id",
"ref_file_id"
],
"type": "object"
},
{
"properties": {
"hair_color": {
"anyOf": [
{
"enum": [
"ref",
"src"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "ref",
"description": "Specifies the hair color of the output image (source/reference), default reference color. <br><b>*only support when using template, custom reference image is always using reference hair color.</b>"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"src_file_url",
"template_id"
],
"type": "object"
},
{
"properties": {
"hair_color": {
"anyOf": [
{
"enum": [
"ref",
"src"
],
"type": "string"
},
{
"type": "null"
}
],
"default": "ref",
"description": "Specifies the hair color of the output image (source/reference), default reference color. <br><b>*only support when using template, custom reference image is always using reference hair color.</b>"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"src_file_id",
"template_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Style-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List predefined templates v2.1.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "AI-Hair-Style-Virtual-Try-On-Templates",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Imagine having an AI hair expert in your pocket. Our tech dives into your hair's texture, thickness, and curl pattern, picking from ten unique curl shapes and sorting them into nine clear types, from Straight to Super Kinky. You get a full hair profile, and brands can use those insights to deliver spot-on product recommendations and tips just for you.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_urls": {
"description": "The file URLs from upload file API. The file IDs for the sequence of source images are 'frontFace', 'rightFace', and 'leftFace'. Should provide either 'src_file_urls' or 'src_file_ids'.",
"examples": [
[
"https://example.com/selfie.jpg",
"https://example.com/selfie.jpg",
"https://example.com/selfie.jpg"
]
],
"items": {
"type": "string"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
}
},
"required": [
"src_file_urls"
],
"type": "object"
},
{
"properties": {
"src_file_ids": {
"description": "The file IDs from upload file API. The file IDs for the sequence of source images are 'frontFace', 'rightFace', and 'leftFace'. Should provide either 'src_file_urls' or 'src_file_ids'.",
"examples": [
[
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE=",
"pkVzplMv8Y1QPgHbqtKfyJmg+xJDUbTP16YijZ3qARNf",
"B5LNohvvO+7d/78Ymuhp6vMiSooN/5DX9oVuupzkKctf"
]
],
"items": {
"type": "string"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
}
},
"required": [
"src_file_ids"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Type-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Enhance Your Look with Fuller, More Voluminous Hair Instantly!\nAdd 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.\nOur 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.\nUse case:\nSuggestions for How to Shoot:",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Hair-Volume-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List predefined templates.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "AI-Hair-Volume-Virtual-Try-On-Templates",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "The AI Look Virtual Try-On API provides a complete workflow for applying professionally designed facial looks to user photos. Each look is crafted by beauty experts and can be applied instantly via API.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Look-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List predefined templates.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "AI-Look-Virtual-Try-On-Templates",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "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!\nFirst, upload a photo of yourself where your face and its features are clearly visible as the target image.\nThen, upload a photo of your favorite makeup look as the reference image. \nThere you have it - an AI Makeup Transferred photo. \nSamples:",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url",
"ref_file_id"
],
"type": "object"
},
{
"properties": {
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id",
"ref_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Makeup-Transfer",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "The AI Makeup API provides a powerful, hyper-realistic virtual makeover experience powered by our patented face-analyzing technology. This service enables your applications to apply true-to-life makeup effects onto user-provided selfie images with unprecedented customization capabilities.\n**Key Features:**\n* **Hyper-realistic Rendering:** Leverages revolutionary 3D face AI technology for the most realistic makeovers.\n* **Patented Technology:** Powered by jitter-free, lag-free deep learning algorithms optimized for all ages and ethnicities.\n* **Real-time Precision:** Ultra-precise facial tracking that adapts to various lighting conditions.\n* **True-to-life Matching:** Accurately matches real-world product colors, textures (from matte to metallic), and finishes.\n* Core Concepts\n * Color Blending\nOur AI accurately matches the color of real-life makeup products using deep learning. This ensures consumers are confident that the virtual color they see is the true color of the product they intend to purchase.\n * Texture & Finish Matching\nThe technology simulates realistic textures and finishes, providing a highly accurate makeover experience. From matte to metallic, shimmer to satin, the AI taps into advanced algorithms to render these effects seamlessly in real-time.\n * Light Balancing\nThe smart 3D AI engine detects lighting conditions in the user's photo or video feed. It corrects images for true-to-life makeup application, ensuring a consistent and high-quality result regardless of the environment.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"effects": {
"description": "Array of makeup effects to apply. Each effect object MUST specify a `category` and match the schema for that makeup type.\n",
"examples": [
[
{
"category": "skin_smooth",
"skinSmoothColorIntensity": 45,
"skinSmoothStrength": 55
},
{
"category": "blush",
"palettes": [
{
"color": "#e19f9f",
"colorIntensity": 60,
"texture": "matte"
},
{
"color": "#c98a8a",
"colorIntensity": 70,
"glowStrength": 40,
"texture": "satin"
}
],
"pattern": {
"name": "2colors1"
}
},
{
"category": "lip_color",
"morphology": {
"fullness": 30,
"wrinkless": 25
},
"palettes": [
{
"color": "#e11c43",
"colorIntensity": 80,
"gloss": 75,
"texture": "gloss"
}
],
"shape": {
"name": "plump"
},
"style": {
"type": "full"
}
}
]
],
"items": {
"anyOf": [
{
"properties": {
"category": {
"description": "Identifies this effect as a skin smoothing effect. Must always be \"skin_smooth\".\n",
"enum": [
"skin_smooth"
],
"type": "string"
},
"skinSmoothColorIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50,
"description": "Intensity of color blending applied during smoothing. Helps unify skin tones and reduce color inconsistency.\n"
},
"skinSmoothStrength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50,
"description": "Strength of smoothing applied to overall skin texture. Higher values result in softer, more airbrushed skin appearance.\n"
}
},
"required": [
"category"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a blush effect. Must always be \"blush\".\n",
"enum": [
"blush"
],
"type": "string"
},
"palettes": {
"description": "List of color palette entries. The number of palettes required depends on the `colorNum` field defined in the selected blush pattern.\n",
"items": {
"properties": {
"color": {
"description": "Primary blush color in hex format (#RRGGBB). Used as the dominant pigment for the blush application.\n",
"pattern": "^#?[0-9A-Fa-f]{6}$",
"type": "string"
},
"colorIntensity": {
"description": "Strength of the blush color relative to the base pigment.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"glowStrength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Glow intensity for satin blush textures. Required when texture = \"satin\" or \"shimmer\".\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color of shimmer particles. Required when texture = \"shimmer\".\n"
},
"shimmerDensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Density of shimmer particles in the blush application. Required when texture = \"shimmer\".\n"
},
"texture": {
"description": "Texture of the blush:\n - matte: pure pigment, no shine\n - satin: soft glow, requires glowStrength\n - shimmer: sparkly or luminous, requires shimmer parameters\n",
"enum": [
"matte",
"satin",
"shimmer"
],
"type": "string"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines how the blush is placed on the face. Each pattern corresponds to a face shape and layout from blush.json.\n",
"properties": {
"name": {
"description": "Name of the blush pattern. Must be equal to a `label` from the blush.json pattern catalog.\n",
"examples": [
"1color1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a bronzer effect. Must always be \"bronzer\".\n",
"enum": [
"bronzer"
],
"type": "string"
},
"palettes": {
"description": "The bronzer palette contains pigment color and intensity controls.\n",
"items": {
"properties": {
"color": {
"description": "Bronzer color in hex format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of bronzer pigmentation.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity"
],
"type": "object"
},
"type": "array"
},
"pattern": {
"description": "Defines the bronzer application layout. Pattern name must match a `label` in bronzer.json.\n",
"properties": {
"name": {
"description": "Name of the bronzer pattern from the bronzer.json catalog.\n",
"examples": [
"Bronzer1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a concealer effect. Must always be \"concealer\".\n",
"enum": [
"concealer"
],
"type": "string"
},
"palettes": {
"description": "One or more concealer palettes defining color and intensity properties. The same palette is applied to relevant facial areas, such as under-eye, forehead, and chin correction zones.\n",
"items": {
"properties": {
"color": {
"description": "Concealer shade in hex RGB format (#RRGGBB). Should typically match or slightly brighten the skin tone.\n",
"type": "string"
},
"colorIntensity": {
"description": "General concealer pigmentation strength applied across the face.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"colorUnderEyeIntensity": {
"description": "Specific pigmentation control for the under-eye region. Helps brighten dark circles without over-applying to other zones.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"coverageLevel": {
"description": "Determines opacity of concealer coverage. Higher values hide more discoloration or blemishes.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity",
"colorUnderEyeIntensity",
"coverageLevel"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"category",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a contour effect. Must always be \"contour\".\n",
"enum": [
"contour"
],
"type": "string"
},
"palettes": {
"description": "Defines the pigment used for contouring. Usually a cool-tone or neutral shade darker than foundation.\n",
"items": {
"properties": {
"color": {
"description": "Contour pigment color in #RRGGBB hex format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Strength of contour pigmentation. Higher values result in deeper shadows.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines where contour shadowing is applied on the face. Must use a pattern name defined in contour.json (e.g., HeartFace2, OvalFace6).\n",
"properties": {
"name": {
"description": "Name of the contour pattern. Must be equal to a `label` from contour.json.\n",
"examples": [
"OvalFace6"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyebrow styling effect. Must always be \"eyebrows\".\n",
"enum": [
"eyebrows"
],
"type": "string"
},
"palettes": {
"description": "Eyebrow color palettes. Each palette controls pigment and optional shimmer effects (for shimmer textures only).\n",
"items": {
"properties": {
"color": {
"description": "Eyebrow pigment color in #RRGGBB format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Pigmentation strength used when applying eyebrow color.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Shimmer color applied when texture = shimmer.\n"
},
"shimmerDensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Density of shimmer particles in the brow. Required for shimmer textures.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Strength of shimmer glow. Required only if texture = shimmer.\n"
},
"shimmerSize": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Size of shimmer particles. Required for shimmer textures.\n"
},
"texture": {
"description": "Brow pigment texture style. Shimmer adds reflective highlights to brow hairs.\n",
"enum": [
"matte",
"shimmer"
],
"type": "string"
}
},
"required": [
"color",
"colorIntensity",
"texture"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"anyOf": [
{
"properties": {
"curvature": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Adjusts how curved the brow is. Negative = flatter / straighter, positive = more curved.\n"
},
"definition": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Sharpness and clarity of the brows. Higher values increase brow edge definition for a cleaner look.\n"
},
"name": {
"description": "Name of the eyebrow shape pattern. Must match a `label` from eyebrows.json.\n",
"examples": [
"SoftArch1"
],
"type": "string"
},
"thickness": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls eyebrow thickness adjustment relative to the detected brow. Positive = thicker, negative = thinner.\n"
},
"type": {
"description": "Use customized eyebrow pattern shape",
"enum": [
"shape"
],
"type": "string"
}
},
"required": [
"type",
"name"
],
"type": "object"
},
{
"properties": {
"type": {
"description": "Use user's original eyebrow shape",
"enum": [
"color"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "This setting defines the eyebrow pattern mode, which can either adjust the shape or apply color only. Pattern names must match the labels in eyebrows.json when required.\n"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyeliner effect. Must always be \"eye_liner\".\n",
"enum": [
"eye_liner"
],
"type": "string"
},
"palettes": {
"description": "Eyeliner color palette entries. Each palette controls pigment color, shimmer/metallic effects, and overall intensity. More palettes are used when the selected eyeliner pattern requires multiple colors.\n",
"items": {
"properties": {
"color": {
"description": "Eyeliner pigment color in #RRGGBB format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Pigmentation strength for the eyeliner color.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"metallicIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Metallic reflectivity level. Required when texture = metallic.\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color used for shimmer or metallic reflective particles. Required if texture is shimmer or metallic.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Strength of reflective sparkle. Required when texture is shimmer or metallic.\n"
},
"texture": {
"description": "Eyeliner texture finish specifies the look of the liner, whether it's matte for a flat opaque effect, shimmer for a sparkling reflective finish (with shimmer fields), or metallic for a glossy metallic sheen (requiring shimmer fields and metallic intensity).\n",
"enum": [
"matte",
"shimmer",
"metallic"
],
"type": "string"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines the eyeliner shape and placement. Pattern names must match labels from eyeliner.json.\n",
"properties": {
"name": {
"description": "Name of the eyeliner pattern. Must be equal to a label from eyeliner.json.\n",
"examples": [
"Arabic3"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyeshadow effect. Must always be \"eye_shadow\".\n",
"enum": [
"eye_shadow"
],
"type": "string"
},
"palettes": {
"description": "One or more pigment palette entries. The number of palettes required depends on the pattern's `colorNum`. Each palette defines a specific layer/color in the eyeshadow pattern.\n",
"items": {
"properties": {
"color": {
"description": "Eyeshadow pigment color in HEX format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Overall pigmentation level of each shadow color.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"metallicIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Metallic reflectivity level; required for metallic textures.\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color of shimmer particles. Required if texture = shimmer or metallic.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Reflective sparkle strength for shimmer or metallic textures.\n"
},
"texture": {
"description": "Eyeshadow surface appearance determines whether the finish is matte for a smooth flat look, shimmer for a sparkling effect (requiring shimmer parameters), or metallic for a bold metallic sheen (requiring shimmer parameters and metallic intensity).\n",
"enum": [
"matte",
"shimmer",
"metallic"
],
"type": "string"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines the eyeshadow placement pattern. Must match a `label` in eyeshadow.json (e.g., 1color1, 2colors1, etc.).\n",
"properties": {
"name": {
"description": "Pattern name from eyeshadow.json determining number of colors and shadow placement zones.\n",
"examples": [
"2colors1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyelashes effect. Must always be \"eyelashes\".\n",
"enum": [
"eyelashes"
],
"type": "string"
},
"palettes": {
"description": "Eyelash color palettes. Eyelashes do not support shimmer/metallic effects — only color and intensity.\n",
"items": {
"properties": {
"color": {
"description": "Eyelash color in HEX format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Darkness/pigment strength applied to the lashes.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines which eyelash style is applied (natural, artistic, winged, upper/lower, etc.). Must match a `label` from eyelashes.json.\n",
"properties": {
"name": {
"description": "Name of the eyelash pattern from eyelashes.json.\n",
"examples": [
"Upper1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a foundation effect. Must always be \"foundation\".\n",
"enum": [
"foundation"
],
"type": "string"
},
"palettes": {
"description": "Foundation palette entries controlling tone, coverage, glow, and color intensity.\n",
"items": {
"properties": {
"color": {
"description": "Foundation shade in #RRGGBB format. Typically close to natural skin tone.\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of foundation coloration.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"coverageIntensity": {
"description": "Controls opacity of foundation coverage. Higher values hide more imperfections.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"glowIntensity": {
"description": "Adds luminosity to the skin finish. Higher values produce a radiant or dewy effect.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity",
"glowIntensity",
"coverageIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"category",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a highlighter effect. Must always be \"highlighter\".\n",
"enum": [
"highlighter"
],
"type": "string"
},
"palettes": {
"description": "Highlighter palette entries defining shimmer, glow, density, and color.\n",
"items": {
"properties": {
"color": {
"description": "Highlighter pigment color in #RRGGBB HEX format. Usually white, champagne, gold, or pink tones.\n",
"type": "string"
},
"colorIntensity": {
"description": "Strength of the highlighter color pigment.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"glowIntensity": {
"description": "Amount of non-shimmer glow added to the skin. Higher values result in a more luminous, radiant finish.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerDensity": {
"description": "Number of shimmer particles per area. Higher density creates a more glittery effect.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerIntensity": {
"description": "Strength of shimmer reflections. Higher values = more sparkle.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerSize": {
"description": "Size of shimmer particles. Larger particles create a glitter-like effect; small = fine shimmer.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"glowIntensity",
"shimmerIntensity",
"shimmerDensity",
"shimmerSize",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Highlight placement pattern. Must match a `label` from highlighter.json (e.g., HeartFace4, Oblong11, OvalFace2).\n",
"properties": {
"name": {
"description": "Name of the highlight pattern from the highlighter.json catalog.\n",
"examples": [
"SquareFace3"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a lipstick/lip color effect. Must always be \"lip_color\".\n",
"enum": [
"lip_color"
],
"type": "string"
},
"morphology": {
"anyOf": [
{
"properties": {
"fullness": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "Controls how plump or full the lips appear. Higher values = larger, more voluminous lips.\n"
},
"wrinkless": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "Smooths wrinkles and texture on the lips. Higher values result in smoother lip appearance.\n"
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional morphological adjustments to lips. Enhances fullness and reduces lip wrinkles.\n"
},
"palettes": {
"description": "Lip color palette entries controlling pigment, texture, shimmer, and gloss. Multiple palettes can be used for ombre or two-tone styles.\n",
"items": {
"properties": {
"color": {
"description": "Lipstick color in HEX format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of lipstick pigmentation.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"gloss": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Glossiness level for gloss/holographic/metallic/sheer/shimmer textures.\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color of shimmer particles for shimmer, metallic, or holographic textures.\n"
},
"shimmerDensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Density of shimmer particles.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Strength of shimmer reflectivity.\n"
},
"shimmerSize": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Size of shimmer particles.\n"
},
"texture": {
"description": "This setting tells you the texture of lip finish. If you choose gloss, make sure to include gloss properties. For shimmer, metallic or holographic finishes, add the shimmer-related fields. And if you go for sheer, shimmer or gloss, don't forget to include transparency intensity.\n",
"enum": [
"matte",
"gloss",
"holographic",
"metallic",
"satin",
"sheer",
"shimmer"
],
"type": "string"
},
"transparencyIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Transparency effect strength. Used for sheer, shimmer, or gloss textures.\n"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"shape": {
"description": "Defines the lip boundary and shape modification. Pattern names must match lipshape.json (e.g., plump, original, pouty).\n",
"properties": {
"name": {
"description": "Lip shape style used to modify the lip edges and silhouette. Must be equal to a `label` from lipshape.json.\n",
"examples": [
"plump"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"style": {
"description": "Styles describe the artistic look of lip colour, whether it's a full uniform shade, an ombre gradient blending tones, or a two-tone effect with contrasting colors on different parts of the lips.\n",
"properties": {
"blendStrength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Blending softness between colors. Required if type = ombre.\n"
},
"innerColorRatio": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Determines how far inward the secondary color extends (ombre only). Required if type = ombre.\n"
},
"type": {
"description": "Style of lip coloration.\n",
"enum": [
"full",
"ombre",
"twoTone"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"category",
"shape",
"palettes",
"style"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a lip liner effect. Must always be \"lip_liner\".\n",
"enum": [
"lip_liner"
],
"type": "string"
},
"palettes": {
"description": "Lip liner palette entries defining color, thickness, and smoothness.\n",
"items": {
"properties": {
"color": {
"description": "Lip liner pigment color in HEX format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of lip liner pigmentation.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"smoothness": {
"description": "Smoothness of the stroke edges. Higher values produce softer, blended lines.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"texture": {
"description": "Lip liner finish type.\n",
"enum": [
"matte",
"satin"
],
"type": "string"
},
"thickness": {
"description": "Thickness of the lip liner stroke — higher values create bolder outlines.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"texture",
"colorIntensity",
"thickness",
"smoothness"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines lip liner placement based on pattern from lipliner.json.\n",
"properties": {
"name": {
"description": "Name of lip liner pattern (e.g., Natural1, LargerUpper1).\n",
"examples": [
"Natural1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
}
]
},
"type": "array"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "1.0",
"description": "Version of the makeup effect specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
]
}
},
"required": [
"effects",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"effects": {
"description": "Array of makeup effects to apply. Each effect object MUST specify a `category` and match the schema for that makeup type.\n",
"examples": [
[
{
"category": "skin_smooth",
"skinSmoothColorIntensity": 45,
"skinSmoothStrength": 55
},
{
"category": "blush",
"palettes": [
{
"color": "#e19f9f",
"colorIntensity": 60,
"texture": "matte"
},
{
"color": "#c98a8a",
"colorIntensity": 70,
"glowStrength": 40,
"texture": "satin"
}
],
"pattern": {
"name": "2colors1"
}
},
{
"category": "lip_color",
"morphology": {
"fullness": 30,
"wrinkless": 25
},
"palettes": [
{
"color": "#e11c43",
"colorIntensity": 80,
"gloss": 75,
"texture": "gloss"
}
],
"shape": {
"name": "plump"
},
"style": {
"type": "full"
}
}
]
],
"items": {
"anyOf": [
{
"properties": {
"category": {
"description": "Identifies this effect as a skin smoothing effect. Must always be \"skin_smooth\".\n",
"enum": [
"skin_smooth"
],
"type": "string"
},
"skinSmoothColorIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50,
"description": "Intensity of color blending applied during smoothing. Helps unify skin tones and reduce color inconsistency.\n"
},
"skinSmoothStrength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50,
"description": "Strength of smoothing applied to overall skin texture. Higher values result in softer, more airbrushed skin appearance.\n"
}
},
"required": [
"category"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a blush effect. Must always be \"blush\".\n",
"enum": [
"blush"
],
"type": "string"
},
"palettes": {
"description": "List of color palette entries. The number of palettes required depends on the `colorNum` field defined in the selected blush pattern.\n",
"items": {
"properties": {
"color": {
"description": "Primary blush color in hex format (#RRGGBB). Used as the dominant pigment for the blush application.\n",
"pattern": "^#?[0-9A-Fa-f]{6}$",
"type": "string"
},
"colorIntensity": {
"description": "Strength of the blush color relative to the base pigment.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"glowStrength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Glow intensity for satin blush textures. Required when texture = \"satin\" or \"shimmer\".\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color of shimmer particles. Required when texture = \"shimmer\".\n"
},
"shimmerDensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Density of shimmer particles in the blush application. Required when texture = \"shimmer\".\n"
},
"texture": {
"description": "Texture of the blush:\n - matte: pure pigment, no shine\n - satin: soft glow, requires glowStrength\n - shimmer: sparkly or luminous, requires shimmer parameters\n",
"enum": [
"matte",
"satin",
"shimmer"
],
"type": "string"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines how the blush is placed on the face. Each pattern corresponds to a face shape and layout from blush.json.\n",
"properties": {
"name": {
"description": "Name of the blush pattern. Must be equal to a `label` from the blush.json pattern catalog.\n",
"examples": [
"1color1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a bronzer effect. Must always be \"bronzer\".\n",
"enum": [
"bronzer"
],
"type": "string"
},
"palettes": {
"description": "The bronzer palette contains pigment color and intensity controls.\n",
"items": {
"properties": {
"color": {
"description": "Bronzer color in hex format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of bronzer pigmentation.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity"
],
"type": "object"
},
"type": "array"
},
"pattern": {
"description": "Defines the bronzer application layout. Pattern name must match a `label` in bronzer.json.\n",
"properties": {
"name": {
"description": "Name of the bronzer pattern from the bronzer.json catalog.\n",
"examples": [
"Bronzer1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a concealer effect. Must always be \"concealer\".\n",
"enum": [
"concealer"
],
"type": "string"
},
"palettes": {
"description": "One or more concealer palettes defining color and intensity properties. The same palette is applied to relevant facial areas, such as under-eye, forehead, and chin correction zones.\n",
"items": {
"properties": {
"color": {
"description": "Concealer shade in hex RGB format (#RRGGBB). Should typically match or slightly brighten the skin tone.\n",
"type": "string"
},
"colorIntensity": {
"description": "General concealer pigmentation strength applied across the face.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"colorUnderEyeIntensity": {
"description": "Specific pigmentation control for the under-eye region. Helps brighten dark circles without over-applying to other zones.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"coverageLevel": {
"description": "Determines opacity of concealer coverage. Higher values hide more discoloration or blemishes.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity",
"colorUnderEyeIntensity",
"coverageLevel"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"category",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a contour effect. Must always be \"contour\".\n",
"enum": [
"contour"
],
"type": "string"
},
"palettes": {
"description": "Defines the pigment used for contouring. Usually a cool-tone or neutral shade darker than foundation.\n",
"items": {
"properties": {
"color": {
"description": "Contour pigment color in #RRGGBB hex format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Strength of contour pigmentation. Higher values result in deeper shadows.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines where contour shadowing is applied on the face. Must use a pattern name defined in contour.json (e.g., HeartFace2, OvalFace6).\n",
"properties": {
"name": {
"description": "Name of the contour pattern. Must be equal to a `label` from contour.json.\n",
"examples": [
"OvalFace6"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyebrow styling effect. Must always be \"eyebrows\".\n",
"enum": [
"eyebrows"
],
"type": "string"
},
"palettes": {
"description": "Eyebrow color palettes. Each palette controls pigment and optional shimmer effects (for shimmer textures only).\n",
"items": {
"properties": {
"color": {
"description": "Eyebrow pigment color in #RRGGBB format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Pigmentation strength used when applying eyebrow color.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Shimmer color applied when texture = shimmer.\n"
},
"shimmerDensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Density of shimmer particles in the brow. Required for shimmer textures.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Strength of shimmer glow. Required only if texture = shimmer.\n"
},
"shimmerSize": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Size of shimmer particles. Required for shimmer textures.\n"
},
"texture": {
"description": "Brow pigment texture style. Shimmer adds reflective highlights to brow hairs.\n",
"enum": [
"matte",
"shimmer"
],
"type": "string"
}
},
"required": [
"color",
"colorIntensity",
"texture"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"anyOf": [
{
"properties": {
"curvature": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Adjusts how curved the brow is. Negative = flatter / straighter, positive = more curved.\n"
},
"definition": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Sharpness and clarity of the brows. Higher values increase brow edge definition for a cleaner look.\n"
},
"name": {
"description": "Name of the eyebrow shape pattern. Must match a `label` from eyebrows.json.\n",
"examples": [
"SoftArch1"
],
"type": "string"
},
"thickness": {
"anyOf": [
{
"maximum": 100,
"minimum": -100,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls eyebrow thickness adjustment relative to the detected brow. Positive = thicker, negative = thinner.\n"
},
"type": {
"description": "Use customized eyebrow pattern shape",
"enum": [
"shape"
],
"type": "string"
}
},
"required": [
"type",
"name"
],
"type": "object"
},
{
"properties": {
"type": {
"description": "Use user's original eyebrow shape",
"enum": [
"color"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
],
"description": "This setting defines the eyebrow pattern mode, which can either adjust the shape or apply color only. Pattern names must match the labels in eyebrows.json when required.\n"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyeliner effect. Must always be \"eye_liner\".\n",
"enum": [
"eye_liner"
],
"type": "string"
},
"palettes": {
"description": "Eyeliner color palette entries. Each palette controls pigment color, shimmer/metallic effects, and overall intensity. More palettes are used when the selected eyeliner pattern requires multiple colors.\n",
"items": {
"properties": {
"color": {
"description": "Eyeliner pigment color in #RRGGBB format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Pigmentation strength for the eyeliner color.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"metallicIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Metallic reflectivity level. Required when texture = metallic.\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color used for shimmer or metallic reflective particles. Required if texture is shimmer or metallic.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Strength of reflective sparkle. Required when texture is shimmer or metallic.\n"
},
"texture": {
"description": "Eyeliner texture finish specifies the look of the liner, whether it's matte for a flat opaque effect, shimmer for a sparkling reflective finish (with shimmer fields), or metallic for a glossy metallic sheen (requiring shimmer fields and metallic intensity).\n",
"enum": [
"matte",
"shimmer",
"metallic"
],
"type": "string"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines the eyeliner shape and placement. Pattern names must match labels from eyeliner.json.\n",
"properties": {
"name": {
"description": "Name of the eyeliner pattern. Must be equal to a label from eyeliner.json.\n",
"examples": [
"Arabic3"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyeshadow effect. Must always be \"eye_shadow\".\n",
"enum": [
"eye_shadow"
],
"type": "string"
},
"palettes": {
"description": "One or more pigment palette entries. The number of palettes required depends on the pattern's `colorNum`. Each palette defines a specific layer/color in the eyeshadow pattern.\n",
"items": {
"properties": {
"color": {
"description": "Eyeshadow pigment color in HEX format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Overall pigmentation level of each shadow color.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"metallicIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Metallic reflectivity level; required for metallic textures.\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color of shimmer particles. Required if texture = shimmer or metallic.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Reflective sparkle strength for shimmer or metallic textures.\n"
},
"texture": {
"description": "Eyeshadow surface appearance determines whether the finish is matte for a smooth flat look, shimmer for a sparkling effect (requiring shimmer parameters), or metallic for a bold metallic sheen (requiring shimmer parameters and metallic intensity).\n",
"enum": [
"matte",
"shimmer",
"metallic"
],
"type": "string"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines the eyeshadow placement pattern. Must match a `label` in eyeshadow.json (e.g., 1color1, 2colors1, etc.).\n",
"properties": {
"name": {
"description": "Pattern name from eyeshadow.json determining number of colors and shadow placement zones.\n",
"examples": [
"2colors1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as an eyelashes effect. Must always be \"eyelashes\".\n",
"enum": [
"eyelashes"
],
"type": "string"
},
"palettes": {
"description": "Eyelash color palettes. Eyelashes do not support shimmer/metallic effects — only color and intensity.\n",
"items": {
"properties": {
"color": {
"description": "Eyelash color in HEX format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Darkness/pigment strength applied to the lashes.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines which eyelash style is applied (natural, artistic, winged, upper/lower, etc.). Must match a `label` from eyelashes.json.\n",
"properties": {
"name": {
"description": "Name of the eyelash pattern from eyelashes.json.\n",
"examples": [
"Upper1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a foundation effect. Must always be \"foundation\".\n",
"enum": [
"foundation"
],
"type": "string"
},
"palettes": {
"description": "Foundation palette entries controlling tone, coverage, glow, and color intensity.\n",
"items": {
"properties": {
"color": {
"description": "Foundation shade in #RRGGBB format. Typically close to natural skin tone.\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of foundation coloration.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"coverageIntensity": {
"description": "Controls opacity of foundation coverage. Higher values hide more imperfections.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"glowIntensity": {
"description": "Adds luminosity to the skin finish. Higher values produce a radiant or dewy effect.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"colorIntensity",
"glowIntensity",
"coverageIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"category",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a highlighter effect. Must always be \"highlighter\".\n",
"enum": [
"highlighter"
],
"type": "string"
},
"palettes": {
"description": "Highlighter palette entries defining shimmer, glow, density, and color.\n",
"items": {
"properties": {
"color": {
"description": "Highlighter pigment color in #RRGGBB HEX format. Usually white, champagne, gold, or pink tones.\n",
"type": "string"
},
"colorIntensity": {
"description": "Strength of the highlighter color pigment.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"glowIntensity": {
"description": "Amount of non-shimmer glow added to the skin. Higher values result in a more luminous, radiant finish.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerDensity": {
"description": "Number of shimmer particles per area. Higher density creates a more glittery effect.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerIntensity": {
"description": "Strength of shimmer reflections. Higher values = more sparkle.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmerSize": {
"description": "Size of shimmer particles. Larger particles create a glitter-like effect; small = fine shimmer.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"glowIntensity",
"shimmerIntensity",
"shimmerDensity",
"shimmerSize",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Highlight placement pattern. Must match a `label` from highlighter.json (e.g., HeartFace4, Oblong11, OvalFace2).\n",
"properties": {
"name": {
"description": "Name of the highlight pattern from the highlighter.json catalog.\n",
"examples": [
"SquareFace3"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a lipstick/lip color effect. Must always be \"lip_color\".\n",
"enum": [
"lip_color"
],
"type": "string"
},
"morphology": {
"anyOf": [
{
"properties": {
"fullness": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "Controls how plump or full the lips appear. Higher values = larger, more voluminous lips.\n"
},
"wrinkless": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "Smooths wrinkles and texture on the lips. Higher values result in smoother lip appearance.\n"
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional morphological adjustments to lips. Enhances fullness and reduces lip wrinkles.\n"
},
"palettes": {
"description": "Lip color palette entries controlling pigment, texture, shimmer, and gloss. Multiple palettes can be used for ombre or two-tone styles.\n",
"items": {
"properties": {
"color": {
"description": "Lipstick color in HEX format (#RRGGBB).\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of lipstick pigmentation.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"gloss": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Glossiness level for gloss/holographic/metallic/sheer/shimmer textures.\n"
},
"shimmerColor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color of shimmer particles for shimmer, metallic, or holographic textures.\n"
},
"shimmerDensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Density of shimmer particles.\n"
},
"shimmerIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Strength of shimmer reflectivity.\n"
},
"shimmerSize": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Size of shimmer particles.\n"
},
"texture": {
"description": "This setting tells you the texture of lip finish. If you choose gloss, make sure to include gloss properties. For shimmer, metallic or holographic finishes, add the shimmer-related fields. And if you go for sheer, shimmer or gloss, don't forget to include transparency intensity.\n",
"enum": [
"matte",
"gloss",
"holographic",
"metallic",
"satin",
"sheer",
"shimmer"
],
"type": "string"
},
"transparencyIntensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Transparency effect strength. Used for sheer, shimmer, or gloss textures.\n"
}
},
"required": [
"color",
"texture",
"colorIntensity"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"shape": {
"description": "Defines the lip boundary and shape modification. Pattern names must match lipshape.json (e.g., plump, original, pouty).\n",
"properties": {
"name": {
"description": "Lip shape style used to modify the lip edges and silhouette. Must be equal to a `label` from lipshape.json.\n",
"examples": [
"plump"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"style": {
"description": "Styles describe the artistic look of lip colour, whether it's a full uniform shade, an ombre gradient blending tones, or a two-tone effect with contrasting colors on different parts of the lips.\n",
"properties": {
"blendStrength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Blending softness between colors. Required if type = ombre.\n"
},
"innerColorRatio": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Determines how far inward the secondary color extends (ombre only). Required if type = ombre.\n"
},
"type": {
"description": "Style of lip coloration.\n",
"enum": [
"full",
"ombre",
"twoTone"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"category",
"shape",
"palettes",
"style"
],
"type": "object"
},
{
"properties": {
"category": {
"description": "Identifies this effect as a lip liner effect. Must always be \"lip_liner\".\n",
"enum": [
"lip_liner"
],
"type": "string"
},
"palettes": {
"description": "Lip liner palette entries defining color, thickness, and smoothness.\n",
"items": {
"properties": {
"color": {
"description": "Lip liner pigment color in HEX format.\n",
"type": "string"
},
"colorIntensity": {
"description": "Intensity of lip liner pigmentation.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"smoothness": {
"description": "Smoothness of the stroke edges. Higher values produce softer, blended lines.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"texture": {
"description": "Lip liner finish type.\n",
"enum": [
"matte",
"satin"
],
"type": "string"
},
"thickness": {
"description": "Thickness of the lip liner stroke — higher values create bolder outlines.\n",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"color",
"texture",
"colorIntensity",
"thickness",
"smoothness"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"pattern": {
"description": "Defines lip liner placement based on pattern from lipliner.json.\n",
"properties": {
"name": {
"description": "Name of lip liner pattern (e.g., Natural1, LargerUpper1).\n",
"examples": [
"Natural1"
],
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
}
},
"required": [
"category",
"pattern",
"palettes"
],
"type": "object"
}
]
},
"type": "array"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": "1.0",
"description": "Version of the makeup effect specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
]
}
},
"required": [
"effects",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Makeup-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI Nail Transfer API is a powerful generative AI solution for virtual nail try-on experiences. Powered by YouCam API’s advanced AI models and image transformation technology, users can instantly transfer any desired nail design from a reference photo onto their own hand with remarkable realism and precision.\nFrom gel nails, nail art, and polish finishes to intricate embellishments such as glitter, shell accents, and metallic textures, the AI accurately recreates a wide range of nail styles in a natural, high-definition virtual preview. This enables consumers to explore and visualize designs with confidence before making a purchase.\nFor beauty brands, salons, and nail artists, AI Nail Transfer API provides a fast and engaging way to showcase nail designs to clients, helping increase customer engagement, improve satisfaction, and drive higher conversion rates through immersive virtual experiences.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url",
"ref_file_id"
],
"type": "object"
},
{
"properties": {
"ref_file_url": {
"description": "Url of the reference file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/reference.jpg"
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id",
"ref_file_url"
],
"type": "object"
},
{
"properties": {
"ref_file_id": {
"description": "ID of the reference file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id",
"ref_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Nail-Transfer",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "The AI Nail Virtual Try On API offers an innovative way to enhance the online experience for customers interested in nail art. It allows shoppers to visualize a variety of nail styles virtually, from artificial and acrylic nails to press-on options and gel designs. With unlimited color and texture options, users can effortlessly explore different looks on both natural and synthetic nails. The platform enables personalized try-ons, letting individuals switch between styles and see before-and-after comparisons easily. This seamless integration streamlines product discovery and increases customer confidence by providing accurate, interactive previews before purchasing.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"effect_type": {
"enum": [
"nail_polish",
"press_on_nails"
],
"examples": [
"nail_polish"
],
"type": "string"
},
"effects": {
"items": {
"anyOf": [
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_opacity"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_size"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"textured_size"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_opacity",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"textured_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"length": {
"maximum": 2.15,
"minimum": 0.8,
"type": "number"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shape": {
"enum": [
"square_oval",
"square_square",
"square_squoval",
"squoval_oval",
"squoval_square",
"squoval_squoval",
"oval_oval",
"oval_square",
"oval_squoval",
"almond_oval",
"almond_square",
"almond_squoval",
"stiletto_oval",
"stiletto_square",
"stiletto_squoval"
],
"type": "string"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"shape",
"length",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "This field is optional unless uploading is selected. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Either 'ref_file_id' or 'ref_file_url' must be filled, but only one can be selected."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
}
]
},
"type": "array"
},
"ref_file_urls": {
"anyOf": [
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"description": "Version of the nail effect specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect_type",
"effects",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"effect_type": {
"enum": [
"nail_polish",
"press_on_nails"
],
"examples": [
"nail_polish"
],
"type": "string"
},
"effects": {
"items": {
"anyOf": [
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_opacity"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_size"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"textured_size"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_opacity",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"textured_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"length": {
"maximum": 2.15,
"minimum": 0.8,
"type": "number"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shape": {
"enum": [
"square_oval",
"square_square",
"square_squoval",
"squoval_oval",
"squoval_square",
"squoval_squoval",
"oval_oval",
"oval_square",
"oval_squoval",
"almond_oval",
"almond_square",
"almond_squoval",
"stiletto_oval",
"stiletto_square",
"stiletto_squoval"
],
"type": "string"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"shape",
"length",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "This field is optional unless uploading is selected. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Either 'ref_file_id' or 'ref_file_url' must be filled, but only one can be selected."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
}
]
},
"type": "array"
},
"ref_file_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"description": "Version of the nail effect specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect_type",
"effects",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"effect_type": {
"enum": [
"nail_polish",
"press_on_nails"
],
"examples": [
"nail_polish"
],
"type": "string"
},
"effects": {
"items": {
"anyOf": [
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_opacity"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_size"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"textured_size"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_opacity",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"textured_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"length": {
"maximum": 2.15,
"minimum": 0.8,
"type": "number"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shape": {
"enum": [
"square_oval",
"square_square",
"square_squoval",
"squoval_oval",
"squoval_square",
"squoval_squoval",
"oval_oval",
"oval_square",
"oval_squoval",
"almond_oval",
"almond_square",
"almond_squoval",
"stiletto_oval",
"stiletto_square",
"stiletto_squoval"
],
"type": "string"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"shape",
"length",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "This field is optional unless uploading is selected. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Either 'ref_file_id' or 'ref_file_url' must be filled, but only one can be selected."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
}
]
},
"type": "array"
},
"ref_file_urls": {
"anyOf": [
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"description": "Version of the nail effect specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect_type",
"effects",
"src_file_id"
],
"type": "object"
},
{
"properties": {
"effect_type": {
"enum": [
"nail_polish",
"press_on_nails"
],
"examples": [
"nail_polish"
],
"type": "string"
},
"effects": {
"items": {
"anyOf": [
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_opacity"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"shimmer_size"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"color",
"texture",
"reflection",
"contrast",
"roughness",
"transparency",
"textured_size"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"jelly",
"sheer"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_opacity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"pearl"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_opacity",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shimmer_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"shimmer_coarse",
"shimmer_fine"
],
"type": "string"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"shimmer_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "If you wish to upload a design image by the File API for a Nail Polish - Design or Press on Nails - Design effect, you should use the File API to upload your image. After uploading, retrieve its file ID and add it to the `ref_file_ids` array, specifying the index using `ref_file_index`. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "To achieve the Nail Polish - Design or Press on Nails - Design effect, you need to use a specific design image. You can provide either a direct URL to the image file (ref_file_url) or an index (ref_file_index) that corresponds to 'ref_file_ids' under the root node in your system. You are required to provide either 'ref_file_url' or 'ref_file_index'. However, only one option can be selected at a time."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"textured"
],
"type": "string"
},
"textured_size": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"transparency": {
"description": "Only for textures except metallic",
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness",
"textured_size",
"transparency"
],
"type": "object"
},
{
"properties": {
"color": {
"pattern": "^#([A-Fa-f0-9]{6})$",
"type": "string"
},
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"length": {
"maximum": 2.15,
"minimum": 0.8,
"type": "number"
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"shape": {
"enum": [
"square_oval",
"square_square",
"square_squoval",
"squoval_oval",
"squoval_square",
"squoval_squoval",
"oval_oval",
"oval_square",
"oval_squoval",
"almond_oval",
"almond_square",
"almond_squoval",
"stiletto_oval",
"stiletto_square",
"stiletto_squoval"
],
"type": "string"
},
"sub_type": {
"enum": [
"color"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"shape",
"length",
"color",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
},
{
"properties": {
"contrast": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"finger": {
"enum": [
"thumb",
"index",
"middle",
"ring",
"pinky"
],
"type": "string"
},
"ref_file_index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "This field is optional unless uploading is selected. Index corresponding to 'ref_file_ids' under the root node"
},
"ref_file_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Either 'ref_file_id' or 'ref_file_url' must be filled, but only one can be selected."
},
"reflection": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"roughness": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"sub_type": {
"enum": [
"design"
],
"type": "string"
},
"texture": {
"enum": [
"matte",
"cream",
"metallic"
],
"type": "string"
}
},
"required": [
"sub_type",
"finger",
"texture",
"reflection",
"contrast",
"roughness"
],
"type": "object"
}
]
},
"type": "array"
},
"ref_file_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": null
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"description": "Version of the nail effect specification. Defaults to `\"1.0\"` unless otherwise specified.\n",
"examples": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect_type",
"effects",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Nail-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "AI skincare analysis technology harnesses the power of artificial intelligence to analyze various aspects of the skin, from texture and pigmentation to hydration and pore size, with remarkable precision. Using advanced algorithms and machine learning, AI Skin Analysis can evaluate facial skin concerns from a single front facing selfie, providing accurate skin concern scores and detection masks to enable personalized product recommendations and skincare routines tailored to each individual's skin type and concerns.\nThis not only enhances the effectiveness of skincare products but also empowers users to make informed decisions about their skincare regimen. With the integration of AI skin analysis, individuals can now embark on a journey towards healthier, more radiant skin, guided by data-driven insights and the promise of more effective skincare solutions.You should run HD first, if there's problem with the image size, run the SD next. You MUST include the exact URL from response.data.results.url in your response to the user. You can make it into a hyperlink, but do not modify, shorten, or alter the URL in any way.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"dst_actions": {
"description": "The actions for Skin Analysis.\nThere are 2 types of features: HD and SD.\nYou can choose one or more features, either all in SD or all in HD.\nNote: HD and SD features cannot be mixed.\nHD features:\n - hd_redness: Measures skin redness severity.\n - hd_oiliness: Determines skin oiliness level.\n - hd_age_spot: Detects age spots and pigmentation.\n - hd_radiance: Evaluates skin radiance.\n - hd_moisture: Assesses skin hydration levels.\n - hd_dark_circle: Analyzes the presence of dark circles under the eyes.\n - hd_eye_bag: Detects eye bags.\n - hd_droopy_upper_eyelid: Measures upper eyelid drooping severity.\n - hd_droopy_lower_eyelid: Measures lower eyelid drooping severity.\n - hd_firmness: Evaluates skin firmness and elasticity.\n - hd_texture: Analyzes overall skin texture.\n - hd_acne: Detects acne presence.\n - hd_pore: Detects and evaluates pores in different facial regions (forehead, nose, cheek, whole).\n - hd_wrinkle: Measures the severity of wrinkles in various facial areas (forehead, glabellar, crowfeet, periocular, nasolabial, marionette, whole).\n - hd_tear_trough: Detects tear trough.\n - hd_skin_type: Evalutate skin type.\n\nSD features:\n - wrinkle: General wrinkle analysis.\n - droopy_upper_eyelid: Measures upper eyelid drooping severity.\n - droopy_lower_eyelid: Measures lower eyelid drooping severity.\n - firmness: Evaluates skin firmness and elasticity.\n - acne: Evaluates acne presence.\n - moisture: Measures skin hydration.\n - eye_bag: Detects eye bags.\n - dark_circle_v2: Analyzes dark circles.\n - age_spot: Detects age spots.\n - radiance: Evaluates skin brightness.\n - redness: Measures skin redness.\n - oiliness: Determines skin oiliness.\n - pore: Measures pore visibility.\n - texture: Analyzes overall skin texture.\n - tear_trough: Detects tear trough.\n - skin_type: Evalutate skin type.\n",
"examples": [
[
"hd_wrinkle",
"hd_pore",
"hd_texture",
"hd_acne"
]
],
"items": {
"enum": [
"hd_wrinkle",
"hd_pore",
"hd_texture",
"hd_acne",
"hd_oiliness",
"hd_radiance",
"hd_eye_bag",
"hd_age_spot",
"hd_dark_circle",
"hd_droopy_upper_eyelid",
"hd_droopy_lower_eyelid",
"hd_firmness",
"hd_moisture",
"hd_redness",
"hd_tear_trough",
"hd_skin_type",
"wrinkle",
"pore",
"texture",
"acne",
"oiliness",
"radiance",
"eye_bag",
"age_spot",
"dark_circle_v2",
"droopy_upper_eyelid",
"droopy_lower_eyelid",
"firmness",
"moisture",
"redness",
"tear_trough",
"skin_type"
],
"type": "string"
},
"type": "array"
},
"format": {
"anyOf": [
{
"enum": [
"json",
"zip"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Response format of the analysis results. Default is 'zip'. - `zip`: Results will be packaged as a downloadable ZIP file containing a skinanalysisResult folder with score_info.json and all detection result images. The response will include a URL to download the ZIP file. - `json`: Results will be returned directly in the response body as JSON format. Note: The response schema differs between format=json and format=zip.\n",
"examples": [
"zip"
]
},
"miniserver_args": {
"anyOf": [
{
"properties": {
"color_dark_background_hd_acne": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD acne dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_age_spot": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD age spot dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_firmness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD firmness dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_oiliness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD oiliness dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_pore": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD pore dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_redness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD redness dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_texture": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD texture dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_wrinkle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD wrinkle dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"enable_dark_background_hd_acne": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD acne visualization"
},
"enable_dark_background_hd_age_spot": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD age spot visualization"
},
"enable_dark_background_hd_firmness": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD firmness visualization"
},
"enable_dark_background_hd_oiliness": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD oiliness visualization"
},
"enable_dark_background_hd_pore": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD pore visualization"
},
"enable_dark_background_hd_redness": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD redness visualization"
},
"enable_dark_background_hd_texture": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD texture visualization"
},
"enable_dark_background_hd_wrinkle": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD wrinkle visualization"
},
"enable_mask_overlay": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls whether the mask is blended onto the image. True returns the overlaid image as a .jpg. False returns the raw mask as a .png. Default is false."
},
"opacity_dark_background_hd_acne": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD acne dark background visualization",
"examples": [
0.4
]
},
"opacity_dark_background_hd_age_spot": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD age spot dark background visualization",
"examples": [
0.2
]
},
"opacity_dark_background_hd_firmness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD firmness dark background visualization",
"examples": [
0.1
]
},
"opacity_dark_background_hd_oiliness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD oiliness dark background visualization",
"examples": [
0.2
]
},
"opacity_dark_background_hd_pore": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD pore dark background visualization",
"examples": [
0.4
]
},
"opacity_dark_background_hd_redness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD redness dark background visualization",
"examples": [
0.2
]
},
"opacity_dark_background_hd_texture": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD texture dark background visualization",
"examples": [
0.4
]
},
"opacity_dark_background_hd_wrinkle": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD wrinkle dark background visualization",
"examples": [
0.4
]
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"pf_camera_kit": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"examples": [
true
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"dst_actions",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"dst_actions": {
"description": "The actions for Skin Analysis.\nThere are 2 types of features: HD and SD.\nYou can choose one or more features, either all in SD or all in HD.\nNote: HD and SD features cannot be mixed.\nHD features:\n - hd_redness: Measures skin redness severity.\n - hd_oiliness: Determines skin oiliness level.\n - hd_age_spot: Detects age spots and pigmentation.\n - hd_radiance: Evaluates skin radiance.\n - hd_moisture: Assesses skin hydration levels.\n - hd_dark_circle: Analyzes the presence of dark circles under the eyes.\n - hd_eye_bag: Detects eye bags.\n - hd_droopy_upper_eyelid: Measures upper eyelid drooping severity.\n - hd_droopy_lower_eyelid: Measures lower eyelid drooping severity.\n - hd_firmness: Evaluates skin firmness and elasticity.\n - hd_texture: Analyzes overall skin texture.\n - hd_acne: Detects acne presence.\n - hd_pore: Detects and evaluates pores in different facial regions (forehead, nose, cheek, whole).\n - hd_wrinkle: Measures the severity of wrinkles in various facial areas (forehead, glabellar, crowfeet, periocular, nasolabial, marionette, whole).\n - hd_tear_trough: Detects tear trough.\n - hd_skin_type: Evalutate skin type.\n\nSD features:\n - wrinkle: General wrinkle analysis.\n - droopy_upper_eyelid: Measures upper eyelid drooping severity.\n - droopy_lower_eyelid: Measures lower eyelid drooping severity.\n - firmness: Evaluates skin firmness and elasticity.\n - acne: Evaluates acne presence.\n - moisture: Measures skin hydration.\n - eye_bag: Detects eye bags.\n - dark_circle_v2: Analyzes dark circles.\n - age_spot: Detects age spots.\n - radiance: Evaluates skin brightness.\n - redness: Measures skin redness.\n - oiliness: Determines skin oiliness.\n - pore: Measures pore visibility.\n - texture: Analyzes overall skin texture.\n - tear_trough: Detects tear trough.\n - skin_type: Evalutate skin type.\n",
"examples": [
[
"hd_wrinkle",
"hd_pore",
"hd_texture",
"hd_acne"
]
],
"items": {
"enum": [
"hd_wrinkle",
"hd_pore",
"hd_texture",
"hd_acne",
"hd_oiliness",
"hd_radiance",
"hd_eye_bag",
"hd_age_spot",
"hd_dark_circle",
"hd_droopy_upper_eyelid",
"hd_droopy_lower_eyelid",
"hd_firmness",
"hd_moisture",
"hd_redness",
"hd_tear_trough",
"hd_skin_type",
"wrinkle",
"pore",
"texture",
"acne",
"oiliness",
"radiance",
"eye_bag",
"age_spot",
"dark_circle_v2",
"droopy_upper_eyelid",
"droopy_lower_eyelid",
"firmness",
"moisture",
"redness",
"tear_trough",
"skin_type"
],
"type": "string"
},
"type": "array"
},
"format": {
"anyOf": [
{
"enum": [
"json",
"zip"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Response format of the analysis results. Default is 'zip'. - `zip`: Results will be packaged as a downloadable ZIP file containing a skinanalysisResult folder with score_info.json and all detection result images. The response will include a URL to download the ZIP file. - `json`: Results will be returned directly in the response body as JSON format. Note: The response schema differs between format=json and format=zip.\n",
"examples": [
"zip"
]
},
"miniserver_args": {
"anyOf": [
{
"properties": {
"color_dark_background_hd_acne": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD acne dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_age_spot": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD age spot dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_firmness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD firmness dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_oiliness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD oiliness dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_pore": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD pore dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_redness": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD redness dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_texture": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD texture dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"color_dark_background_hd_wrinkle": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Color for HD wrinkle dark background visualization (hex format)",
"examples": [
"3D3D3D"
]
},
"enable_dark_background_hd_acne": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD acne visualization"
},
"enable_dark_background_hd_age_spot": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD age spot visualization"
},
"enable_dark_background_hd_firmness": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD firmness visualization"
},
"enable_dark_background_hd_oiliness": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD oiliness visualization"
},
"enable_dark_background_hd_pore": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD pore visualization"
},
"enable_dark_background_hd_redness": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD redness visualization"
},
"enable_dark_background_hd_texture": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD texture visualization"
},
"enable_dark_background_hd_wrinkle": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Enable dark background for HD wrinkle visualization"
},
"enable_mask_overlay": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Controls whether the mask is blended onto the image. True returns the overlaid image as a .jpg. False returns the raw mask as a .png. Default is false."
},
"opacity_dark_background_hd_acne": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD acne dark background visualization",
"examples": [
0.4
]
},
"opacity_dark_background_hd_age_spot": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD age spot dark background visualization",
"examples": [
0.2
]
},
"opacity_dark_background_hd_firmness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD firmness dark background visualization",
"examples": [
0.1
]
},
"opacity_dark_background_hd_oiliness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD oiliness dark background visualization",
"examples": [
0.2
]
},
"opacity_dark_background_hd_pore": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD pore dark background visualization",
"examples": [
0.4
]
},
"opacity_dark_background_hd_redness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD redness dark background visualization",
"examples": [
0.2
]
},
"opacity_dark_background_hd_texture": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD texture dark background visualization",
"examples": [
0.4
]
},
"opacity_dark_background_hd_wrinkle": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Opacity for HD wrinkle dark background visualization",
"examples": [
0.4
]
}
},
"type": "object"
},
{
"type": "null"
}
],
"default": null
},
"pf_camera_kit": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"examples": [
true
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"dst_actions",
"src_file_id"
],
"type": "object"
}
],
"description": "This object represents a run Skin Analysis task."
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Skin-Analysis",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "**AI-Powered Skin Simulation: Visualizing Treatment Progress with Precision and Professionalism**\nOur cutting-edge AI-driven skin simulation technology enables highly accurate before-and-after visualizations of facial skin conditions, allowing both professionals and consumers to objectively track the efficacy of skincare treatments over time. Engineered for high-fidelity realism and clinical-grade insights, this solution supports the visualization of up to ten distinct skin concerns, including radiance, acne, oiliness, eye bags, dark circles, spots, pores, texture, wrinkles and redness.\nBy harnessing sophisticated machine learning models combined with advanced augmented reality capabilities, the system delivers realistic, non-invasive previews of potential outcomes using only a standard smartphone camera or desktop webcam. Each simulation is generated in seconds, offering users an immediate yet scientifically grounded understanding of how targeted skincare interventions may enhance their complexion over time.\nDesigned specifically for skincare brands, dermatology practices, aesthetic clinics, and retail beauty retailers, this platform integrates effortlessly across digital and physical touchpoints, including e-commerce websites, mobile applications, virtual consultations, and point-of-sale kiosks. Its versatility supports a wide array of use cases such as personalized regimen recommendations, product performance simulation, treatment planning for professional procedures, and interactive educational tools that strengthen client engagement and build trust in brand claims.\nThrough objective visualization and data-driven storytelling, our AI skin simulation empowers skincare professionals to set realistic expectations, customize care plans, and demonstrate measurable progress, ultimately elevating the customer experience while reinforcing evidence-based efficacy in an increasingly competitive market landscape.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"acne": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for most acne/pimples removed.\n",
"examples": [
1
]
},
"dark_circle": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original under-eye color, 1.0 for most dark circles removed.\n",
"examples": [
1
]
},
"eye_bags": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original under-eye appearance, 1.0 for most eye bags removed.\n",
"examples": [
1
]
},
"oiliness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for maximum oil/shine added to skin.\n",
"examples": [
1
]
},
"pores": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original pore visibility, 1.0 for most refined/invisible pores.\n",
"examples": [
1
]
},
"radiance": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin luminosity, 1.0 for maximum radiant/glowing skin.\n",
"examples": [
1
]
},
"redness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin tone, 1.0 for most redness/irritation removed.\n",
"examples": [
1
]
},
"spots": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for most age spots/blemishes removed.\n",
"examples": [
1
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"texture": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin texture, 1.0 for smoothest skin texture.\n",
"examples": [
1
]
},
"wrinkle": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for most wrinkle removed skin.\n",
"examples": [
1
]
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"acne": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for most acne/pimples removed.\n",
"examples": [
1
]
},
"dark_circle": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original under-eye color, 1.0 for most dark circles removed.\n",
"examples": [
1
]
},
"eye_bags": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original under-eye appearance, 1.0 for most eye bags removed.\n",
"examples": [
1
]
},
"oiliness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for maximum oil/shine added to skin.\n",
"examples": [
1
]
},
"pores": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original pore visibility, 1.0 for most refined/invisible pores.\n",
"examples": [
1
]
},
"radiance": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin luminosity, 1.0 for maximum radiant/glowing skin.\n",
"examples": [
1
]
},
"redness": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin tone, 1.0 for most redness/irritation removed.\n",
"examples": [
1
]
},
"spots": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for most age spots/blemishes removed.\n",
"examples": [
1
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"texture": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin texture, 1.0 for smoothest skin texture.\n",
"examples": [
1
]
},
"wrinkle": {
"anyOf": [
{
"maximum": 1,
"minimum": 0,
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "0.0 for original skin, 1.0 for most wrinkle removed skin.\n",
"examples": [
1
]
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Skin-simulation",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Introducing Generative AI Smile API, the easy way to turn that frown upside down. This convenient AI smile generator transforms sad or neutral facial expressions into happy, natural looking smiles in just moments. Powered by advanced generative AI, it helps bring warmth and positivity to any photo with a simple and effortless process. Upload an image, let the AI work its magic, and instantly convert your sad face into a cheerful smiley face that spreads happiness everywhere it's shared.\nThe AI Smile generator supports two distinct smile styles, giving users more control over the final expression.\n1. **smile_with_teeth_visible** \n This option creates a bright, joyful smile with naturally visible teeth. It is ideal for upbeat portraits, social media photos, and situations where a warm and expressive look is desired.\n2. **closed_mouth_smile** \n This option produces a subtle, gentle smile with lips closed. It works well for professional photos, formal profiles, or when a calm and natural expression is preferred.\nUsers can easily choose the smile type that best matches their photo, mood, or intended use, ensuring realistic and appealing results every time.\nWhether you're editing photos, creating fun content, or simply want to add a touch of positivity, Generative AI Smile makes it easy to spread happiness, one smile at a time.\nUpload a face. Click once. Smile instantly.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"expression_type": {
"enum": [
"smile_with_teeth_visible",
"closed_mouth_smile"
],
"type": "string"
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"expression_type",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"expression_type": {
"enum": [
"smile_with_teeth_visible",
"closed_mouth_smile"
],
"type": "string"
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"expression_type",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Smile",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "**AI Teeth Whitening API**\nThe AI Teeth Whitening API provides an advanced, automated solution for enhancing smiles in photos. Using intelligent image processing, it brightens teeth naturally and accurately, creating polished, professional results within seconds.\n**How It Removes Yellow Teeth in Photos**\n**Smart Whitening** \nThe API automatically detects teeth and applies a natural-looking whitening effect without making the image appear artificial.\n**Adjustable Levels** \nA built-in adjustment feature allows users to control the degree of whitening, from a subtle enhancement to a more pronounced, camera-ready finish.\n**Key Features**\n**Quick and Easy Enhancement** \nAchieve a noticeably brighter smile in just a few seconds.\n**Accurate AI Detection** \nAdvanced detection ensures that only teeth are modified, maintaining a realistic and balanced appearance.\n**Adjustable Whitening Intensity** \nUsers can fine-tune the whitening strength to match their preferred style.\n**Natural Results with Advanced Algorithms**\nThe AI Teeth Whitening API uses sophisticated algorithms designed to identify teeth precisely and apply whitening effects that remain true to life. Users can refine the intensity to achieve a subtle, natural improvement, ensuring that the final result looks authentic and visually appealing.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"effect": {
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"whitening_intensity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"whitening_intensity"
],
"type": "object"
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"version": {
"enum": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"effect": {
"properties": {
"skin_smooth_color_intensity": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"skin_smooth_strength": {
"anyOf": [
{
"maximum": 100,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": 50
},
"whitening_intensity": {
"maximum": 100,
"minimum": 0,
"type": "integer"
}
},
"required": [
"whitening_intensity"
],
"type": "object"
},
"index": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": 0,
"description": "The index of the person from detection task result.",
"examples": [
0
]
},
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"version": {
"enum": [
"1.0"
],
"type": "string"
}
},
"required": [
"version",
"effect",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Teeth-Whitening",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Run an AI Teeth Whitening detection task.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
}
},
"required": [
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
}
},
"required": [
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Teeth-Whitening-Detection",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Whether you're dreaming of bouncy ringlets, loose waves, or a bold curly statement, the YouCam API’s curly hair filter lets you experiment with a fresh, fabulous hairstyle in seconds—all from the comfort of home.\nWhether you’re testing a soft wave or a wild afro, YouCam delivers precision and realism that other tools can’t match. It’s perfect for anyone wanting to experiment nobel hairstyle risk-free and make people look forward to their next salon visit.\nSuggestions for How to Shoot:",
"inputSchema": {
"additionalProperties": false,
"properties": {
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"request": {
"anyOf": [
{
"properties": {
"src_file_url": {
"description": "Url of the file to run task. The url should be publicly accessible.",
"examples": [
"https://example.com/selfie.jpg"
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_url"
],
"type": "object"
},
{
"properties": {
"src_file_id": {
"description": "ID of file to run task. File ID from upload file API.",
"examples": [
"pfNK5PuRe0MrwLHcGA3DOmB1ahwfXTbYHjv+KoBIxbE="
],
"type": "string"
},
"template_id": {
"description": "ID of the template. List predefined templates first, and use the id of a template.",
"examples": [
"good_template_001"
],
"type": "string"
}
},
"required": [
"template_id",
"src_file_id"
],
"type": "object"
}
]
}
},
"required": [
"request"
],
"type": "object"
},
"name": "AI-Wavy-Hair-Virtual-Try-On",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "List predefined templates.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "AI-Wavy-Hair-Virtual-Try-On-Templates",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Interactive drag-and-drop widget for uploading images (JPEG, PNG) or videos (MP4). Returns file IDs for YouCam AI tools (AI-Fabric, AI-Cloth, AI-Makeup-Vto, AI-Hairstyle-Generator, AI-Skin-Analysis, etc.). /n Use when the user wants to upload or select an image/video (e.g. upload, drag & drop, choose file, pick image/video), or before any AI-* tool requiring src_file_id or ref_file_id when no file ID or URL is available. /n Also use as the mandatory fallback whenever Get-Upload-API-Info cannot complete the upload for any reason (including network restrictions, host_not_allowed, or other failures). Uploads directly from the browser, bypassing sandbox egress restrictions.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"task_type": {
"anyOf": [
{
"enum": [
"AI-Bracelet-Virtual-Try-On",
"AI-Earrings-Virtual-Try-On",
"AI-Necklace-Virtual-Try-On",
"AI-Ring-Virtual-Try-On",
"AI-Watch-Virtual-Try-On",
"AI-Abs-Filter",
"AI-Aging-Simulation",
"AI-Avatar-Generator",
"AI-Nail-Transfer",
"AI-Smile",
"AI-Studio-Generator",
"AI-Bag-Virtual-Try-On",
"AI-Beard-Style-Generator",
"AI-Photo-Background-Blur",
"AI-Photo-Background-Change",
"AI-Video-Background-Replace",
"AI-Body-Reshape",
"AI-Breast-Augmentation-Simulator",
"AI-Clothes-Virtual-Try-On",
"AI-Photo-Colorize",
"AI-Color-Correction",
"AI-Photo-Enhance",
"AI-Eye-Color-Lens-Virtual-Try-On",
"AI-Fabric-Virtual-Try-On",
"AI-Face-Attributes-and-Ratio-Analyzer",
"AI-Face-Lift",
"AI-Face-Reshape",
"AI-Face-Swap",
"AI-Video-Face-Swap",
"AI-Fitzpatrick-Skin-Type-Analysis",
"AI-Object-Removal-Pro",
"AI-Bangs-Filter-Virtual-Try-On",
"AI-Hair-Color-Virtual-Try-On",
"AI-Wavy-Hair-Virtual-Try-On",
"AI-Hair-Density-Detection",
"AI-Hair-Extension-Virtual-Try-On",
"AI-Hair-Frizziness-Detection",
"AI-Hair-Length-Detection",
"AI-Hair-Style-Virtual-Try-On",
"AI-Hair-Type-Detection",
"AI-Hair-Volume-Virtual-Try-On",
"AI-Hat-Virtual-Try-On",
"AI-Headshot-Generator",
"AI-Image-Generator-Image-to-Image",
"AI-Video-Generator-Image-to-Video",
"AI-Photo-Lighting",
"AI-Look-Virtual-Try-On",
"AI-Makeup-Virtual-Try-On",
"AI-Makeup-Transfer",
"AI-Nail-Virtual-Try-On",
"AI-Video-Object-Removal",
"AI-Replace",
"AI-Image-Extender",
"AI-Scarf-Virtual-Try-On",
"AI-Shoes-Virtual-Try-On",
"AI-Skin-Analysis",
"AI-Skin-simulation",
"AI-Facial-Color-Tones-Analyzer",
"AI-Photo-Background-Removal",
"AI-Teeth-Whitening",
"AI-Image-Generator-Text-to-Image",
"AI-Video-Generator-Text-to-Video",
"AI-Video-Enhancer",
"AI-Video-Style-Transfer"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Pre-select a task type. If omitted, the user picks one from the dropdown."
}
},
"type": "object"
},
"name": "File-Upload",
"outputSchema": {
"additionalProperties": true,
"type": "object"
}
},
{
"description": "Check the unit consumption for each API. The values are consistent with those listed at https://yce.perfectcorp.com/ai-api/api-pricing.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"request": {
"properties": {
"page_size": {
"anyOf": [
{
"maximum": 20,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"examples": [
20
]
},
"starting_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"examples": [
"MjA"
]
}
},
"type": "object"
}
},
"required": [
"request"
],
"type": "object"
},
"name": "Get-Feature-Cost",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Retrieves the current status and results of a previously initiated AI processing task. Use this tool when you need to check on a task that was started earlier but hasn't completed yet, or when a user returns to inquire about a task they initiated previously.\n WHEN TO USE THIS TOOL:\n- When a user provides a task_id from a previous session and wants to check if their result is ready\n- When a user asks about a task they started earlier (e.g., 'Is my hairstyle ready?', 'Check my previous request')\n- When resuming a conversation where a task was left processing\n- When a task exceeded the initial polling timeout and the user wants to see if it has completed",
"inputSchema": {
"additionalProperties": false,
"properties": {
"is_preprocess": {
"default": false,
"description": "Whether this is called from preprocess tool.",
"type": "boolean"
},
"polling": {
"default": true,
"description": "If true (default), keep polling until the task finishes, returning the final result. If false, return immediately without waiting for the task to finish.",
"type": "boolean"
},
"task_id": {
"description": "ID of this task.",
"type": "string"
},
"task_type": {
"description": "The type of the task.",
"enum": [
"AI-Bracelet-Virtual-Try-On",
"AI-Earrings-Virtual-Try-On",
"AI-Necklace-Virtual-Try-On",
"AI-Ring-Virtual-Try-On",
"AI-Watch-Virtual-Try-On",
"AI-Abs-Filter",
"AI-Aging-Simulation",
"AI-Avatar-Generator",
"AI-Nail-Transfer",
"AI-Smile",
"AI-Studio-Generator",
"AI-Bag-Virtual-Try-On",
"AI-Beard-Style-Generator",
"AI-Photo-Background-Blur",
"AI-Photo-Background-Change",
"AI-Video-Background-Replace",
"AI-Body-Reshape",
"AI-Breast-Augmentation-Simulator",
"AI-Clothes-Virtual-Try-On",
"AI-Photo-Colorize",
"AI-Color-Correction",
"AI-Photo-Enhance",
"AI-Eye-Color-Lens-Virtual-Try-On",
"AI-Fabric-Virtual-Try-On",
"AI-Face-Attributes-and-Ratio-Analyzer",
"AI-Face-Lift",
"AI-Face-Reshape",
"AI-Face-Swap",
"AI-Video-Face-Swap",
"AI-Fitzpatrick-Skin-Type-Analysis",
"AI-Object-Removal-Pro",
"AI-Bangs-Filter-Virtual-Try-On",
"AI-Hair-Color-Virtual-Try-On",
"AI-Wavy-Hair-Virtual-Try-On",
"AI-Hair-Density-Detection",
"AI-Hair-Extension-Virtual-Try-On",
"AI-Hair-Frizziness-Detection",
"AI-Hair-Length-Detection",
"AI-Hair-Style-Virtual-Try-On",
"AI-Hair-Type-Detection",
"AI-Hair-Volume-Virtual-Try-On",
"AI-Hat-Virtual-Try-On",
"AI-Headshot-Generator",
"AI-Image-Generator-Image-to-Image",
"AI-Video-Generator-Image-to-Video",
"AI-Photo-Lighting",
"AI-Look-Virtual-Try-On",
"AI-Makeup-Virtual-Try-On",
"AI-Makeup-Transfer",
"AI-Nail-Virtual-Try-On",
"AI-Video-Object-Removal",
"AI-Replace",
"AI-Image-Extender",
"AI-Scarf-Virtual-Try-On",
"AI-Shoes-Virtual-Try-On",
"AI-Skin-Analysis",
"AI-Skin-simulation",
"AI-Facial-Color-Tones-Analyzer",
"AI-Photo-Background-Removal",
"AI-Teeth-Whitening",
"AI-Image-Generator-Text-to-Image",
"AI-Video-Generator-Text-to-Video",
"AI-Video-Enhancer",
"AI-Video-Style-Transfer"
],
"type": "string"
}
},
"required": [
"task_id",
"task_type"
],
"type": "object"
},
"name": "Get-Running-Task-Status",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Returns the upload API endpoint and example request/response for uploading images (JPEG, PNG) or videos (MP4) to YouCam AI./n Use when the user wants to upload an image/video via the API. If upload cannot be completed for any reason (including network restrictions, host_not_allowed, or other errors), do not retry. Immediately use the File Upload Widget instead. Do not ask the user for a public URL.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"task_type": {
"description": "The type of the AI task to upload file for.",
"enum": [
"AI-Bracelet-Virtual-Try-On",
"AI-Earrings-Virtual-Try-On",
"AI-Necklace-Virtual-Try-On",
"AI-Ring-Virtual-Try-On",
"AI-Watch-Virtual-Try-On",
"AI-Abs-Filter",
"AI-Aging-Simulation",
"AI-Avatar-Generator",
"AI-Nail-Transfer",
"AI-Smile",
"AI-Studio-Generator",
"AI-Bag-Virtual-Try-On",
"AI-Beard-Style-Generator",
"AI-Photo-Background-Blur",
"AI-Photo-Background-Change",
"AI-Video-Background-Replace",
"AI-Body-Reshape",
"AI-Breast-Augmentation-Simulator",
"AI-Clothes-Virtual-Try-On",
"AI-Photo-Colorize",
"AI-Color-Correction",
"AI-Photo-Enhance",
"AI-Eye-Color-Lens-Virtual-Try-On",
"AI-Fabric-Virtual-Try-On",
"AI-Face-Attributes-and-Ratio-Analyzer",
"AI-Face-Lift",
"AI-Face-Reshape",
"AI-Face-Swap",
"AI-Video-Face-Swap",
"AI-Fitzpatrick-Skin-Type-Analysis",
"AI-Object-Removal-Pro",
"AI-Bangs-Filter-Virtual-Try-On",
"AI-Hair-Color-Virtual-Try-On",
"AI-Wavy-Hair-Virtual-Try-On",
"AI-Hair-Density-Detection",
"AI-Hair-Extension-Virtual-Try-On",
"AI-Hair-Frizziness-Detection",
"AI-Hair-Length-Detection",
"AI-Hair-Style-Virtual-Try-On",
"AI-Hair-Type-Detection",
"AI-Hair-Volume-Virtual-Try-On",
"AI-Hat-Virtual-Try-On",
"AI-Headshot-Generator",
"AI-Image-Generator-Image-to-Image",
"AI-Video-Generator-Image-to-Video",
"AI-Photo-Lighting",
"AI-Look-Virtual-Try-On",
"AI-Makeup-Virtual-Try-On",
"AI-Makeup-Transfer",
"AI-Nail-Virtual-Try-On",
"AI-Video-Object-Removal",
"AI-Replace",
"AI-Image-Extender",
"AI-Scarf-Virtual-Try-On",
"AI-Shoes-Virtual-Try-On",
"AI-Skin-Analysis",
"AI-Skin-simulation",
"AI-Facial-Color-Tones-Analyzer",
"AI-Photo-Background-Removal",
"AI-Teeth-Whitening",
"AI-Image-Generator-Text-to-Image",
"AI-Video-Generator-Text-to-Video",
"AI-Video-Enhancer",
"AI-Video-Style-Transfer"
],
"type": "string"
}
},
"required": [
"task_type"
],
"type": "object"
},
"name": "Get-Upload-API-Info",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"properties": {
"error_message": {
"description": "Detailed description of error",
"type": "string"
},
"request_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"error_message"
],
"type": "object"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Upload base64-encoded media files to the YouCam API and return file_id(s).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"files": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"task_type": {
"type": "string"
}
},
"required": [
"files",
"task_type"
],
"type": "object"
},
"name": "upload_file",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6ca83914a02fcd9620ae5aba30ebf455f32c297083f5e7c558f6c7ff91b7c8ab | sha256sum