# 体型補正

# 概要
体型補正 API による体型補正＆スリミング
AI 体型補正 API で、写真のスリミングと体型補正を行います。
## 統合ガイド
このガイドでは、AI 体型補正 API のワークフローについて説明します。
**エンドポイント:** `/s2s/v2.0/task/body-reshape`
**認証必須:** `Authorization: Bearer YOUR_API_KEY`
**ワークフロー手順:**
1. **画像アップロードの準備:**
  - アップロード用のセルフィー画像を準備します。
  - ファイル API
`/s2s/v2.0/file`
 を呼び出し、アップロード URL と関連する
`file_id`
 を取得します。
  - 提供されたアップロード URL を使用してセルフィー画像をアップロードします。
2. **グループ写真の場合のオプション前処理:**
  - 画像内に複数の人物がいる場合は、セルフィー画像を前処理します。
3. **体型補正効果の設定:**
  - まず、適切な体型補正パラメータを選択します。
4. **AI タスクの開始とタスク ID の取得:**
  - `file_id`
 と選択した効果設定を HTTP POST リクエストで
`/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"`
（該当する場合、解決または再試行）。
  - ステータスが success に遷移したら、ワークフローを適切に更新します。



---

* API プレイグラウンド

API プレイグラウンドで API を対話的にテストします。
**API プレイグラウンド:**
[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 トークン**
 を使用して API キーを含めます。


```
Authorization: Bearer YOUR_API_KEY
```
API キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.
*   1. 画像のアップロード

ファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。
* アップロードエンドポイント


```
POST /s2s/v2.0/file
```
すでに公開画像 URL がある場合は、この手順をスキップできます。


---

*   1. 効果テンプレートの準備
* 前処理
ピクセル座標で検出されたバウンディングボックスを出力します。後で体型補正 AI タスクを作成するために、結果のインデックスを使用します。


```
{
"timed": number,
"result": [
{
 "left": number,
 "top": number,
 "width": number,
 "height": number
}
]
}
```
* 効果テンプレート JSON スキーマ


```
{
"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

 - [体型補正](https://docs.perfectcorp.com/_bundle/@l10n/ja/reference/ai_body_reshape.yaml)

## V1.0

 - [POST /s2s/v2.0/task/body-reshape/pre-process](https://docs.perfectcorp.com/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1pre-process/post.md): ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの `index` 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。 前処理タスクは、ソース画像内の候補ターゲットを検出し、その座標を `data.results.r
 - [GET /s2s/v2.0/task/body-reshape/pre-process/{task_id}](https://docs.perfectcorp.com/ja/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/ja/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/
 - [GET /s2s/v2.0/task/body-reshape/{task_id}](https://docs.perfectcorp.com/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1%7Btask_id%7D/get.md)
