# AI 鞋子虚拟试穿

# 概览
用我们的 AI 鞋子虚拟试穿，一步踏进购物新未来。在屏幕上立刻看到您钟意的款式上身是什么样子、合不合脚。这套体验由前沿 AI 技术驱动，视觉贴合度精准到位，帮您买得有底气、退货更少。
足不出户，试遍无穷款式与颜色。高保真的 AR 模拟把每个细节演活，让您随时随地享受到店挑鞋的那份爽感。现在就试，找到那双最衬您风格的鞋。
## 接入指南
本指南将带您走完全流程：
* **接口地址：**

`/s2s/v2.0/task/shoes-transfer`
* **鉴权：**
 所有请求都需要
`Authorization: Bearer YOUR_API_KEY`
* **流程：**
  1. **准备自拍照：**
 上传您自己的图片或提供有效图片 URL，作为虚拟试穿的目标。
  2. **准备鞋子图片：**
 上传鞋子商品图，或一位穿着鞋子的人物照片。
  3. **选择风格与性别：**
 挑选您偏好的风格，以及您想呈现的性别。
  4. **发起 AI 任务并取得 Task ID：**
 从响应中取回
`task_id`
。
  5. **轮询状态（`GET`）：**
 用
`task_id`
 查看任务状态，持续轮询直到
`task_status`
 为
`"success"`
 或
`"error"`
。



---

* 鉴权

- 请在请求头中以
**Bearer Token**
 方式带上您的 API 密钥：


```
Authorization: Bearer YOUR_API_KEY
```
API Key 可在 https://yce.makeupar.com/api-console/en/api-keys/ 获取。


---

* AI 鞋子接口使用指引

本指引说明如何上传图片、准备参考鞋子，以及创建虚拟试穿任务。


---

* 第 1 步：准备自拍照

您可以：
* 用 File 接口（`/s2s/v2.0/file`）上传自拍照，或
* 提供一个有效的图片 URL。
  * 第 1.1 步：用 File 接口上传文件

用 **File 接口**（`/s2s/v2.0/file`）上传目标用户图片。
**图片要求：**
* 上传一张自拍照。
* 确保照片把您的鞋子清楚呈现出来。
* 避免背景里有多人，或杂乱干扰的物体。

**请求示例：**

```bash
curl --request POST \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/file \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
    "files": [
      {
        "content_type": "image/jpg",
        "file_name": "selfie_photo_01_3dbd1b6683.jpg",
        "file_size": 547541
      }
    ]
  }'
```


---

* 第 1.2 步：取得 File 接口响应

响应中包含：
* 用于创建 AI 任务的
`file_id`
。
* 用于上传实际图片文件的
`requests.url`
。

**响应示例：**

```json
{
  "status": 200,
  "data": {
    "files": [
      {
        "content_type": "image/jpg",
        "file_name": "selfie_photo_01_3dbd1b6683.jpg",
        "file_id": "SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud",
        "requests": [
          {
            "method": "PUT",
            "url": "https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...",
            "headers": {
              "Content-Length": "547541",
              "Content-Type": "image/jpg"
            }
          }
        ]
      }
    ]
  }
}
```


---

* 第 1.3 步：把图片上传到提供的 URL

用 File 接口响应中的 `requests.url` 上传图片：

```bash
curl --location --request PUT 'https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...' \
  --header 'Content-Type: image/jpg' \
  --header 'Content-Length: 547541' \
  --data-binary @'./selfie_photo_01_3dbd1b6683.jpg'
```


---

* 第 2 步：准备参考鞋子图片

您可以：
* 用 File 接口（
`/s2s/v2.0/file`
）上传鞋子图片，或
* 提供一个有效的图片 URL。

**支持的鞋子图片：**
* 鞋子商品图。
* 一位穿着鞋子的人物照片。

详细规格见 **[文件规格与错误码](#section/overview/File-Specs-and-Errors)**。


---

* 第 3 步：创建 AI 任务

挑选您偏好的风格与想呈现的性别。
用 **AI 任务接口**（`/s2s/v2.0/task/shoes-transfer`）创建虚拟试穿任务。
**参数：**
* 用户图片：
`src_file_id`
 或
`src_file_url`
。
* 鞋子图片：
`ref_file_id`
 或
`ref_file_url`
。

**请求示例：**

```bash
curl --request POST \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/shoes-transfer \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
    "src_file_url": "https://example.com/selfie.jpg",
    "ref_file_url": "https://example.com/accessory.jpg",
    "gender": "female",
    "style": "random"
}'
```
**响应示例：**

```json
{
  "status": 200,
  "data": {
    "task_id": "SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT"
  }
}
```


---

* 第 4 步：轮询任务结果

用任务 ID 查看状态：

```bash
curl --request GET \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/shoes-transfer/SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json'
```


---

* 第 5 步：取回结果

成功的响应会给出结果图片的下载 URL：

```json
{
  "status": 200,
  "data": {
    "error": null,
    "results": {
      "url": "https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature..."
    },
    "task_status": "success"
  }
}
```
API 密钥无效的报错响应：

```json
{
  "status": 401,
  "error": "Unauthorized",
  "error_code": "InvalidAccessToken"
}
```


---

## 文件规格与错误码
* AI 鞋子虚拟试穿规格
  * 图片要求

| 类型 | 最低分辨率 | 说明 |
|  --- | --- | --- |
| 自拍照 | 512 × 512 | 脚部可见，建议全身照 |
| 鞋子 | 512 × 512（商品图）800 × 800（实拍照） | 鞋子画面清楚、无遮挡 |

**支持的鞋子图片**
* 商品图要求
  * 最低分辨率：512 × 512 像素
  * 每张图片只放一件商品
  * 商品应占图片高度的 25% 以上

![](https://plugins-media.makeupar.com/strapi/assets/small_Shoes_3_428e8dddb1.jpg)
* 实拍照要求
  * 最低分辨率：800 × 800 像素
  * 单件要求：模特只能穿一件商品，不允许多件或加配饰。
  * 占比要求：所穿商品须占整张图片高度的 20% 以上，确保它在画面中清楚、突出。

![](https://plugins-media.makeupar.com/strapi/assets/small_Shoes_2_ec3578c5c2.jpg)
![](https://plugins-media.makeupar.com/strapi/assets/small_Shoes_9_52a61e0935.jpg)
**支持的自拍视角**
* 建议图片分辨率：至少 512 × 512 像素。
* 单一主体要求：图片只能有一位真人主体，不允许出现其他人物或局部人体。
* 脚部可见：主体的脚部必须完整可见、无遮挡。

![](https://plugins-media.makeupar.com/strapi/assets/small_clothes_04_441e848298.png)


---

* 支持的格式与尺寸

| AI 功能 | 支持尺寸 | 支持文件大小 | 支持格式 |
|  --- | --- | --- | --- |
| AI 鞋子虚拟试穿 | 输入：长边 <= 4096 输出：1008 x 1344 | < 10MB | jpg/jpeg/png/heic |

* 错误码

| 错误码 | 说明 |
|  --- | --- |
| error_download_image | 源图或参考图下载失败 |
| error_inference | 推理流程出错 |
| error_no_face | 源图中未检测到人脸 |
| error_nsfw_content_detected | 在结果中检测到不适宜内容（NSFW） |
| exceed_max_filesize | 文件大小超过 10 MB |
| invalid_parameter | 性别或风格取值无效 |
| unknown_internal_error | 其他内部错误 |

* 运行环境与依赖

| 示例代码语言 / 工具 | 建议运行时版本 |
|  --- | --- |
| cURL | - bash >= 3.2   - curl >= 7.58 (modern TLS/HTTP support)   - jquery >= 1.6 (robust JSON parsing) |
| Node.js (JavaScript) | Node >= 18 (for global fetch) |
| JavaScript | - Chrome / Edge >= 80   - Firefox >= 74   - Safari >= 13.1 |
| PHP | PHP >= 7.4 (for modern TLS/compat), ext-curl (recommended) or allow_url_fopen=On + ext-openssl, ext-json |
| Python | Python >= 3.10 (for f-strings), requests >= 2.20.0 |
| Java | Java 11+ (for HttpClient), Jackson Databind >= 2.12.0 |



---

## 点数消耗
| AI 功能 | 消耗点数 |
|  --- | --- |
| AI 鞋子虚拟试穿 V2.0 | 2 |
| AI 鞋子虚拟试穿 V3.0 | 2 |



---

License: Privacy policy

## Servers

```
https://yce-api-01.makeupar.com
```

## Security

### BearerAuthenticationV2

使用标准的 Bearer 鉴权。把您的 API 密钥放进请求头： `Authorization:Bearer YOUR_API_KEY`。请注意 'Bearer' 与 'YOUR_API_KEY' 之间有一个空格。

Type: http
Scheme: bearer

## Download OpenAPI description

 - [AI 鞋子虚拟试穿](https://docs.perfectcorp.com/_bundle/@l10n/zh-CN/reference/ai_shoes.yaml)

## V3.0

 - [POST /s2s/v2.0/task/shoes-transfer](https://docs.perfectcorp.com/zh-cn/reference/ai_shoes/v3.0/paths/~1s2s~1v2.0~1task~1shoes-transfer/post.md): AI 任务是异步处理的。功能支持 Webhook 时，优先用 Webhook 来接收完成通知。配置好您的 Webhook 端点、校验 Webhook 签名，收到 `success` 或 `error` 通知后，用收到的 `task_id` 查询任务结果。配置与校验的细节请见 [Webhook 接入指南](/develop/webhook)。 若功能不支持 Webhook，或您的接入方式用不了 We
 - [GET /s2s/v2.0/task/shoes-transfer/{task_id}](https://docs.perfectcorp.com/zh-cn/reference/ai_shoes/v3.0/paths/~1s2s~1v2.0~1task~1shoes-transfer~1%7Btask_id%7D/get.md)
## V2.0

 - [POST /s2s/v2.0/task/shoes](https://docs.perfectcorp.com/zh-cn/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes/post.md): 本接口用于发起 AI 鞋子虚拟试穿流程。您需要提供源文件、参考文件（URL 或 ID），并指定性别与风格参数。任务会异步处理，您可以使用本响应返回的 task_id 查询其状态。
 - [GET /s2s/v2.0/task/shoes/{task_id}](https://docs.perfectcorp.com/zh-cn/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes~1%7Btask_id%7D/get.md)
