# AI 身形調整

# 概述
用於身形調整與瘦身的 AI 身形調整 API
用 AI 身體編輯器，在照片中充滿自信！雕塑、重塑並增強您的身體，達到自然、驚豔的比例。輕鬆重塑任何區域——腰、手臂、大腿、胸部等。輕輕一點，即可获得自然、驚豔的結果！
## 整合指南
本指南將引導您完成：
AI 身形調整 API 的工作流程：
**端點：** `/s2s/v2.0/task/body-reshape`
**需要認證：** `Authorization: Bearer YOUR_API_KEY`
**工作流程步驟：**
1. **圖片上傳準備：**
  - 準備要上傳的自拍圖片。
  - 呼叫 File API
`/s2s/v2.0/file`
 取得上傳網址與相關的
`file_id`
。
  - 使用提供的上傳網址上傳自拍圖片。
2. **團體照片的選填前處理：**
  - 若圖片中有多於一人，請對自拍圖片進行前處理。
3. **身形調整特效設定：**
  - 先選擇合適的身形調整參數。
4. **啟動 AI 任務並取得任務 ID：**
  - 透過 HTTP POST 請求，將
`file_id`
 與所選特效設定傳送到
`/s2s/v2.0/task/body-reshape`
。
  - 在回應中取得唯一的任務 ID，用以識別這次互動。
5. **輪詢任務狀態（持續檢查）：**
  - 使用取得的
`task_id`
，透過 HTTP GET 請求（例如
`GET /s2s/v2.0/task/body-reshape/${task_id}`
）定期輪詢任務狀態。
  - 持續監控：
  - `Task_status = "success"`
（流程完成）。
  - `Task_status = "error"`
（視情況解決或重試）。
  - 狀態轉為成功後，相應更新工作流程。

這個結構化的工作流程確保與使用者輸入的高效整合、任務的自動化監控，以及無縫取得結果。


---

* API Playground

使用我們的官方 playground 進行互動式探索與測試：
**API Playground：**
[http://yce.makeupar.com/api-console/en/api-playground/ai-body-reshape/](http://yce.makeupar.com/api-console/en/api-playground/ai-body-reshape/)


---

* 認證

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


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

您可以直接上傳檔案到伺服器，或在 AI 任務內容中提供有效的圖片網址。
* 上傳端點


```
POST /s2s/v2.0/file
```
或者，若您已有公開的圖片網址，可跳過此步驟。


---

*   1. 準備特效範本
* 前處理
輸出以像素座標表示的偵測邊界框。使用結果的索引，在稍後建立身形調整 AI 任務。


```
{
"timed": number,
"result": [
{
 "left": number,
 "top": number,
 "width": number,
 "height": number
}
]
}
```
* Effect Template JSON Schemas


```
{
"version": "1.0",
"index": 0,
"features": {
"arm": 0, // -100~100
"breast_left": 0, // -100~100
"breast_right": 0, // -100~100
"hip": 0, // -100~100
"hip_lift": 0, // -100~100
"leg": 0, // -100~100
"neck_left": 0, // 0~100
"neck_right": 0, // 0~100
"shoulder_left": 0, // -100~100
"shoulder_right": 0, // -100~100
"squared_shoulder_left": 0, // -100~100
"squared_shoulder_right": 0, // -100~100
"slim": 0, // -100~100
"taller": 0, // 0~100
"waist": 0, // -100~100
"belly": 0 // -100~100
}
}
```
index：來自前處理的偵測身體索引。選填，預設 0。
features：必要，至少 1 個非零的身形調整參數，不可全為零。
* 內容範例（可直接發送）


```
{
 "src_file_url": "https://plugins-media.makeupar.com/strapi/assets/body_reshape_02_7777218379.jpg",
 "version": "1.0",
 "index": 0,
 "features": {
"arm": 0,
"waist": -20,
"taller": 80,
"squared_shoulder_left": 10,
"squared_shoulder_right": 10,
"neck_left": 0,
"neck_right": 0,
"hip": 10,
"breast_left": 30,
"breast_right": 30,
"slim": -70,
"shoulder_left": 30,
"shoulder_right": 30,
"leg": -30,
"hip_lift": 0,
"belly": -50
 }
}
```
*   1. 建立身形調整 AI 任務並輪詢結果

當您取得圖片與完整的特效內容後，即可建立任務。API 以非同步方式處理請求。您必須輪詢任務狀態，直到達到 `success` 或 `error`。
* 建立任務端點


```
POST /s2s/v2.0/task/body-reshape
```
* 輪詢端點


```
GET /s2s/v2.0/task/body-reshape/{task_id}
```


---

## 檔案規格與錯誤
* AI 身形調整規範

**支援的自拍視角**
全身照，臉部表情與身體姿勢清晰可見。
![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_body_reshape_02_7777218379.jpg)
**可見度與姿勢需求**
| **區域** | **來源圖片中必須滿足的條件** |
|  --- | --- |
| **頸部** | 頸部在來源圖片中必須可見。 |
| **手臂** | 兩側手臂——上臂、前臂與手——都必須完整呈現。 |
| **腿** | 整條腿必須出現在圖片中。 |
| **臀部** | 臀部需要可見。 |
| **臀部提拉** | 臀部需要可見。 |
| **肩膀** | • 肩膀必須可見。• 不允許舉手。• 不允許 90° 側面姿勢。 |
| **腹部** | 腹部必須可見。 |
| **腰** | 腰部必須可見。 |
| **胸部** | • 胸部區域必須出現在圖片中。• 拍攝應包含臀部（即不是「不含半身的半個身體」）。• 必須呈現胸部中央。 |
| **瘦身** | 肩膀需要在畫面中。 |
| **增高** | • 臀部必須出現。• 半身視角應包含腿部（即腿部可見）。 |

**身形調整自訂參數指南**
| 類別 | 參數 | 功能 | 最小值 (-100 / 0) | 最大值 (100) |
|  --- | --- | --- | --- | --- |
| 手臂 | 強度 | 調整手臂的粗細 | 細 | 粗 |
| 腹部 | 強度 | 調整腹部突出 | 平坦 | 突出 |
| 胸部 | 強度（左/右） | 調整兩側的胸部體積 | 平坦 | 飽滿 |
| 臀部提拉 | 強度 | 調整臀部的曲線與提拉（加入提臀效果） | 雕塑感（提拉且緊實） | 圓潤（提拉且更飽滿） |
| 臀部大小 | 強度 | 調整臀部的整體寬度 | 窄 | 寬 |
| 腿 | 強度 | 調整腿的粗細 | 細 | 粗 |
| 頸部 | 強度（左/右） | 調整兩側的頸部輪廓與雕塑 | 原始 (0) | 內收 |
| 肩膀寬度 | 強度（左/右） | 調整每側肩膀的跨度 | 窄 | 寬 |
| 肩膀形狀 | 強度（左/右） | 調整每側肩膀的角度與斜度 | 斜肩 | 平肩 |
| 瘦身 | 強度 | 調整整體身體曲線 | 苗條 | 曲線玲瓏 |
| 增高 | 強度 | 調整整體人物身高 | 原始 (0) | 更高 |
| 腰 | 強度 | 調整腰線寬度 | 窄 | 寬 |

**說明：** *“左”與“右”指的是人物的視角，而非螢幕上觀看者的一側。*


---

* 支援的格式與尺寸

| AI 功能 | 支援的尺寸 | 支援的檔案大小 | 支援的格式 |
|  --- | --- | --- | --- |
| AI 身形調整 | 長邊 <= 2048，短邊 >= 320 | < 10MB | jpg/jpeg/png |

* 錯誤代碼

| 錯誤代碼 | 說明 |
|  --- | --- |
| RUNTIME_ERROR | 身形調整執行期間發生不如預期的錯誤 |
| PHOTO_DETECTION_FAIL | 無法正確處理使用者照片，例如未偵測到手 |
| PHOTO_CHECK_INVALID | 使用者照片的姿勢或尺寸無效 |
| INPUT_ERROR | 輸入檔案格式不正確 |
| INPUT_MAIN_IMAGE_EMPTY | 需要使用者圖片 |

* 環境與相依性

| 範例程式語言 / 工具 | 建議的執行環境版本 |
|  --- | --- |
| cURL | - bash >= 3.2- curl >= 7.58（現代 TLS/HTTP 支援）- jq >= 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 身形調整 V1.0 | 1 |



---

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

## V1.0

 - [POST /s2s/v2.0/task/body-reshape/pre-process](https://docs.perfectcorp.com/zh-tw/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1pre-process/post.md): 當來源照片可能包含超過一個有效目標，或您的整合需要明確選擇哪個被偵測到的目標接受特效時，請使用前處理任務。對於單一目標的圖片，當功能支援預設的 `index` 值，且您的應用程式不需要手動選擇目標時，可以跳過前處理。 前處理任務會偵測來源照片中的候選目標，並在 `data.results.result` 中回傳它們的座標。結果陣列中的每個項目代表一個被偵測到的目標。檢視回傳的座標，將它們對應到來源
 - [GET /s2s/v2.0/task/body-reshape/pre-process/{task_id}](https://docs.perfectcorp.com/zh-tw/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1pre-process~1%7Btask_id%7D/get.md)
 - [POST /s2s/v2.0/task/body-reshape](https://docs.perfectcorp.com/zh-tw/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape/post.md): AI 任務是非同步的。當功能支援 webhook 時，請優先使用以 webhook 為基礎的完成處理。設定您的 webhook 端點、驗證 webhook 簽章，並在收到 `success` 或 `error` 通知後，使用收到的 `task_id` 查詢任務結果。設定與驗證細節請見 [webhook 整合指南](/develop/webhook)。 若您的整合不支援 webhook 或無法使用
 - [GET /s2s/v2.0/task/body-reshape/{task_id}](https://docs.perfectcorp.com/zh-tw/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1%7Btask_id%7D/get.md)
