# AI 帽子虚拟试戴

# 概览
用我们的头部饰品超写实 AR 试戴，一步踏进时尚新未来；这套方案由前沿 AI 技术驱动。这项创新做法把网购变成沉浸式体验，顾客虚拟试戴帽子的精准度与真实感前所未有。
从即时发现风格，到真如眼前的呈现，我们的 AR 技术让每顶帽子、每条发带都看着真、戴着像。帮顾客在下单前找到最合头型与风格的款式。互动更高、信心更足，顾客与您商品的互动方式就此改写。
## 接入指南
本指南将带您走完全流程：
* **接口地址：**

`/s2s/v2.0/task/hat`
* **鉴权：**
 所有请求都需要
`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/hat`）创建虚拟试戴任务。
**参数：**
* 用户图片：
`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/hat \
  --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/hat/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://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/026_thumb_dca334af3c.jpg)
* 实拍照要求
  * 最低分辨率：800 × 800 像素
  * 单件要求：模特只能穿戴一件商品，不允许多件或加配饰。
  * 占比要求：所穿戴商品须占整张图片高度的 20% 以上，确保它在画面中清楚、突出。

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/010_thumb_51490eebeb.jpg)
**支持的自拍视角**
* 建议图片分辨率：至少 512 × 512 像素。
* 建议脸部占比：超过图片高度的 15%。
* 单一主体要求：图片只能有一位真人主体，不允许出现其他人物或局部人体。
* 脸部可见：主体的脸部必须完整可见、无遮挡。头发、配饰或物体不得盖住关键面部特征。
* 构图：画面至少包含头像照，收录从头顶到胸口的区域；半身照（头到腰）更佳，分析效果最好。

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/lashana_lynch_thumb_7a900b811e.jpg)
**试戴风格**
* 生成虚拟试戴结果有五种预设风格："style_sporty_casual" "style_urban_fashion" "style_vacation_casual" "style_warm_cozy" 与 "style_bohemian"。创建 AI 任务时可指定该风格参数；不指定时，系统默认随机挑选。

![style_vacation_casual](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/5f42385b_6aef_44cd_b576_2ec10e31305d_824cc2019b.jpg)


---

* 支持的格式与尺寸

| AI 功能 | 支持尺寸 | 支持文件大小 | 支持格式 |
|  --- | --- | --- | --- |
| AI 帽子虚拟试戴 | 输入：长边 <= 4096 输出：896 x 1152 | < 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 |



---

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_hat.yaml)

## V2.0

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