# AI 虛擬試鞋

# 概述
透過我們的 AR 鞋履虛擬試穿，步入購物未來的時代。即刻從您的螢幕看見您喜愛的風格如何呈現與合腳。由尖端 AI 技術驅動，這體驗提供完美的視覺合腳度，幫助您自信購物並減少退貨。
在家中舒適地探索無盡的風格與顏色。我們高傳真的 AR 模擬讓每個細節栩栩如生，讓您隨時隨地享受店內體驗的興奮感。今天就試試，找到符合您風格的完美一對。
## 整合指南
本指南將引導您完成：
* **端點：**

`/s2s/v2.0/task/shoes-transfer`
* **認證：**
 所有請求都需要
`Authorization: Bearer YOUR_API_KEY`
* **工作流程：**
  1. **準備自拍圖片：**
 上傳圖片，或提供您本人的有效圖片網址作為虛擬試戴目標。
  2. **準備鞋履圖片：**
 上傳鞋履產品圖片，或穿著鞋履的人物照片。
  3. **選擇風格與性別：**
 選擇您偏好的風格，以及您希望呈現的性別。
  4. **啟動 AI 任務並取得任務 ID：**
 從回應中取得
`task_id`
。
  5. **輪詢狀態（`GET`）：**
 使用
`task_id`
 查詢任務狀態。持續輪詢，直到
`task_status`
 為
`"success"`
 或
`"error"`
。



---

* 認證

- 使用
**Bearer Token**
 將您的 API key 納入請求標頭：


```
Authorization: Bearer YOUR_API_KEY
```
您可以在 https://yce.makeupar.com/api-console/en/api-keys/ 找到您的 API Key。


---

* AI 虛擬試鞋 API 使用指南

本指南說明如何使用 AI 虛擬試鞋 API 上傳圖片、準備參考鞋履，以及建立虛擬試穿任務。


---

* 步驟 1. 準備自拍圖片

您可以：
* 使用 File API（`/s2s/v2.0/file`）上傳自拍圖片，或
* 提供有效的圖片網址。
  * 步驟 1.1 使用 File API 上傳檔案

使用 **File API**（`/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 API 回應

回應包含：
* 用於建立 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. 上傳圖片到提供的網址

使用 File API 回應中的 `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 API（
`/s2s/v2.0/file`
）上傳鞋履圖片，或
* 提供有效的圖片網址。

**支援的鞋履圖片：**
* 鞋履的產品圖片。
* 穿著鞋履的人物照片。

詳細規格請參考 **[檔案規格與錯誤](#section/overview/File-Specs-and-Errors)**。


---

* 步驟 3. 建立 AI 任務

選擇您偏好的風格，以及您希望呈現的性別。
使用 **AI 任務 API**（`/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. 取得結果

成功的回應會包含結果圖片的下載網址：

```json
{
  "status": 200,
  "data": {
    "error": null,
    "results": {
      "url": "https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature..."
    },
    "task_status": "success"
  }
}
```
API Key 無效的錯誤回應：

```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（現代 TLS/HTTP 支援）   - jquery >= 1.6（穩健的 JSON 解析） |
| Node.js（JavaScript） | Node >= 18（支援全域 fetch） |
| JavaScript | - Chrome / Edge >= 80   - Firefox >= 74   - Safari >= 13.1 |
| PHP | PHP >= 7.4（現代 TLS/相容性），ext-curl（建議）或 allow_url_fopen=On + ext-openssl、ext-json |
| Python | Python >= 3.10（支援 f-strings），requests >= 2.20.0 |
| Java | Java 11+（支援 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 authentication'。請在標頭中放入您的 'API Key'：`Authorization:Bearer YOUR_API_KEY`。請注意 'Bearer' 與 'YOUR_API_KEY' 之間有一個空格。

Type: http
Scheme: bearer

## Download OpenAPI description

 - [AI 虛擬試鞋](https://docs.perfectcorp.com/_bundle/@l10n/zh-TW/reference/ai_shoes.yaml)

## V3.0

 - [POST /s2s/v2.0/task/shoes-transfer](https://docs.perfectcorp.com/zh-tw/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 或無法使用
 - [GET /s2s/v2.0/task/shoes-transfer/{task_id}](https://docs.perfectcorp.com/zh-tw/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-tw/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes/post.md): 這個端點啟動虛擬試鞋流程。您必須提供來源檔案、參考檔案（網址或 ID），並指定性別與風格參數。任務會以非同步方式處理，您可以使用這個回應回傳的 task_id 查詢其狀態。
 - [GET /s2s/v2.0/task/shoes/{task_id}](https://docs.perfectcorp.com/zh-tw/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes~1%7Btask_id%7D/get.md)
