体型補正
このガイドでは、AI 体型補正 API のワークフローについて説明します。
エンドポイント: /s2s/v2.0/task/body-reshape
認証必須: Authorization: Bearer YOUR_API_KEY
ワークフロー手順:
画像アップロードの準備:
- アップロード用のセルフィー画像を準備します。
- ファイル API
/s2s/v2.0/fileを呼び出し、アップロード URL と関連するfile_idを取得します。 - 提供されたアップロード URL を使用してセルフィー画像をアップロードします。
グループ写真の場合のオプション前処理:
- 画像内に複数の人物がいる場合は、セルフィー画像を前処理します。
体型補正効果の設定:
- まず、適切な体型補正パラメータを選択します。
AI タスクの開始とタスク ID の取得:
file_idと選択した効果設定を HTTP POST リクエストで/s2s/v2.0/task/body-reshapeに送信します。- この操作を識別するための一意なタスク ID をレスポンスで待ちます。
タスクステータスのポーリング(継続的な確認):
- 取得した
task_idを使用し、HTTP GET リクエスト(例:GET /s2s/v2.0/task/body-reshape/${task_id})で定期的にタスクステータスをポーリングします。 - 以下を継続的に監視します。
Task_status = "success"(処理完了)。Task_status = "error"(該当する場合、解決または再試行)。- ステータスが success に遷移したら、ワークフローを適切に更新します。
- 取得した
- API プレイグラウンド
API プレイグラウンドで API を対話的にテストします。
- 認証
- リクエストヘッダーに Bearer トークン を使用して API キーを含めます。
Authorization: Bearer YOUR_API_KEYAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.
- 画像のアップロード
ファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。
- アップロードエンドポイント
POST /s2s/v2.0/fileすでに公開画像 URL がある場合は、この手順をスキップできます。
- 効果テンプレートの準備
前処理 ピクセル座標で検出されたバウンディングボックスを出力します。後で体型補正 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
}
}- 体型補正 AI タスクの作成と結果のポーリング
画像と完全な効果ペイロードが準備できたら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが success または error になるまで、タスクステータスをポーリングする必要があります。
- タスク作成エンドポイント
POST /s2s/v2.0/task/body-reshape- ポーリングエンドポイント
GET /s2s/v2.0/task/body-reshape/{task_id}- AI 体型補正仕様
対応セルフィービュー 顔の表情と体の姿勢がはっきりと見える全身写真。
![]()
可視性とポーズの要件
| 領域 | ソース画像で満たすべき条件 |
|---|---|
| 首 | ソース画像内で首が見えている必要があります。 |
| 腕 | 両腕(上腕、前腕、手)が完全に写っている必要があります。 |
| 脚 | 脚全体が画像内に写っている必要があります。 |
| ヒップ | ヒップが視界に入っている必要があります。 |
| ヒップリフト | ヒップが視界に入っている必要があります。 |
| 肩 | • 肩が見えている必要があります。 • 手を上げるポーズは許可されていません。 • 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 |