{"templateId":"api_docs","sharedDataIds":{"apiDocsStore":"api-docs-@l10n/ja/reference/ai_hairstyle.yaml","sidebar":"sidebar-@l10n/ja/reference/sidebars.yaml"},"props":{"definitionId":"@l10n/ja/reference/ai_hairstyle.yaml","settings":{"baseUrlPath":"/ja/reference/ai_hairstyle"},"disableAutoScroll":true,"seo":{"title":"髪型シミュレーション","description":"YouCam API documentation by Perfect Corp. Learn how to use Skin analysis API, Virtual try-on API, Image editing API, and Video generative AI APIs.","siteUrl":"https://docs.perfectcorp.com","keywords":"AI Skin Analysis, AI Clothes, AI Hairstyle, AI Outfits","image":"/assets/favicon.cd6fa4d833b2a573b3c6dae68386b293da205b203402cb0c97b80bd2acc07ea2.8351e24f.png"},"dynamicMarkdocComponents":[],"metadata":{"type":"openapi","title":"髪型シミュレーション","version":"","description":"# 概要\nAI 髪型シミュレーションで、さまざまな髪型を試します。\nカール、ロング、ベリーショートなどのスタイルに対応しています。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_style_v3_poster_bb1c7aad10.jpg)\n\n---\n\n## 統合ガイド\n\n* API プレイグラウンド\nAPI プレイグラウンドで AI 髪型シミュレーション機能をテストします。\n\nAPI プレイグラウンドにアクセスするには：\n<https://yce.makeupar.com/api-console/en/api-playground/ai-hair-style-generator/>\n\n---\n\n* API ワークフロー\nこのガイドでは、AI 髪型シミュレーション API のワークフローを説明します。\n\n**エンドポイント:** `/s2s/v2.1/task/hair-transfer`\n\n**認証必須:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフロー手順:**\n\n1. **画像アップロード準備:**\n   - プロセスはセルフィーの準備から始まります。\n\n2. **プリセットテンプレートのリスト取得、または独自のリファレンス写真の使用**\n    **リファレンスソースの選択**\nスタイル参照には 2 つのオプションがあります。\n\n| オプション | 使用ケース | 実装ヒント |\n|-------|-----------|---------------------|\n| **プリセットテンプレート** (`template_id`) | 迅速な開始（例：「カールボブ」、「サイドスウェプトバングス」） | `/s2s/v2.1/task/template/hair-transfer` を呼び出し、`template_id` を選択します。 |\n| **カスタムリファレンス画像** (`ref_file_url` / `ref_file_id`) | ユーザーが自身のスタイル写真をアップロード、または提供された画像リンクを使用 | 同じファイル API を介してアップロードします。<BR>リファレンス画像がすでにオンラインでホストされている場合は `ref_file_url` を使用します。 |\n\n3. **AI タスクの開始とタスク ID の取得:**\n   - アップロードした画像とスタイル設定を HTTP POST リクエストで `/s2s/v2.0/file` に送信します。\n   - このインタラクションを識別する一意のタスク ID をレスポンスで待ちます。\n\n4. **タスクステータスのポーリング（継続的な確認）:**\n   - 取得した `task_id` を使用して、HTTP GET リクエスト（例：`GET /task/${task_id}`）でタスクステータスを定期的にポーリングします。\n   - 以下を継続的に監視します。\n     - `Task_status = \"success\"`（処理完了）。\n     - `Task_status = \"error\"`（該当する場合は解決または再試行）。\n   - ステータスが成功に遷移したら、ワークフローを適切に更新します。\n\n\n\n---\n\n* 認証\n- **Bearer トークン** を使用して、リクエストヘッダーに API キーを含めます。\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n---\n\n* API 使用ガイド\n\nこのガイドでは、画像のアップロード、リファレンス画像の準備、および AI 髪型シミュレーション API を使用したバーチャル試着タスクの作成方法について説明します。\n\n***\n\n   * ステップ 1. ファイル API を使用したファイルのアップロード、または有効な画像 URL の提供\n\n**ファイル API** (`/s2s/v2.0/file`) を使用して、対象ユーザーの画像をアップロードします。\n\nすでに公開されている画像 URL がある場合は、ステップ 1〜3 をスキップできます。\n\n**画像要件:**\n\n*   高解像度のセルフィー写真をアップロードします。\n*   写真に全身がはっきりと映っていることを確認します。\n*   複数の人物や邪魔なオブジェクトがある背景は避けてください。\n\n**リクエスト例:**\n\n```bash\ncurl --request POST \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/file \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json' \\\n  --data '{\n    \"files\": [\n      {\n        \"content_type\": \"image/jpg\",\n        \"file_name\": \"selfie_01_3dbd1b6683.jpg\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n***\n\n   * ステップ 2. ファイル API レスポンスの取得\n\nレスポンスには以下が含まれます。\n\n*   AI タスク作成用の `file_id`。\n*   実際の画像ファイルをアップロードするための `requests.url`。\n\n**レスポンス例:**\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"files\": [\n      {\n        \"content_type\": \"image/jpg\",\n        \"file_name\": \"full_body_photo_01_3dbd1b6683.jpg\",\n        \"file_id\": \"SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud\",\n        \"requests\": [\n          {\n            \"method\": \"PUT\",\n            \"url\": \"https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...\",\n            \"headers\": {\n              \"Content-Length\": \"547541\",\n              \"Content-Type\": \"image/jpg\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n***\n\n   * ステップ 3. 提供された URL への画像アップロード\n\nファイル API レスポンスの `requests.url` を使用して画像をアップロードします。\n\n```bash\ncurl --location --request PUT 'https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...' \\\n  --header 'Content-Type: image/jpg' \\\n  --header 'Content-Length: 547541' \\\n  --data-binary @'./full_body_photo_01_3dbd1b6683.jpg'\n```\n\n***\n\n   * ステップ 4. リファレンス画像の準備\n\n     * 4.1 プリセット画像テンプレートの取得\n\n**テンプレート API** (`/s2s/v2.1/task/template/hair-transfer`) を使用して、プリセットリファレンステンプレートのリストを取得します。\n\n```bash\ncurl --request GET \\\n  --url 'https://yce-api-01.makeupar.com/s2s/v2.1/task/template/hair-transfer?page_size=20&starting_token=73a3c9e69b89' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'\n```\n\n     * 4.2 リファレンス画像のアップロード\n\n以下が可能になります。\n\n*   ファイル API (`/s2s/v2.0/file`) を使用してリファレンス画像をアップロードする、または\n*   有効な画像 URL を提供する。\n\n**サポートされる画像:**\n\n*   リファレンス画像としての別のセルフィー写真。\n\n詳細な仕様については **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n***\n\n   * ステップ 5. AI 髪型シミュレーションタスクの作成\n\n**AI タスク API** (`/s2s/v2.1/task/hair-transfer`) を使用して、バーチャル試着タスクを作成します。\n\n**パラメータ:**\n\n*   ユーザー画像用： `src_file_id` または `src_file_url`。\n*   リファレンス画像用： `ref_file_id`、`ref_file_url`、または `template_id`。\n\n**リクエスト例:**\n\n```bash\ncurl --request POST \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.1/task/hair-transfer \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json' \\\n  --data '{\n    \"src_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/selfie_03_cccd5d4803.jpeg\",\n    \"ref_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/style_reference_full_body_01_5a000d999f.png\"\n  }'\n```\n\n**レスポンス例:**\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_id\": \"SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT\"\n  }\n}\n```\n\n***\n\n   * ステップ 6. タスク結果のポーリング\n\nタスク ID を使用してステータスを確認します。\n\n```bash\ncurl --request GET \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.1/task/hair-transfer/<YOUR_TASK_ID> \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json'\n```\n\n***\n\n   * ステップ 7. 結果の取得\n\n成功したレスポンスには、結果画像のダウンロード URL が含まれます。\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"error\": null,\n    \"results\": {\n      \"url\": \"https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...\"\n    },\n    \"task_status\": \"success\"\n  }\n}\n```\n\n無効な API キーエラーレスポンス：\n\n```json\n{\n  \"status\": 401,\n  \"error\": \"Unauthorized\",\n  \"error_code\": \"InvalidAccessToken\"\n}\n```\n\n---\n\nユースケース：\nユースケース：\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_style_v1_video_08513beb46.jpg)\n\n撮影方法の提案：\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png)\n\n## ファイル仕様とエラー\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|AI 髪型シミュレーション|長辺 <= 1024、顔幅 >= 128、顔のポーズ: -10 < pitch < +10, -45 < yaw < +45, -15 < roll < +15、単一の顔のみ、顔全体が見える必要がある|< 10MB|jpg/jpeg|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_no_shoulder\t|ソース画像に肩が見えません\n|error_large_face_angle\t|アップロードされた画像の顔の角度が大きすぎます\n|error_insufficient_landmarks\t|ソース画像で十分な顔または体のランドマークを検出できません\n|error_hair_too_short\t|入力された髪が短すぎます\n|error_face_pose\t|ソース画像の顔のポーズはサポートされていません\n\n* 環境と依存関係\n\n| サンプルコード言語 / ツール | 推奨ランタイムバージョン |\n|---|---|\n| cURL | - bash >= 3.2</br>   - curl >= 7.58 (モダンな TLS/HTTP サポート)</br>   - jq >= 1.6 (堅牢な JSON 解析) |\n| Node.js (JavaScript) | Node >= 18 (グローバル fetch 用) |\n| JavaScript | - Chrome / Edge >= 80</br>   - Firefox >= 74</br>   - Safari >= 13.1 |\n| PHP | PHP >= 7.4 (モダンな TLS/互換性用), ext-curl (推奨) または allow_url_fopen=On + ext-openssl, ext-json |\n| Python | Python >= 3.10 (f-strings 用), requests >= 2.20.0 |\n| Java | Java 11+ (HttpClient 用), Jackson Databind >= 2.12.0 |\n\n---\n\n## FAQ\n**Q: カスタムの髪型を試すことはできますか？**\n\n**A:** はい、独自のリファレンス写真を使用してカスタムの髪型を試すことができます。AI 髪型シミュレーションでは、希望する髪型を指定するための 2 つの方法をサポートしています。\n\n1. **独自のリファレンス画像のアップロード**\n   ファイル API (`/s2s/v2.0/file`) を介して、高解像度のセルフィーやスタイル写真（例：ターゲットの髪型をしている人物）をアップロードできます。アップロード後、AI タスク作成時に返された `file_id` または公開 URL をリファレンスソースとして使用します。\n\n2. **有効な画像 URL の提供**\n   リファレンス画像がすでにオンラインでホストされている場合（例：独自サーバーや CDN 上）、リクエストボディの `ref_file_url` フィールドに HTTPS URL を直接指定できます。\n\n`/s2s/v2.1/task/hair-transfer` を介してタスクを送信する際は、以下を含めます。\n- `src_file_id`（セルフィー）と `ref_file_id`（カスタムリファレンス画像）、\nまたは\n- `src_file_url` と `ref_file_url`。\n\n両方の画像が指定された要件を満たしていることを確認してください。\n- サポートされる形式：JPG/JPEG のみ\n- ファイルサイズは 10 MB 未満\n- 長辺 ≤ 1024 ピクセル\n- 顔幅 ≥ 128 ピクセル\n- 頭のポーズが許容範囲内（pitch: −10°〜+10°, yaw: −45°〜+45°, roll: −15°〜+15°）\n- 単一の顔が見え、髪がはっきり見える正面からの完全なビュー\n\nプリセットテンプレートだけでなく、写真リファレンスからも髪型を指定できます。\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI Hair Style Virtual Try-On V2.0 | プリセットモードで 1 ユニット <br> カスタムモードで 2 ユニット |\n| AI Hair Style Virtual Try-On V2.1 | プリセットモードで 2 ユニット <br> カスタムモードで 2 ユニット |\n\n---\n"},"compilationErrors":[],"markdown":{"partials":{},"variables":{"rbac":{"teams":["anonymous"]},"user":{},"remoteAddr":{"hostname":"docs.perfectcorp.com","port":4000,"ipAddress":"216.73.216.56"},"lang":"ja","env":{"PUBLIC_REDOCLY_BRANCH_NAME":"master"}}},"pagePropGetterError":{"message":"","name":""}},"slug":"/ja/reference/ai_hairstyle","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}