{"items":[{"type":"separator","label":"ユーティリティ","labelTranslationKey":"sidebar.reference.separators.utility"},{"type":"group","fsPath":"@l10n/ja/reference/unit_system.yaml","link":"/ja/reference/unit_system","routeSlug":"/ja/reference/unit_system","label":"ユニットシステム","items":[{"label":"ユニット情報を取得","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/unit_system/paths/~1s2s~1v1.0~1client~1credit/get","routeSlug":"/ja/reference/unit_system/paths/~1s2s~1v1.0~1client~1credit/get","metadata":{"seo":{"title":"ユニット情報を取得","description":"利用可能な API ユニットを小数点以下 2 桁まで表示します"}},"httpPath":"/s2s/v1.0/client/credit"},{"label":"ユニット履歴を表示","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/unit_system/paths/~1s2s~1v1.0~1client~1credit~1history/get","routeSlug":"/ja/reference/unit_system/paths/~1s2s~1v1.0~1client~1credit~1history/get","metadata":{"seo":{"title":"ユニット履歴を表示","description":"ユニット履歴を表示"}},"httpPath":"/s2s/v1.0/client/credit/history"},{"label":"機能コストの取得","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/unit_system/paths/~1s2s~1v2.0~1credit~1feature-cost/get","routeSlug":"/ja/reference/unit_system/paths/~1s2s~1v2.0~1credit~1feature-cost/get","metadata":{"seo":{"title":"機能コストの取得","description":"各 API のユニット消費量を確認します。値は https://yce.perfectcorp.com/ai-api/api-pricing に記載されているものと一致しています。"}},"httpPath":"/s2s/v2.0/credit/feature-cost"}],"metadata":{"type":"openapi","title":"ユニットシステム","version":"","description":"ユニットの詳細と使用履歴を確認します。ユニットは YouCam API 操作で使用される通貨であり、異なる AI 機能によって消費されるユニットの量は異なります。本ドキュメントでは、ユニットのコード名として \"Credit\" を使用しています。\n"}},{"type":"group","fsPath":"@l10n/ja/reference/task_management.yaml","link":"/ja/reference/task_management","routeSlug":"/ja/reference/task_management","label":"タスク管理","items":[{"label":"タスクとそのファイルを削除します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/task_management/paths/~1s2s~1v2.0~1task~1delete/post","routeSlug":"/ja/reference/task_management/paths/~1s2s~1v2.0~1task~1delete/post","metadata":{"seo":{"title":"タスクとそのファイルを削除します。","description":"task_id で識別される完了済みのタスクを、関連するすべての入力ファイルおよび生成された出力とともに削除します。タスクの実行エンドポイントから返された task_id を指定してください。"}},"httpPath":"/s2s/v2.0/task/delete"}],"metadata":{"type":"openapi","title":"タスク管理","version":""}},{"type":"group","fsPath":"@l10n/ja/reference/file.yaml","link":"/ja/reference/file","routeSlug":"/ja/reference/file","label":"ファイル管理","items":[{"label":"新しいファイルを作成します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/file/paths/~1s2s~1v2.0~1file/post","routeSlug":"/ja/reference/file/paths/~1s2s~1v2.0~1file/post","metadata":{"seo":{"title":"新しいファイルを作成します。","description":"新しいファイルをアップロードするには、まず File API を使用する必要があります。URL が発行されるので、その URL を使用してファイルをアップロードします。アップロードが完了すると、同じレスポンス内の file_id を使用して AI 機能を利用できます。"}},"httpPath":"/s2s/v2.0/file"}],"metadata":{"type":"openapi","title":"ファイル管理","version":""}},{"type":"separator","label":"肌＆顔分析","labelTranslationKey":"sidebar.reference.separators.skinFaceBody"},{"type":"group","fsPath":"@l10n/ja/reference/ai_skin_analysis.yaml","link":"/ja/reference/ai_skin_analysis","routeSlug":"/ja/reference/ai_skin_analysis","label":"AI 肌分析","items":[{"type":"group","label":"概要 (Overview)","link":"/ja/reference/ai_skin_analysis/section/(overview)","routeSlug":"/ja/reference/ai_skin_analysis/section/(overview)","items":[{"type":"link","label":"統合ガイド (Integration Guide)","link":"/ja/reference/ai_skin_analysis/section/(overview)/(integration-guide)","routeSlug":"/ja/reference/ai_skin_analysis/section/(overview)/(integration-guide)"},{"type":"link","label":"入力と出力 (Inputs & Outputs)","link":"/ja/reference/ai_skin_analysis/section/(overview)/(inputs-and-outputs)","routeSlug":"/ja/reference/ai_skin_analysis/section/(overview)/(inputs-and-outputs)"},{"type":"link","label":"ファイル仕様とエラー (File Specs and Errors)","link":"/ja/reference/ai_skin_analysis/section/(overview)/(file-specs-and-errors)","routeSlug":"/ja/reference/ai_skin_analysis/section/(overview)/(file-specs-and-errors)"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_skin_analysis/section/(overview)/js-camera-kit","routeSlug":"/ja/reference/ai_skin_analysis/section/(overview)/js-camera-kit"},{"type":"link","label":"Mobile Camera Kit","link":"/ja/reference/ai_skin_analysis/section/(overview)/mobile-camera-kit","routeSlug":"/ja/reference/ai_skin_analysis/section/(overview)/mobile-camera-kit"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_skin_analysis/section/(overview)/ユニット消費量","routeSlug":"/ja/reference/ai_skin_analysis/section/(overview)/ユニット消費量"}]},{"type":"group","label":"V2.1","link":"/ja/reference/ai_skin_analysis/v2.1","routeSlug":"/ja/reference/ai_skin_analysis/v2.1","items":[{"label":"AI 肌分析 V2.1 タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_analysis/v2.1/paths/~1s2s~1v2.1~1task~1skin-analysis/post","routeSlug":"/ja/reference/ai_skin_analysis/v2.1/paths/~1s2s~1v2.1~1task~1skin-analysis/post","metadata":{"seo":{"title":"AI 肌分析 V2.1 タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.1/task/skin-analysis"},{"label":"AI 肌分析 V2.1 タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_analysis/v2.1/paths/~1s2s~1v2.1~1task~1skin-analysis~1{task_id}/get","routeSlug":"/ja/reference/ai_skin_analysis/v2.1/paths/~1s2s~1v2.1~1task~1skin-analysis~1{task_id}/get","metadata":{"seo":{"title":"AI 肌分析 V2.1 タスクのステータスを確認します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.1/task/skin-analysis/{task_id}"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_skin_analysis/v2.0","routeSlug":"/ja/reference/ai_skin_analysis/v2.0","items":[{"label":"AI 肌分析タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_analysis/v2.0/paths/~1s2s~1v2.0~1task~1skin-analysis/post","routeSlug":"/ja/reference/ai_skin_analysis/v2.0/paths/~1s2s~1v2.0~1task~1skin-analysis/post","metadata":{"seo":{"title":"AI 肌分析タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/skin-analysis"},{"label":"AI 肌分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_analysis/v2.0/paths/~1s2s~1v2.0~1task~1skin-analysis~1{task_id}/get","routeSlug":"/ja/reference/ai_skin_analysis/v2.0/paths/~1s2s~1v2.0~1task~1skin-analysis~1{task_id}/get","metadata":{"seo":{"title":"AI 肌分析タスクのステータスを確認します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/skin-analysis/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 肌分析","version":"","description":"# 概要 (Overview)\n![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_demostore_skincarelive_topbanner.0cffe3a7.jpg)\nAI 肌分析 (AI Skin Analysis) では、真正面を向いた 1 枚のセルフィーから顔の肌悩みを評価します。\nキメ、色素沈着、うるおい、毛穴の大きさなど、肌のさまざまな側面を解析します。\n肌悩みスコアと検出マスクを提供します。\n\n\n## 統合ガイド (Integration Guide)\n* AI 肌分析のための写真の撮影方法\n* 真正面を向いてセルフィーを撮影する\n  - 1 枚の鮮明な写真を、カメラをまっすぐ見つめて撮影します。髪は下ろして胸にかかるようにし、真正面の構図になるよう必ずまっすぐ前方を見てください。\n  - 代わりに JS Camera Kit を使用して撮影します。髪は下ろして胸にかかるようにするだけで構いません。まとめないでください。\n\n* ワークフロー\n**肌診断 API 使用ガイド**\nこのガイドでは、File API と AI Task API を使用して画像をアップロードし、肌診断タスクを作成する方法を説明します。\n\n   * **ステップ 1: 元画像をリサイズする**</br>\n  写真を対応寸法に合わせてリサイズします -  SD は長辺が最大 4096 ピクセルで短辺が 480 ピクセル以上、または HD は長辺が最大 4096 ピクセルで短辺が 1080 ピクセル以上です。詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください\n\n   * **ステップ 2: File API でファイルメタデータをアップロードする**\n- 画像の要件\n    - 詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください\n\nPOST リクエストを送信して、ファイルアップロードを初期化します：\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/png\",\n        \"file_name\": \"skin_analysis_01_3dbd1b6683.png\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n- ***重要***: File API を呼び出すだけではファイルはアップロードされません。**File API のレスポンスで提供される URL** に対してファイルを**追加でアップロード**する必要があります。その URL がアップロード先です。次に進む前に、ファイルが正常に転送されたことを確認してください。\n\n  > **警告:** File API のレスポンスで提供される URL にファイルをアップロードしないまま AI API を使用すると、500 Server Error / unknown_internal_error または 404 Not Found エラーが発生します。\n\n***\n\n   * **ステップ 3: アップロード URL とファイル ID を取得する**\n\nレスポンスには以下が含まれます：\n\n*   `requests.url` – 画像アップロード用のプリサインド URL。\n*   `file_id` – AI タスク作成用の識別子。\n\n**レスポンス例：**\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"files\": [\n      {\n        \"content_type\": \"image/png\",\n        \"file_name\": \"skin_analysis_01_3dbd1b6683.png\",\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/png\"\n            }\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n***\n\n   * **ステップ 4: プリサインド URL に画像をアップロードする**\n\n提供された `requests.url` とヘッダーを使用します：\n\n```bash\ncurl --location --request PUT 'https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...' \\\n  --header 'Content-Type: image/png' \\\n  --header 'Content-Length: 547541' \\\n  --data-binary @'./skin_analysis_01_3dbd1b6683.png'\n```\n\n***\n\n   * **ステップ 5: AI タスクを作成する**\n\nステップ 2 の `file_id` を使用して肌診断タスクを作成します：\n\n```bash\ncurl --request POST \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/skin-analysis \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n    \"src_file_id\": \"SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud\",\n    \"dst_actions\": [\"wrinkle\", \"pore\", \"texture\", \"acne\"],\n    \"miniserver_args\": {\n      \"enable_mask_overlay\": true,\n      \"enable_dark_background_hd_pore\": true,\n      \"color_dark_background_hd_pore\": \"3D3D3D\",\n      \"opacity_dark_background_hd_pore\": 0.4\n      // Additional parameters omitted for brevity\n    },\n    \"format\": \"json\"\n  }'\n```\n  アップロードが完了したら、ファイル ID または画像ファイル URL を使用して、解析する肌悩みを選択できます。**[入力と出力](#section/overview/Inputs-and-Outputs)** を参照してください。</br>\n  その後、ファイル ID または画像ファイル URL を指定して POST 'task/skin-analysis'\n  を呼び出すと画質改善タスクが実行され、***task_id*** が取得されます。\n  SD と HD の肌悩みパラメータを同時に使用することは**サポートされていません**。\n\n- **既存の公開画像 URL を使用する**\nアップロードの代わりに、AI タスクの開始時に公開アクセス可能な画像 URL を直接指定できます。\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`task_id` を使用してタスクの結果を取得します：\n\n```bash\ncurl --request GET \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/skin-analysis/<YOUR_TASK_ID> \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'Content-Type: application/json'\n```\nこの ***task_id*** は、GET 'task/skin-analysis' をポーリングして現在のエンジンステータスを取得し、タスクのステータスを監視するために使用します。エンジンがタスクを完了するまでステータスは 'running' のままとなり、この段階ではユニットは消費されません。\n\n処理された結果は完了後 24 時間保持されます。- 短い間隔でポーリングする必要はありません。- 24 時間以内の範囲であればポーリング間隔は柔軟に設定できます。\n\n  > **重要:** 実行時間は保証されないため、タスクステータスを確認するには引き続きポーリングが必要です。\n\nエンジンが入力ファイルの処理に成功し、結果画像を生成すると、タスクは 'success' ステータスに変わります。処理済み画像の URL と dst_id が取得され、結果画像を再アップロードせずに別の AI タスクを連鎖して実行できます。\n\nユニットが消費されるのはこの場合のみです。エンジンがタスクの処理に失敗すると、タスクのステータスは 'error' に変わり、ユニットは消費されません。\nユニットを減算する際、システムは有効期限が近いものを優先します。有効期限が同じ場合は、最も早く取得したユニットから減算されます。\n\n\n***\n\n   * **ステップ 7: 結果を解釈する**\n\nレスポンスには以下が含まれます：\n\n*   `ui_score` – ユーザー向けのスコア。\n*   `raw_score` – 解析の生スコア。\n*   `mask_urls` – 検出マスクの URL。\n\n**レスポンス例：**\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"results\": {\n      \"output\": [\n        {\n          \"type\": \"texture\",\n          \"ui_score\": 68,\n          \"raw_score\": 57.33,\n          \"mask_urls\": [\"https://yce-us.s3-accelerate.amazonaws.com/...texture_output.jpg\"]\n        },\n        {\n          \"type\": \"pore\",\n          \"ui_score\": 92,\n          \"raw_score\": 95.34,\n          \"mask_urls\": [\"https://yce-us.s3-accelerate.amazonaws.com/...pore_output.jpg\"]\n        }\n        // Additional results omitted for brevity\n      ]\n    },\n    \"task_status\": \"success\"\n  }\n}\n```\n\n\n* デバッグガイド\n> **警告:** SD と HD の肌悩みパラメータを同時に使用することは**サポートされていません**。これらの仕様に違反する操作を行うと ***InvalidParameters*** エラーが発生します。\n\n  * HD と SD の肌悩みを混在して使用すると、次のようなエラーが発生します：\n    ```json\n    {\n        \"status\": 400,\n        \"error\": \"cannot mix HD and SD dst_actions\",\n        \"error_code\": \"InvalidParameters\"\n    }\n    ```\n  * 肌悩みをスペルミスした場合、または不明な肌悩みを送信した場合、次のようなエラーが発生します：\n    ```json\n    {\n        \"status\": 400,\n        \"error\": \"Not available dst_action abc123\",\n        \"error_code\": \"InvalidParameters\"\n    }\n    ```\n\n---\n\n* 実際の活用例：\n![](https://plugins-media.makeupar.com/webconsultation/images/skincare-widget/img_webcm_skincare_service_survey_demo.jpg)\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/skin_analysis_s5_poster_3_dt_85efe14952.png)\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/Skincare_Pro_Medspa_Situation_Image_6aea6046f9.jpg)\n## 入力と出力 (Inputs & Outputs)\n* 入力パラメータの説明\nAI 肌分析 (AI Skin Analysis) の結果の視覚的な出力を制御する方法は 2 つあります。複数の画像を生成して各肌悩みをそれぞれ独立したマスクとして表示する方法と、``enable_mask_overlay`` パラメータを使用してブレンドされた 1 枚の画像を生成する方法のいずれかを選択できます。初期設定ではシステムが複数のマスクを出力するため、各肌悩みのマスクを画像とどのようにブレンドするかを完全に制御できます。\n\n* 初期値: enable_mask_overlay false\n  ![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/mask_overlay_false_1920_ea1cde0ead.png)\n\n* enable_mask_overlay を true に設定\n  ![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/mask_overlay_1920_0fbb4786cc.png)\n\n----\n\n* 出力 ZIP のデータ構造の説明\nシステムは ZIP ファイルを提供し、その内部に 'skinanalysisResult' フォルダが含まれています。このフォルダには、すべての検出スコアと結果画像への参照を含む 'score_info.json' ファイルが格納されています。\n\n'score_info.json' ファイルには、すべての肌診断の検出結果が、数値のスコアと対応する出力マスクファイル名とともに含まれています。\n\nPNG ファイルは、元の画像にオーバーレイできる検出結果のマスクです。これらの PNG ファイルのアルファ値を使って元の画像とブレンドするだけで、検出結果を元画像上で直接確認できます。\n\n* 肌診断結果 ZIP 内のファイル構成\n* HD Skincare ZIP\n  * skinanalysisResult\n    - score_info.json\n    - hd_acne_output.png\n    - hd_age_spot_output.png\n    - hd_dark_circle_output.png\n    - hd_droopy_lower_eyelid_output.png\n    - hd_droopy_upper_eyelid_output.png\n    - hd_eye_bag_output.png\n    - hd_firmness_output.png\n    - hd_moisture_output.png\n    - hd_oiliness_output.png\n    - hd_radiance_output.png\n    - hd_redness_output.png\n    - hd_texture_output.png\n    - hd_pore_output_all.png\n    - hd_pore_output_cheek.png\n    - hd_pore_output_forehead.png\n    - hd_pore_output_nose.png\n    - hd_wrinkle_output_all.png\n    - hd_wrinkle_output_crowfeet.png\n    - hd_wrinkle_output_forehead.png\n    - hd_wrinkle_output_glabellar.png\n    - hd_wrinkle_output_marionette.png\n    - hd_wrinkle_output_nasolabial.png\n    - hd_wrinkle_output_periocular.png\n    - hd_tear_trough.png\n    - hd_skin_type.png\n\n* SD Skincare ZIP\n  * skinanalysisResult\n    - score_info.json\n    - acne_output.png\n    - age_spot_output.png\n    - dark_circle_v2_output.png\n    - droopy_lower_eyelid_output.png\n    - droopy_upper_eyelid_output.png\n    - eye_bag_output.png\n    - firmness_output.png\n    - moisture_output.png\n    - oiliness_output.png\n    - pore_output.png\n    - radiance_output.png\n    - redness_output.png\n    - texture_output.png\n    - wrinkle_output.png\n    - tear_trough.png\n    - skin_type.png\n\n* JSON データ構造 (score_info.json)\n  * \"all\": 1 から 100 の範囲の浮動小数点値で、一般的な肌状態を表します。スコアが高いほど、より健康で美しさに優れた肌状態であることを示します。\n  * \"skin_age\": すべての年齢層にわたる一般母集団の分布に対する、AI が算出した肌年齢。\n  * 各カテゴリには以下が含まれます:\n    * \"raw_score\": 1 から 100 の範囲の浮動小数点値。スコアが高いほど、より健康で美しさに優れた肌状態であることを示します。\n    * \"ui_score\": 1 から 100 の範囲の整数。UI Score は主に美容評価において心理的なモチベーションの向上として機能します。消費者は一般的に自身の肌状態について肯定的な評価を好むことを踏まえ、より好ましい結果となるよう raw スコアを調整しています。このキャリブレーションは、根底にある美容心理学の枠組みを維持しつつ、ユーザーにより大きな自信を持っていただくことを目的としています。\n    * \"output_mask_name\": 対応する出力マスク画像のファイル名。\n\n  * カテゴリと説明\n    * HD Skincare:\n        * \"hd_redness\": 肌の赤みの深刻度を測定します。\n        * \"hd_oiliness\": 肌の皮脂レベルを判定します。\n        * \"hd_age_spot\": 老人斑と色素沈着を検出します。\n        * \"hd_radiance\": 肌の輝きを評価します。\n        * \"hd_moisture\": 肌の水分量を評価します。\n        * \"hd_dark_circle\": 目の下のクマの有無を解析します。\n        * \"hd_eye_bag\": 目元のたるみを検出します。\n        * \"hd_droopy_upper_eyelid\": 上まぶたの下垂の深刻度を測定します。\n        * \"hd_droopy_lower_eyelid\": 下まぶたの下垂の深刻度を測定します。\n        * \"hd_firmness\": 肌のハリと弾力を評価します。\n        * \"hd_texture\": Subcategories[whole]; 肌全体のキメを解析します。\n        * \"hd_acne\": Subcategories[whole]; にきりの有無を検出します。\n        * \"hd_pore\": Subcategories[forehead, nose, cheek, whole]; 異なる顔領域の毛穴を検出し、評価します。\n        * \"hd_wrinkle\": Subcategories[forehead, glabellar, crowfeet, periocular, nasolabial, marionette, whole]; さまざまな顔領域におけるしわの深刻度を測定します。\n        * \"hd_tear_trough\": 涙溝を検出します。\n        * \"hd_skin_type\": Subcategories[whole, t_zone, u_zone] Normal、Oily、Dry、Combination、Redness、Dry & Redness、Oily & Redness、Combination & Redness のいずれかの肌タイプを評価します。\n\n    * SD Skincare:\n        * \"wrinkle\": しわに関する一般的な解析。\n        * \"droopy_upper_eyelid\": 上まぶたの下垂の深刻度を測定します。\n        * \"droopy_lower_eyelid\": 下まぶたの下垂の深刻度を測定します。\n        * \"firmness\": 肌のハリと弾力を評価します。\n        * \"acne\": にきりの有無を評価します。\n        * \"moisture\": 肌の水分量を測定します。\n        * \"eye_bag\": 目元のたるみを検出します。\n        * \"dark_circle_v2\": 別の方法を用いてクマを解析します。\n        * \"age_spot\": 老人斑を検出します。\n        * \"radiance\": 肌の明るさを評価します。\n        * \"redness\": 肌の赤みを測定します。\n        * \"oiliness\": 肌の皮脂レベルを判定します。\n        * \"pore\": 毛穴の目立ち度を測定します。\n        * \"texture\": 肌全体のキメを解析します。\n        * \"tear_trough\": 涙溝を検出します。\n        * \"skin_type\": Subcategories[whole, t_zone, u_zone] Normal、Oily、Dry、Combination、Redness、Dry & Redness、Oily & Redness、Combination & Redness のいずれかの肌タイプを評価します。\n\n  * HD Skincare の score_info.json の例\n    ```json\n    {\n        \"hd_redness\": {\n            \"raw_score\": 72.011962890625,\n            \"ui_score\": 77,\n            \"output_mask_name\": \"hd_redness_output.png\"\n        },\n        \"hd_oiliness\": {\n            \"raw_score\": 60.74365234375,\n            \"ui_score\": 72,\n            \"output_mask_name\": \"hd_oiliness_output.png\"\n        },\n        \"hd_age_spot\": {\n            \"raw_score\": 83.23274230957031,\n            \"ui_score\": 77,\n            \"output_mask_name\": \"hd_age_spot_output.png\"\n        },\n        \"hd_radiance\": {\n            \"raw_score\": 76.57244205474854,\n            \"ui_score\": 79,\n            \"output_mask_name\": \"hd_radiance_output.png\"\n        },\n        \"hd_moisture\": {\n            \"raw_score\": 48.694559931755066,\n            \"ui_score\": 70,\n            \"output_mask_name\": \"hd_moisture_output.png\"\n        },\n        \"hd_dark_circle\": {\n            \"raw_score\": 80.1993191242218,\n            \"ui_score\": 76,\n            \"output_mask_name\": \"hd_dark_circle_output.png\"\n        },\n        \"hd_eye_bag\": {\n            \"raw_score\": 76.67280435562134,\n            \"ui_score\": 79,\n            \"output_mask_name\": \"hd_eye_bag_output.png\"\n        },\n        \"hd_droopy_upper_eyelid\": {\n            \"raw_score\": 79.05348539352417,\n            \"ui_score\": 80,\n            \"output_mask_name\": \"hd_droopy_upper_eyelid_output.png\"\n        },\n        \"hd_droopy_lower_eyelid\": {\n            \"raw_score\": 79.97175455093384,\n            \"ui_score\": 81,\n            \"output_mask_name\": \"hd_droopy_lower_eyelid_output.png\"\n        },\n        \"hd_firmness\": {\n            \"raw_score\": 89.66898322105408,\n            \"ui_score\": 85,\n            \"output_mask_name\": \"hd_firmness_output.png\"\n        },\n        \"hd_texture\": {\n            \"whole\": {\n                \"raw_score\": 66.3921568627451,\n                \"ui_score\": 75,\n                \"output_mask_name\": \"hd_texture_output.png\"\n            }\n        },\n        \"hd_acne\": {\n            \"whole\": {\n                \"raw_score\": 59.92677688598633,\n                \"ui_score\": 76,\n                \"output_mask_name\": \"hd_acne_output.png\"\n            }\n        },\n        \"hd_pore\": {\n            \"forehead\": {\n                \"raw_score\": 79.59770965576172,\n                \"ui_score\": 80,\n                \"output_mask_name\": \"hd_pore_output_forehead.png\"\n            },\n            \"nose\": {\n                \"raw_score\": 29.139814376831055,\n                \"ui_score\": 58,\n                \"output_mask_name\": \"hd_pore_output_nose.png\"\n            },\n            \"cheek\": {\n                \"raw_score\": 44.11081314086914,\n                \"ui_score\": 65,\n                \"output_mask_name\": \"hd_pore_output_cheek.png\"\n            },\n            \"whole\": {\n                \"raw_score\": 49.23978805541992,\n                \"ui_score\": 67,\n                \"output_mask_name\": \"hd_pore_output_all.png\"\n            }\n        },\n        \"hd_wrinkle\": {\n            \"forehead\": {\n                \"raw_score\": 55.96956729888916,\n                \"ui_score\": 67,\n                \"output_mask_name\": \"hd_wrinkle_output_forehead.png\"\n            },\n            \"glabellar\": {\n                \"raw_score\": 76.7251181602478,\n                \"ui_score\": 75,\n                \"output_mask_name\": \"hd_wrinkle_output_glabellar.png\"\n            },\n            \"crowfeet\": {\n                \"raw_score\": 83.4361481666565,\n                \"ui_score\": 78,\n                \"output_mask_name\": \"hd_wrinkle_output_crowfeet.png\"\n            },\n            \"periocular\": {\n                \"raw_score\": 67.88706302642822,\n                \"ui_score\": 72,\n                \"output_mask_name\": \"hd_wrinkle_output_periocular.png\"\n            },\n            \"nasolabial\": {\n                \"raw_score\": 74.03312683105469,\n                \"ui_score\": 74,\n                \"output_mask_name\": \"hd_wrinkle_output_nasolabial.png\"\n            },\n            \"marionette\": {\n                \"raw_score\": 71.94477319717407,\n                \"ui_score\": 73,\n                \"output_mask_name\": \"hd_wrinkle_output_marionette.png\"\n            },\n            \"whole\": {\n                \"raw_score\": 49.64699745178223,\n                \"ui_score\": 65,\n                \"output_mask_name\": \"hd_wrinkle_output_all.png\"\n            }\n        },\n        \"all\": {\n            \"score\": 75.75757575757575\n        },\n        \"skin_age\": 37\n    }\n    ```\n  * SD Skincare の score_info.json の例\n    ```json\n    {\n        \"wrinkle\": {\n            \"raw_score\": 36.09360456466675,\n            \"ui_score\": 60,\n            \"output_mask_name\": \"wrinkle_output.png\"\n        },\n        \"droopy_upper_eyelid\": {\n            \"raw_score\": 79.05348539352417,\n            \"ui_score\": 80,\n            \"output_mask_name\": \"droopy_upper_eyelid_output.png\"\n        },\n        \"droopy_lower_eyelid\": {\n            \"raw_score\": 79.97175455093384,\n            \"ui_score\": 81,\n            \"output_mask_name\": \"droopy_lower_eyelid_output.png\"\n        },\n        \"firmness\": {\n            \"raw_score\": 89.66898322105408,\n            \"ui_score\": 85,\n            \"output_mask_name\": \"firmness_output.png\"\n        },\n        \"acne\": {\n            \"raw_score\": 92.29713000000001,\n            \"ui_score\": 88,\n            \"output_mask_name\": \"acne_output.png\"\n        },\n        \"moisture\": {\n            \"raw_score\": 48.694559931755066,\n            \"ui_score\": 70,\n            \"output_mask_name\": \"moisture_output.png\"\n        },\n        \"eye_bag\": {\n            \"raw_score\": 76.67280435562134,\n            \"ui_score\": 79,\n            \"output_mask_name\": \"eye_bag_output.png\"\n        },\n        \"dark_circle_v2\": {\n            \"raw_score\": 80.1993191242218,\n            \"ui_score\": 76,\n            \"output_mask_name\": \"dark_circle_v2_output.png\"\n        },\n        \"age_spot\": {\n            \"raw_score\": 83.23274230957031,\n            \"ui_score\": 77,\n            \"output_mask_name\": \"age_spot_output.png\"\n        },\n        \"radiance\": {\n            \"raw_score\": 76.57244205474854,\n            \"ui_score\": 79,\n            \"output_mask_name\": \"radiance_output.png\"\n        },\n        \"redness\": {\n            \"raw_score\": 72.011962890625,\n            \"ui_score\": 77,\n            \"output_mask_name\": \"redness_output.png\"\n        },\n        \"oiliness\": {\n            \"raw_score\": 60.74365234375,\n            \"ui_score\": 72,\n            \"output_mask_name\": \"oiliness_output.png\"\n        },\n        \"pore\": {\n            \"raw_score\": 88.38014125823975,\n            \"ui_score\": 84,\n            \"output_mask_name\": \"pore_output.png\"\n        },\n        \"texture\": {\n            \"raw_score\": 80.09742498397827,\n            \"ui_score\": 76,\n            \"output_mask_name\": \"texture_output.png\"\n        },\n        \"all\": {\n            \"score\": 75.75757575757575\n        },\n        \"skin_age\": 37\n    }\n    ```\n<a id=\"section/overview/File-Specs-and-Errors\"></a>\n## ファイル仕様とエラー (File Specs and Errors)\n* 対応しているファイル形式と解像度\n\n| AI 機能 | 対応解像度 | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ---- | ---- |\n| SD スキンケア | 短辺の長さは最低 480 ピクセル以上である必要があります。<br>長辺に上限はありませんが、2560 ピクセルを超える場合、システムにより自動的に 2560 ピクセルへリサイズされます。 | < 10MB | jpg/jpeg/png |\n| HD スキンケア | 短辺の長さは最低 1080 ピクセル以上である必要があります。<br>長辺に制限はありませんが、2560 ピクセルを超える場合、自動的に 2560 ピクセルへリサイズされます。 |< 10MB | jpg/jpeg/png |\n\n> **警告:** API では画像が自動的に最大 2560 ピクセルにリサイズされますが、すべての顔にはっきりとピントが合っていること、画像の品質が高いこと、照明が均一であること、顔のサイズが十分に大きく、カメラの正面を向いていることを、お客様ご自身の責任でご確認ください。AI 肌分析 (AI Skin Analysis) を実行する前に HD または SD のスキンケア画像を撮影する際は、被写体ブレと遮蔽を避けてください。最適な結果を得るには、横位置よりも縦位置のアスペクト比の使用を推奨します。\n\n* 撮影方法の推奨事項:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_AI%20Skin%20Analysis_camera_f93315b088.png)\n\n* 肌診断を開始する準備ガイド\n* 眼鏡を外し、前髪が額にかかっていないことを確認してください\n* 明るい環境であることを確認してください\n* より正確な結果を得るためにメイクを落としてください\n* カメラをまっすぐ見つめ、顔を中央に保ってください\n\n* 写真の要件\n画像の品質を確認し、AI 肌分析に適しているかどうかを判断します。顔が画像の幅の約 60–80% を占め、オーバーレイや遮蔽物がないようにしてください。照明は明るく均一に分配し、露出オーバーや白飛びを避けてください。姿勢は正面を向き、自然でリラックスした状態とし、口を閉じて目を開けてください。\n\n額が完全に見えるようにし、最良の品質を確保するため、前髪を後ろにとかすか髪を結んでください。AI 肌分析の性能を最適化するには眼鏡を外すことを推奨しますが、必須ではありません。\n> **警告:** 顔の幅は画像の幅の 60% より大きい必要があります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_AI%20Skin%20Analysis_error_src_face_too_small_cr_725792a7fb.png)\n\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size|入力画像の解像度が小さすぎます|\n|error_exceed_max_image_size|入力画像の解像度が大きすぎます|\n|error_src_face_too_small|アップロードされた画像内の顔の領域が小さすぎます。顔の幅は画像の幅の 60% より大きい必要があります。|\n|error_src_face_out_of_bound|アップロードされた画像内の顔の領域が範囲外です|\n|error_lighting_dark|アップロードされた画像の照明が暗すぎます|\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 (global 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-string を使用するため)、requests >= 2.20.0 |\n| Java | Java 11+ (HttpClient を使用するため)、Jackson Databind >= 2.12.0 |\n\n---\n\n## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## Mobile Camera Kit\n{% partial file=\"/_partials/mobile-camera-kit.md\" /%}\n\n---\n\n## ユニット消費量\n\n* AI 肌分析 (AI Skin Analysis) (V2.0, 2.1)\n\n| AI 機能 | 消費ユニット数 |\n|---|---|\n| 1~4 項目の肌悩み解析 | SD は 9 ユニット、HD は 12 ユニット | \n| 5~8 項目の肌悩み解析 | SD は 12 ユニット、HD は 16 ユニット |\n| 9~12 項目の肌悩み解析 | SD は 14 ユニット、HD は 20 ユニット |\n| 13~16 項目の肌悩み解析 | SD は 16 ユニット、HD は 22 ユニット |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_skin_simulation.yaml","link":"/ja/reference/ai_skin_simulation","routeSlug":"/ja/reference/ai_skin_simulation","label":"AI 肌改善シミュレーション","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_skin_simulation/section/概要","routeSlug":"/ja/reference/ai_skin_simulation/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_skin_simulation/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_skin_simulation/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_skin_simulation/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_skin_simulation/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_skin_simulation/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_skin_simulation/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_skin_simulation/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_skin_simulation/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_skin_simulation/v1.0","routeSlug":"/ja/reference/ai_skin_simulation/v1.0","items":[{"label":"AI 肌改善シミュレーションタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_simulation/v1.0/paths/~1s2s~1v2.0~1task~1skin-simulation/post","routeSlug":"/ja/reference/ai_skin_simulation/v1.0/paths/~1s2s~1v2.0~1task~1skin-simulation/post","metadata":{"seo":{"title":"AI 肌改善シミュレーションタスクを実行します。","description":"このエンドポイントで肌改善シミュレーションプロセスを開始します。ソースファイル（URL または File ID 経由）を提供し、シミュレーションパラメータ（しわ、輝きなど）を指定する必要があります。少なくとも 1 つのパラメータはゼロ以外である必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/skin-simulation"},{"label":"AI 肌改善シミュレーションタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_simulation/v1.0/paths/~1s2s~1v2.0~1task~1skin-simulation~1{task_id}/get","routeSlug":"/ja/reference/ai_skin_simulation/v1.0/paths/~1s2s~1v2.0~1task~1skin-simulation~1{task_id}/get","metadata":{"seo":{"title":"AI 肌改善シミュレーションタスクのステータスを確認します。","description":"AI 肌改善シミュレーションタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/skin-simulation/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 肌改善シミュレーション","version":"","description":"# 概要\n**AI 駆動の肌シミュレーション**\n\nAI 肌シミュレーションでは、顔の肌状態のビフォーアフターを可視化します。\n最大 10 種類の肌悩み（輝き、ニキビ、皮脂、目の下のたるみ、クマ、シミ、毛穴、肌質、しわ、赤み）を可視化できます。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-04-17/4edad54f-ef6b-4842-b104-d114889318b1.jpg)\n\n各シミュレーションは数秒で生成されます。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-11-13/webp_27e3ad50-7769-46de-822c-c9300f87f57d.webp)\n\ne コマースウェブサイト、モバイルアプリケーションなどで使えます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI_Skin_Simulation_pores_b1e209ee58.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI_Skin_Simulation_283421234a.jpg)\n\n---\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\nAI 肌改善シミュレーション API のワークフロー：\n\n**エンドポイント:** `/s2s/v2.0/task/skin-simulation`\n\n**認証必須:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフロー手順:**\n\n1. **画像アップロードの準備:**\n   - プロセスはセルフィー画像の準備から始まります。\n\n2. **AI 肌改善シミュレーション設定**\n    各肌悩み（例：しわ、毛穴、赤み）について、**シミュレーション強度**を **0.0 から 1.0** の値で調整します：\n\n    - **0.0**: *元の*肌の外観を表示します—変更なし。\n    - **1.0**: その悩みに対して AI が生成できる*最も自然で健康的に見える*強化を適用します。\n\n    **仕組み:**\n    - 低い設定（例：0.2～0.4）では、細かいしわや軽微な欠陥が微妙に緩和されます。\n    - 高い設定（例：0.7～1.0）では、中程度または深いしわの大幅な軽減、滑らかな質感、トーンの改善など、より顕著な改善が、自然な肌のディテールを保持しながらも発生します。\n\n    望ましい見た目になるまで調整してください。\n\n3. **AI タスクの開始とタスク ID の取得:**\n   - アップロードした画像と肌シミュレーション設定を HTTP POST リクエストで `/s2s/v2.0/task/skin-simulation` に送信します。\n   - このやり取りを識別する一意のタスク ID をレスポンスで待ちます。\n\n4. **タスクステータスのポーリング（継続的な確認）:**\n   - 取得した `task_id` を使用して、HTTP GET リクエスト（例：`GET /task/${task_id}`）でタスクステータスを定期的にポーリングします。\n   - 以下を継続的に監視します：\n     - `Task_status = \"success\"`（処理完了）。\n     - `Task_status = \"error\"`（該当する場合、解決または再試行）。\n   - ステータスが success に遷移したら、ワークフローを適切に更新します。\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* 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を提供できます。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでに公開画像 URL がある場合は、この手順をスキップできます。\n\n---\n\n* AI 肌改善シミュレーション強度の調整\n**AI 肌改善シミュレーション設定**\n\n各肌悩み（例：しわ、毛穴、赤み）について、**シミュレーション強度**を **0.0 から 1.0** のスケールで調整します：\n\n- **0.0** → *元の外観* — AI 強化は適用されません。\n- **1.0** → その悩みに対する最大限の改善。\n\n**異なる強度レベルでの期待効果：**\n\n| 強度範囲 | 効果 |\n|-----------------|--------|\n| **0.1 – 0.3**   | 微妙な改善: 細かいしわの軽微な平滑化、毛穴のわずかな軽減、赤みの穏やかな軽減。 |\n| **0.4 – 0.6**   | 中程度の改善: 質感と透明感の改善。 |\n| **0.7 – 1.0**   | 顕著な改善: 中程度から深いしわの大幅な軽減、トーンの均一化、毛穴と赤みの最小化。 |\n\n低め（例：0.2）から開始して調整します。\n\n---\n\n* AI 肌改善シミュレーション AI タスクの作成と結果のポーリング\n\n画像をアップロードし、**少なくとも 1 つ**の肌悩みのシミュレーション強度を 0.0 以上に設定した後、タスクを開始できます。API はリクエストを非同期で処理します。ステータスが `success` または `error` に達するまで、タスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/skin-simulation\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/skin-simulation/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* AI 肌改善シミュレーション仕様\n\n**カメラと撮影ガイドライン**\n\n**ライティング条件**\n環境が十分に明るく、均一に照明されていることを確認してください。強い逆光、局所的な露出オーバー、顔への大きな影を避けてください。可能な限り自然光または柔らかい屋内照明を使用してください。ピンク、ブルー、その他の色付き光源など、有色光は肌の色調の表現を歪める可能性があるため使用しないでください。\n\n**顔の位置と遮蔽**\n顔がカメラを直接向いている正面からのビューを撮影してください。頭の回転は最小限に抑え、過度な傾きや左右への向きを避けてください。額、頬、あごを含む顔全体が完全に可視であり、遮蔽されていないことを確認してください。髪、マスク、手、メガネのフレーム、携帯電話、または顔の特徴を部分的に覆うその他のオブジェクトは使用しないでください。\n\n**表情とポーズ**\n両目を開いた自然でリラックスした表情を保ってください。口は閉じたままでもわずかに開いていても構いませんが、ポーズを無理にしたり誇張したりしないでください。\n\n**フレーム内の顔サイズ**\n正確な分析に必要な十分なディテールを確保するために、顔は画像幅の少なくとも 60% を占める必要があります。被写体が小さすぎる、遠すぎる、または不適切にフレーミングされている画像の撮影は避けてください。\n\n![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_skin_analysis_01_5b5defd339.png)\n\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|AI 肌改善シミュレーション|短辺 >= 480, 長辺 <= 2560|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n| **エラーコード**                     | **説明** |\n|------------------------------------|----------------|\n| `error_below_min_image_size`       | 入力画像の解像度が最小必要サイズ未満です（例：< 256×256 ピクセル）。より高解像度の画像をアップロードしてください。 |\n| `error_exceed_max_image_size`      | 入力画像の解像度が最大許容サイズを超えています（例：> 2560×2560 ピクセル）。アップロード前に画像をリサイズまたはダウンスケールしてください。 |\n| `error_invalid_params`             | 無効なリクエストパラメータが提供されました。 |\n| `error_src_face_too_small`         | 検出された顔が画像幅の 60% 未満を占めています—正確な肌分析には小さすぎます。フレーム中央に大きく鮮明な顔がある画像を使用してください。 |\n| `error_src_face_out_of_bound`      | 検出された顔が画像境界の外側に部分的または完全に位置しています（例：顔が切り詰められすぎている）。額、頬、あごを含む顔全体が可視であり、適切にフレーミングされていることを確認してください。 |\n| `error_lighting_dark`              | 画像内の環境光が信頼できる肌分析には不十分です（例：露出不足、顔に影が支配的）。顔に均一な照明がある明るく撮影された画像をアップロードしてください。 |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n* 肌シミュレーション\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| 1～4 悩みの分析 | 4 |\n| 5～10 悩みの分析 | 6 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_skin_tone_analysis.yaml","link":"/ja/reference/ai_skin_tone_analysis","routeSlug":"/ja/reference/ai_skin_tone_analysis","label":"顔パーツの色分析","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_skin_tone_analysis/section/概要","routeSlug":"/ja/reference/ai_skin_tone_analysis/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_skin_tone_analysis/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_skin_tone_analysis/section/概要/統合ガイド"},{"type":"link","label":"入力と出力","link":"/ja/reference/ai_skin_tone_analysis/section/概要/入力と出力","routeSlug":"/ja/reference/ai_skin_tone_analysis/section/概要/入力と出力"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_skin_tone_analysis/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_skin_tone_analysis/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_skin_tone_analysis/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_skin_tone_analysis/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_skin_tone_analysis/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_skin_tone_analysis/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_skin_tone_analysis/v1.0","routeSlug":"/ja/reference/ai_skin_tone_analysis/v1.0","items":[{"label":"顔パーツの色分析タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_tone_analysis/v1.0/paths/~1s2s~1v2.0~1task~1skin-tone-analysis/post","routeSlug":"/ja/reference/ai_skin_tone_analysis/v1.0/paths/~1s2s~1v2.0~1task~1skin-tone-analysis/post","metadata":{"seo":{"title":"顔パーツの色分析タスクを実行します。","description":"このエンドポイントで肌色分析プロセスを開始します。ソースファイル（URL または File ID）を指定し、必要に応じて顔角度の厳密さレベルを指定してください。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/skin-tone-analysis"},{"label":"肌色分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_skin_tone_analysis/v1.0/paths/~1s2s~1v2.0~1task~1skin-tone-analysis~1{task_id}/get","routeSlug":"/ja/reference/ai_skin_tone_analysis/v1.0/paths/~1s2s~1v2.0~1task~1skin-tone-analysis~1{task_id}/get","metadata":{"seo":{"title":"肌色分析タスクのステータスを確認します。","description":"肌色分析タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/skin-tone-analysis/{task_id}"}]}],"metadata":{"type":"openapi","title":"顔パーツの色分析","version":"","description":"# 概要\n顔パーツの色分析では、肌の色調、目、眉毛、唇、髪の色を検出します。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/img_Face_Ratio_sec_02_02_enu_21a3d8d423.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/shade_finder_s5_poster_2_8a8f9307d2.png)\n\n\n## 統合ガイド\n* 顔パーツの色分析用の写真撮影方法\n\n  正面を向いて自撮りしてください\n  - カメラをまっすぐ見ている、1 枚のクリアな写真のみを使用してください。髪を下ろして胸にかかっている状態にし、真正面を向いていることを確認してください。\n  - 代わりに、JS Camera Kit を使用して写真を撮影してください。髪を下ろして胸にかかっている状態にしてください。結ばないでください。\n\n* AI による肌トラブル検出方法\n1. **ソース画像のリサイズ**</br>\n  サポートされている寸法に合わせて写真をリサイズします。詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n2. **File API を使用したファイルのアップロード**</br>\n  ***/s2s/v2.0/file*** API を使用して、対象ユーザーの画像をアップロードします。\n    - 画像要件\n      - 詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n    - ***重要***: File API を呼び出すだけではファイルはアップロードされません。File API のレスポンスで提供される **URL に手動でファイル** をアップロードする必要があります。その URL がアップロード先です。次に進む前に、ファイルが正常に転送されたことを確認してください。<br>\n    AI API を呼び出す前に、ファイルが正常にアップロードされていることを確認してください。File API を使用してアップロード URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスに ***file_id*** が返されます。この ID は、そのファイルに関連する AI 機能にアクセスするために使用します。\n\n      > **警告:** File API のレスポンスで提供される URL にファイルをアップロードしない場合、AI API の使用時に 500 Server Error / unknown_internal_error または 404 Not Found エラーが発生します。\n\n3. **顔パーツの色分析タスクの実行**</br>\n  アップロードが完了すると、AI はファイル ID を使用して、唇、目、眉毛、肌、髪の色調を調べます。詳細は **[入力と出力](#section/overview/Inputs-and-Outputs)** を参照してください。</br>\n  次に、File ID を指定して POST 'task/skin-tone-analysis' を呼び出すと、タスクが実行され、***task_id*** が取得されます。\n\n4. **タスクのステータスをポーリングして成功またはエラーを確認する**</BR>\nこの ***task_id*** は、GET 'task/skin-tone-analysis' によるポーリングを通じてタスクのステータスを監視するために使用され、現在のエンジンステータスを取得します。エンジンがタスクを完了するまで、ステータスは 'running' のままであり、この段階ではユニットは消費されません。\n\n    **警告:** タスクのステータスを保持期間に基づいてポーリングで確認することは必須です。保持期間内にポーリングリクエストがない場合、タスクが正常に処理されていてもタイムアウトします（ユニットが消費されます）。\n\n    > **警告:** タイムアウトしたタスクのステータスを確認すると、***InvalidTaskId*** エラーが発生します。したがって、AI タスクを実行したら、ステータスが *success* または *error* になるまで、保持期間内にステータスを確認するために **ポーリング** する必要があります。\n\n5. **成功時に AI タスクの結果を取得する**</BR>\nエンジンが入力ファイルを正常に処理し、結果画像を生成すると、タスクは 'success' ステータスに変更されます。処理済み画像の URL と、結果画像を再アップロードせずに別の AI タスクをチェーン実行できる dst_id が取得されます。\nユニットは、この場合のみ消費されます。エンジンがタスクの処理に失敗した場合、タスクのステータスは 'error' に変更され、ユニットは消費されません。</BR>\nユニットを控除する際、システムは期限切れに近いものから優先的に控除します。期限が同じ場合は、最も早い日に取得されたユニットから控除されます。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2022-08-19/2a1af800-7c69-44a5-a94c-70a4a9c4d2b0.jpg)\n\n---\n\n## 入力と出力\n* 入力\nAI は肌の色調を分析します。`face_angle_strictness_level` を調整して、入力された顔の角度のチェックの厳密さを、strict、high、medium、low、flexible の範囲で制御できます。厳密さレベルは、ピッチ、ヨー、ロールを含む顔の角度検出に適用されます。デフォルト設定は high です。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/shade_finder_s4_poster_399f34c6ef.jpg)\n\n* 出力\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_status\": \"success\",\n    \"results\": {\n      \"color\": {\n        \"eye_color\": \"#293F9B\",\n        \"eye_color_name\": \"Blue\",\n        \"lip_color\": \"#D23245\",\n        \"eyebrow_color\": \"#5B2B31\",\n        \"skin_color\": \"#b9947c\",\n        \"hair_color\": \"#a0a0a0\",\n        \"hair_color_name\": \"Auburn\"\n      }\n    }\n  }\n}\n```\n\n| **結果パラメータ** | **結果タイプ** |\n|  --- | --- |\n| `skin_color` | Hex 値 |\n| `eye_color`| Hex 値 |\n| `eye_color_name` | Amber, Brown, Green, Blue, Gray, Other |\n| `lip_color` | Hex 値 |\n| `eyebrow_color` | Hex 値 |\n| `hair_color` | Hex 値 |\n| `color.hair_color_name` | Auburn, Black, Blonde, Brown, Grey/White, Red |\n\n\n* 撮影方法のヒント:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_AI%20Skin%20Analysis_camera_f93315b088.png)\n\n> **警告:** 顔の幅は画像の幅の 60% より大きくなければなりません。\n\n---\n\n## ファイル仕様とエラー\n* サポートされている形式と寸法\n\n| AI 機能 | サポートされている寸法 | サポートされているファイルサイズ | サポートされている形式 |\n| ---- | ---- | ----  | ---- |\n| 顔パーツの色分析 | 長辺 <= 4096、1 人のみ。1080px より長い辺を持つ画像は、分析のために自動的にリサイズされます。 | < 10MB | jpg/jpeg |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_below_min_image_size | ソース画像の寸法は少なくとも 320 ピクセルである必要があります。 |\n| error_face_position_invalid | 顔は完全に可視であり、正面を向いており、画像の中央にある必要があります。 |\n| error_face_position_too_small | 検出された顔が分析には小さすぎます。 |\n| error_face_position_out_of_boundary | 顔が画像の境界を超えています。 |\n| error_face_not_forward_facing | 顔はカメラを直接向いている必要があります。 |\n| error_face_angle_upward | 顔が上向きに傾きすぎています—頭をわずかに下げてください。 |\n| error_face_angle_downward | 顔が下向きに傾きすぎています—頭をわずかに上げてください。 |\n| error_face_angle_leftward | 顔が左に回りすぎています—頭をわずかに右に回してください。 |\n| error_face_angle_rightward | 顔が右に回りすぎています—頭をわずかに左に回してください。 |\n| error_face_angle_left_tilt | 顔が左に傾きすぎています—頭を優しく右に傾けてください。 |\n| error_face_angle_right_tilt | 顔が右に傾きすぎています—頭を優しく左に傾けてください。 |\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 (global 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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| 顔パーツの色分析 V1.0 | 20 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_face_analyzer.yaml","link":"/ja/reference/ai_face_analyzer","routeSlug":"/ja/reference/ai_face_analyzer","label":"顔の比率分析","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_face_analyzer/section/概要","routeSlug":"/ja/reference/ai_face_analyzer/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_face_analyzer/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_face_analyzer/section/概要/統合ガイド"},{"type":"link","label":"入力と出力","link":"/ja/reference/ai_face_analyzer/section/概要/入力と出力","routeSlug":"/ja/reference/ai_face_analyzer/section/概要/入力と出力"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_face_analyzer/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_face_analyzer/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS カメラキット","link":"/ja/reference/ai_face_analyzer/section/概要/js","routeSlug":"/ja/reference/ai_face_analyzer/section/概要/js"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_face_analyzer/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_face_analyzer/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_face_analyzer/v1.0","routeSlug":"/ja/reference/ai_face_analyzer/v1.0","items":[{"label":"顔属性分析タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_analyzer/v1.0/paths/~1s2s~1v2.0~1task~1face-attr-analysis/post","routeSlug":"/ja/reference/ai_face_analyzer/v1.0/paths/~1s2s~1v2.0~1task~1face-attr-analysis/post","metadata":{"seo":{"title":"顔属性分析タスクを実行します。","description":"このエンドポイントは、顔属性分析プロセスを開始します。ソースファイル（URL またはファイル ID 経由）を提供し、分析する機能を指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/face-attr-analysis"},{"label":"顔属性分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_analyzer/v1.0/paths/~1s2s~1v2.0~1task~1face-attr-analysis~1{task_id}/get","routeSlug":"/ja/reference/ai_face_analyzer/v1.0/paths/~1s2s~1v2.0~1task~1face-attr-analysis~1{task_id}/get","metadata":{"seo":{"title":"顔属性分析タスクのステータスを確認します。","description":"顔属性分析タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/face-attr-analysis/{task_id}"}]}],"metadata":{"type":"openapi","title":"顔の比率分析","version":"","description":"# 概要\n顔の比率分析では、顔の構造を解析し、顔、目、眉、唇、鼻、頬骨などの形状を特定します。\n\n## 統合ガイド\n* 顔の比率分析 用に写真を撮る方法\n\n* 正面を向いた自撮り写真を撮る\n  - 鮮明な写真 1 枚で、カメラにまっすぐ向き合ってください。髪は自然な状態にし、顔全体が隠れることなく見える状態がベストです。おでこを出すために髪を流し、まっすぐ正面を見つめることで、適切な正面からのアングルを撮影してください。\n  - または、JS Camera Kit を使用して写真を撮影してください。自動的な顔アラインメント、ライティングのガイド、顔サイズ検出に従い、写真が処理に必要な基準を満たすことを確認してください。\n\n* AI による肌の悩みの検出方法\n\n1. **ソース画像のサイズを変更する**</br>\n   写真のサイズをサポートされている寸法に合わせてください。詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)**\n\n2. **File API を使用してファイルをアップロードする**</br>\n   ***/s2s/v2.0/file*** API を使用して、対象のユーザー画像をアップロードします。\n     - 画像の要件\n       - 詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** をご覧ください。\n     ***重要***: File API を呼び出すだけでは、ファイルはアップロードされません。File API レスポンスで提供された **URL** へファイルを **手動でアップロード** する必要があります。その URL がアップロード先です。続行する前に、ファイルがそこに正常に転送されたことを確認してください。<br>\n     AI API を呼び出す前に、ファイルが正常にアップロード済みであることを確認してください。File API を使用してアップロード用 URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスで ***file_id*** を受け取ります。この ID を使用して、そのファイルに関連する AI 機能にアクセスします。\n\n      > **警告:** File API レスポンスで提供された URL へファイルをアップロードせずに AI API を使用すると、500 Server Error / unknown_internal_error または 404 Not Found のエラーが発生する点にご注意ください。\n\n3. **顔の比率分析 タスクを実行する**</br>\n   アップロードが完了すると、ファイル ID を使用して分析する複数の顔属性を選択できます。 **[入力と出力](#section/overview/Inputs-and-Outputs)** を参照してください。</br>\n   その後、File ID を用いて POST 'task/face-attr-analysis' を呼び出すと、\n   enhance タスクが実行され、***task_id*** が取得されます。\n\n4. **タスクが成功またはエラーになるまでポーリングでステータスを確認する**</BR>\nこの ***task_id*** を使用して、GET 'task/face-attr-analysis' をポーリングし、現在のエンジンステータスを取得してタスクのステータスを監視します。エンジンがタスクを完了するまで、ステータスは 'running' のままで、この段階ではユニットは消費されません。\n\n    **警告:** タスクの保持期間に基づいて **ポーリング** でタスクのステータスを確認することは必須です。保持期間内にポーリングリクエストがなければ、タスクが正常に処理されていても、タスクはタイムアウトします（ユニットは消費されます）。\n\n    > **警告:** タイムアウトしたタスクのステータスを確認すると、***InvalidTaskId*** エラーが発生します。そのため、AI タスクを実行したら、保持期間内に **ポーリング** でステータスを確認し、ステータスが *success* または *error* になるまで続行する必要があります。\n\n5. **AI タスクが成功したら結果を取得する**</BR>\nエンジンが入力ファイルを正常に処理し、結果画像を生成すると、タスクは 'success' ステータスに変更されます。処理された画像の URL と、結果画像を再アップロードせずに別の AI タスクを連続実行できる dst_id を受け取ります。\nユニットは、この場合にのみ消費されます。エンジンがタスクの処理に失敗すると、タスクのステータスは 'error' に変更され、ユニットは消費されません。</BR>\nユニットを控除する際、システムは期限の近づいているものを優先します。期限が同じ場合は、最も早く取得したユニットを控除します。\n\n* 実際の使用例:\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-01-15/10a4b980-f571-4d08-8f5d-e3ed48db77aa.jpg)\n## 入力と出力\n* 顔属性:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/img_Face_Ratio_sec_01_01_enu_79380baa14.jpg)\n\n| **カテゴリ**     | **サブカテゴリ**   | **リクエストパラメータ** | **結果パラメータ** | **結果タイプ** |\n| --- | --- | --- |  --- | --- |\n| **顔** | 顔の形 | `faceShape` | `faceshape` | Triangle, Diamond, Heart, InvTriangle, Oblong, Oval, Round, Square, Unknown |\n| **年齢と性別** | 年齢 | `age` | `agegender.age` | integer |\n| | 性別 | `gender` | `agegender.gender` | female, male, unknown |\n| **目** | 目の形 | `eyeShape` | `eyelid.left_shape`, `eyelid.right_shape` | Narrow, Round, Almond |\n| | 目の大きさ | `eyeSize` | `eyelid.size` | Big, Small, Average |\n| | 目の角度 | `eyeAngle` | `eyelid.left_angle`, `eyelid.right_angle` | Downturned, Upturned, Average |\n| | 目の間隔 | `eyeDistance` | `eyelid.setting` | Close-set, Wide-Set, Average |\n| | まぶた | `eyelid` | `eyelid.left_eyelid`, `eyelid.right_eyelid` | Hooded-lid, Single-lid, Double-lid, Deep-Set |\n| **眉** | 眉の形 | `eyebrowShape` | `eyebrow.left_shape`, `eyebrow.right_shape` | Hard Angled, Soft Angled, Straight, Rounded, Obscured |\n| | 眉の太さ | `eyebrowThickness` | `eyebrow.left_body_thickness`, `eyebrow.right_body_thickness` | Dense, Sparse, Average, Unknown |\n| | 眉間 | `eyebrowDistance` | `eyebrow.gap` | Far-Apart, Close, Average |\n| | 眉の短さ | `eyebrowShortness` | `eyebrow.left_shortness`, `eyebrow.right_shortness` | Short, Normal |\n| **唇** | 唇の形 | `lipShape` | `lipshape[]` | Bow, Downturned, Full, Heavy Lower Lip, Heavy Upper Lip, Narrow, Round, Thin, Wide, Average |\n| **鼻** | 鼻の幅 | `noseWidth` | `nose.width` | Narrow, Broad, Average |\n| | 鼻の長さ | `noseLength` | `nose.length` | Long, Short, Average |\n| **頬骨**   | 頬骨 | `cheekbones` | `cheekbone.left`, `cheekbone.right`, `cheekbone.overall` | Flat Cheekbone, High Cheekbone, Low Cheekbone, Round Cheeks |\n\n\n---\n\n* 顔比率:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/img_Face_Ratio_sec_01_03_2fe8f06b92.jpg)\n\n| **サブカテゴリ** | **リクエストパラメータ** | **結果パラメータ** | **結果タイプ** | **説明** |\n| --- | --- | --- | --- | --- |\n| 水平 3 分割比率 | `horizontalThird` | `horizontal_third` | 3 分割のパーセンテージ; 解釈: Short / Balanced / Long; ゴールデンRatio: 33% : 33% : 33% | 顔の水平比率は、顔を 3 つの等しい区間に分割することに基づいています：生え際から眉の下端まで、眉の下端から鼻の下端まで、そして鼻の下端から顎先まで。3 つの区間のゴールデンRatio、つまり理想の比率は 1:1:1 です。|\n| 垂直 5 分割比率 | `verticalFifth` | `vertical_fifth` | 5 分割のパーセンテージ; 解釈 (目の間隔と目の幅): Narrow / Balanced / Wide; ゴールデンRatio: 20% : 20% : 20% : 20% : 20% | 顔の垂直比率は、顔を 5 つの区間に分割して決定されます：1 つの目の幅、2 つの目の間隔、そして目の外側から顔の縁までの空間。これらの比率のゴールデンRatioは 1:1:1:1:1 です。 |\n| 顔のアスペクト比 | `faceAspectRatio` | `face_aspect_ratio` | `[1, r]`; 解釈: Short / Balanced / Long; ゴールデンRatio: 1 : 1.46 | 顔のアスペクト比は、顔の幅と高さの関係であり、ゴールデンRatio 1:1.46 に従うことが理想です。 |\n| 目のアスペクト比 | `eyeAspectRatio` | `left_eye_aspect_ratio` `right_eye_aspect_ratio` | `[1, r]`; 解釈: Round / Balanced / Flat; ゴールデンRatio: 1 : 3 | 目のアスペクト比は、目の高さとその幅の関係であり、ゴールデンRatio 1:3 に合うことが理想です。\n |\n| 眉山アーチ比率 | `eyebrowArch` | `left_eyebrow_arch_to_eyebrow_width` `right_eyebrow_arch_to_eyebrow_width` | `[1, r]`; 解釈: Short Arch / Balanced / Long Arch; ゴールデンRatio: 1 : 1.618 | 眉山アーチの理想の比率は、眉自体の形によって決まり、最高点（アーチ）がゴールデンRatio に合致することで、美しい外観が得られます。 |\n| 目の高さから眉までの距離 | `eyeHeightToEyebrowDistance` | `left_eye_height_to_eyebrow_distance` `right_eye_height_to_eyebrow_distance` `overall_eye_height_to_eyebrow_distance` | `[1, r]`; 解釈: Short / Balanced / Long; ゴールデンRatio: 1 : 1.618 | 眉までの距離は、上まぶたの上端から眉の最高点までの垂直距離です。理想としては、目の高さを基準にゴールデンRatio 1.618:1 となることで、目と眉の間に最も調和のとれたバランスが得られます。 |\n| 鼻のアスペクト比 | `noseAspectRatio` | `nose_aspect_ratio` | `[1, r]`; 解釈: Wide / Balanced / Narrow; ゴールデンRatio: 1 : 1.618 | 鼻のアスペクト比は、鼻の幅と高さの関係であり、ゴールデンRatio 1:1.618 に従うことが理想です。 |\n| 鼻幅に対する口幅 | `noseWidthToMouthWidth` | `nose_width_to_mouth_width` | `[1, r]`; 解釈: Small / Balanced / Large; ゴールデンRatio: 1 : 1.618 | 鼻幅と口幅の比率は、鼻の幅と口の幅の関係であり、ゴールデンRatio 1:1.618 に従うことが理想です。 |\n| 鼻から唇、顎まで | `noseToLipToChin` | `nose_to_lip_to_chin` | `[1, r]`; 解釈: Short / Balanced / Long (顔の下半分の長さ); ゴールデンRatio: 1 : 1.618 | 鼻から唇、顎までの比率は、鼻の基部から唇の中心までの距離を 1 としたとき、唇の中心から顎までの理想の距離が 1.618 となる比率です。このゴールデンRatioにより、顔の対称性の原理に従い、調和のとれた下半顔が得られます。 |\n| 上唇に対する下唇 | `upperLipToLowerLip` | `upper_lip_to_lower_lip` | `[1, r]`; 解釈: Full Upper / Balanced / Full Lower; ゴールデンRatio: 1 : 1.618 | 上唇と下唇のゴールデンRatioでは、下唇の厚さは上唇の 1.618 倍であるべきとされています。この比率により、下唇が上唇よりややふっくらします。 |\n\n----\n\n* 撮影方法の提案:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI_Face_Analysis_how_to_shoot_35ca9af08e.png)\n\n> **警告:** 顔の幅は、画像の幅の 60% を超える必要があります。\n\n## ファイル仕様とエラー\n* 対応形式と解像度\n\n|AI 機能|対応解像度|対応ファイルサイズ|対応形式|\n|  ----  | ----  | ----  | ----  |\n|顔の比率分析|長辺 <= 4096、1 人のみ。1 辺が 1080px 超の画像は自動的にリサイズされて分析されます。|< 10MB|jpg/jpeg|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_below_min_image_size | ソース画像の解像度は 320 ピクセル以上である必要があります。 |\n| error_face_position_invalid | 顔は完全に露出しており、正面を向いて、画像内で中央に位置している必要があります。 |\n| error_face_position_too_small | 検出された顔は分析に小さすぎます。 |\n| error_face_position_out_of_boundary | 顔が画像の境界を超えています。 |\n| error_face_not_forward_facing | 顔はカメラに正面を向いている必要があります。 |\n| error_face_angle_upward | 顔が上向きに角度が大きすぎます—頭を少し下へ傾けてください。 |\n| error_face_angle_downward | 顔が下向きに角度が大きすぎます — 頭を少し上へ傾けてください。 |\n| error_face_angle_leftward | 顔が左に回りすぎです — 頭を少し右へ回してください。 |\n| error_face_angle_rightward | 顔が右に回りすぎです — 頭を少し左へ回してください。 |\n| error_face_angle_left_tilt | 顔が左に傾きすぎです — 頭を軽く右へ傾けてください。 |\n| error_face_angle_right_tilt | 顔が右に傾きすぎです — 頭を軽く左へ傾けてください。 |\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## JS カメラキット\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n* 顔属性・比率分析\n\n| AI 機能 | 消費ユニット数 |\n|---|---|\n| 顔構造機能 1~5 個 | 10 |\n| 顔構造機能 6~14 個 | 20 |\n| 顔構造機能 15~28 個 | 30 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_aging_simulation.yaml","link":"/ja/reference/ai_aging_simulation","routeSlug":"/ja/reference/ai_aging_simulation","label":"AI 老け顔","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_aging_simulation/section/概要","routeSlug":"/ja/reference/ai_aging_simulation/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_aging_simulation/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_aging_simulation/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_aging_simulation/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_aging_simulation/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_aging_simulation/v1.0","routeSlug":"/ja/reference/ai_aging_simulation/v1.0","items":[{"label":"AI 老け顔生成タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_aging_simulation/v1.0/paths/~1s2s~1v2.0~1task~1aging/post","routeSlug":"/ja/reference/ai_aging_simulation/v1.0/paths/~1s2s~1v2.0~1task~1aging/post","metadata":{"seo":{"title":"AI 老け顔生成タスクを実行します。","description":"このエンドポイントは、老け顔生成プロセスを開始します。ソースファイル（URL またはファイル ID 経由）を指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/aging"},{"label":"AI 老け顔生成タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_aging_simulation/v1.0/paths/~1s2s~1v2.0~1task~1aging~1{task_id}/get","routeSlug":"/ja/reference/ai_aging_simulation/v1.0/paths/~1s2s~1v2.0~1task~1aging~1{task_id}/get","metadata":{"seo":{"title":"AI 老け顔生成タスクのステータスを確認します。","description":"AI 老け顔生成タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/aging/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 老け顔","version":"","description":"# 概要\n生成 AI モデルによる AI 老け顔では、1 枚のセルフィー画像から若年期から老年期までの一連の写真を生成します。現在の年齢の推定や、未来・過去の自分の姿の確認ができます。\n\n![AI 老け顔](https://bcw-media.s3.ap-northeast-1.amazonaws.com/f42f1504_79e3_461c_a3f1_a254623d113b_b068736afb.jpg \"AI 老け顔\")\n\n1 枚の入力セルフィー画像から一連の写真を生成します。生成写真のサンプルを以下に示します。\n![AI 老け顔](https://bcw-media.s3.ap-northeast-1.amazonaws.com/U_2024_04_17_cr_12112b83e2.png \"AI 老け顔\")\n\n\n## ファイル仕様とエラー\n* 対応フォーマットと解像度\n\n| AI 機能 | 対応解像度 | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| AI 老け顔 | 長辺 <= 4096、1 人のみ。顔の姿勢制約：ヨー角 ±30° 以内、ロール角 ±20° 以内、ピッチ角 ±20° 以内。 | < 10MB | jpg/jpeg |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_below_min_image_size | 元画像の解像度は 320 ピクセル以上である必要があります。 |\n| error_face_position_invalid | 顔が完全に視認可能で、正面を向いており、画像の中央に配置されている必要があります。 |\n| error_face_position_too_small | 検出された顔が分析するには小さすぎます。 |\n| error_face_position_out_of_boundary | 顔が画像の境界を超えています。 |\n| error_face_not_forward_facing | 顔がカメラを直接向いている必要があります。 |\n| error_face_angle_upward | 顔が上向きに傾きすぎています。頭をわずかに下げてください。 |\n| error_face_angle_downward | 顔が下向きに傾きすぎています。頭をわずかに上げてください。 |\n| error_face_angle_leftward | 顔が左向きに回りすぎています。頭をわずかに右へ回してください。 |\n| error_face_angle_rightward | 顔が右向きに回りすぎています。頭をわずかに左へ回してください。 |\n| error_face_angle_left_tilt | 顔が左に傾きすぎています。頭を右にわずかに傾けてください。 |\n| error_face_angle_right_tilt | 顔が右に傾きすぎています。頭を左にわずかに傾けてください。 |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット数 |\n|---|---|\n| AI 老け顔 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_face_reshape.yaml","link":"/ja/reference/ai_face_reshape","routeSlug":"/ja/reference/ai_face_reshape","label":"顔パーツ補正","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_face_reshape/section/概要","routeSlug":"/ja/reference/ai_face_reshape/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_face_reshape/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_face_reshape/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_face_reshape/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_face_reshape/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS カメラキット","link":"/ja/reference/ai_face_reshape/section/概要/js","routeSlug":"/ja/reference/ai_face_reshape/section/概要/js"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_face_reshape/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_face_reshape/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_face_reshape/v1.0","routeSlug":"/ja/reference/ai_face_reshape/v1.0","items":[{"label":"顔パーツ補正検出タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape~1pre-process/post","routeSlug":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape~1pre-process/post","metadata":{"seo":{"title":"顔パーツ補正検出タスクを実行します。","description":"ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの index 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。"}},"httpPath":"/s2s/v2.0/task/face-reshape/pre-process"},{"label":"顔パーツ補正検出タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape~1pre-process~1{task_id}/get","routeSlug":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape~1pre-process~1{task_id}/get","metadata":{"seo":{"title":"顔パーツ補正検出タスクのステータスを確認します。","description":"ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの index 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。"}},"httpPath":"/s2s/v2.0/task/face-reshape/pre-process/{task_id}"},{"label":"顔パーツ補正タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape/post","routeSlug":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape/post","metadata":{"seo":{"title":"顔パーツ補正タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/face-reshape"},{"label":"AI 顔パーツ補正タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape~1{task_id}/get","routeSlug":"/ja/reference/ai_face_reshape/v1.0/paths/~1s2s~1v2.0~1task~1face-reshape~1{task_id}/get","metadata":{"seo":{"title":"AI 顔パーツ補正タスクのステータスを確認します。","description":"AI 顔パーツ補正タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/face-reshape/{task_id}"}]}],"metadata":{"type":"openapi","title":"顔パーツ補正","version":"","description":"# 概要\nAI 顔パーツ補正 API では、目、鼻、唇、顎、顔全体のパーツを補正します。\n美容治療ワークフローのビフォーアフタープレビューに使用します。\n\n* 鼻形成術（隆鼻術）\nオンライン鼻形成シミュレーターで、鼻梁、リフト、小鼻などをシミュレーションします。\n\n* 顎フィラー\n顎フィラーの効果をプレビューします。顎の長さと顎の形を調整します。\n\n* 唇フィラー\n唇フィラーの効果をプレビューします。唇のボリュームと形を調整します。\n\n* 眉リフト手術\n眉リフトの結果をプレビューします。\n\n\n\n## 統合ガイド\nこのガイドでは、以下を説明します：\n\nAI 顔パーツ補正 API のワークフロー：\n\n**エンドポイント:** `/s2s/v2.0/file`\n\n**認証が必要:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフローの手順:**\n\n1. **画像アップロードの準備:**\n    - アップロード用のセルフィー画像を準備します。\n    - File API `/s2s/v2.0/file` を呼び出し、アップロード URL と関連する `file_id` を取得します。\n    - 提供されたアップロード URL を使用してセルフィー画像をアップロードします。\n\n2. **複数顔の場合のオプションの前処理:**\n    - 画像内に複数の顔がある場合、セルフィー画像を前処理します。\n\n3. **顔パーツ補正効果の設定:**\n   - まず、目、顔、唇、または鼻に適した顔パーツ補正パラメータを選択します。\n\n4. **AI タスクの開始とタスク ID の取得:**\n   - 選択した効果設定とともに `file_id` を HTTP POST リクエストで `/s2s/v2.0/task/face-reshape` に送信します。\n   - このやり取りを識別する一意のタスク ID をレスポンスで待ちます。\n\n5. **タスクステータスのポーリング（継続的な確認）:**\n   - 取得した `task_id` を使用し、HTTP GET リクエスト（例：`GET /s2s/v2.0/task/face-reshape/${task_id}`）で定期的にタスクステータスをポーリングします。\n   - 以下を継続的に監視します：\n     - `Task_status = \"success\"`（処理完了）。\n     - `Task_status = \"error\"`（該当する場合、解決または再試行）。\n   - ステータスが success に遷移したら、ワークフローを適切に更新します。\n\n\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします：\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-face-reshape/](http://yce.makeupar.com/api-console/en/api-playground/ai-face-reshape/)\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\n1. 画像のアップロード\n\n    ファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。\n\n    * アップロードエンドポイント\n\n        ```\n        POST /s2s/v2.0/file\n        ```\n\n        すでに公開画像 URL がある場合は、この手順をスキップできます。\n\n---\n\n2. 効果テンプレートの準備\n\n   * 前処理\n        ピクセル座標で検出されたバウンディングボックスを出力します。結果のインデックスを使用して、後で顔パーツ補正 AI タスクを作成します。\n        ```\n        {\n            \"timed\": number,\n            \"result\": [\n                {\n                    \"left\": number,\n                    \"top\": number,\n                    \"width\": number,\n                    \"height\": number\n                }\n            ]\n        }\n        ```\n\n        * 効果テンプレート JSON スキーマ\n        ```\n        {\n            \"version\": \"1.0\",\n            \"index\": 0,\n            \"features\": {},\n            \"global\": {\n            \"skin_smooth_strength\": 50,\n            \"skin_smooth_color_intensity\": 50,\n            },\n        }\n        ```\n        index: 前処理で検出された顔のインデックス。省略可、初期値 0。\n        features: 少なくとも 1 つの非ゼロの顔パーツ補正パラメータが必要。すべてゼロにはできません。\n        skin_smooth_strength: 0~100\n        skin_smooth_color_intensity: 0~100\n\n        * 効果フォーマット\n        - 顔\n        初期範囲: -100~100\n        頬骨と顎の範囲: 0~100\n        すべての機能値が同時にゼロであってはなりません。少なくとも 1 つの機能値は非ゼロである必要があります\n        ```\n        {\n            \"cheekbones\": 0,\n            \"jaw\": 0,\n            \"face_reshape_left\": 0,\n            \"face_reshape_right\": 0,\n            \"face_width\": 0,\n            \"chin_reshape_left\": 0,\n            \"chin_reshape_right\": 0,\n            \"chin_length\": 0,\n        }\n        ```\n\n        - 目\n        初期範囲: -100~100\n        すべての機能値が同時にゼロであってはなりません。少なくとも 1 つの機能値は非ゼロである必要があります\n        ```\n        {\n            \"eye_size_left\": 0,\n            \"eye_size_right\": 0,\n            \"eye_distance\": 0,\n            \"eye_angle\": 0,\n            \"eye_height\": 0,\n            \"eye_width\": 0,\n        }\n        ```\n\n        - 鼻\n        初期範囲: -100~100\n        すべての機能値が同時にゼロであってはなりません。少なくとも 1 つの機能値は非ゼロである必要があります\n        ```\n        {\n            \"nose_bridge_width\": 0,\n            \"nose_lift\": 0,\n            \"nose_size\": 0,\n            \"nose_tip\": 0,\n            \"nose_tip_width\": 0,\n            \"nose_wing\": 0\n        }\n        ```\n\n        - 唇\n        初期範囲: -100~100\n        すべての機能値が同時にゼロであってはなりません。少なくとも 1 つの機能値は非ゼロである必要があります\n        ```\n        {\n            \"lip_size\": 0,\n            \"lip_width\": 0,\n            \"lip_peak\": 0,\n            \"lip_height_top\": 0,\n            \"lip_height_bottom\": 0,\n        }\n        ```\n\n        * ペイロードの例（送信可能）\n        ```\n        {\n        \"src_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/face_reshape_01_85c8ffc055.jpg\",\n        \"version\": \"1.0\",\n        \"source\": \"yco\",\n        \"features\": {\n            \"eye_size_left\": 80,\n            \"eye_size_right\": 80,\n            \"eye_width\": 0,\n            \"eye_height\": 0,\n            \"eye_distance\": 0,\n            \"eye_angle\": 0,\n            \"face_reshape_left\": 0,\n            \"face_reshape_right\": 0,\n            \"chin_reshape_left\": 20,\n            \"chin_reshape_right\": 20,\n            \"chin_length\": 0,\n            \"face_width\": -30,\n            \"cheekbones\": 0,\n            \"jaw\": 0,\n            \"lip_size\": 10,\n            \"lip_width\": 40,\n            \"lip_height_top\": 10,\n            \"lip_height_bottom\": 10,\n            \"lip_peak\": -10,\n            \"nose_size\": 30,\n            \"nose_lift\": -20,\n            \"nose_bridge_width\": 10,\n            \"nose_tip\": -10,\n            \"nose_wing\": 30,\n            \"nose_tip_width\": 30\n        },\n        \"global\": {\n            \"skin_smooth_strength\": 50,\n            \"skin_smooth_color_intensity\": 50\n        }\n        }\n        ```\n\n\n3. 顔パーツ補正 AI タスクの作成と結果のポーリング\n\n    画像と完全な効果ペイロードが用意できたら、タスクを作成します。API はリクエストを非同期で処理します。タスクステータスが `success` または `error` に達するまでポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n        ```\n        POST /s2s/v2.0/task/face-reshape\n        ```\n\n   * ポーリングエンドポイント\n\n        ```\n        GET /s2s/v2.0/task/face-reshape/{task_id}\n        ```\n\n---\n\n## ファイル仕様とエラー\n\n* AI 顔パーツ補正仕様\n\n**サポートされるセルフィービュー**\n画像の幅と高さの 1/20 より大きい顔の幅と高さを持つセルフィー。\nピッチ、ヨー、ロールの顔角度は 30 度未満。\n\n![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_face_reshape_01_85c8ffc055.jpg)\n\n\n\n**顔カスタマイズパラメータガイド**\n\n| カテゴリ | パラメータ        | 機能                             | 最小 (-100 / 0) | 最大 (100)    |\n| -------- | ---------------- | ------------------------------------ | -------------- | ------------ |\n| 目     | サイズ (左/右)       | 各目の全体的なサイズをスケーリング      | 小さい          | 大きい        |\n| 目     | 幅            | 水平方向の範囲を調整              | 狭い         | 広い         |\n| 目     | 高さ           | 垂直方向の範囲を調整                | 狭い / 平たい  | 丸い / 高い |\n| 目     | 間隔         | 目と目の間の間隔を調整         | 近い      | 遠い     |\n| 目     | 角度            | 回転の傾きを調整              | 内側傾き    | 外側傾き |\n| 顔     | サイズ (左/右)       | 顔の各側のサイズをスケーリング | 小さい          | 大きい        |\n| 顔     | 顎の形 (左/右) | 顎の輪郭の幅を調整           | 狭い         | 広い         |\n| 顔     | 顎の長さ      | 顎の垂直方向の長さを調整         | 短い          | 長い         |\n| 顔     | 幅            | 顔全体の幅を調整         | 狭い         | 広い         |\n| 顔     | 頬骨        | 頬骨の突出を調整         | 元 (0)   | 引き締める    |\n| 顔     | 顎              | 顎ラインの突出を調整           | 元 (0)   | 引き締める    |\n| 唇     | サイズ             | 唇全体のボリュームをスケーリング            | 小さい          | 大きい        |\n| 唇     | 幅            | 水平方向の範囲を調整              | 狭い         | 広い         |\n| 唇     | 上唇の高さ     | 上唇の厚さを調整            | 薄い           | 厚い         |\n| 唇     | 下唇の高さ     | 下唇の厚さを調整         | 薄い           | 厚い         |\n| 唇     | 山形            | キューピッドボウの鋭さを調整        | なめらか         | 明確      |\n| 鼻     | サイズ             | 鼻全体のサイズをスケーリング             | 小さい          | 大きい        |\n| 鼻     | リフト             | 垂直方向の位置を調整            | 低い            | 高い         |\n| 鼻     | 鼻梁           | 鼻梁の幅を調整                 | 狭い         | 広い         |\n| 鼻     | 鼻尖              | 鼻尖の垂直角度を調整    | 上向き             | 下向き         |\n| 鼻     | 小鼻             | 鼻孔の幅を調整                | 狭い         | 広い         |\n| 鼻     | 幅            | 鼻尖の幅を調整        | 狭い         | 広い         |\n\n**注意:** *“左”と“右”はキャラクターの視点であり、視聴者の画面の側ではありません。*\n\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|AI 顔パーツ補正|長辺 <= 4096|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n| エラーコード | 説明 |\n|  ----  | ----  |\n| RUNTIME_ERROR | 顔パーツ補正の実行中に予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真を正しく処理できませんでした。例えば、手が検出されませんでした |\n| OBJECT_DETECTION_FAIL | オブジェクト写真を正しく処理できませんでした。例えば、製品が検出されませんでした |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイル形式が正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## JS カメラキット\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 顔パーツ補正 V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_body_reshape.yaml","link":"/ja/reference/ai_body_reshape","routeSlug":"/ja/reference/ai_body_reshape","label":"体型補正","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_body_reshape/section/概要","routeSlug":"/ja/reference/ai_body_reshape/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_body_reshape/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_body_reshape/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_body_reshape/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_body_reshape/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_body_reshape/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_body_reshape/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_body_reshape/v1.0","routeSlug":"/ja/reference/ai_body_reshape/v1.0","items":[{"label":"体型補正検出タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1pre-process/post","routeSlug":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1pre-process/post","metadata":{"seo":{"title":"体型補正検出タスクを実行します。","description":"ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの index 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。"}},"httpPath":"/s2s/v2.0/task/body-reshape/pre-process"},{"label":"体型補正検出タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1pre-process~1{task_id}/get","routeSlug":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1pre-process~1{task_id}/get","metadata":{"seo":{"title":"体型補正検出タスクのステータスを確認します。","description":"体型補正検出タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/body-reshape/pre-process/{task_id}"},{"label":"体型補正タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape/post","routeSlug":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape/post","metadata":{"seo":{"title":"体型補正タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/body-reshape"},{"label":"AI 体型補正タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1{task_id}/get","routeSlug":"/ja/reference/ai_body_reshape/v1.0/paths/~1s2s~1v2.0~1task~1body-reshape~1{task_id}/get","metadata":{"seo":{"title":"AI 体型補正タスクのステータスを確認します。","description":"AI 体型補正タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/body-reshape/{task_id}"}]}],"metadata":{"type":"openapi","title":"体型補正","version":"","description":"# 概要\n体型補正 API による体型補正＆スリミング\nAI 体型補正 API で、写真のスリミングと体型補正を行います。\n\n\n## 統合ガイド\nこのガイドでは、AI 体型補正 API のワークフローについて説明します。\n\n**エンドポイント:** `/s2s/v2.0/task/body-reshape`\n\n**認証必須:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフロー手順:**\n\n1. **画像アップロードの準備:**\n    - アップロード用のセルフィー画像を準備します。\n    - ファイル API `/s2s/v2.0/file` を呼び出し、アップロード URL と関連する `file_id` を取得します。\n    - 提供されたアップロード URL を使用してセルフィー画像をアップロードします。\n\n2. **グループ写真の場合のオプション前処理:**\n    - 画像内に複数の人物がいる場合は、セルフィー画像を前処理します。\n\n3. **体型補正効果の設定:**\n    - まず、適切な体型補正パラメータを選択します。\n\n4. **AI タスクの開始とタスク ID の取得:**\n    - `file_id` と選択した効果設定を HTTP POST リクエストで `/s2s/v2.0/task/body-reshape` に送信します。\n    - この操作を識別するための一意なタスク ID をレスポンスで待ちます。\n\n5. **タスクステータスのポーリング（継続的な確認）:**\n    - 取得した `task_id` を使用し、HTTP GET リクエスト（例: `GET /s2s/v2.0/task/body-reshape/${task_id}`）で定期的にタスクステータスをポーリングします。\n    - 以下を継続的に監視します。\n    - `Task_status = \"success\"`（処理完了）。\n    - `Task_status = \"error\"`（該当する場合、解決または再試行）。\n    - ステータスが success に遷移したら、ワークフローを適切に更新します。\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします。\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-body-reshape/](http://yce.makeupar.com/api-console/en/api-playground/ai-body-reshape/)\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer トークン** を使用して API キーを含めます。\n```\nAuthorization: Bearer YOUR_API_KEY\n```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。\n\n* アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでに公開画像 URL がある場合は、この手順をスキップできます。\n\n---\n\n* 2. 効果テンプレートの準備\n\n* 前処理\nピクセル座標で検出されたバウンディングボックスを出力します。後で体型補正 AI タスクを作成するために、結果のインデックスを使用します。\n```\n{\n\"timed\": number,\n\"result\": [\n{\n \"left\": number,\n \"top\": number,\n \"width\": number,\n \"height\": number\n}\n]\n}\n```\n\n* 効果テンプレート JSON スキーマ\n```\n{\n\"version\": \"1.0\",\n\"index\": 0,\n\"features\": {\n\"arm\": 0, // -100~100\n\"breast_left\": 0, // -100~100\n\"breast_right\": 0, // -100~100\n\"hip\": 0, // -100~100\n\"hip_lift\": 0, // -100~100\n\"leg\": 0, // -100~100\n\"neck_left\": 0, // 0~100\n\"neck_right\": 0, // 0~100\n\"shoulder_left\": 0, // -100~100\n\"shoulder_right\": 0, // -100~100\n\"squared_shoulder_left\": 0, // -100~100\n\"squared_shoulder_right\": 0, // -100~100\n\"slim\": 0, // -100~100\n\"taller\": 0, // 0~100\n\"waist\": 0, // -100~100\n\"belly\": 0 // -100~100\n}\n}\n```\nindex: 前処理で検出された体のインデックス。省略可、初期値 0。\nfeatures: 少なくとも 1 つの非ゼロの体型補正パラメータが必須です。すべてゼロにはできません。\n\n\n* ペイロードの例（送信可能）\n```\n{\n \"src_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/body_reshape_02_7777218379.jpg\",\n \"version\": \"1.0\",\n \"index\": 0,\n \"features\": {\n\"arm\": 0,\n\"waist\": -20,\n\"taller\": 80,\n\"squared_shoulder_left\": 10,\n\"squared_shoulder_right\": 10,\n\"neck_left\": 0,\n\"neck_right\": 0,\n\"hip\": 10,\n\"breast_left\": 30,\n\"breast_right\": 30,\n\"slim\": -70,\n\"shoulder_left\": 30,\n\"shoulder_right\": 30,\n\"leg\": -30,\n\"hip_lift\": 0,\n\"belly\": -50\n }\n}\n```\n\n\n* 3. 体型補正 AI タスクの作成と結果のポーリング\n\n画像と完全な効果ペイロードが準備できたら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` になるまで、タスクステータスをポーリングする必要があります。\n\n* タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/body-reshape\n```\n\n* ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/body-reshape/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* AI 体型補正仕様\n\n**対応セルフィービュー**\n顔の表情と体の姿勢がはっきりと見える全身写真。\n\n![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_body_reshape_02_7777218379.jpg)\n\n**可視性とポーズの要件**\n\n| **領域** | **ソース画像で満たすべき条件** |\n|------------|---------------------------------------------------|\n| **首** | ソース画像内で首が見えている必要があります。 |\n| **腕** | 両腕（上腕、前腕、手）が完全に写っている必要があります。 |\n| **脚** | 脚全体が画像内に写っている必要があります。 |\n| **ヒップ** | ヒップが視界に入っている必要があります。 |\n| **ヒップリフト** | ヒップが視界に入っている必要があります。 |\n| **肩** | • 肩が見えている必要があります。<br>• 手を上げるポーズは許可されていません。<br>• 90° の横向きポーズは許可されていません。 |\n| **腹部** | 腹部が見えている必要があります。 |\n| **ウエスト** | ウエストが見えている必要があります。 |\n| **胸** | • 胸の領域が画像内に写っている必要があります。<br>• ヒップを含むショットである必要があります（「ヒップなしのハーフボディ」は不可）。<br>• 胸の中央が見えている必要があります。 |\n| **スリム** | 肩がフレーム内に入っている必要があります。 |\n| **身長** | • ヒップが写っている必要があります。<br>• ハーフボディビューの場合、脚が含まれている必要があります（脚が見えていること）。 |\n\n\n\n**体型補正カスタマイズパラメータガイド**\n\n| カテゴリ | パラメータ | 機能 | 最小値 (-100 / 0) | 最大値 (100) |\n| -------- | --------- | -------- | -------------------- | --------------- |\n| 腕| 強度 | 腕の太さを調整します | 細い | 太い |\n| 腹部| 強度 | 腹部の突出を調整します | 平坦 | 突出 |\n| 胸| 強度（左 / 右） | 各側の胸のボリュームを調整します | 平坦 | 豊か |\n| ヒップリフト | 強度 | ヒップの曲率とリフトを調整します（ヒップアップ効果を追加） | 引き締まった（リフトアップ＆引き締め） | 丸みのある（リフトアップ＆ボリュームアップ） |\n| ヒップサイズ | 強度 | ヒップ全体の幅を調整します | 狭い | 広い |\n| 脚| 強度 | 脚の太さを調整します | 細い | 太い|\n| 首| 強度（左 / 右） | 各側の首の輪郭とスリミングを調整します| 元通り (0)| 引き締まった |\n| 肩幅 | 強度（左 / 右） | 各肩の幅を調整します | 狭い | 広い |\n| 肩の形 | 強度（左 / 右） | 各肩の角度と傾きを調整します | 傾斜 | 四角い |\n| スリム| 強度 | 全身の曲線を調整します | スリム | 曲線的 |\n| 身長| 強度 | 人物全体の身長を調整します | 元通り (0) | 高い |\n| ウエスト| 強度 | ウエストラインの幅を調整します | 狭い | 広い |\n\n**注意:** *“左”と“右”は、視聴者の画面の左右ではなく、人物本人の視点に基づいています。*\n\n\n---\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n| ---- | ---- | ---- | ---- |\n|AI 体型補正|長辺 <= 2048、短辺 >= 320|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ---- | ---- |\n| RUNTIME_ERROR | 体型補正の実行中に予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真を正しく処理できませんでした。例えば、手が検出されませんでした |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイルフォーマットが正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 体型補正 V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_breast_augmentation.yaml","link":"/ja/reference/ai_breast_augmentation","routeSlug":"/ja/reference/ai_breast_augmentation","label":"豊胸シミュレーター","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_breast_augmentation/section/概要","routeSlug":"/ja/reference/ai_breast_augmentation/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_breast_augmentation/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_breast_augmentation/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_breast_augmentation/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_breast_augmentation/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_breast_augmentation/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_breast_augmentation/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_breast_augmentation/v1.0","routeSlug":"/ja/reference/ai_breast_augmentation/v1.0","items":[{"label":"豊胸シミュレータータスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_breast_augmentation/v1.0/paths/~1s2s~1v2.0~1task~1breast-shape/post","routeSlug":"/ja/reference/ai_breast_augmentation/v1.0/paths/~1s2s~1v2.0~1task~1breast-shape/post","metadata":{"seo":{"title":"豊胸シミュレータータスクを実行します。","description":"このエンドポイントは、豊胸シミュレーションプロセスを開始します。ソースファイル（URL または File ID 経由）を指定し、強度レベルを設定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/breast-shape"},{"label":"豊胸シミュレータータスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_breast_augmentation/v1.0/paths/~1s2s~1v2.0~1task~1breast-shape~1{task_id}/get","routeSlug":"/ja/reference/ai_breast_augmentation/v1.0/paths/~1s2s~1v2.0~1task~1breast-shape~1{task_id}/get","metadata":{"seo":{"title":"豊胸シミュレータータスクのステータスを確認します。","description":"豊胸シミュレータータスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/breast-shape/{task_id}"}]}],"metadata":{"type":"openapi","title":"豊胸シミュレーター","version":"","description":"# 概要\nAI 豊胸シミュレーターでは、写真のバスト形状を補正します。\n\nシルエットや遠近感を調整して、バスト形状を補正します。\n\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-06-18/e41b8942-22e1-4846-8f81-f41171b74558.jpg)\n\n補正は、写真内の人物に合わせて適用されます。\n\nAI 豊胸シミュレータータスクを作成して補正を実行します。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-06-18/733cedfd-2e8e-4cfc-8758-6854d923664b.jpg)\n\n---\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\nAI 豊胸シミュレーター API のワークフロー：\n\n**エンドポイント:** `/s2s/v2.0/task/breast-shape`\n\n**認証必須:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフロー手順:**\n\n1. **画像アップロード準備:**\n   - プロセスはバストショットのセルフィーを準備することから始まります。\n\n2. **AI 豊胸シミュレーター設定**\n    AI 豊胸シミュレーターでは、1（控えめ）から 3（顕著）までの強度レベルを調整して補正の度合いを制御します。\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* 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定できます。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでに公開画像 URL がある場合は、この手順をスキップできます。\n\n---\n\n* AI 豊胸シミュレーター強度の調整\n**AI 豊胸シミュレーター設定**\n\nAI 豊胸シミュレーターでは、強度レベルを **1 から 3** の間に設定して補正の度合いを制御します。\n- **レベル 1**: 控えめな補正。\n- **レベル 2**: 中程度の補正。\n- **レベル 3**: 顕著な補正。\n\n---\n\n* AI 豊胸シミュレーター AI タスクの作成と結果のポーリング\n\n画像をアップロードし、希望する強度レベルを選択した後、補正タスクを開始できます。API はリクエストを非同期で処理します。タスクステータスが `success` または `error` に達するまでポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/breast-shape\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/breast-shape/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* AI 豊胸シミュレーター仕様\n**最適な結果のための画像要件と推奨事項**\n\n- **解像度ガイドライン**:\n  入力画像の最長辺は 4096 ピクセルを超えてはなりません。最高のパフォーマンスを得るには、頭頂部から胸部を含む上半身領域が、少なくとも 1024 × 768 ピクセルの解像度でレンダリングされていることを確認してください。\n\n- **被写体要件**:\n  - 画像には少なくとも 1 人の完全に検出可能な人物が含まれている必要があります。両肩がフレーム内で明確に視認できる必要があります。\n  - 胸部領域が視認可能である必要があります。これには、被写体が主に正面を向いている場合（つまり、ヨー角が −90° から +90° の間）、衣服を着用している場合と着用していない場合の両方が含まれます。斜めや横顔のポーズよりも、正面からのビューが強く推奨されます。\n\n- **結果向上のための推奨プラクティス**:\n  - 上半身構図を優先してください：画像は上半身に特化しているか、全身が含まれている場合でも、上半身領域がフレームの大部分を占め、最長辺が 1024 ピクセルを超えている必要があります。\n  - 正面のポーズのみを使用してください。検出精度と結果の品質が低下するため、横向きや大きく回転した位置は避けてください。\n  - 胸部輪郭の最も自然な補正を得るには、水着、低カットトップス、V ネックウェアなど、バスト周辺の肌を露出させる服装を選択してください。これらのスタイルにより、AI は下層構造をよりよく推測し、控えめでリアルなデコルテ効果を生み出すことができます。\n  - システムは単一被写体の画像のみをサポートします。フレーム内に複数の人物がいる場合、処理は自動的に最も大きな可視肩幅を持つ個人（つまり、カメラに最も近い、または最も中央に整列している人物）を対象とします。\n  - 胸部領域上の遮蔽を避けてください。バッグ、バックパックストラップ、スカーフ、ネックレス、その他のアクセサリーなどのオブジェクトは、誤って除去されたり、編集時にアーティファクトを引き起こしたりする可能性があります。\n  - 衣服の外観は元の画像と異なる場合があります。補正の度合いは強度設定に依存します：補正レベルが高いほど、胸部周辺の衣服の形状、フィット感、ドレープの顕著な変更など、より顕著な変化が生じます。\n\n\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_02-1_2dfe3418c2.jpg)\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_02-2_a88356deeb.jpg)\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|AI 豊胸シミュレーター|最小: 512x384 <BR>最大: 長辺 < 4096|< 10MB|jpg/jpeg/png/heic |\n\n* エラーコード\n\n| エラーコード                      | 説明 |\n|----------------------------------|-------------|\n| `invalid_parameter`             | 提供されたパラメータが無効です。具体的には、必須フィールド（`src_keys`、`dst_keys`、または `acts`）の 1 つ以上が欠落している、形式が不正である、またはサポートされていない値を含んでいます。 |\n| `exceed_max_filesize`           | 入力画像が許可される最大ファイルサイズ（10 MB）を超えています。送信前に画像を圧縮またはリサイズしてください。 |\n| `error_download_image`          | システムがソース画像のダウンロードに失敗しました。これは、ネットワークの問題、無効な URL、またはリソースへのアクセス権限の問題が原因である可能性があります。 |\n| `error_decode_image`            | ダウンロードした画像をデコードできませんでした。これは、ファイルの破損、サポートされていない形式、または無効なバイナリデータが原因である可能性があります。 |\n| `error_nsfw_content_detected`   | ソース画像または生成された出力画像のいずれかで、潜在的に NSFW（Not Safe For Work）コンテンツが検出されました。コンプライアンスと安全上の理由から、処理は中止されました。 |\n| `error_pose`                    | 人体ポーズ推定に失敗しました。全身または上半身のスケルトンを確実に検出できなかったため、その後の解剖学的分析が実行できませんでした。 |\n| `error_breast_region_detection` | システムはポーズとセグメンテーションの手がかりに基づいてバスト領域を検出しようとしましたが、有効で識別可能な胸部領域（遮蔽、極端な角度、または視認性の不足などによる）を特定できませんでした。 |\n\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 豊胸シミュレーター V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_face_lift.yaml","link":"/ja/reference/ai_face_lift","routeSlug":"/ja/reference/ai_face_lift","label":"フェイスリフト","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_face_lift/section/概要","routeSlug":"/ja/reference/ai_face_lift/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_face_lift/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_face_lift/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_face_lift/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_face_lift/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_face_lift/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_face_lift/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_face_lift/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_face_lift/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_face_lift/v1.0","routeSlug":"/ja/reference/ai_face_lift/v1.0","items":[{"label":"フェイスリフト検出タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift~1pre-process/post","routeSlug":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift~1pre-process/post","metadata":{"seo":{"title":"フェイスリフト検出タスクを実行します。","description":"ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの index 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。"}},"httpPath":"/s2s/v2.0/task/face-lift/pre-process"},{"label":"フェイスリフト検出タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift~1pre-process~1{task_id}/get","routeSlug":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift~1pre-process~1{task_id}/get","metadata":{"seo":{"title":"フェイスリフト検出タスクのステータスを確認します。","description":"フェイスリフト検出タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/face-lift/pre-process/{task_id}"},{"label":"フェイスリフトタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift/post","routeSlug":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift/post","metadata":{"seo":{"title":"フェイスリフトタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/face-lift"},{"label":"フェイスリフトタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift~1{task_id}/get","routeSlug":"/ja/reference/ai_face_lift/v1.0/paths/~1s2s~1v2.0~1task~1face-lift~1{task_id}/get","metadata":{"seo":{"title":"フェイスリフトタスクのステータスを確認します。","description":"フェイスリフトタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/face-lift/{task_id}"}]}],"metadata":{"type":"openapi","title":"フェイスリフト","version":"","description":"# 概要\nAI フェイスリフトでは、顔の補正を行います。顔の構造、肌の質感、比率を分析して画像を再構築します。\n\n目の下のクマ、頬、額、顔全体の形状、口などの顔の領域を 0 から 100 の数値で調整できます。\n\nSNS、プロフィール写真、クリエイティブコンテンツ、ビジネス用途で使えます。\n\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/01_1_6c0d97eb51.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/01_2_8c428a25dc.jpg)\n\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\nAI フェイスリフト API のワークフロー:\n\n**エンドポイント:** `/s2s/v2.0/task/face-lift`\n\n**認証必須:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフローの手順:**\n\n1. **画像アップロードの準備:**\n  - アップロード用のセルフィー画像を準備します。\n  - File API `/s2s/v2.0/file` を呼び出して、アップロード URL と関連する `file_id` を取得します。\n  - 提供されたアップロード URL を使用してセルフィー画像をアップロードします。\n\n2. **複数顔がある場合のオプションの前処理:**\n    - 画像内に複数の顔が含まれている場合は、セルフィー画像を前処理します。\n\n3. **フェイスリフト効果の設定:**\n   - まず、適切なフェイスリフトパラメータを選択します。\n\n4. **AI タスクの開始とタスク ID の取得:**\n   - 選択した効果設定とともに `file_id` を HTTP POST リクエストで `/s2s/v2.0/task/face-lift` に送信します。\n   - この操作を識別するための一意なタスク ID をレスポンスで待ちます。\n\n5. **タスクステータスのポーリング（継続的な確認）:**\n   - 取得した `task_id` を使用して、HTTP GET リクエスト（例: `GET /s2s/v2.0/task/face-lift${task_id}`）で定期的にタスクステータスをポーリングします。\n   - 以下を継続的に監視します:\n     - `Task_status = \"success\"` （処理完了）。\n     - `Task_status = \"error\"` （該当する場合、解決または再試行）。\n   - ステータスが success に遷移したら、ワークフローを適切に更新します。\n\n\n\n\n---\n\n1.  認証\n    - リクエストヘッダーに **Bearer トークン** を使用して API キーを含めます:\n        ```\n        Authorization: Bearer YOUR_API_KEY\n        ```\n    API キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n2.  画像のアップロード\n\n    サーバーにファイルを直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定できます。\n\n    * アップロードエンドポイント\n\n        ```\n        POST /s2s/v2.0/file\n        ```\n\n    すでに公開画像 URL がある場合は、この手順をスキップできます。\n\n---\n\n3. 前処理により補正対象の顔を選択する\n\n   * 前処理 API の呼び出し\n    ピクセル座標で検出されたバウンディングボックスを出力します。後で Face Lift AI タスクを作成するために、結果のインデックスを使用します。\n        ```\n        POST /s2s/v2.0/task/face-lift/pre-process\n        ```\n\n        ```\n        {\n            \"timed\": number,\n            \"result\": [\n                {\n                    \"left\": number,\n                    \"top\": number,\n                    \"width\": number,\n                    \"height\": number\n                }\n            ]\n        }\n        ```\n\n4. Face Lift AI タスクの作成と結果のポーリング\n\n    画像と完全な効果ペイロードが準備できたら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` になるまでタスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n        ```\n        POST /s2s/v2.0/task/face-lift\n        ```\n\n   * ポーリングエンドポイント\n\n        ```\n        GET /s2s/v2.0/task/face-lift/{task_id}\n        ```\n\n---\n\n## ファイル仕様とエラー\n\n* AI フェイスリフト仕様\n\n**対応セルフィービュー**\n画像は 1920 x 1920 以下で、長辺が 640 のときに 32 x 32 ピクセルを超える十分なサイズの顔がはっきりと写っており、ロール角度がプラスマイナス 75 度以内、ヨー角度がプラスマイナス 90 度以内で撮影されている必要があります。\n\n![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_face_reshape_01_85c8ffc055.jpg)\n\n\n---\n\n* 対応フォーマットと寸法\n\n| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n|  ----  | ----  | ----  | ----  |\n| AI フェイスリフト | 長辺 <= 1920 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n| エラーコード | 説明 |\n|  ----  | ----  |\n| RUNTIME_ERROR | フェイスリフトの実行中に予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真を正しく処理できませんでした。例えば、手が検出されませんでした |\n| OBJECT_DETECTION_FAIL | オブジェクト写真を正しく処理できませんでした。例えば、製品が検出されませんでした |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイルフォーマットが正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI フェイスリフト V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_smile.yaml","link":"/ja/reference/ai_smile","routeSlug":"/ja/reference/ai_smile","label":"笑顔補正","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_smile/section/概要","routeSlug":"/ja/reference/ai_smile/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_smile/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_smile/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_smile/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_smile/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_smile/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_smile/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_smile/v1.0","routeSlug":"/ja/reference/ai_smile/v1.0","items":[{"label":"笑顔補正タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_smile/v1.0/paths/~1s2s~1v2.0~1task~1ai-smile/post","routeSlug":"/ja/reference/ai_smile/v1.0/paths/~1s2s~1v2.0~1task~1ai-smile/post","metadata":{"seo":{"title":"笑顔補正タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/ai-smile"},{"label":"笑顔補正タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_smile/v1.0/paths/~1s2s~1v2.0~1task~1ai-smile~1{task_id}/get","routeSlug":"/ja/reference/ai_smile/v1.0/paths/~1s2s~1v2.0~1task~1ai-smile~1{task_id}/get","metadata":{"seo":{"title":"笑顔補正タスクのステータスを確認します。","description":"笑顔補正タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/ai-smile/{task_id}"}]}],"metadata":{"type":"openapi","title":"笑顔補正","version":"","description":"# 概要\nAI 笑顔補正では、表情を笑顔に変換します。\n\nAI 笑顔補正は 2 種類の笑顔スタイルをサポートしています。\n\n1.  **smile_with_teeth_visible**  \n    歯が見える笑顔を作成します。\n\n2.  **closed_mouth_smile**  \n    唇を閉じた控えめな笑顔を作成します。\n\n写真の内容に合わせて笑顔タイプを選択します。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2024-03-22/5f25b0f7-5d43-421b-ae50-5def0de69f2a.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2024-12-16/4f4397e0-9e87-429a-8e39-a9d399b6602b.jpg)\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\nAI 笑顔補正 のワークフロー:\n\n**エンドポイント:** `/s2s/v2.0/task/ai-smile`\n\n**認証必須:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフロー手順:**\n\n1. **画像アップロード準備:**\n    - アップロード用の自撮り画像を準備します。\n    - File API `/s2s/v2.0/file` を呼び出して、アップロード URL と関連する `file_id` を取得します。\n    - 提供されたアップロード URL を使用して、自撮り画像をアップロードします。\n\n2. **AI タスクの開始とタスク ID の取得:**\n    - `file_id` と選択したエフェクト設定を HTTP POST リクエストで `/s2s/v2.0/task/ai-smile` に送信します。\n    - このやり取りを識別する一意のタスク ID をレスポンスで待ちます。\n\n3. **タスクステータスのポーリング（継続的な確認）:**\n    - 取得した `task_id` を使用して、HTTP GET リクエスト（例: `GET /s2s/v2.0/task/ai-smile/${task_id}`）でタスクステータスを定期的にポーリングします。\n    - 以下を継続的に監視します:\n        - `Task_status = \"success\"`（処理完了）。\n        - `Task_status = \"error\"`（該当する場合、解決または再試行）。\n    - ステータスが success に遷移したら、ワークフローを適切に更新します。\n\n---\n\n1. 認証\n- **Bearer トークン** を使用して、リクエストヘッダーに API キーを含めます:\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n2. 画像のアップロード\n\n    サーバーへファイルを直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。\n\n   * アップロードエンドポイント\n\n        ```\n        POST /s2s/v2.0/file\n        ```\n\n    すでに公開画像 URL がある場合は、この手順をスキップできます。\n\n---\n\n3. AI 笑顔タスクの作成と結果のポーリング\n\n    画像と完全なエフェクト設定が用意できたら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` になるまで、タスクステータスをポーリングする必要があります。\n\n    * タスク作成エンドポイント\n\n        ```\n        POST /s2s/v2.0/task/ai-smile\n        ```\n\n    * ポーリングエンドポイント\n\n        ```\n        GET /s2s/v2.0/task/ai-smile/{task_id}\n        ```\n\n---\n\n## ファイル仕様とエラー\n\n* AI 笑顔仕様\n\n**サポートされる自撮りビュー**\n単一人物の画像のみサポートされます。画像には、長辺が 640 ピクセルの場合に 32 x 32 ピクセルを超える十分なサイズの顔が明確に写っている必要があり、顔検出の失敗を避けるため、撮影角度はロールがプラスマイナス 75 度以内、ヨーがプラスマイナス 90 度以内である必要があります。\n\n![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_face_reshape_01_85c8ffc055.jpg)\n\n\n---\n\n* サポートされる形式と寸法\n\n| AI 機能 | サポートされる寸法 | サポートされるファイルサイズ | サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n| AI 笑顔 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png/heic |\n\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ---------- | ----------- |\n| EXCEED_MAX_FILESIZE  | 入力ファイルが最大許容サイズを超えています。 |\n| INVALID_PARAMETER     | 1 つ以上の必須パラメータが欠落、空、または不正な形式です。  |\n| ERROR_DOWNLOAD_IMAGE | ソース画像をダウンロードできませんでした。 |\n| ERROR_NO_FACE        | 提供された画像で顔が検出されませんでした。 |\n| ERROR_INFERENCE       | ワークフローの問題、実行エラー、エンコーディングエラー、または出力画像の欠落により、推論プロセスが失敗しました。 |\n| UNKNOWN_INTERNAL_ERROR | 予期しない内部エラーが発生しました。 |\n\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 笑顔 V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_fitzpatrick_skin_type.yaml","link":"/ja/reference/ai_fitzpatrick_skin_type","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type","label":"AI フィッツパトリック肌タイプ分析","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_fitzpatrick_skin_type/section/概要","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_fitzpatrick_skin_type/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_fitzpatrick_skin_type/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_fitzpatrick_skin_type/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_fitzpatrick_skin_type/v1.0","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/v1.0","items":[{"label":"AI フィッツパトリックスケールアナライザーの検出タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer~1pre-process/post","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer~1pre-process/post","metadata":{"seo":{"title":"AI フィッツパトリックスケールアナライザーの検出タスクを実行します。","description":"ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの index 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。"}},"httpPath":"/s2s/v2.0/task/fitzpatrick-scale-analyzer/pre-process"},{"label":"AI フィッツパトリックスケールアナライザーの検出タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer~1pre-process~1{task_id}/get","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer~1pre-process~1{task_id}/get","metadata":{"seo":{"title":"AI フィッツパトリックスケールアナライザーの検出タスクのステータスを確認します。","description":"AI フィッツパトリックスケールアナライザーの検出タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/fitzpatrick-scale-analyzer/pre-process/{task_id}"},{"label":"AI フィッツパトリックスケールアナライザータスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer/post","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer/post","metadata":{"seo":{"title":"AI フィッツパトリックスケールアナライザータスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/fitzpatrick-scale-analyzer"},{"label":"AI フィッツパトリック肌タイプ分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer~1{task_id}/get","routeSlug":"/ja/reference/ai_fitzpatrick_skin_type/v1.0/paths/~1s2s~1v2.0~1task~1fitzpatrick-scale-analyzer~1{task_id}/get","metadata":{"seo":{"title":"AI フィッツパトリック肌タイプ分析タスクのステータスを確認します。","description":"AI フィッツパトリック肌タイプ分析タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/fitzpatrick-scale-analyzer/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI フィッツパトリック肌タイプ分析","version":"","description":"# 概要\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2026-01-28/webp_a00e88ca-e20a-4082-89c2-9d486b03b8e8.webp)\n\n**AI フィッツパトリック肌タイプ分析**\n\nAI 駆動のフィッツパトリック肌タイプ検出をアプリケーションに統合し、カメラ入力を使用して肌タイプを分類します。e コマースおよびデジタルヘルスプラットフォームで、スキンケア、日焼け止め、製品推奨ワークフローに使用できます。\n\n**肌タイプ検出**\n\nこの API は、コンピュータビジョンと機械学習モデルを使用して肌の特徴を分析し、単一のリクエストでフィッツパトリック分類を返します。フロントエンドアプリケーション、推奨エンジン、または臨床システムによって直接消費可能な、構造化された客観的なデータを提供します。\n\nトーマス・B・フィッツパトリック博士によって導入されたフィッツパトリックスケールは、メラニンレベルと UV 曝露への反応に基づいて 6 つの肌タイプを定義し、システムが日焼けや日焼けしやすさを予測できるようにします。\n\n**分類出力**\n\nAPI は、UV 反応モデリングに基づいて、タイプ I からタイプ VI までの 6 つの標準化された肌タイプのいずれかを返します。\n\nこの出力で、カスタマイズされた製品推奨を提供し、スキンケアワークフローを自動化できます。\n\n| フィッツパトリックスケール | 肌タイプ | 太陽に対する肌の反応 |\n|  ----  | ----  | ---- |\n| タイプ I | 白 | ほぼ必ず日焼けし、日焼けしない |\n| タイプ II | ベージュ | 通常日焼けし、わずかに日焼けする |\n| タイプ III | 明るい茶色 | 時々日焼けし、徐々に日焼けする |\n| タイプ V | 中程度の茶色 | ほとんど日焼けせず、日焼けしやすい |\n| タイプ V | 濃い茶色 | 非常にまれに日焼けする |\n| タイプ VI | 非常に濃い茶色 | ほとんど日焼けしない |\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/fitapatrick_skin_type_S_02_enu_5e4343e801.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2026-03-10/webp_b9ca4198-1a9e-44df-9551-ac3ad8b65d17.webp)\n\n---\n\n## 統合ガイド\n\n**1. 画像のキャプチャ**\n十分な照明の下で正面を向いた画像をキャプチャします。顔がはっきりと見え、フレームの十分な部分を占めていることを確認してください。\n\n**2. 画像のアップロード**\n以下のエンドポイントを通じて、アップロード URL とファイル ID をリクエストします。\n\n```\nPOST /s2s/v2.0/file\n```\n\n返された URL を使用して画像をアップロードします。\nまたは、独自のストレージにホストされている公開アクセス可能な画像 URL を提供します。\n\n**3. オプションの前処理**\n\n```\nPOST /s2s/v2.0/task/fitzpatrick-scale-analyzer/pre-process\n```\n\n画像に複数の顔が含まれている場合、または明示的なターゲット選択が必要な場合にこの手順を使用します。単一の顔の画像の場合、デフォルトのインデックスで十分な場合、この手順はスキップできます。\n\n**4. 前処理結果の取得**\n\n```\nGET /s2s/v2.0/task/fitzpatrick-scale-analyzer/pre-process\n```\n\n[Webhook](../develop/webhook.md) を設定するか、ポーリングを実装してタスク結果を取得します。Webhook を使用すると、タスクが完了したときにアプリケーションが自動的に通知を受信します。ポーリングを使用すると、ステータスが running から success または error に変更されるまで、システムがタスクエンドポイントを繰り返し呼び出します。\n\n**5. 分析タスクの実行**\n\n```\nPOST /s2s/v2.0/task/fitzpatrick-scale-analyzer\n```\n\nファイル ID または画像 URL を入力として使用してタスクを送信します。レスポンスには、追跡および結果取得用の task_id が返されます。\n\n**6. タスク結果の取得**\n\n```\nGET /s2s/v2.0/task/fitzpatrick-scale-analyzer/{task_id}\n```\n\nタスク ID を使用してステータスを追跡し、結果を取得します。\n\n[Webhooks](../develop/webhook.md) を設定して、success または error ステータスでタスク完了時の非同期通知を受信できます。ステータスが running から success または error に更新されるまでタスクエンドポイントを繰り返し呼び出すことにより、ポーリングもサポートされています。\n\n使用料は、タスクが正常に完了した場合にのみ課金されます。\n\n---\n\n## ファイル仕様とエラー\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n| AI フィッツパトリック肌タイプ分析 | 長い辺の長さは 4096 ピクセルを超えてはならず、短い辺の長さは 320 ピクセル以上でなければなりません。 | < 10MB | jpg/jpeg |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_below_min_image_size | ソース画像の寸法は少なくとも 320 ピクセルでなければなりません。 |\n|error_face_position_invalid|画像内で顔が完全に可視であり、切り取られた部分がない必要があります|\n|error_face_position_too_small|写真内の顔が小さすぎて適切に分析できません|\n|error_face_position_out_of_boundary|顔が大きすぎるか、写真の端の一部が外れています|\n|error_insufficient_lighting|照明が暗すぎて分析が困難です|\n|error_face_angle_invalid|顔の角度が正しくありません。正面からの撮影では、頭を正面から 10 度以内に保ってください。横からの撮影では、角度は 15 度以上である必要があります|\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI フィッツパトリック肌タイプ分析 V1.0 | 10 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_abs_filter.yaml","link":"/ja/reference/ai_abs_filter","routeSlug":"/ja/reference/ai_abs_filter","label":"AI 腹筋","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_abs_filter/section/概要","routeSlug":"/ja/reference/ai_abs_filter/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_abs_filter/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_abs_filter/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_abs_filter/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_abs_filter/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_abs_filter/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_abs_filter/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_abs_filter/v1.0","routeSlug":"/ja/reference/ai_abs_filter/v1.0","items":[{"label":"AI 腹筋タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_abs_filter/v1.0/paths/~1s2s~1v2.0~1task~1abs-shape/post","routeSlug":"/ja/reference/ai_abs_filter/v1.0/paths/~1s2s~1v2.0~1task~1abs-shape/post","metadata":{"seo":{"title":"AI 腹筋タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/abs-shape"},{"label":"AI 腹筋タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_abs_filter/v1.0/paths/~1s2s~1v2.0~1task~1abs-shape~1{task_id}/get","routeSlug":"/ja/reference/ai_abs_filter/v1.0/paths/~1s2s~1v2.0~1task~1abs-shape~1{task_id}/get","metadata":{"seo":{"title":"AI 腹筋タスクのステータスを確認します。","description":"AI 腹筋タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/abs-shape/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 腹筋","version":"","description":"# 概要\n\n**AI 腹筋 API** で、写真に腹筋の輪郭を追加します。全身または上半身の画像をアップロードし、補正モードと強度レベルを設定します。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2024-09-27/daf70f5e-a350-46a3-8b6c-f63bd60c6cf0.jpg)\n\n対応モード:\n\n- `Six-pack`: シックスパックを追加します。\n- `Vest-line`: 腹部中央の筋肉の輪郭を強調します。\n\n---\n\n## 統合ガイド\n\n**入力要件と処理基準:**\n\n- 全身または上半身の画像をアップロードします。\n- 補正モードを選択します: `Six-pack` または `Vest-line`。\n- 希望する腹筋補正の強度レベルを選択します。\n- 画像の長辺の最大解像度は **4096 px** を超えてはなりません。\n- ソースファイルサイズは **10 MB** 未満である必要があります。\n- 両肩が確認できる、検出可能な人物が少なくとも 1 人必要です。\n- 腹部が確認できる必要があります（衣服を着用している場合も、着用していない場合も可）。\n- 対応ポーズ範囲: `−45° < yaw < 45°`。\n- 単一人物の処理に対応しています。画像内に複数の人物が写っている場合、API は可視肩面積が最も大きい人物を自動的に選択します。\n\n**ワークフロー:**\n\n1. File API を使用してファイルメタデータをアップロードします。\n2. レスポンスから署名付きアップロード URL を取得します。\n3. 返された URL に実際の画像をアップロードします。\n4. 腹筋形状補正用の AI タスクを作成します。\n5. Webhook を設定するか、完了するまでタスクステータスをポーリングします。\n6. 処理が成功したら、生成された結果画像をダウンロードします。\n\n---\n\n**ステップ 1 — File API を使用してファイルメタデータをアップロードする**\n\n`POST /s2s/v2.0/file` を使用してファイルレコードを作成し、ソース画像のアップロード詳細を受け取ります。\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\": \"full_body_photo_01_3dbd1b6683.jpg\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n**File API サンプルレスポンス:**\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**ステップ 2 — File API レスポンスの詳細を取得する**\n\nレスポンスには以下が含まれます:\n\n| フィールド | 説明 |\n| --- | --- |\n| `file_id` | AI タスクの作成に使用される識別子。 |\n| `requests.url` | 実際の画像ファイルをアップロードするための署名付き URL。 |\n| `requests.method` | アップロードメソッド、通常は `PUT`。 |\n| `requests.headers` | アップロードリクエストに必要なヘッダー。 |\n\n---\n\n**ステップ 3 — 提供された URL に画像をアップロードする**\n\nFile 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 — AI タスクを作成する**\n\n`POST /s2s/v2.0/task/abs-shape` を使用して、腹筋補正タスクを作成します。\n\n| パラメータ | 説明 | 例 |\n| --- | --- | --- |\n| `src_file_id` | File API アップロードフローから返されるファイル ID。アップロードファイルワークフローを使用する場合に必須。 | `\"SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud\"` |\n| `src_file_url` | ソース画像の直接 URL。`src_file_id` の代替として使用します。 | `\"https://example.com/selfie.jpg\"` |\n| `mode` | 補正モード。対応値は `Six-pack` と `Vest-line` です。 | `\"Six-pack\"` |\n| `intensity` | 腹筋補正の強度レベル。 | `1` |\n\n**リクエスト例:**\n\n```javascript\nconst resp = await fetch(\n  'https://yce-api-01.makeupar.com/s2s/v2.0/task/abs-shape',\n  {\n    method: 'POST',\n    headers: {\n      'Content-Type': 'application/json',\n      Authorization: 'Bearer <YOUR_TOKEN_HERE>'\n    },\n    body: JSON.stringify({\n      src_file_url: 'https://example.com/selfie.jpg',\n      mode: 'Six-pack',\n      intensity: 1\n    })\n  }\n);\n\nconst data = await resp.json();\nconsole.log(data);\n```\n\n**AI タスク API レスポンス:**\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_id\": \"SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT\"\n  }\n}\n```\n\n---\n\n**ステップ 5 — Webhook の設定またはタスク結果のポーリング**\n\n設定および検証の詳細については、[Webhook 統合ガイド](../develop/webhook.md) を参照してください。\n\nポーリングの場合は、返された `task_id` を使用してタスクステータスを確認します。\n\n```bash\ncurl --request GET \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/abs-shape/<YOUR_TASK_ID> \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json'\n```\n\n---\n\n**ステップ 6 — 結果画像の取得**\n\n処理が成功すると、レスポンスに `data.results.url` にダウンロード 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アクセストークンが無効な場合、API は `401` レスポンスを返します。\n\n```json\n{\n  \"status\": 401,\n  \"error\": \"Unauthorized\",\n  \"error_code\": \"InvalidAccessToken\"\n}\n```\n\nユースケース:\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-08-21/307f87b4-d31c-481c-86f1-478c93265a95.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-08-21/8ab8eca4-b825-4692-aef0-6ffd6176e272.jpg)\n\n---\n\n## ファイル仕様とエラー\n\n**ファイル仕様:**\n\n| 仕様 | 要件 |\n| --- | --- |\n| 画像タイプ | 全身または上半身の画像。 |\n| ソース被写体 | 両肩と腹部が確認できる、検出可能な人物 1 人。 |\n| ポーズ要件 | 対応ポーズ範囲は `−45° < yaw < 45°` です。 |\n| 複数人物の処理 | 複数の人物が検出された場合、API は可視肩面積が最も大きい人物を自動的に選択します。 |\n| 長辺の最大解像度 | 長辺は **4096 px** を超えてはなりません。 |\n| ファイルサイズ制限 | **10 MB** 未満である必要があります。 |\n| 対応フォーマット | `jpg`, `png`。 |\n\n**エラーコード:**\n\n| エラーコード | 説明 |\n| --- | --- |\n| `exceed_max_filesize` | ソース画像が最大許容寸法またはファイルサイズを超えています。長辺は 4096 px を超えてはならず、ファイルサイズは 10 MB 未満を維持する必要があります。 |\n| `error_pose` | 人物検出の欠如、肩の可視性の問題、腹部の可視性の問題、腰部領域の検出失敗、股関節キーポイントの検出失敗、または非対応のポーズ範囲により、ポーズ検出が失敗しました。 |\n| `error_nsfw_content_detected` | ソース画像または生成された結果画像に潜在的な NSFW コンテンツが検出されました。 |\n| `invalid_parameter` | ソースキー、宛先キー、アクション、モード値、強度レベル、またはタスク設定に対して無効なパラメータが提供されました。 |\n| `error_download_image` | ソース画像を正常にダウンロードできませんでした。 |\n| `error_decode_image` | ソース画像を正常にデコードできませんでした。 |\n\n**環境と依存関係:**\n\n| ツール / 言語 | 推奨ランタイムバージョン |\n| --- | --- |\n| cURL | Bash ≥ 3.2; curl ≥ 7.58 (モダンな TLS/HTTP 対応); jq ≥ 1.6 (堅牢な JSON 解析用)。 |\n| Node.js | グローバル `fetch` 対応のため Node ≥ 18。 |\n| JavaScript ブラウザ対応 | Chrome / Edge ≥ 80, Firefox ≥ 74, Safari ≥ 13.1。 |\n| PHP | モダンな TLS 互換性のため PHP ≥ 7.4; ext-curl を推奨、または OpenSSL と JSON 対応で `allow_url_fopen=On`。 |\n| Python | f-strings のため Python ≥ 3.10; requests ≥ 2.20.0。 |\n| Java | HttpClient のため Java 11+; Jackson Databind ≥ 2.12.0。 |\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 腹筋 V1.0 | 1 |\n\n---\n"}},{"type":"separator","label":"メイク","labelTranslationKey":"sidebar.reference.separators.beauty"},{"type":"group","fsPath":"@l10n/ja/reference/ai_makeup_transfer.yaml","link":"/ja/reference/ai_makeup_transfer","routeSlug":"/ja/reference/ai_makeup_transfer","label":"メイクトランスファー","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_makeup_transfer/section/概要","routeSlug":"/ja/reference/ai_makeup_transfer/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_makeup_transfer/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_makeup_transfer/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_makeup_transfer/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_makeup_transfer/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_makeup_transfer/v1.0","routeSlug":"/ja/reference/ai_makeup_transfer/v1.0","items":[{"label":"メイクトランスファータスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_makeup_transfer/v1.0/paths/~1s2s~1v2.0~1task~1mu-transfer/post","routeSlug":"/ja/reference/ai_makeup_transfer/v1.0/paths/~1s2s~1v2.0~1task~1mu-transfer/post","metadata":{"seo":{"title":"メイクトランスファータスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/mu-transfer"},{"label":"メイクトランスファータスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_makeup_transfer/v1.0/paths/~1s2s~1v2.0~1task~1mu-transfer~1{task_id}/get","routeSlug":"/ja/reference/ai_makeup_transfer/v1.0/paths/~1s2s~1v2.0~1task~1mu-transfer~1{task_id}/get","metadata":{"seo":{"title":"メイクトランスファータスクのステータスを確認します。","description":"メイクトランスファータスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/mu-transfer/{task_id}"}]}],"metadata":{"type":"openapi","title":"メイクトランスファー","version":"","description":"# 概要\nAI メイクトランスファーでは、アップロードした写真でさまざまなルックを試せます。\n\nまず、顔とその特徴がはっきりと見えるご自身の写真をターゲット画像としてアップロードします。\n\n次に、試したいメイクアップルックの写真を参照画像としてアップロードします。\n\nAI メイクトランスファー後の写真が生成されます。\n\nサンプル:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/YCE_web_Makeup_Transfer_s1_img_be53c5c345.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2024-06-24/fda62e5d-ba58-4ecf-838a-c7d5f804c77b.jpg)\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットとサイズ\n\n|AI 機能|対応サイズ|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI メイクトランスファー|1024x1024 (長辺 <= 1024)、顔は 1 名のみ、顔全体が写っている必要あり|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_src_no_face\t|ユーザー画像で顔が検出されませんでした\n|error_ref_no_face\t|参照画像で顔が検出されませんでした\n|error_src_face_too_small\t|ユーザー画像内の顔が小さすぎます\n|error_ref_face_too_small\t|参照画像内の顔が小さすぎます\n|error_src_large_face_angle\t|ユーザー画像では正面を向いた顔が必要です\n|error_ref_large_face_angle\t|参照画像では正面を向いた顔が必要です\n|error_src_eye_closed\t|ユーザー画像で目が閉じています\n|error_ref_eye_closed\t|参照画像で目が閉じています\n|error_src_eye_occluded\t|ユーザー画像で目が隠れています\n|error_ref_eye_occluded\t|参照画像で目が隠れています\n|error_src_lip_occluded\t|ユーザー画像で唇が隠れています\n|error_ref_lip_occluded\t|参照画像で唇が隠れています\n|error_inappropriate_ref_case01\t|参照画像の両目で、髪が目にかかりすぎているか、目尻横の肌領域が十分に広くありません\n|error_inappropriate_ref_case02\t|参照画像の片目で、髪が目にかかりすぎているか、目尻横の肌領域が十分に広くありません。もう片方の目が十分に正面を向いていません\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI メイクトランスファー V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/makeup_vto.yaml","link":"/ja/reference/makeup_vto","routeSlug":"/ja/reference/makeup_vto","label":"バーチャルメイク","items":[{"type":"group","label":"概要 (Overview)","link":"/ja/reference/makeup_vto/section/(overview)","routeSlug":"/ja/reference/makeup_vto/section/(overview)","items":[{"type":"link","label":"統合ガイド (Integration Guide)","link":"/ja/reference/makeup_vto/section/(overview)/(integration-guide)","routeSlug":"/ja/reference/makeup_vto/section/(overview)/(integration-guide)"},{"type":"link","label":"入力と出力","link":"/ja/reference/makeup_vto/section/(overview)/入力と出力","routeSlug":"/ja/reference/makeup_vto/section/(overview)/入力と出力"},{"type":"link","label":"ペイロードの例","link":"/ja/reference/makeup_vto/section/(overview)/ペイロードの例","routeSlug":"/ja/reference/makeup_vto/section/(overview)/ペイロードの例"},{"type":"link","label":"ファイル仕様とエラー (File Specs & Errors)","link":"/ja/reference/makeup_vto/section/(overview)/(file-specs-and-errors)","routeSlug":"/ja/reference/makeup_vto/section/(overview)/(file-specs-and-errors)"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/makeup_vto/section/(overview)/js-camera-kit","routeSlug":"/ja/reference/makeup_vto/section/(overview)/js-camera-kit"},{"type":"link","label":"ユニット消費 (Unit Consumption)","link":"/ja/reference/makeup_vto/section/(overview)/(unit-consumption)","routeSlug":"/ja/reference/makeup_vto/section/(overview)/(unit-consumption)"}]},{"type":"group","label":"V1.0","link":"/ja/reference/makeup_vto/v1.0","routeSlug":"/ja/reference/makeup_vto/v1.0","items":[{"label":"バーチャルメイクタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/makeup_vto/v1.0/paths/~1s2s~1v2.0~1task~1makeup-vto/post","routeSlug":"/ja/reference/makeup_vto/v1.0/paths/~1s2s~1v2.0~1task~1makeup-vto/post","metadata":{"seo":{"title":"バーチャルメイクタスクを実行します。","description":"このエンドポイントは、バーチャルメイク処理を開始します。ソースファイル（URL または File ID 経由）を提供し、定義されたエフェクトスキーマを使用して適用するエフェクトを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/makeup-vto"},{"label":"バーチャルメイクタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/makeup_vto/v1.0/paths/~1s2s~1v2.0~1task~1makeup-vto~1{task_id}/get","routeSlug":"/ja/reference/makeup_vto/v1.0/paths/~1s2s~1v2.0~1task~1makeup-vto~1{task_id}/get","metadata":{"seo":{"title":"バーチャルメイクタスクのステータスを確認します。","description":"バーチャルメイクタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/makeup-vto/{task_id}"}]}],"metadata":{"type":"openapi","title":"バーチャルメイク","version":"","description":"# 概要 (Overview)\nAI Makeup API (バーチャルメイク) で、セルフィー画像にバーチャルメイクを適用します。\nファンデーション、チーク、アイシャドウ、リップなどのメイクをサポートしています。\n\n**主な特徴：**\n*   **3D 顔レンダリング：** 3D 顔 AI 技術でメイクをレンダリングします。\n*   **特許技術：** ディープラーニングアルゴリズムにより実現しています。\n*   **リアルタイムの精度：** さまざまな照明条件に適応する顔トラッキング。\n*   **製品色の再現：** 実在の製品の色、質感（マットからメタリックまで）、仕上げを再現します。\n\n* 基本概念\n\n   * 色のブレンド\nディープラーニングを用いて、実在のメイク製品の色を再現します。\n\n   * 質感と仕上げの再現\nマットからメタリック、シマーからサテンまで、質感と仕上げをシミュレーションします。\n\n   * 光のバランス調整\n画像の照明条件を検出します。画像を補正してメイクを適用します。\n\n---\n\n## 統合ガイド (Integration Guide)\n\nMakeup Virtual Try-On サービスは非同期タスクとして動作します。まず、画像 URL と適用したいエフェクトのリストを指定して、メイク処理タスクを開始する必要があります。サーバーは `task_id` を返します。その後、ステータスを確認するエンドポイントを定期的にポーリングして、最終結果またはエラーを取得します。\n\n*   **エンドポイント：** `/v2.0/task/makeup-vto`\n*   **認証：** すべてのリクエストには `Authorization: Bearer <TOKEN>` が必要です。\n*   **ワークフロー：**\n    1.  **自撮り画像の準備：** 画像をアップロードするか、顔画像の既存のファイル URL を使用します。\n    1.  **タスクの開始 (`POST`)：** 画像 ID/URL とメイク設定を送信します。\n    1.  **タスク ID の取得：** レスポンスから `task_id` を取得します。\n    1.  **ステータスのポーリング (`GET`)：** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを継続します。\n\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします：\n\n**API プレイグラウンド：**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-makeup-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-makeup-virtual-try-on/)\n\n---\n\n* 認証\n- **Bearer Token** を使用して、リクエストヘッダーに API キーを含めます：\n    ```\n    Authorization: Bearer <API Key>\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n* 1. 自撮り画像のアップロード\n  元画像は次の 2 つの方法で提供できます：\n\n  - **既存の公開画像 URL を使用する**\n    アップロードの代わりに、AI タスクの開始時に公開アクセス可能な画像 URL を直接指定できます。\n\n  - **File API 経由でアップロードする**\n    次のエンドポイントを使用します：\n    ```\n    POST /s2s/v2.0/file\n    ```\n    これにより、後続のタスク実行に使用する `file_id` が返されます。\n\n    - ***重要***：File API を呼び出すだけではファイルはアップロードされません。**File API のレスポンスで提供される URL** に対して、**手動で**ファイルをアップロードする必要があります。その URL がアップロード先であるため、次に進む前にファイルが正常に転送されたことを確認してください。<br></br>\n    AI API を呼び出す前に、ファイルが正常にアップロードされていることを確認してください。File API を使用してアップロード URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスに ***file_id*** が返されます。この ID を使用して、そのファイルに関連する AI 機能にアクセスします。\n\n      > **警告：** File API のレスポンスで提供された URL にファイルをアップロードせずに AI API を使用すると、500 Server Error / unknown_internal_error または 404 Not Found エラーが発生します。\n\n\n* 2. メイクタスクの開始\n\n`POST /s2s/v2.0/task/makeup-vto`\n\n指定された画像に対して新しいバーチャルメイクタスクを開始します。このエンドポイントは非同期であり、`task_id` を返します。\n\n   * リクエストヘッダー\n\n| ヘッダー | 値 |\n|--------|-------|\n| Content-Type | `application/json` |\n| Authorization | `Bearer YOUR_API_KEY` |\n\n   * リクエストボディの例\n```json\n{\n  \"src_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/sample_Image_1_202b6bf6e6.jpg\",\n  \"effects\": [\n    {\n      \"category\": \"blush\",\n      \"pattern\": { \"name\": \"2colors6\" },\n      \"palettes\": [\n        { \"color\": \"#FF0000\", \"texture\": \"matte\", \"colorIntensity\": 50 },\n        { \"color\": \"#F2A53E\", \"texture\": \"matte\", \"colorIntensity\": 50 }\n      ]\n    },\n    {\n      \"category\": \"eye_liner\",\n      \"pattern\": { \"name\": \"3colors5\" },\n      \"palettes\": [\n        { \"color\": \"#000000\", \"texture\": \"matte\", \"colorIntensity\": 50 },\n        { \"color\": \"#BA0656\", \"texture\": \"matte\", \"colorIntensity\": 50 },\n        { \"color\": \"#089085\", \"texture\": \"matte\", \"colorIntensity\": 50 }\n      ]\n    }\n  ],\n  \"version\": \"1.0\"\n}\n```\n\n   * リクエストボディのスキーマ\n\n| フィールド | 型 | 説明 |\n|-------|------|---------|\n| `src_file_url` | string (URL) | 処理対象の自撮り画像への、公開アクセス可能な URL。 |\n| `effects` | array of Effect | 適用するメイクエフェクトオブジェクトの配列。詳細は [メークエフェクトのスキーマ](#makeup-effect-schemas) をご覧ください。 |\n| `version` | string | エフェクトペイロード構造の API バージョン。`\"1.0\"` を使用します。 |\n\n   * 成功時のレスポンス (`200 OK`)\nタスク識別子を含む JSON オブジェクトを返します。\n\n**レスポンスボディのスキーマ：**\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_id\": \"<string>\"\n  }\n}\n```\n\n**レスポンスの例：**\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_id\": \"grH0CvsgXuAIHLUzD0V1Ol34hoet3R1tvdbtiVHrDb6_UqCLKIejAIajwxrhOAfe\"\n  }\n}\n```\n\n   * エラーレスポンス (`400 Bad Request`、`401 InvalidApiKey` など)\n失敗を説明するメッセージを含む標準のエラーオブジェクトが返されます。\n\n**エラーレスポンスの例：**\n```json\n{\n  \"status\": 400,\n  \"error\": \"The operation could not be completed\",\n  \"error_code\": \"CreditInsufficiency\"\n}\n```\n\n---\n\n* 3. タスクのステータスと結果の取得\n\n`GET /s2s/v2.0/task/makeup-vto/<task_id>`\n\n進行中または完了したタスクの現在のステータスと結果を取得します。\n\n   * リクエストヘッダー\n\n| ヘッダー | 値 |\n|--------|-------|\n| Authorization | `Bearer YOUR_API_KEY` |\n\n   * パスパラメータ\n\n| パラメータ | 型 | 説明 |\n|-----------|------|---------|\n| task_id | string | タスク開始エンドポイントから返される識別子。 |\n\n   * 成功時のレスポンス (`200 OK`)\nステータスと、完了している場合は結果を含む JSON オブジェクト。\n\n**レスポンスボディのスキーマ：**\n```json\n{\n  \"data\": {\n    \"task_status\": \"<string>\", // 'success', 'error', or a processing state (e.g., 'queued', 'processing')\n    \"results\": [ // present only when task_status is 'success'\n      {\n        \"download_url\": \"<string>\" // URL to download the processed image\n      }\n    ],\n    \"failure_reason\": \"<string>\" // present only when task_status is 'error'\n  }\n}\n```\n\n**成功レスポンスの例：**\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_status\": \"success\",\n    \"results\": {\n      \"url\": \"https://s3.storage.prod/processed/image_123.jpg?token=...\"\n    }\n  }\n}\n```\n\n**エンジンエラーレスポンスの例：**\nAPI クエリは正常に送信されましたが、AI タスクの実行中にエラーが発生しました。\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_status\": \"error\",\n    \"error\": \"exceed_max_filesize\",\n    \"error_message\": \"string\",\n  }\n}\n```\n  > 注意：クエリエラーでもエンジンエラーでも、エラーが発生した場合はユニットは消費されません。\n\n**処理中レスポンスの例：**\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_status\": \"running\"\n  }\n}\n```\n\n   * エラーレスポンス\n*   `404 InvalidTaskId`：`task_id` が存在しないか、無効です。\n*   `401 InvalidApiKey`：API キーが無効か、指定されていません。\n*   `500 TaskTimeout`：タスクは正常に完了したか失敗したかのいずれかですが、保持期間を超過しています。\n\n**クエリエラーレスポンスの例：**\n```json\n{\n  \"status\": 401,\n  \"error_code\": \"InvalidApiKey\"\n}\n```\n  > 注意：クエリエラーでもエンジンエラーでも、エラーが発生した場合はユニットは消費されません。\n\n---\n## 入力と出力\n* メイクアップエフェクトスキーマ\n\nこのセクションでは、AI Makeup タスクのリクエストボディの完全な構造と制約について定義します。各エフェクトは、トップレベルの `effects` 配列内のオブジェクトです。\n\n* エフェクトコンテナ（トップレベル）\n\n```json\n{\n  \"version\": \"1.0\",\n  \"effects\": []                    // array<Effect> — Contains makeup effect objects\n}\n```\n\n* メイクアップエフェクトカテゴリ\n\n   * `skin_smooth`\n```json\n{\n  \"category\": \"skin_smooth\",           // string, const \"skin_smooth\"\n  \"skinSmoothStrength\": 50,            // integer, range: 0..100\n  \"skinSmoothColorIntensity\": 50       // integer, range: 0..100\n}\n```\n  > **注意!** ``skin_smooth`` エフェクトがリクエストに含まれていない場合、AI Makeup Engine は自動的に Skin Smooth の初期値 50 を適用します。\n  肌補正なしでメイクアップを適用したい場合は、``skinSmoothStrength`` と ``skinSmoothColorIntensity`` のすべてのパラメータを 0 に設定してください。ただし、最良の結果と最高品質のブレンドを得るには、初期値の肌補正を有効のままにすることをお勧めします。\n\n   * `blush`\n```json\n{\n  \"category\": \"blush\",                 // string, const \"blush\"\n  \"pattern\": {                         // object\n    \"name\": \"\"                         // string — MUST equal a `label` from blush.json\n  },\n  \"palettes\": [                        // array<BlushPalette>, minItems: (see colorNum in pattern)\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"texture\": \"matte\",              // string, enum [\"matte\",\"satin\",\"shimmer\"]\n      \"glowStrength\": 50,              // integer, range: 0..100 — REQUIRED if texture=\"satin\"\n      \"shimmerColor\": \"#fc288f\",       // string, hex color \"#RRGGBB\" — REQUIRED if texture=\"shimmer\"\n      \"shimmerDensity\": 50,            // integer, range: 0..100 — REQUIRED if texture=\"shimmer\"\n      \"colorIntensity\": 50             // integer, range: 0..100\n    }\n  ]\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/blush.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"1 color\",\n    \"label\": \"1color1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/483/a53cd4f4-43b6-4e19-b85a-ec7a95c6a47f.jpg\",\n    \"tags\": [\n      { \"id\": 100, \"name\": \"Blush 3D\" },\n      { \"id\": 103, \"name\": \"Oblong\" }\n    ],\n    \"colorNum\": 1\n  },\n  {\n    \"category\": \"2 colors\",\n    \"label\": \"2colors1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/147/a8d86a4b-8aa0-48d7-a716-63ec78dfb30b.jpg\",\n    \"tags\": [\n      { \"id\": 100, \"name\": \"Blush 3D\" }\n    ],\n    \"colorNum\": 2\n  },\n  {\n    \"category\": \"3 colors\",\n    \"label\": \"3colors1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/734/af8b625b-ae3a-4211-9413-f22c16a5f174.jpg\",\n    \"tags\": [\n      { \"id\": 100, \"name\": \"Blush 3D\" },\n      { \"id\": 104, \"name\": \"Round\" }\n    ],\n    \"colorNum\": 3\n  }\n]\n```\n\n\n   * `bronzer`\n```json\n{\n  \"category\": \"bronzer\",               // string, const \"bronzer\"\n  \"pattern\": { \"name\": \"\" },           // object — name MUST equal a `label` from bronzer.json\n  \"palettes\": [\n    { \"color\": \"#ff0000\", \"colorIntensity\": 50 }  // hex color, int range: 0..100\n  ]\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/bronzer.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"Bronzer\",\n    \"label\": \"Bronzer1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/973/22ff2c07-d584-4ae6-8281-c095cd121a52.jpg\",\n    \"tags\": [],\n    \"colorNum\": 1\n  }\n]\n```\n\n   * `concealer`\n```json\n{\n  \"category\": \"concealer\",             // string, const \"concealer\"\n  \"palettes\": [\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"colorIntensity\": 50,            // integer, range: 0..100\n      \"colorUnderEyeIntensity\": 50,    // integer, range: 0..100\n      \"coverageLevel\": 50              // integer, range: 0..100\n    }\n  ]\n}\n```\n\n   * `contour`\n```json\n{\n  \"category\": \"contour\",               // string, const \"contour\"\n  \"pattern\": { \"name\": \"\" },           // object — name MUST equal a `label` from contour.json\n  \"palettes\": [\n    { \"color\": \"#ff0000\", \"colorIntensity\": 50 }  // hex color, int range: 0..100\n  ]\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/contour.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"Heart face\",\n    \"label\": \"HeartFace2\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/731/49a1b3b9-b393-4bf4-b486-1493fe468436.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Invtriangle\",\n    \"label\": \"Invtriangle1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/858/a94c8cca-5f8c-4b8b-a02d-94edb6a4ad7f.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Oval face\",\n    \"label\": \"OvalFace6\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/906/644368a3-7eee-4ad9-829e-e2b3d4320fec.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Round face\",\n    \"label\": \"RoundFace4\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/106/3e455b5f-7e2d-46f7-8627-dc137051c144.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Triangle face\",\n    \"label\": \"TriangleFace2\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/528/18765180-c254-4411-a25c-c1d78f5c3d77.jpg\",\n    \"tags\": []\n  }\n]\n```\n\n   * `eyebrows`\n```json\n{\n  \"category\": \"eyebrows\",              // string, const \"eyebrows\"\n  \"pattern\": {\n    \"type\": \"shape\",                   // string, enum [\"shape\",\"color\"], default: \"shape\"\n    \"name\": \"\",                        // string, required when type=\"shape\" — label from eyebrows.json\n    \"curvature\": 0,                    // integer, range: -100..100 (shape only)\n    \"thickness\": 0,                    // integer, range: -100..100 (shape only)\n    \"definition\": 0                    // integer, range: 0..100 (shape only)\n  },\n  \"palettes\": [\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"colorIntensity\": 50,            // integer, range: 0..100\n      \"texture\": \"matte\",              // string, enum [\"matte\",\"shimmer\"]\n      \"shimmerColor\": \"#fc288f\",       // string, hex color \"#RRGGBB\" — REQUIRED if texture=\"shimmer\"\n      \"shimmerIntensity\": 50,          // integer, range: 0..100 — REQUIRED if texture=\"shimmer\"\n      \"shimmerSize\": 50,               // integer, range: 0..100 — REQUIRED if texture=\"shimmer\"\n      \"shimmerDensity\": 50             // integer, range: 0..100 — REQUIRED if texture=\"shimmer\"\n    }\n  ]\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/eyebrows.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"Arrow\",\n    \"label\": \"Arrow1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/490/1fb96bf9-979e-4327-a8c4-8c503f541f1a.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Curved\",\n    \"label\": \"Curved1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/389/1ccb300e-c7ed-4995-920e-7d1bf8da1fad.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Drama\",\n    \"label\": \"Drama2\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/196/5fb14bec-553d-4841-bba7-ca7e5e27c12e.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"High Arch\",\n    \"label\": \"HighArch1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/609/7a8676dc-6f6a-4b12-aab0-c50328e448c5.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Original\",\n    \"label\": \"Original2\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/300/123551e9-ca94-4732-89ed-5b3866678555.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Soft Arch\",\n    \"label\": \"SoftArch1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/121/2552ebf0-2705-43f7-b295-4fac21e18009.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Straight\",\n    \"label\": \"Straight1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/1/7734e777-8e51-41f1-abaf-205f0ed5e3b4.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Thin\",\n    \"label\": \"Thin1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/734/6ee10843-a251-4aa0-9183-db7f981d714d.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Upward\",\n    \"label\": \"Upward4\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/751/76578317-f475-49c7-bd96-910ccad617ef.jpg\",\n    \"tags\": []\n  }\n]\n```\n\n   * `eye_liner`\n```json\n{\n  \"category\": \"eye_liner\",             // string, const \"eye_liner\"\n  \"pattern\": { \"name\": \"\" },           // object — name MUST equal a label from eyeliner.json\n  \"palettes\": [\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"texture\": \"matte\",              // string, enum [\"matte\",\"shimmer\",\"metallic\"]\n      \"shimmerColor\": \"#fc288f\",       // string, hex color \"#RRGGBB\" — REQUIRED if texture in [\"shimmer\",\"metallic\"]\n      \"shimmerIntensity\": 50,          // integer, range: 0..100 — REQUIRED if texture in [\"shimmer\",\"metallic\"]\n      \"metallicIntensity\": 50,         // integer, range: 0..100 — REQUIRED if texture=\"metallic\"\n      \"colorIntensity\": 50             // integer, range: 0..100\n    }\n  ]\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/eyeliner.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"2 colors\",\n    \"label\": \"2colors1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/419/71d9429a-dc08-4e80-9c46-6e55631ef766.jpg\",\n    \"tags\": [\n      {\n        \"id\": 28,\n        \"name\": \"Drama\"\n      }\n    ],\n    \"colorNum\": 2\n  },\n  {\n    \"category\": \"3 colors\",\n    \"label\": \"3colors2\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/208/056aa6cd-8678-470c-b111-b7653d7ddf93.jpg\",\n    \"tags\": [\n      {\n        \"id\": 28,\n        \"name\": \"Drama\"\n      }\n    ],\n    \"colorNum\": 3\n  },\n  {\n    \"category\": \"1 color\",\n    \"label\": \"Arabic3\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/726/1919aad4-21a2-493a-a5f8-48bc99a61ba5.jpg\",\n    \"tags\": [\n      {\n        \"id\": 26,\n        \"name\": \"Arabic\"\n      }\n    ],\n    \"colorNum\": 1\n  }\n]\n```\n\n   * `eye_shadow`\n```json\n{\n  \"category\": \"eye_shadow\",            // string, const \"eye_shadow\"\n  \"pattern\": { \"name\": \"\" },           // object — name MUST equal a label from eyeshadow.json\n  \"palettes\": [\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"texture\": \"matte\",              // string, enum [\"matte\",\"shimmer\",\"metallic\"]\n      \"shimmerColor\": \"#fc288f\",       // string, hex color \"#RRGGBB\" — REQUIRED if texture in [\"shimmer\",\"metallic\"]\n      \"shimmerIntensity\": 50,          // integer, range: 0..100 — REQUIRED if texture in [\"shimmer\",\"metallic\"]\n      \"metallicIntensity\": 50,         // integer, range: 0..100 — REQUIRED if texture=\"metallic\"\n      \"colorIntensity\": 50             // integer, range: 0..100\n    }\n  ]                                    // minItems: (see colorNum in pattern)\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/eyeshadow.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"1 color\",\n    \"label\": \"1color1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/188/0322c4f9-e54d-4a6b-8072-6bb76560121a.jpg\",\n    \"tags\": [\n      {\n        \"id\": 12,\n        \"name\": \"Artistic\"\n      },\n      {\n        \"id\": 14,\n        \"name\": \"Dream\"\n      },\n      {\n        \"id\": 15,\n        \"name\": \"Trend\"\n      }\n    ],\n    \"colorNum\": 1\n  },\n  {\n    \"category\": \"2 colors\",\n    \"label\": \"2colors1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/938/3348211c-1b83-4ab2-9c6a-ce06e4aa3528.jpg\",\n    \"tags\": [\n      {\n        \"id\": 1,\n        \"name\": \"Fan shape\"\n      },\n      {\n        \"id\": 8,\n        \"name\": \"Only upper lid\"\n      }\n    ],\n    \"colorNum\": 2\n  },\n  {\n    \"category\": \"3 colors\",\n    \"label\": \"3colors1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/542/55e1b0fd-b888-47ff-bd3a-3dc1af2a7b69.jpg\",\n    \"tags\": [\n      {\n        \"id\": 1,\n        \"name\": \"Fan shape\"\n      },\n      {\n        \"id\": 8,\n        \"name\": \"Only upper lid\"\n      }\n    ],\n    \"colorNum\": 3\n  },\n  {\n    \"category\": \"4 colors\",\n    \"label\": \"4colors1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/429/29cd5839-464b-4a7a-a5c1-c7b40e9464d7.jpg\",\n    \"tags\": [\n      {\n        \"id\": 4,\n        \"name\": \"Closed banana\"\n      },\n      {\n        \"id\": 10,\n        \"name\": \"Whole eye\"\n      }\n    ],\n    \"colorNum\": 4\n  },\n  {\n    \"category\": \"5 colors\",\n    \"label\": \"5colors1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/2/824dcf7c-1273-4a30-8f1f-2137926057d6.jpg\",\n    \"tags\": [\n      {\n        \"id\": 4,\n        \"name\": \"Closed banana\"\n      },\n      {\n        \"id\": 10,\n        \"name\": \"Whole eye\"\n      }\n    ],\n    \"colorNum\": 5\n  }\n]\n```\n\n   * `eyelashes`\n```json\n{\n  \"category\": \"eyelashes\",             // string, const \"eyelashes\"\n  \"pattern\": { \"name\": \"\" },           // object — name MUST equal a label from eyelashes.json\n  \"palettes\": [\n    { \"color\": \"#ff0000\", \"colorIntensity\": 50 }  // hex color, int range: 0..100\n  ]\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/eyelashes.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"Artistic\",\n    \"label\": \"Artistic1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/146/7a8ed606-1c27-4d91-9320-c40a904f621f.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Natural\",\n    \"label\": \"Natural1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/287/cd5cae75-a1b3-48f8-8537-e6e259213901.png\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Upper&Lower\",\n    \"label\": \"Upper&Lower1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/18/2689ea2d-725e-4fa0-8563-df874ae1a83f.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Upper\",\n    \"label\": \"Upper1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/982/c99bf74e-545f-4da7-a314-f3bd84b82156.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"UpperDense\",\n    \"label\": \"UpperDense1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/888/452ec863-f0a8-40e7-aa33-31c0c39f57e2.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Winged\",\n    \"label\": \"Winged1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/825/36ab3859-eae5-49e4-9d97-161698bbb8bb.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Wispies\",\n    \"label\": \"Wispies1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/722/a2a727f6-748c-41e7-8ac0-c9c57c18c05a.png\",\n    \"tags\": []\n  }\n]\n```\n\n   * `foundation`\n```json\n{\n  \"category\": \"foundation\",            // string, const \"foundation\"\n  \"palettes\": [\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"colorIntensity\": 50,            // integer, range: 0..100\n      \"glowIntensity\": 50,             // integer, range: 0..100\n      \"coverageIntensity\": 50          // integer, range: 0..100\n    }\n  ]\n}\n```\n\n   * `highlighter`\n```json\n{\n  \"category\": \"highlighter\",           // string, const \"highlighter\"\n  \"pattern\": { \"name\": \"\" },           // object — name MUST equal a label from highlighter.json\n  \"palettes\": [\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"glowIntensity\": 50,             // integer, range: 0..100\n      \"shimmerIntensity\": 50,          // integer, range: 0..100\n      \"shimmerDensity\": 50,            // integer, range: 0..100\n      \"shimmerSize\": 50,               // integer, range: 0..100\n      \"colorIntensity\": 50             // integer, range: 0..100\n    }\n  ]\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/highlighter.json\n\n**固有のメイクアップパターンカテゴリ:**\n```json\n[\n  {\n    \"category\": \"Heart face\",\n    \"label\": \"HeartFace4\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/246/6ca40279-79cc-4918-b48a-64306009b365.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Invtriangle\",\n    \"label\": \"Invtriangle2\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/7/6b0b9760-612c-4319-bd81-855d262d8e89.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Oblong\",\n    \"label\": \"Oblong11\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/862/b7279f4e-edf2-43f3-8156-561fe5a52ec3.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Oval face\",\n    \"label\": \"OvalFace2\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/369/91097a05-9fd2-43cb-82e9-dd45e72b613b.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Round face\",\n    \"label\": \"RoundFace3\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/520/2d3ccbe2-36c3-43df-9e78-4c2c931fa431.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Square face\",\n    \"label\": \"SquareFace3\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/989/2959777b-19ca-4f4a-a023-3c8927191497.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Triangle face\",\n    \"label\": \"TriangleFace3\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/customer/guest/SkuCustomImage/765/221c1f12-c621-4567-a8ee-1433038ee8a2.jpg\",\n    \"tags\": []\n  }\n]\n```\n\n   * `lip_color`\n```json\n{\n  \"category\": \"lip_color\",             // string, const \"lip_color\"\n  \"shape\": {                           // object — driven by lipshape.json\n    \"name\": \"original\"                 // string — MUST equal a `label` from lipshape.json\n  },\n  \"morphology\": {                      // optional object\n    \"fullness\": 50,                    // integer, range: 0..100 (default: 0)\n    \"wrinkless\": 50                    // integer, range: 0..100 (default: 0)\n  },\n  \"palettes\": [                        // minItems depends on style; often ≥1\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"texture\": \"matte\",              // string, enum [\"matte\",\"gloss\",\"holographic\",\"metallic\",\"satin\",\"sheer\",\"shimmer\"]\n      \"colorIntensity\": 50,            // integer, range: 0..100\n      \"gloss\": 50,                     // int, range: 0..100 — REQUIRED if texture in [\"gloss\",\"holographic\",\"metallic\",\"sheer\",\"shimmer\"]\n      \"shimmerColor\": \"#ff0000\",       // string, hex color \"#RRGGBB\" — REQUIRED if texture in [\"holographic\",\"metallic\",\"shimmer\"]\n      \"shimmerIntensity\": 50,          // integer, range: 0..100 — REQUIRED if texture in [\"holographic\",\"metallic\",\"shimmer\"]\n      \"shimmerDensity\": 50,            // integer, range: 0..100 — REQUIRED if texture in [\"holographic\",\"metallic\",\"shimmer\"]\n      \"shimmerSize\": 50,               // integer, range: 0..100 — REQUIRED if texture in [\"holographic\",\"metallic\",\"shimmer\"]\n      \"transparencyIntensity\": 50      // integer, range: 0..100 — REQUIRED if texture in [\"gloss\",\"sheer\",\"shimmer\"]\n    }\n  ],\n  \"style\": {\n    \"type\": \"full\",                    // string, enum [\"full\",\"ombre\",\"twoTone\"]\n    \"innerRatio\": 50,                  // int, range: 0..100 — REQUIRED if type=\"ombre\"\n    \"featherStrength\": 50              // int, range: 0..100 — REQUIRED if type=\"ombre\"\n  }\n}\n```\n\n**パターンカタログ全体:**\nhttps://plugins-media.makeupar.com/wcm-saas/shapes/lipshape.json\n**異なるメイクパターンのカテゴリ:**\n```json\n[{\n        \"category\": \"general\",\n        \"label\": \"original\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/original.png\",\n        \"tags\": [\n        ]\n    }, {\n        \"category\": \"general\",\n        \"label\": \"heart-shaped\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/heart-shaped.jpg\",\n        \"tags\": [\n        ]\n    }, {\n        \"category\": \"general\",\n        \"label\": \"m-shaped\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/m-shaped.jpg\",\n        \"tags\": [\n        ]\n    }, {\n        \"category\": \"general\",\n        \"label\": \"petal\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/petal.jpg\",\n        \"tags\": [\n        ]\n    }, {\n        \"category\": \"general\",\n        \"label\": \"plump\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/plump.jpg\",\n        \"tags\": [\n        ]\n    }, {\n        \"category\": \"general\",\n        \"label\": \"pouty\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/pouty.jpg\",\n        \"tags\": [\n        ]\n    }, {\n        \"category\": \"general\",\n        \"label\": \"smile\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/smile.jpg\",\n        \"tags\": [\n        ]\n    }, {\n        \"category\": \"general\",\n        \"label\": \"vintage\",\n        \"thumbnail\": \"https://plugins-media.makeupar.com/wcm-saas/images/lipshapes/vintage.jpg\",\n        \"tags\": [\n        ]\n    }\n]\n```\n\n   * `lip_liner`\n```json\n{\n  \"category\": \"lip_liner\",             // string, const \"lip_liner\"\n  \"pattern\": { \"name\": \"\" },           // object — name MUST equal a label from lipliner.json\n  \"palettes\": [\n    {\n      \"color\": \"#ff0000\",              // string, hex color \"#RRGGBB\"\n      \"texture\": \"matte\",              // string, enum [\"matte\",\"satin\"]\n      \"colorIntensity\": 50,            // integer, range: 0..100\n      \"thickness\": 50,                 // integer, range: 0..100\n      \"smoothness\": 50                 // integer, range: 0..100\n    }\n  ]\n}\n```\n\n**パターンの全カタログ:**\nhttps://plugins-media.makeupar.com/wcm-saas/patterns/lipliner.json\n\n**異なるメイクパターンのカテゴリ:**\n```json\n[\n  {\n    \"category\": \"Large & Full\",\n    \"label\": \"Large&Full1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/417/7ac66cb2-2c7b-451c-8284-cc77791b7001.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Larger Lower\",\n    \"label\": \"LargerLower1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/878/84b2ef48-3af4-4851-86d2-b01d10db82b2.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Larger Upper\",\n    \"label\": \"LargerUpper1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/867/674f9f4c-7961-462e-8cc9-9a8acaad4168.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Natural\",\n    \"label\": \"Natural1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/258/7533c08a-cc9c-45ab-9294-5d5a8114037d.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Rosebud\",\n    \"label\": \"Rosebud1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/47/eb95e91f-6ef1-41f7-bc4f-aecd7d780c42.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Small\",\n    \"label\": \"Small1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/396/6b78e461-24a6-4c6d-afb4-88beb71f1732.jpg\",\n    \"tags\": []\n  },\n  {\n    \"category\": \"Wider\",\n    \"label\": \"Wider1\",\n    \"thumbnail\": \"https://app-cdn-01.makeupar.com/console/SkuCustomImage/guest/867/21f92b70-72b5-4a57-b4d7-81c5cce757a6.jpg\",\n    \"tags\": []\n  }\n]\n```\n\n---\n## ペイロードの例\n\nここでは、複数の効果を適用した有効な `effectJson` ペイロードの完全な例を示します。\n\n```json\n{\n  \"version\": \"1.0\",\n  \"effects\": [\n    {\n      \"category\": \"skin_smooth\",\n      \"skinSmoothStrength\": 55,\n      \"skinSmoothColorIntensity\": 45\n    },\n    {\n      \"category\": \"blush\",\n      \"pattern\": { \"name\": \"2colors1\" },\n      \"palettes\": [\n        {\n          \"color\": \"#e19f9f\",\n          \"texture\": \"matte\",\n          \"colorIntensity\": 60,\n          \"shimmerColor\": \"#d63252\",\n          \"shimmerDensity\": 50\n        },\n        {\n          \"color\": \"#c98a8a\",\n          \"texture\": \"satin\",\n          \"glowStrength\": 40,\n          \"colorIntensity\": 70\n        }\n      ]\n    },\n    {\n        \"category\": \"lip_color\",\n        \"shape\": { \"name\": \"plump\" },\n        \"morphology\": { \"fullness\": 30, \"wrinkless\": 25 },\n        \"style\": { \"type\": \"full\" },\n        \"palettes\": [\n            {\n                \"color\": \"#e11c43\",\n                \"texture\": \"gloss\",\n                \"colorIntensity\": 80,\n                \"gloss\": 75\n            }\n        ]\n    }\n  ]\n}\n```\nこの例では、`blush` は `blush.json` の `2colors1` パターンを使用しており、これには正確に 2 つのパレットが必要です。`lip_color` 効果は `lipshape.json` の `plump` シェイプを使用しています。\n\n## ファイル仕様とエラー (File Specs & Errors)\n* 対応フォーマットとサイズ\n\n|AI 機能|対応サイズ|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|バーチャルメイク (AI Makeup Virtual Try-On)|長辺 < 1920、顔の幅 >= 100|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size|ソース画像のサイズが最小値より小さくなっています（期待値: 幅 >= 100px、高さ >= 100px）\n|error_exceed_max_image_size|ソース画像のサイズが最大値より大きくなっています（期待値: 幅 < 1920px、高さ < 1080px）\n|error_face_position_invalid |顔全体が画像内に完全に写っていることを確認してください|\n|error_face_position_too_small|検出された顔が小さすぎます。カメラにもっと近づいてください|\n|error_face_position_out_of_boundary|顔が大きすぎるか、画像フレームの一部が外に出ています。位置を調整してください|\n|error_face_angle_invalid|顔の角度が正しくありません。正面を向いた写真では頭を 10° 以内に保ってください。横向きの写真では 15° 以上にしてください。|\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-string を使用するため）、requests >= 2.20.0 |\n| Java | Java 11+（HttpClient を使用するため）、Jackson Databind >= 2.12.0 |\n\n---\n\n## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費 (Unit Consumption)\n\n| AI 機能 | 消費ユニット数 |\n|---|---|\n| バーチャルメイク V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_look_vto.yaml","link":"/ja/reference/ai_look_vto","routeSlug":"/ja/reference/ai_look_vto","label":"フルメイク","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_look_vto/section/概要","routeSlug":"/ja/reference/ai_look_vto/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_look_vto/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_look_vto/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_look_vto/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_look_vto/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_look_vto/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_look_vto/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_look_vto/v1.0","routeSlug":"/ja/reference/ai_look_vto/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_look_vto/v1.0/paths/~1s2s~1v2.0~1task~1template~1look-vto/get","routeSlug":"/ja/reference/ai_look_vto/v1.0/paths/~1s2s~1v2.0~1task~1template~1look-vto/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/look-vto"},{"label":"フルメイクタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_look_vto/v1.0/paths/~1s2s~1v2.0~1task~1look-vto/post","routeSlug":"/ja/reference/ai_look_vto/v1.0/paths/~1s2s~1v2.0~1task~1look-vto/post","metadata":{"seo":{"title":"フルメイクタスクを実行します。","description":"このエンドポイントは、テンプレートとソース画像を使用してフルメイクのプロセスを開始します。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/look-vto"},{"label":"フルメイクタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_look_vto/v1.0/paths/~1s2s~1v2.0~1task~1look-vto~1{task_id}/get","routeSlug":"/ja/reference/ai_look_vto/v1.0/paths/~1s2s~1v2.0~1task~1look-vto~1{task_id}/get","metadata":{"seo":{"title":"フルメイクタスクのステータスを確認します。","description":"フルメイクタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/look-vto/{task_id}"}]}],"metadata":{"type":"openapi","title":"フルメイク","version":"","description":"# 概要\nフルメイク API では、事前定義されたメイクアップルックをユーザー写真に適用します。\n\n## 統合ガイド\nこのガイドでは、以下の手順を解説します。\n\n*   **エンドポイント:** `/s2s/v2.0/task/look-vto`\n*   **認証:** すべてのリクエストには `Authorization: Bearer <TOKEN>` が必要です\n*   **ワークフロー:**\n    1.  **セルフィーの準備:** 画像をアップロードするか、有効な画像 URL を指定します\n    1.  **ルックテンプレートのリスト取得:** 利用可能な AI ルックテンプレートを一覧表示します\n    1.  **タスクの開始 (`POST`):** 画像 ID/URL とルック ``template_id`` を送信します。\n    1.  **タスク ID の取得:** レスポンスから `task_id` を取得します。\n    1.  **ステータスのポーリング (`GET`):** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを継続します。\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします。\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-look-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-look-virtual-try-on/)\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer トークン** を使用して API キーを含めます:\n    ```\n    Authorization: Bearer <API Key>\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nサーバーにファイルを直接アップロードするか、VTO タスクペイロードに有効な画像 URL を指定します。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでに公開されている画像 URL がある場合は、この手順をスキップできます。\n\n---\n\n* 2. 利用可能なルックスタイルのリスト取得\n\nバーチャル試着に利用可能なすべての AI メイクアップルックテンプレートを取得します。\n\n   * エンドポイント\n\n```\nGET /s2s/v2.0/task/template/look-vto\n```\n\n   * クエリパラメータ\n\n| パラメータ        | 説明                     |\n| ---------------- | ------------------------------- |\n| `page_size`      | ページあたりの項目数        |\n| `starting_token` | ページネーション用トークン（省略可） |\n\n   * JavaScript リクエスト例\n\n```javascript\nconst data = null;\n\nconst xhr = new XMLHttpRequest();\nxhr.withCredentials = true;\n\nxhr.addEventListener('readystatechange', function () {\n    if (this.readyState === this.DONE) {\n        console.log(this.responseText);\n    }\n});\n\nxhr.open('GET', 'https://yce-api-01.makeupar.com/s2s/v2.0/task/template/look-vto?page_size=20&starting_token=73a3c9e69b89');\nxhr.setRequestHeader('Authorization', 'Bearer <access_token for v1, API Key for v2>');\n\nxhr.send(data);\n```\n\n   * 成功時のレスポンス例\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"templates\": [\n      {\n        \"id\": \"good_template_001\",\n        \"thumb\": \"thumbnail preview image URL\",\n        \"title\": \"Berry Smooth\",\n        \"category_name\": \"Daily\"\n      }\n    ],\n    \"next_token\": 73a3c9e69b89\n  }\n}\n```\n\n> **備考:** Look VTO タスクを作成する際は、`id` 値（`template_id`）を使用してください。\n\n---\n\n* 3. Look VTO タスクの作成と結果のポーリング\n\n画像とテンプレート ID が用意できたら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` になるまで、タスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/look-vto\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/look-vto/{task_id}\n```\n\n---\n\n   * JavaScript 実装例\n\n```javascript\nconst BASE_URL = 'https://yce-api-01.makeupar.com/s2s/v2.0/task/look-vto';\nconst START_METHOD = 'POST';\nconst HEADERS = {\n  \"Content-Type\": \"application/json\",\n  \"Authorization\": \"Bearer FT6Xa7xuU1SBU2ZW6pdAAUh9D093kuX3\"\n};\n\nconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));\n\nasync function startTask() {\n  const init = {\n    method: START_METHOD,\n    headers: HEADERS,\n    body: JSON.stringify({\n      \"src_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/sample_Image_7_fa28b2618a.jpg\",\n      \"template_id\": \"all_rosy_chic\"\n    })\n  };\n\n  const res = await fetch(BASE_URL, init);\n  if (!res.ok) throw new Error(`Start request failed: ${res.status} ${res.statusText}`);\n\n  const payload = await res.json().catch(() => ({}));\n  const taskId = payload?.data?.task_id;\n  if (!taskId) throw new Error('task_id missing: ' + JSON.stringify(payload));\n\n  console.log('[startTask] Task started, id =', taskId);\n  return taskId;\n}\n\nasync function pollTask(taskId, { intervalMs = 2000, maxAttempts = 300 } = {}) {\n  for (let attempt = 1; attempt <= maxAttempts; attempt++) {\n    const pollUrl = `${BASE_URL}/${taskId}`;\n    const res = await fetch(pollUrl, { method: 'GET', headers: HEADERS });\n\n    if (!res.ok) throw new Error(`Polling failed: ${res.status} ${res.statusText}`);\n\n    const payload = await res.json().catch(() => ({}));\n    const status = payload?.data?.task_status;\n    console.log(`[pollTask] Attempt ${attempt} status = ${status}`);\n\n    if (status === 'success') {\n      console.log('[pollTask] Success results:', payload?.data?.results);\n      return payload;\n    }\n\n    if (status === 'error') {\n      throw new Error('Task failed: ' + JSON.stringify(payload));\n    }\n\n    await sleep(intervalMs);\n  }\n\n  throw new Error('Polling timeout: Max attempts exceeded');\n}\n\n(async () => {\n  try {\n    const taskId = await startTask();\n    const final = await pollTask(taskId);\n    console.log('[main] Final response:', final);\n  } catch (e) {\n    console.error('[main] Flow error:', e);\n  }\n})();\n```\n\n---\n\n   * 成功時のレスポンス例\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"results\": {\n      \"url\": \"https://yce-us.s3-accelerate.amazonaws.com/demo/.../result.jpg?...\"\n    },\n    \"task_status\": \"success\"\n  }\n}\n```\n\n`results.url` フィールドには、最終的にレンダリングされたバーチャルメイク画像が含まれます。\n\n---\n\n* まとめ\n\n| ステップ                       | 説明                              |\n| -------------------------- | ---------------------------------------- |\n| **1. 画像のアップロード**        | 直接アップロードするか、画像 URL を指定します。 |\n| **2. ルックテンプレートのリスト取得** | ID 付きで利用可能なルックスタイルを取得します。 |\n| **3. VTO タスクの作成**     | 画像 URL + テンプレート ID を送信します。          |\n| **4. 完了のポーリング** | 最終的な結果画像 URL を取得します。     |\n\n---\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|フルメイク|長辺 < 1920、顔幅 >= 100|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size|ソース画像のサイズが最小値より小さいです（期待値: 幅 >= 100px、高さ >= 100px）\n|error_exceed_max_image_size|ソース画像のサイズが最大値より大きいです（期待値: 幅 < 1920px、高さ < 1080px）\n|error_face_position_invalid |画像内で顔全体が完全に確認できることを確認してください|\n|error_face_position_too_small|検出された顔が小さすぎます。カメラに近づいてください|\n|error_face_position_out_of_boundary|顔が大きすぎるか、画像フレームの一部が外れています。位置を調整してください|\n|error_face_angle_invalid|顔の角度が正しくありません。正面を向いた写真の場合は、頭を 10° 以内に保ってください。横を向いた写真の場合は、15° 以上にしてください。|\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-string 用), requests >= 2.20.0 |\n| Java | Java 11+ (HttpClient 用), Jackson Databind >= 2.12.0 |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| フルメイク V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_nail_transfer.yaml","link":"/ja/reference/ai_nail_transfer","routeSlug":"/ja/reference/ai_nail_transfer","label":"ネイル再現","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_nail_transfer/section/概要","routeSlug":"/ja/reference/ai_nail_transfer/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_nail_transfer/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_nail_transfer/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_nail_transfer/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_nail_transfer/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_nail_transfer/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_nail_transfer/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_nail_transfer/v1.0","routeSlug":"/ja/reference/ai_nail_transfer/v1.0","items":[{"label":"ネイル再現タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_nail_transfer/v1.0/paths/~1s2s~1v2.0~1task~1ai-nail/post","routeSlug":"/ja/reference/ai_nail_transfer/v1.0/paths/~1s2s~1v2.0~1task~1ai-nail/post","metadata":{"seo":{"title":"ネイル再現タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/ai-nail"},{"label":"ネイル再現タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_nail_transfer/v1.0/paths/~1s2s~1v2.0~1task~1ai-nail~1{task_id}/get","routeSlug":"/ja/reference/ai_nail_transfer/v1.0/paths/~1s2s~1v2.0~1task~1ai-nail~1{task_id}/get","metadata":{"seo":{"title":"ネイル再現タスクのステータスを確認します。","description":"ネイル再現タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/ai-nail/{task_id}"}]}],"metadata":{"type":"openapi","title":"ネイル再現","version":"","description":"# 概要\nネイル再現 API では、参照写真のネイルデザインを手の写真に転送します。\n\nジェルネイル、ネイルアート、ポリッシュ仕上げ、ラメ、シェルアクセント、メタリックテクスチャーなどのネイルスタイルをプレビューとして再現します。\n\n美容ブランド、サロン、ネイルアーティストで使えます。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2022-11-24/8821ab6e-9852-4401-89df-dd6005fb81fc.jpg)\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\nネイル再現 API のワークフロー：\n\n**エンドポイント:** `/s2s/v2.0/task/ai-nail`\n\n**認証必須:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフロー手順:**\n\n1. **画像アップロード準備:**\n- プロセスは、File API を使用して `/s2s/v2.0/file` に手の画像を準備することから始まります。\n\n2. **参照写真のアップロード:**\n- 希望するネイルデザインが写った参照写真を、File API を使用して `/s2s/v2.0/file` にアップロードします。すべての爪が明確に見えるようにしてください。\n\n1. **AI タスクの開始とタスク ID の取得:**\n- アップロードした画像を HTTP POST リクエストで `/s2s/v2.0/task/ai-nail` に送信します。\n- このインタラクションを識別する一意の `task_id` をレスポンスで待ちます。\n\n1. **タスクステータスのポーリング（継続的な確認）:**\n- 取得した `task_id` を使用して、HTTP GET リクエスト（例：`GET /task/${task_id}`）でタスクステータスを定期的にポーリングします。\n- 以下を継続的に監視します：\n- `Task_status = \"success\"`（処理完了）。\n- `Task_status = \"error\"`（該当する場合、解決または再試行）。\n- ステータスが success に遷移したら、ワークフローを適切に更新します。\n\nこのワークフローにより、タスクの監視と結果の取得を行います。\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer Token** を使用して API キーを含めます：\n```\nAuthorization: Bearer YOUR_API_KEY\n```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。\n\n* アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nまたは、公開画像 URL が既に存在する場合は、この手順をスキップします。\n\n---\n\n* 2. 参照写真のアップロード\n\nファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。すべての爪が見えるようにしてください。\n\n* アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\n---\n\n* 3. ネイル再現 AI タスクの作成と結果のポーリング\n\n画像と完全なエフェクトペイロードが用意できたら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` になるまで、タスクステータスをポーリングします。\n\n* タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/ai-nail\n```\n\n* ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/ai-nail/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* ネイル再現 仕様\n\n    **対応する手のビュー**\n\n    画像あたり最大 2 本の手に対応します。追加の手は無視されます。検出のため、各手が画像面積の少なくとも 0.5% を占める必要があります（FHD で約 102×102 px、2K で 139×139 px、4K 画像で 204×204 px）。\n\n    ![](https://plugins-media.makeupar.com/strapi/assets/small_webp_bare_nails_014_f6451b0343.png)\n\n\n    **対応する参照画像**\n\n    ![](https://plugins-media.makeupar.com/strapi/assets/small_webp_ref_6_341b11df3d.png)\n\n    ![](https://plugins-media.makeupar.com/strapi/assets/small_webp_ref_2_86a47c1c26.png)\n\n---\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n| ---- | ---- | ---- | ---- |\n| ネイル再現 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ---- | ---- |\n| exceed_max_filesize | 画像ファイルが大きすぎます |\n| invalid_parameter | 入力パラメータが不足しているか、形式が正しくありません |\n| error_download_image | ファイルアップロードが完了していないか、画像 URL が無効です |\n| error_inference | 推論に失敗しました。入力画像と参照画像がサポートされているか確認してください |\n| no_hand_detected | ソース画像で手が検出されませんでした |\n\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| ネイル再現 V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_nail_vto.yaml","link":"/ja/reference/ai_nail_vto","routeSlug":"/ja/reference/ai_nail_vto","label":"ネイルバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_nail_vto/section/概要","routeSlug":"/ja/reference/ai_nail_vto/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_nail_vto/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_nail_vto/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_nail_vto/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_nail_vto/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_nail_vto/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_nail_vto/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_nail_vto/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_nail_vto/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_nail_vto/v1.0","routeSlug":"/ja/reference/ai_nail_vto/v1.0","items":[{"label":"ネイルバーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_nail_vto/v1.0/paths/~1s2s~1v2.0~1task~1nail-vto/post","routeSlug":"/ja/reference/ai_nail_vto/v1.0/paths/~1s2s~1v2.0~1task~1nail-vto/post","metadata":{"seo":{"title":"ネイルバーチャル試着タスクを実行します。","description":"このエンドポイントはネイルバーチャル試着プロセスを開始します。ソースファイルと参照画像（URL または File ID 経由）、および特定のネイルエフェクト設定を提供する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/nail-vto"},{"label":"ネイルバーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_nail_vto/v1.0/paths/~1s2s~1v2.0~1task~1nail-vto~1{task_id}/get","routeSlug":"/ja/reference/ai_nail_vto/v1.0/paths/~1s2s~1v2.0~1task~1nail-vto~1{task_id}/get","metadata":{"seo":{"title":"ネイルバーチャル試着タスクのステータスを確認します。","description":"ネイルバーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/nail-vto/{task_id}"}]}],"metadata":{"type":"openapi","title":"ネイルバーチャル試着","version":"","description":"# 概要\nネイルバーチャル試着 (AI Nail Virtual Try-On) API で、ネイルのバーチャル試着を作成します。\n天然爪にも人工爪にも、さまざまなネイルスタイルをビジュアライズできます。\n\n## 統合ガイド\nこのガイドでは、次の内容について説明します:\n\nネイルバーチャル試着 API のワークフロー:\n\n**認証が必要:** `Authorization: Bearer YOUR_API_KEY`\n\n**ワークフロー手順:**\n\n1. **画像アップロードの準備:**\n    - 手の甲の画像を用意することから始めます。\n    - ファイル管理 API の `/s2s/v2.0/file` を呼び出し、アップロード URL と関連する `file_id` を取得します。\n    - 提供されたアップロード URL を使用して、ネイルのある手の甲の画像をアップロードします。\n\n2. **ネイルデザインのセットアップオプション:**\n    - まず、適したネイルカラーを選択します。お好みに合わせたカスタムシェイプも選択できます。\n\n3. **AI タスクの開始とタスク ID の取得:**\n    - アップロードした画像と選択したエフェクト設定を、HTTP POST リクエストで `/s2s/v2.0/task/nail-vto` に送信します。\n    - この操作を識別する一意のタスク ID をレスポンスで受け取ります。\n\n4. **タスクステータスのポーリング（継続的なチェック）:**\n    - 取得した `task_id` を使用して、HTTP GET リクエスト（例: `GET /s2s/v2.0/task/nail-vto/${task_id}`）で定期的にタスクステータスをポーリングします。\n    - 以下を継続的に監視します:\n        - `Task_status = \"success\"`（処理が完了）。\n        - `Task_status = \"error\"`（該当する場合、解決するか再試行）。\n    - ステータスが success に移行したら、ワークフローを適切に更新します。\n\n\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします:\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-nail-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-nail-virtual-try-on/)\n\n---\n\n* 認証\n- **Bearer Token** を使用して、リクエストヘッダーに API キーを含めます:\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n1. 画像のアップロード\n\n    ファイルをサーバーに直接アップロードするか、VTO タスクペイロードに有効な画像 URL を指定できます。\n\n    * アップロードエンドポイント\n\n        ```\n        POST /s2s/v2.0/file\n        ```\n\n    すでに公開済みの画像 URL を持っている場合は、このステップをスキップできます。\n\n---\n\n2. エフェクトテンプレートの準備\n\n    * この目的のために、4 つの異なるセットアップモードが用意されています:\n        1. カラーをカスタマイズし、現在のネイルルックに合わせる\n        2. プリセットデザインと特定のシェイプを使用して、イメージを実現する\n        3. プレスオンネイルを追加し、既存の元のネイル画像とリンクする\n        4. 一致するプレッスオンネイル製品の画像リンクを提供する \n\n    * エフェクトテンプレートの JSON スキーマ\n        ```\n        {\n            \"version\": \"1.0\",\n            \"effect_type\": \"nail_polish\", // valid values: ['nail_polish', 'press_on_nails']\n            \"effects\": [],\n            \"ref_file_ids\": []\n        }\n        ```\n\n        * エフェクト形式\n            - ネイルポリッシュ - カラー\n            ```\n            {\n                \"sub_type\": \"color\",\n                \"finger\": \"index\", // valid values: ['thumb', 'index', 'middle', 'ring', 'pinky']\n                \"color\": \"#ff0000\",\n                \"texture\": \"cream\", // valid values: ['matte', 'cream', 'metallic', 'jelly', 'sheer', 'pearl', 'textured', 'shimmer_coarse', 'shimmer_fine']\n                \"transparency\": 0, // 0-100, for textures except metallic\n                \"reflection\": 0, // 0-100\n                \"contrast\": 0, // 0-100\n                \"roughness\": 0, // 0-100\n                \"shimmer_opacity\": 0, // 0-100, for texture pearl\n                \"shimmer_size\": 0, // 0-100, for texture shimmer_coarse and shimmer_fine\n                \"textured_size\": 0, // 0-100, for texture textured\n            }\n            ```\n\n            - ネイルポリッシュ - デザイン\n            ```\n            {\n                \"sub_type\": \"design\",\n                \"finger\": \"index\", // valid values: ['thumb', 'index', 'middle', 'ring', 'pinky']\n                \"ref_file_url\": \"\",  // Optional; Either ref_file_id or ref_file_url must be filled, but only one can be selected.\n                \"ref_file_index\": 0, // This field is optional unless uploading is selected. Index corresponding to ref_file_ids under the root node\n                \"texture\": \"cream\", // valid values: ['matte', 'cream', 'metallic', 'jelly', 'sheer', 'pearl', 'textured', 'shimmer_coarse', 'shimmer_fine']\n                \"transparency\": 0, // 0-100, only for textures except metallic\n                \"reflection\": 0, // 0-100\n                \"contrast\": 0, // 0-100\n                \"roughness\": 0, // 0-100\n                \"shimmer_opacity\": 0, // 0-100, for texture pearl\n                \"shimmer_size\": 0, // 0-100, for texture shimmer_coarse and shimmer_fine\n                \"textured_size\": 0, // 0-100, for texture textured\n            }\n\n            ```\n\n            - プレスオンネイル - カラー\n            * 最新のシェイプ値は、https://plugins-media.makeupar.com/wcm-saas/shapes/nails.json で確認できます。\n            ```\n            {\n                \"sub_type\": \"color\",\n                \"finger\": \"index\", // valid values: ['thumb', 'index', 'middle', 'ring', 'pinky']\n                \"shape\": \"square_oval\", // Please check the nails.json. valid values: ['square_oval','square_square','square_squoval','squoval_oval','squoval_square','squoval_squoval','oval_oval','oval_square','oval_squoval','almond_oval','almond_square','almond_squoval','stiletto_oval','stiletto_square','stiletto_squoval],\n                \"length\": 1.0, // 0.8-2.15, for shapes except original\n                \"color\": \"#ff0000\",\n                \"texture\": \"cream\", // valid values for other shapes: ['matte', 'cream', 'metallic']\n                \"reflection\": 0, // 0-100\n                \"contrast\": 0, // 0-100\n                \"roughness\": 0 // 0-100\n            }\n            ```\n\n            - プレスオンネイル - デザイン\n            ```\n            {\n                \"sub_type\": \"design\",\n                \"finger\": \"index\", // valid values: ['thumb', 'index', 'middle', 'ring', 'pinky']\n                \"ref_file_url\": \"\",  // Optional; Either ref_file_id or ref_file_url must be filled, but only one can be selected.\n                \"ref_file_index\": 0, // This field is optional unless uploading is selected. Index corresponding to ref_file_ids under the root node\n                \"texture\": \"cream\", // valid values: ['matte', 'cream', 'metallic']\n                \"reflection\": 0, // 0-100\n                \"contrast\": 0, // 0-100\n                \"roughness\": 0, // 0-100\n            }\n\n            ```\n\n    * エフェクトテンプレートのデザインロジック\n\n        1. **エフェクトタイプの検出**（`press_on_nails` または `nail_polish`）。\n        2. **`effects` の各エントリを繰り返し:**\n\n        *`sub_type === \"color\"` の場合* → フィールドを直接マッピングし、欠落しているテクスチャ関連のキーをデフォルト値で埋めます。\n        *`sub_type === \"design\"` の場合* →\n        - ユーザーが `ref_file_url` を指定した場合は、それを保持し、`ref_file_index` を **省略**します。\n        - ユーザーがインデックス (`ref_file_index`) を指定した場合は、`ref_file_ids` が存在し、インデックスが有効であることを確認してから、`\"ref_file_id\": ref_file_ids[index]` を設定します（省略可 – 一部のバックエンドでは id ではなく生のインデックスを期待します）。\n\n        1. **数値範囲の正規化** – 範囲外の値を 0-100 または長さの制限にクランプします。\n        2. スキーマバリデーションを通過できるように、**欠落している任意のキー**をデフォルト値で追加します。\n        3. 最終オブジェクトを JSON として **シリアライズ** します（デバッグ用に compact または pretty）。\n\n    * 送信準備ができたペイロード例\n        ```\n        {\n        \"version\": \"1.0\",\n        \"src_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/nail_user_photo_01_27d4260646.jpg\",\n        \"effect_type\": \"press_on_nails\",\n        \"ref_file_ids\": [\n            \"Ks3kh+1nPpVNm8iJb5374CWtBzkT4B44NPJwXbBKqVxfjK3xgCQ+hRt9MJXBFaud\",\n            \"+Z7PSjuzigvsc3S/Yli1A4WN7c3J6NJHFqK2iUlqD2BfjK3xgCQ+hRt9MJXBFaud\"\n        ],\n        \"effects\": [\n            {\n            \"sub_type\": \"design\",\n            \"finger\": \"thumb\",\n            \"texture\": \"cream\",\n            \"reflection\": 100,\n            \"contrast\": 50,\n            \"roughness\": 0,\n            \"ref_file_index\": 0\n            },\n            {\n            \"sub_type\": \"design\",\n            \"finger\": \"index\",\n            \"texture\": \"cream\",\n            \"reflection\": 100,\n            \"contrast\": 50,\n            \"roughness\": 0,\n            \"ref_file_index\": 1\n            },\n            {\n            \"sub_type\": \"design\",\n            \"finger\": \"middle\",\n            \"texture\": \"cream\",\n            \"reflection\": 100,\n            \"contrast\": 50,\n            \"roughness\": 0,\n            \"ref_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/press_on_nail_06_3_9ce2ddc47a.png\"\n            },\n            {\n            \"sub_type\": \"design\",\n            \"finger\": \"pinky\",\n            \"texture\": \"cream\",\n            \"reflection\": 100,\n            \"contrast\": 50,\n            \"roughness\": 0,\n            \"ref_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/press_on_nail_06_5_f6e46dd56f.png\"\n            },\n            {\n            \"sub_type\": \"design\",\n            \"finger\": \"ring\",\n            \"texture\": \"cream\",\n            \"reflection\": 100,\n            \"contrast\": 50,\n            \"roughness\": 0,\n            \"ref_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/press_on_nail_06_4_2103ca8cac.png\"\n            }\n        ]\n        }\n        ```\n\n\n3. ネイル VTO タスクの作成と結果のポーリング\n\n    画像と完全なエフェクトペイロードが揃ったら、タスクを作成します。API はリクエストを非同期で処理します。`success` または `error` になるまで、タスクステータスをポーリングする必要があります。\n\n    * タスク作成エンドポイント\n\n        ```\n        POST /s2s/v2.0/task/nail-vto\n        ```\n\n    * ポーリングエンドポイント\n\n        ```\n        GET /s2s/v2.0/task/nail-vto/{task_id}\n        ```\n\n---\n\n## ファイル仕様とエラー\n\n* ネイルバーチャル試着の仕様\n\n**対応ネイルビュー**\n遮蔽物のない、明確な正面ビューの 1 枚のネイル画像。\n\n| 項目 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n| --- | --- | --- | --- |\n| ネイルデザイン画像 - ネイルポリッシュ | *   271 px ≤ 幅 ≤ 542 px<br>*   522 px ≤ 高さ ≤ 1044 px<br>*   72ppi 以上<br>画像は中央から適用され、バーチャル試着効果はユーザーの爪の長さに応じて変わります。 | ≤ 1MB | png |\n| ネイルデザイン画像 - プレスオンネイル | *   271 px ≤ 幅 ≤ 542 px<br>*   522 px ≤ 高さ ≤ 1044 px<br>*   0.5 ≤ 画像のアスペクト比 (H/W) ≤ 3.5<br>*   72ppi 以上<br>画像のコンテンツ、シェイプ、長さの設定はすべて、バーチャル試着効果の生成に使用されます。<br>適切な画像スケーリングを確保するためにユーザーの爪の幅が検出されるため、正しいアスペクト比で各爪用に別の画像を作成することをお勧めします。<br>プレッスオンネイルのデザイン画像サンプルをダウンロードし、詳細については画像ガイドラインを参照してください。ダウンロード: [Nail_Design_Image_Guidelines.pdf](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/You_Cam_API_AI_Nail_Virtual_Try_On_Press_on_Nail_Design_Image_Guidelines_a229b51750.pdf) | ≤ 1MB​ | 透明背景付き png |\n\nプレッスオンネイルデザイン画像サンプル:\n\n![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_press_on_nail_06_5_f6e46dd56f.png)\n\n[<img src=\"https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/youcamapi_press_on_nail_design_image_sample_de6bd64f20.png\" width=\"60\"/>](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/youcamapi_press_on_nail_design_image_sample_de6bd64f20.png)\n\n---\n\n**対応ハンドビュー**\n\n| 項目 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n| --- | --- | --- | --- |\n| ユーザー写真 | *   長辺 ≤ 2048<br>*   短辺 ≥ 256 | ≤ 10MB | jpg/jpeg/png |\n* 入力画像は 1 つの手のみをサポートします\n* 手のひらの面積は、入力画像の面積の少なくとも半分であることが望ましいです\n* 入力画像のアスペクト比は 1:1、3:4、4:3 が望ましいです\n* 指の爪は隠れていないこと\n* 爪にネイルチップやネイルポリッシュがないことが望ましいです\n\n![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_nail_user_photo_02_fdba1848d6.jpg)\n\n---\n\n* エラーコード\n\n| エラーコード | 説明 |\n|  ----  | ----  |\n| error_nail_too_small | ネイル領域が小さすぎます。 |\n| error_no_nail\t| ソース画像にネイルが検出されませんでした。 |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| ネイルバーチャル試着 V1.0 | 1 |\n\n---"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_eye_color_lens.yaml","link":"/ja/reference/ai_eye_color_lens","routeSlug":"/ja/reference/ai_eye_color_lens","label":"カラコンバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_eye_color_lens/section/概要","routeSlug":"/ja/reference/ai_eye_color_lens/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_eye_color_lens/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_eye_color_lens/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_eye_color_lens/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_eye_color_lens/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_eye_color_lens/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_eye_color_lens/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_eye_color_lens/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_eye_color_lens/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_eye_color_lens/v1.0","routeSlug":"/ja/reference/ai_eye_color_lens/v1.0","items":[{"label":"AI カラコンタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_eye_color_lens/v1.0/paths/~1s2s~1v2.0~1task~1eye-color-vto/post","routeSlug":"/ja/reference/ai_eye_color_lens/v1.0/paths/~1s2s~1v2.0~1task~1eye-color-vto/post","metadata":{"seo":{"title":"AI カラコンタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/eye-color-vto"},{"label":"カラコンバーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_eye_color_lens/v1.0/paths/~1s2s~1v2.0~1task~1eye-color-vto~1{task_id}/get","routeSlug":"/ja/reference/ai_eye_color_lens/v1.0/paths/~1s2s~1v2.0~1task~1eye-color-vto~1{task_id}/get","metadata":{"seo":{"title":"カラコンバーチャル試着タスクのステータスを確認します。","description":"カラコンバーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/eye-color-vto/{task_id}"}]}],"metadata":{"type":"openapi","title":"カラコンバーチャル試着","version":"","description":"# 概要\nカラコンバーチャル試着では、虹彩を検出し、レンズの不透明度とブレンドをシミュレートして目の色を変えます。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2022-01-25/2a348e5b-6a2b-4f08-bc54-1d16a0777e87.jpg)\n\n**コンタクトレンズバーチャルシミュレーション**\n\nAI 駆動のバーチャル試着ツールで、目の色を変えます。虹彩を検出し、色調調整を適用します。\n\n**リアルな出力**  \n自然な目の反射を保持します。\n\n**コンタクトフィルターシミュレーション**  \n異なる虹彩のベースカラーにわたって不透明度とブレンドを再現します。\n\n---\n\n## 統合ガイド\n\n* セルフィーを撮影する\n\n    *   適切な照明の下でカメラに直接向きます。\n    *   JS Camera Kit を使用して写真をキャプチャします。\n\n* レンズスタイルの切り抜き画像を準備する\n\n*   **1 つの明確なレンズスタイル画像**を提供します：\n\n    *   形式：**PNG**（推奨：背景透過済み）\n    *   寸法：**200 × 200 ≤ W × H ≤ 600 × 600**\n    *   ファイルサイズ：**< 10 MB**\n\n    **サンプル：**\n\n    ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/01.00ccf3ac.png)\n    ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/02.c8beb3fc.png)\n\n* ***/s2s/v2.0/file*** API を介してアップロード URL とファイル ID を取得する\n\n    ファイル API レスポンスで返されたアップロード URL を使用して、以下のファイルをアップロードします：\n    *   セルフィー写真\n    *   レンズスタイル画像\n\n* AI タスク ***/s2s/v2.0/task/eye-color-vto*** を実行する\n\n    ファイル ID または画像 URL を入力ソースとして使用して AI タスクを実行します。効果パラメータを必要に応じて設定します。\n\n* タスクステータスのポーリング\n\n    返された **task\\_id** を使用してタスクの進捗を監視します。  \n    **GET /task/eye-color-vto** をポーリングしてエンジンのステータスを確認します。  \n    タスクは完了するまで **“running”** 状態のままです。タスク実行中はユニットは消費されません。\n\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_9535461b-69fc-4432-b56b-2d7c4cd0bf3b_b1ef78e813.jpg)\n\n\n\n* **サンプルアプリケーションシナリオ**\n\n    - ステップ 1: 色を選ぶ\n    試着したい色合いを選択します。\n\n    - ステップ 2: バーチャル試着カメラを開く\n    バーチャル試着ツールを起動します。\n\n    - ステップ 3: ライブカメラを使用または写真をアップロードする\n    ライブカメラで撮影するか、写真をアップロードしてカラーコンタクトレンズをバーチャルに試着します。\n\n    ![](https://plugins-media.makeupar.com/smb/blog/post/2025-03-28/2732a9f0-9cae-4639-b765-15866550b109.jpg)\n\n## ファイル仕様とエラー\n* 対応形式と寸法\n\n|タイプ|対応寸法|対応ファイルサイズ|対応形式|\n|  ----  | ----  | ----  | ----  |\n|AI カラコンバーチャルシミュレーション|セルフィー画像:<br>    *   長辺 ≤ 1920 px <br>    *   短辺 ≥ 320 px <br><br>レンズスタイル画像:<br>    *   ファイル形式: PNG <br>    *   解像度: 200 × 200 ≤ W × H ≤ 600 × 600 px|< 10MB|jpg/png|\n\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size|画像の幅または高さが 320 ピクセル未満の場合、使用するには小さすぎます|\n|error_face_position_invalid|画像内で顔全体が完全に可視であり、一部が切れていない必要があります|\n|error_face_position_too_small|写真内の顔が小さすぎて適切に分析できません|\n|error_face_position_out_of_boundary|顔が大きすぎるか、写真の端の一部が外れています|\n|error_insufficient_lighting|照明が暗すぎて分析が困難です|\n|error_face_angle_invalid|顔の角度が適切ではありません。正面を向いた撮影では、頭を正面から 10 度以内に保ってください。横を向いた撮影では、角度が 15 度以上である必要があります|\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| カラコンバーチャル試着 V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_teeth_whitening.yaml","link":"/ja/reference/ai_teeth_whitening","routeSlug":"/ja/reference/ai_teeth_whitening","label":"歯ホワイトニング","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_teeth_whitening/section/概要","routeSlug":"/ja/reference/ai_teeth_whitening/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_teeth_whitening/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_teeth_whitening/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_teeth_whitening/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_teeth_whitening/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_teeth_whitening/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_teeth_whitening/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_teeth_whitening/v1.0","routeSlug":"/ja/reference/ai_teeth_whitening/v1.0","items":[{"label":"歯ホワイトニング検出タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten~1pre-process/post","routeSlug":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten~1pre-process/post","metadata":{"seo":{"title":"歯ホワイトニング検出タスクを実行します。","description":"ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの index 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。"}},"httpPath":"/s2s/v2.0/task/teeth-whiten/pre-process"},{"label":"歯ホワイトニング検出タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten~1pre-process~1{task_id}/get","routeSlug":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten~1pre-process~1{task_id}/get","metadata":{"seo":{"title":"歯ホワイトニング検出タスクのステータスを確認します。","description":"歯ホワイトニング検出タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/teeth-whiten/pre-process/{task_id}"},{"label":"歯ホワイトニングタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten/post","routeSlug":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten/post","metadata":{"seo":{"title":"歯ホワイトニングタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/teeth-whiten"},{"label":"歯ホワイトニングタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten~1{task_id}/get","routeSlug":"/ja/reference/ai_teeth_whitening/v1.0/paths/~1s2s~1v2.0~1task~1teeth-whiten~1{task_id}/get","metadata":{"seo":{"title":"歯ホワイトニングタスクのステータスを確認します。","description":"歯ホワイトニングタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/teeth-whiten/{task_id}"}]}],"metadata":{"type":"openapi","title":"歯ホワイトニング","version":"","description":"# 概要\n**歯ホワイトニング API**\n\n歯ホワイトニング API で、写真内の歯を明るくします。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2023-07-28/f05fda4d-8ca8-4661-b4b5-135067280a10.jpg)\n\n\n\n\n**写真内の黄ばんだ歯を除去する方法**\n\n**スマートホワイトニング**  \nAPI は自動的に歯を検出し、ホワイトニング効果を適用します。\n\n**調整可能なレベル**  \nホワイトニングの度合いを調整できます。\n\n\n\n\n**主な機能**\n\n**迅速な強化**  \n数秒で歯を明るくします。\n\n**正確な AI 検出**  \n歯のみが修正されます。\n\n**調整可能なホワイトニング強度**  \nホワイトニングの強度を調整できます。\n\n**自然な結果**\n\n歯ホワイトニング API は、歯を識別してホワイトニング効果を適用します。強度を調整できます。\n\n---\n\n## 統合ガイド\n\n* セルフィーを撮影する\n\n    *   適切な照明の下でカメラに直接向かいます。\n    *   JS Camera Kit を使用して写真をキャプチャします。\n\n* ***/s2s/v2.0/file*** API を介してアップロード URL とファイル ID を取得する\n\n    ファイル API レスポンスで返されたアップロード URL を使用して、以下のファイルをアップロードします。\n    *   セルフィー写真\n\n* AI タスク ***/s2s/v2.0/task/teeth-whiten*** を実行する\n\n    入力ソースとしてファイル ID または画像 URL を使用して AI タスクを実行します。効果パラメータを必要に応じて設定します。\n\n* タスクステータスのポーリング\n\n    返された **task\\_id** を使用してタスクの進捗を監視します。  \n    **GET /s2s/v2.0/task/teeth-whiten/{task_id}** をポーリングしてエンジンのステータスを確認します。  \n    タスクは完了するまで **“running”** 状態のままです。タスク実行中はユニットは消費されません。\n\n\n\n* **使用例のデモ**\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2022-05-13/26c04462-d183-4392-937b-f6173ff9e814.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-07-01/webp_a4cd3779-2966-4b8f-888e-032dffc003c0.webp)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-11-13/webp_5824c85f-813e-4c14-b036-38cba206ee0b.webp)\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n|タイプ|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI Teeth Whitening|セルフィー画像:<br>    *   長辺 ≤ 1920 px <br>    *   短辺 ≥ 320 px |< 10MB|jpg/png|\n\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_exceed_max_image_size | 画像の長辺が 1920 ピクセルを超える場合 |\n|error_below_min_image_size|画像の幅または高さが 320 ピクセル未満の場合、使用するには小さすぎます|\n|error_face_position_invalid|画像内で顔全体が完全に可視であり、一部が切り取られていない必要があります|\n|error_face_position_too_small|写真内の顔が小さすぎて適切に分析できません|\n|error_face_position_out_of_boundary|顔が大きすぎるか、写真の端の一部が外れています|\n|error_insufficient_lighting|照明が暗すぎて分析が困難です|\n|error_face_angle_invalid|顔の角度が適切ではありません。正面を向いた撮影では、頭を正面から 10 度以内に保ってください。横を向いた撮影では、角度は 15 度以上である必要があります|\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI Teeth Whitening V1.0 | 1 |\n\n---\n"}},{"type":"separator","label":"髪＆ヒゲ","labelTranslationKey":"sidebar.reference.separators.hairBeard"},{"type":"group","fsPath":"@l10n/ja/reference/ai_hairstyle.yaml","link":"/ja/reference/ai_hairstyle","routeSlug":"/ja/reference/ai_hairstyle","label":"髪型シミュレーション","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hairstyle/section/概要","routeSlug":"/ja/reference/ai_hairstyle/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_hairstyle/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_hairstyle/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hairstyle/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hairstyle/section/概要/ファイル仕様とエラー"},{"type":"link","label":"FAQ","link":"/ja/reference/ai_hairstyle/section/概要/faq","routeSlug":"/ja/reference/ai_hairstyle/section/概要/faq"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_hairstyle/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_hairstyle/section/概要/ユニット消費量"}]},{"type":"group","label":"V2.1","link":"/ja/reference/ai_hairstyle/v2.1","routeSlug":"/ja/reference/ai_hairstyle/v2.1","items":[{"label":"v2.1 のプリセットテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v2.1/paths/~1s2s~1v2.1~1task~1template~1hair-transfer/get","routeSlug":"/ja/reference/ai_hairstyle/v2.1/paths/~1s2s~1v2.1~1task~1template~1hair-transfer/get","metadata":{"seo":{"title":"v2.1 のプリセットテンプレートを一覧表示します。","description":"v2.1 のプリセットテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.1/task/template/hair-transfer"},{"label":"髪型シミュレーション v2.1 タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v2.1/paths/~1s2s~1v2.1~1task~1hair-transfer/post","routeSlug":"/ja/reference/ai_hairstyle/v2.1/paths/~1s2s~1v2.1~1task~1hair-transfer/post","metadata":{"seo":{"title":"髪型シミュレーション v2.1 タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.1/task/hair-transfer"},{"label":"髪型シミュレーション v2.1 タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v2.1/paths/~1s2s~1v2.1~1task~1hair-transfer~1{task_id}/get","routeSlug":"/ja/reference/ai_hairstyle/v2.1/paths/~1s2s~1v2.1~1task~1hair-transfer~1{task_id}/get","metadata":{"seo":{"title":"髪型シミュレーション v2.1 タスクのステータスを確認します。","description":"髪型シミュレーション v2.1 タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.1/task/hair-transfer/{task_id}"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_hairstyle/v2.0","routeSlug":"/ja/reference/ai_hairstyle/v2.0","items":[{"label":"参照画像付きの髪型シミュレーションタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v2.0/paths/~1s2s~1v2.0~1task~1hair-transfer/post","routeSlug":"/ja/reference/ai_hairstyle/v2.0/paths/~1s2s~1v2.0~1task~1hair-transfer/post","metadata":{"seo":{"title":"参照画像付きの髪型シミュレーションタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-transfer"},{"label":"参照画像付きの髪型シミュレーションタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v2.0/paths/~1s2s~1v2.0~1task~1hair-transfer~1{task_id}/get","routeSlug":"/ja/reference/ai_hairstyle/v2.0/paths/~1s2s~1v2.0~1task~1hair-transfer~1{task_id}/get","metadata":{"seo":{"title":"参照画像付きの髪型シミュレーションタスクのステータスを確認します。","description":"参照画像付きの髪型シミュレーションタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-transfer/{task_id}"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hairstyle/v1.0","routeSlug":"/ja/reference/ai_hairstyle/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-style/get","routeSlug":"/ja/reference/ai_hairstyle/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-style/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/hair-style"},{"label":"髪型シミュレーションタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v1.0/paths/~1s2s~1v2.0~1task~1hair-style/post","routeSlug":"/ja/reference/ai_hairstyle/v1.0/paths/~1s2s~1v2.0~1task~1hair-style/post","metadata":{"seo":{"title":"髪型シミュレーションタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-style"},{"label":"髪型シミュレーションタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hairstyle/v1.0/paths/~1s2s~1v2.0~1task~1hair-style~1{task_id}/get","routeSlug":"/ja/reference/ai_hairstyle/v1.0/paths/~1s2s~1v2.0~1task~1hair-style~1{task_id}/get","metadata":{"seo":{"title":"髪型シミュレーションタスクのステータスを確認します。","description":"髪型シミュレーションタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-style/{task_id}"}]}],"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"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hair_color.yaml","link":"/ja/reference/ai_hair_color","routeSlug":"/ja/reference/ai_hair_color","label":"ヘアカラー","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hair_color/section/概要","routeSlug":"/ja/reference/ai_hair_color/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hair_color/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hair_color/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_hair_color/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_hair_color/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hair_color/v1.0","routeSlug":"/ja/reference/ai_hair_color/v1.0","items":[{"label":"ヘアカラータスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_color/v1.0/paths/~1s2s~1v2.0~1task~1hair-color/post","routeSlug":"/ja/reference/ai_hair_color/v1.0/paths/~1s2s~1v2.0~1task~1hair-color/post","metadata":{"seo":{"title":"ヘアカラータスクを実行します。","description":"このエンドポイントはヘアカラー変更プロセスを開始します。ソースファイル（URL または File ID 経由）を提供し、色設定（プリセット、パターン、またはパレット）を指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/hair-color"},{"label":"ヘアカラータスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_color/v1.0/paths/~1s2s~1v2.0~1task~1hair-color~1{task_id}/get","routeSlug":"/ja/reference/ai_hair_color/v1.0/paths/~1s2s~1v2.0~1task~1hair-color~1{task_id}/get","metadata":{"seo":{"title":"ヘアカラータスクのステータスを確認します。","description":"ヘアカラータスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-color/{task_id}"}]}],"metadata":{"type":"openapi","title":"ヘアカラー","version":"","description":"# 概要\nヘアカラーチェンジャーで、幅広いヘアカラーを試せます。スライダーで選択したカラーの濃淡を調整できます。\n\n   * 画像をアップロード\n\nヘアカラーを変更したい写真をアップロードします。\n\n   * プリセットカラーを選択、またはパターンとパレットでカスタマイズ\n\n predefined なカラープリセットから選択するか、グラデーション（オンブレ）の適用範囲やブレンドを調整できます。\n\n> **警告:** プリセットとパターン＋パレットの両方が指定されている場合、プリセットが優先されます。\n\n> **警告:** 元の画像には、染めたい髪の領域が含まれている必要があります。適用前に確認してください。これはユーザー側の責任となります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_color_s2_poster_dt_v2_49198cabc0.png)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/01_1_1_8365c3b503.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/01_2_1_abfcdb7eba.jpg)\n\n## ファイル仕様とエラー\n* 対応フォーマットとサイズ\n\n|AI 機能|対応サイズ|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI ヘアカラー|長辺 < 1920、顔幅 >= 100|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size|元の画像サイズが最小値より小さい（期待値: 幅 >= 320px、高さ >= 320px）\n|error_exceed_max_image_size|元の画像サイズが最大値より大きい（期待値: 幅 < 1920px、高さ < 1080px）\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI ヘアカラーバーチャル試着 V1.0 | フルモードで 1 ユニット <br> オンブレモードで 1 ユニット |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hair_extension.yaml","link":"/ja/reference/ai_hair_extension","routeSlug":"/ja/reference/ai_hair_extension","label":"AI ヘアエクステ","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hair_extension/section/概要","routeSlug":"/ja/reference/ai_hair_extension/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hair_extension/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hair_extension/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_hair_extension/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_hair_extension/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hair_extension/v1.0","routeSlug":"/ja/reference/ai_hair_extension/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_extension/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-ext/get","routeSlug":"/ja/reference/ai_hair_extension/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-ext/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/hair-ext"},{"label":"AI ヘアエクステタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_extension/v1.0/paths/~1s2s~1v2.0~1task~1hair-ext/post","routeSlug":"/ja/reference/ai_hair_extension/v1.0/paths/~1s2s~1v2.0~1task~1hair-ext/post","metadata":{"seo":{"title":"AI ヘアエクステタスクを実行します。","description":"このエンドポイントは、テンプレートとソース画像を使用してヘアエクステ生成プロセスを開始します。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/hair-ext"},{"label":"AI ヘアエクステタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_extension/v1.0/paths/~1s2s~1v2.0~1task~1hair-ext~1{task_id}/get","routeSlug":"/ja/reference/ai_hair_extension/v1.0/paths/~1s2s~1v2.0~1task~1hair-ext~1{task_id}/get","metadata":{"seo":{"title":"AI ヘアエクステタスクのステータスを確認します。","description":"AI ヘアエクステタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-ext/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI ヘアエクステ","version":"","description":"# 概要\nAI で理想のヘアエクステを見つけよう\n長さはロングからエクストラロングまで、スタイル、カラー、前髪など、さまざまな組み合わせをデバイス上で試せます。生成 AI により、ヘアエクステのスタイルがどのように見えるかを確認できます。\n現在の髪の長さに自然に馴染む AI ヘアエクステで、超ロングスタイルを試す絶好の機会です。\n\nユースケース:\n![AI ヘアエクステ](https://bcw-media.s3.ap-northeast-1.amazonaws.com/YCE_web_Hair_Extension_Filter_S2_img_07_098b6e08c4.jpg \"AI Hair Extension\")\n\n![AI ヘアエクステ](https://bcw-media.s3.ap-northeast-1.amazonaws.com/YCE_web_Hair_Extension_Filter_S1_img_01_eab88fe3e2.jpg \"AI Hair Extension\")\n\n撮影時の推奨事項:\n![Suggestions for How to Shoot](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png \"Suggestions for How to Shoot\")\n\n---\n\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|error_bald_image\t|入力されたヘアスタイルがハゲています\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI ヘアエクステ V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_bangs.yaml","link":"/ja/reference/ai_bangs","routeSlug":"/ja/reference/ai_bangs","label":"AI 前髪","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_bangs/section/概要","routeSlug":"/ja/reference/ai_bangs/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_bangs/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_bangs/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_bangs/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_bangs/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_bangs/v1.0","routeSlug":"/ja/reference/ai_bangs/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_bangs/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-bang/get","routeSlug":"/ja/reference/ai_bangs/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-bang/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/hair-bang"},{"label":"AI 前髪生成タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_bangs/v1.0/paths/~1s2s~1v2.0~1task~1hair-bang/post","routeSlug":"/ja/reference/ai_bangs/v1.0/paths/~1s2s~1v2.0~1task~1hair-bang/post","metadata":{"seo":{"title":"AI 前髪生成タスクを実行します。","description":"このエンドポイントは、テンプレートとソース画像を使用して前髪生成プロセスを開始します。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/hair-bang"},{"label":"AI 前髪生成タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_bangs/v1.0/paths/~1s2s~1v2.0~1task~1hair-bang~1{task_id}/get","routeSlug":"/ja/reference/ai_bangs/v1.0/paths/~1s2s~1v2.0~1task~1hair-bang~1{task_id}/get","metadata":{"seo":{"title":"AI 前髪生成タスクのステータスを確認します。","description":"AI 前髪生成タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-bang/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 前髪バーチャル試着","version":"","description":"# 概要\nAI で理想の前髪を試着\nリアルな仕上がり：リアルな前髪を試し、あなたの顔に最も似合うスタイルを見つけましょう。\n多彩なスタイル：あらゆる個性やシーンに合う幅広い前髪スタイルを探索できます。\n簡単操作：新しい前髪を試せます。\n\nさらに多くの前髪スタイルを見たい場合は、https://yce.makeupar.com/bangs-filter. を参照してください。\n\nユースケース：\n\n![AI 前髪](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_style_v1_video_1200x674px_1_259f619dfd.png \"AI Hair Bang Generator\")\n\n![AI 前髪](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_style_v1_video_1200x674px_2_7146754733.png \"AI Hair Bang Generator\")\n\n\n撮影時の推奨事項：\n![Suggestions for How to Shoot](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png \"Suggestions for How to Shoot\")\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI 前髪|長辺 <= 1024、顔幅 >= 128、顔の姿勢：-10 < pitch < +10、-45 < yaw < +45、-15 < roll < +15、単一の顔のみ、顔全体が見えている必要あり|< 10MB|jpg/jpeg/png|\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|error_bald_image\t|入力されたヘアスタイルがハゲています\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 前髪 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hair_volume.yaml","link":"/ja/reference/ai_hair_volume","routeSlug":"/ja/reference/ai_hair_volume","label":"ヘアボリューム","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hair_volume/section/概要","routeSlug":"/ja/reference/ai_hair_volume/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hair_volume/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hair_volume/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_hair_volume/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_hair_volume/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hair_volume/v1.0","routeSlug":"/ja/reference/ai_hair_volume/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_volume/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-vol/get","routeSlug":"/ja/reference/ai_hair_volume/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-vol/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/hair-vol"},{"label":"AI ヘアボリューム生成タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_volume/v1.0/paths/~1s2s~1v2.0~1task~1hair-vol/post","routeSlug":"/ja/reference/ai_hair_volume/v1.0/paths/~1s2s~1v2.0~1task~1hair-vol/post","metadata":{"seo":{"title":"AI ヘアボリューム生成タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-vol"},{"label":"AI ヘアボリューム生成タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_volume/v1.0/paths/~1s2s~1v2.0~1task~1hair-vol~1{task_id}/get","routeSlug":"/ja/reference/ai_hair_volume/v1.0/paths/~1s2s~1v2.0~1task~1hair-vol~1{task_id}/get","metadata":{"seo":{"title":"AI ヘアボリューム生成タスクのステータスを確認します。","description":"AI ヘアボリューム生成タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-vol/{task_id}"}]}],"metadata":{"type":"openapi","title":"ヘアボリューム","version":"","description":"# 概要\nAI でふんわりしたボリュームヘアにできます。\n細毛や薄毛に自然なボリュームを付けられます。AI で隙間を埋めたり、髪を追加したりできます。ストレート、カール、細毛などすべての髪質に対応しています。\nプライベート、ビジネス、SNS などの写真で、髪のボリュームと密度を調整できます。\n\nユースケース:\n![AI Hair Volume Generator](https://bcw-media.s3.ap-northeast-1.amazonaws.com/YCE_web_Hair_Volume_Filter_S4_img_01_836436ca00.jpg \"AI Hair Volume Generator\")\n\n![AI Hair Volume Generator](https://plugins-media.makeupar.com/smb/blog/post/2024-08-26/51eadc51-aaa7-4ebc-ac78-e389be5e16b0.jpg \"AI Hair Volume Generator\")\n\n撮影時の推奨事項:\n![Suggestions for How to Shoot](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png \"Suggestions for How to Shoot\")\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットとサイズ\n\n|AI 機能|対応サイズ|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|ヘアボリューム|長辺 <= 1024、顔幅 >= 128、顔の向き: -10 < pitch < +10, -45 < yaw < +45, -15 < roll < +15、単一の顔のみ、顔全体が写っている必要あり|< 10MB|jpg/jpeg/png|\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|error_bald_image\t|入力されたヘアスタイルがハゲています\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| ヘアボリューム V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_wavy_hair.yaml","link":"/ja/reference/ai_wavy_hair","routeSlug":"/ja/reference/ai_wavy_hair","label":"パーマスタイル","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_wavy_hair/section/概要","routeSlug":"/ja/reference/ai_wavy_hair/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_wavy_hair/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_wavy_hair/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_wavy_hair/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_wavy_hair/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_wavy_hair/v1.0","routeSlug":"/ja/reference/ai_wavy_hair/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_wavy_hair/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-curl/get","routeSlug":"/ja/reference/ai_wavy_hair/v1.0/paths/~1s2s~1v2.0~1task~1template~1hair-curl/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/hair-curl"},{"label":"パーマスタイルタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_wavy_hair/v1.0/paths/~1s2s~1v2.0~1task~1hair-curl/post","routeSlug":"/ja/reference/ai_wavy_hair/v1.0/paths/~1s2s~1v2.0~1task~1hair-curl/post","metadata":{"seo":{"title":"パーマスタイルタスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-curl"},{"label":"パーマスタイルタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_wavy_hair/v1.0/paths/~1s2s~1v2.0~1task~1hair-curl~1{task_id}/get","routeSlug":"/ja/reference/ai_wavy_hair/v1.0/paths/~1s2s~1v2.0~1task~1hair-curl~1{task_id}/get","metadata":{"seo":{"title":"パーマスタイルタスクのステータスを確認します。","description":"パーマスタイルタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-curl/{task_id}"}]}],"metadata":{"type":"openapi","title":"パーマスタイル","version":"","description":"# 概要\nパーマスタイルフィルターで、弾むようなカール、ゆるやかなウェーブ、大胆なカールスタイルなど、自宅にいながら数秒で新しいヘアスタイルを試せます。\n\nソフトなウェーブから大胆なアフロまで、精度とリアリズムの高さは他社と一線を画します。次のサロン訪問前に、自信を持って新しいヘアスタイルを試すための理想的なツールです。\n\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-04-01/webp_03963789-fb1e-4ad8-be4d-48932e247376.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-03-20/b25b228a-259b-4efb-a7c1-31d200b62e8c.jpg)\n\n撮影時の推奨事項:\n![撮影時の推奨事項](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png \"撮影時の推奨事項\")\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットとサイズ\n\n|AI 機能|対応サイズ|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|パーマスタイル|長辺 <= 1024、顔幅 >= 128、顔の姿勢: -10 < pitch < +10, -45 < yaw < +45, -15 < roll < +15、単一の顔のみ、顔全体が写っている必要あり|< 10MB|jpg/jpeg/png|\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| AI 機能 | 消費ユニット |\n|---|---|\n| パーマスタイル V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_beard_style.yaml","link":"/ja/reference/ai_beard_style","routeSlug":"/ja/reference/ai_beard_style","label":"ヒゲスタイル","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_beard_style/section/概要","routeSlug":"/ja/reference/ai_beard_style/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_beard_style/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_beard_style/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_beard_style/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_beard_style/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_beard_style/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_beard_style/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_beard_style/v1.0","routeSlug":"/ja/reference/ai_beard_style/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_beard_style/v1.0/paths/~1s2s~1v2.0~1task~1template~1beard-style/get","routeSlug":"/ja/reference/ai_beard_style/v1.0/paths/~1s2s~1v2.0~1task~1template~1beard-style/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/beard-style"},{"label":"ヒゲスタイルタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_beard_style/v1.0/paths/~1s2s~1v2.0~1task~1beard-style/post","routeSlug":"/ja/reference/ai_beard_style/v1.0/paths/~1s2s~1v2.0~1task~1beard-style/post","metadata":{"seo":{"title":"ヒゲスタイルタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/beard-style"},{"label":"ヒゲスタイルタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_beard_style/v1.0/paths/~1s2s~1v2.0~1task~1beard-style~1{task_id}/get","routeSlug":"/ja/reference/ai_beard_style/v1.0/paths/~1s2s~1v2.0~1task~1beard-style~1{task_id}/get","metadata":{"seo":{"title":"ヒゲスタイルタスクのステータスを確認します。","description":"ヒゲスタイルタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/beard-style/{task_id}"}]}],"metadata":{"type":"openapi","title":"ヒゲスタイル","version":"","description":"# 概要\nAI 男性ヒゲスタイルシミュレーション\n\nAI ヒゲスタイルで、トリムヒゲ、無精ヒゲ、フルヒゲ、サークルヒゲ、口ひげ、ゴティヒゲなどのヒゲスタイルをバーチャル試着できます。\n\nビフォーアフターの結果を確認できます。\nヒゲフィルターには、口ひげ、ショートボックス、ダックテール、サークルなど、数十のスタイルが含まれています。\n\n## 統合ガイド\n\n1. **自撮り画像のアップロード**\n   ソース画像は以下の 2 通りの方法で提供できます。\n\n   - **既存の公開画像 URL を使用**\n     アップロードの代わりに、AI タスクを開始する際に公開アクセス可能な画像 URL を直接指定できます。\n\n   - **File API 経由でアップロード**\n     エンドポイント:\n     ```\n     POST /s2s/v2.0/file\n     ```\n     これにより、後続のタスク実行用の `file_id` が返されます。\n\n     - ***重要***: File API を呼び出すだけではファイルはアップロードされません。File API のレスポンスで提供される **URL に手動でファイルをアップロード** する必要があります。その URL がアップロード先です。次に進む前に、ファイルが正常に転送されたことを確認してください。<br></br>\n     AI API を呼び出す前に、ファイルが正常にアップロードされていることを確認してください。File API を使用してアップロード URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスに ***file_id*** が含まれます。この ID は、そのファイルに関連する AI 機能にアクセスするために使用します。\n\n       > **警告:** File API のレスポンスで提供される URL にファイルをアップロードしない場合、AI API の使用時に 500 Server Error / unknown_internal_error または 404 Not Found エラーが発生します。\n\n2.  **プリセットスタイルのリスト取得**\n    *   /s2s/v2.0/task/template/beard-style を使用してプリセットテンプレートリストを取得し、AI タスクを実行するための ``template_id`` を選択します。\n\n3.  **AI タスクの実行とタスク ID の取得**\n    /s2s/v2.0/task/beard-style を使用して AI タスクを実行します。ターゲットユーザー画像には、``src_file_url`` または ``src_file_id`` のいずれかを指定します。適用するスタイルの ``template_id`` を指定し、``task_id`` を取得します。\n\n4.  **タスクのステータス確認のためのポーリング（成功または失敗まで）**\n    ``task_id`` を使用して、GET /s2s/v2.0/task/beard-style をポーリングし、現在のエンジンステータスを取得してタスクのステータスを監視します。エンジンがタスクを完了するまで、ステータスは running のままとなり、この段階ではユニットは消費されません。\n    AI タスクが成功または失敗した際に通知を受け取るために、Webhook を実装することもできます。詳細は **[Webhook](../../../develop/webhook)** セクションを参照してください。\n\n    > **警告:** 保持期間内にタスクのステータスを確認するためにポーリングを行うことが必須です。保持期間内にポーリングリクエストがない場合、タスクが正常に処理されていてもタイムアウトします。ユニットは消費されます。\n\n    > **警告:** タイムアウトしたタスクのステータスを確認すると、InvalidTaskId エラーが発生します。したがって、AI タスクを実行したら、ステータスが success または error になるまで、保持期間内にステータスを確認するためにポーリングを行う必要があります。\n\n5.  **AI タスクの成功後の結果取得**\n    エンジンが入力ファイルを処理し、結果画像を生成すると、タスクのステータスは success に変わります。処理済み画像の URL が返されます。\n\n---\n\n## ファイル仕様とエラー\n   * 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI ヒゲスタイル生成|解像度: 長辺 < 1024 <br>顔幅 > 256 <br>顔の姿勢: -30 < yaw < 30, <br>単一の顔のみ, <br>顔全体が見えている必要あり|< 10MB|jpg/jpeg|\n\n   * エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_no_face\t|ソース画像に顔が写っていません\n|error_src_face_too_small\t|顔が小さすぎます\n|error_inference\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI ヒゲスタイル生成 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hair_type_detection.yaml","link":"/ja/reference/ai_hair_type_detection","routeSlug":"/ja/reference/ai_hair_type_detection","label":"髪タイプ分析","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hair_type_detection/section/概要","routeSlug":"/ja/reference/ai_hair_type_detection/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_hair_type_detection/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_hair_type_detection/section/概要/統合ガイド"},{"type":"link","label":"髪タイプの分類","link":"/ja/reference/ai_hair_type_detection/section/概要/髪タイプの分類","routeSlug":"/ja/reference/ai_hair_type_detection/section/概要/髪タイプの分類"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hair_type_detection/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hair_type_detection/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_hair_type_detection/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_hair_type_detection/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_hair_type_detection/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_hair_type_detection/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hair_type_detection/v1.0","routeSlug":"/ja/reference/ai_hair_type_detection/v1.0","items":[{"label":"髪タイプ分析タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_type_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-type-detection/post","routeSlug":"/ja/reference/ai_hair_type_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-type-detection/post","metadata":{"seo":{"title":"髪タイプ分析タスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-type-detection"},{"label":"髪タイプ分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_type_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-type-detection~1{task_id}/get","routeSlug":"/ja/reference/ai_hair_type_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-type-detection~1{task_id}/get","metadata":{"seo":{"title":"髪タイプ分析タスクのステータスを確認します。","description":"髪タイプ分析タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-type-detection/{task_id}"}]}],"metadata":{"type":"openapi","title":"髪タイプ分析","version":"","description":"# 概要\nAI 髪タイプ分析では、髪の質感、厚み、カールのパターンを分析し、ストレートから kinky までの 9 つの明確なタイプに分類します。\n\n## 統合ガイド\n* AI 髪タイプ分析のための撮影方法\n* 左、正面、右の 3 方向から写真を撮影します。\n  - 3 枚のセルフポートレートを素早く撮影してください。1 枚は正面を向き、1 枚は左に約 45 度回転し、1 枚は右に 45 度回転します。髪の全体像をあらゆる角度から捉えることが目的です。各写真で顔全体と髪の上部の境界線がはっきりと見えるようにしてください。顔が画像幅の約 50% から 80% を占めるようにします。小さすぎず、近すぎない距離で撮影してください。これにより、分析に十分な鮮明さが確保されます。横顔のショットを撮影する際は、首を左右に振る（ヨー回転）ように頭を回転させてください。頭を上下左右に傾けず、水平に保ってください。背面や上からの角度は分析に使用できないため、避けてください。\n  - 写真撮影には JS Camera Kit を利用できます。髪を結ばず、胸の前で垂らした状態にしてください。頭を右に向けて静止し、次に左に向けて、分析用の 3 枚の画像を撮影します。\n\n* AI による髪タイプの検出方法\n* ***/s2s/v2.0/file*** API を使用して、以下のアセットをアップロードしてください：\n  - 正面、右側面、左側面の写真。\n\n* AI タスク ***/s2s/v2.0/task/hair-type-detection*** の実行 </br>\n正面、右側面、左側面の 3 枚の画像を送信して、髪タイプ検出タスクを実行します。これらのファイル ID を AI のソース入力として使用します。\n\n* タスクのステータスを成功またはエラーになるまでポーリングで確認する</br>\nこの ***task_id*** は、GET 'task/hair-type-detection' によるポーリングを通じてタスクのステータスを監視するために使用され、現在のエンジンステータスを取得します。エンジンがタスクを完了するまで、ステータスは 'running' のままとなり、この段階ではユニットは消費されません。\n\n## 髪タイプの分類\n|カテゴリー|サムネイル|髪タイプの分類|説明|\n|  ----  | ----  | ----  | ----  |\n|1|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t1.b19d4657.jpg)|ストレート|カールがなく、根元から毛先までストレートに落ちる髪|\n|2A|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t2A.351ef0a6.jpg)|ややウェーブ|控えめで繊細なウェーブ。滑らかな質感、根元にボリュームはありません|\n|2B|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t2B.daac62f4.jpg)|中程度のウェーブ|髪の中間部から始まる S 字型のウェーブ|\n|2C|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t2C.10ef2132.jpg)|厚手のウェーブ|根元から始まる S 字型のウェーブ。粗い質感、広がりやすい|\n|3A|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t3A.073b6767.jpg)|ゆるいカール|大きくゆるやかなカール|\n|3B|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t3B.06bf109b.jpg)|中程度のカーリー|粗く弾力のあるリングレット。広がりやすい|\n|3C|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t3C.9091ea1e.jpg)|タイトなカーリー|密でコンパクトなコルクスクリュー形状|\n|4A|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t4A.cf742771.jpg)| kinky ソフト|密に詰まった弾力のある S 字型のコイル|\n|4B|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t4B.4a6300fe.jpg)|コイリー|鋭いジグザグ角度に強く巻き込まれた、密に詰まったコイル|\n|4C|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_t4C.4ed5a7f8.jpg)|極度のコイリー|きつくふわふわしたコイル。切れやすい|\n\n* 結果引数\n* mapping: 結果は、検出された髪タイプのカテゴリーを示す文字列です。考えられるすべての結果文字列を配列で以下に示します：\n  ```json\n  [\"1 to 2a\", \"2a to 2b\", \"2b to 2c\", \"2c to 3a\", \"3a to 3b\", \"3b to 3c\", \"3c to 4a\", \"4a to 4b\", \"4b to 4c\"]\n  ```\n* term: 髪タイプのカテゴリーとその分類間の 1 対 1 のマッピング文字列です。考えられるすべての結果文字列を配列で以下に示します：\n  ```json\n  [\"Straight to Slight Wavy\", \"Slight to Medium Wavy\", \"Medium to Thick Wavy\", \"Thick Wavy to Loose Curls\", \"Loose to Medium Curls\", \"Medium to Tight Curls\", \"Tight Curls to Kinky Soft\", \"Kinky Soft to Coily\", \"Coily to Extremely Coily\"]\n  ```\n\n* 撮影方法のヒント\n![撮影方法のヒント](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI%20Hair%20Type%20Detection_how%20to%20shoot.png \"撮影方法のヒント\")\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI%20Skin%20Analysis_camera.png)\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n|タイプ|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI 髪タイプ分析|画像は幅と高さともに少なくとも 320 ピクセル、いずれかの次元で最大 4096 ピクセルである必要があります。画像の片側の長さが 1080 ピクセルを超える場合、分析用にその制限内に自動的にリサイズされます。|< 10MB|jpg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_mismatch_image_size|すべての顔写真（正面、左、右）が同じサイズであることを確認してください|\n|error_below_min_image_size|画像の幅または高さが 320 ピクセル未満の場合、使用するには小さすぎます|\n|error_face_position_invalid|画像内で顔全体が完全に可視であり、一部が切れていない必要があります|\n|error_face_position_too_small|写真内の顔が小さすぎて、適切に分析できません|\n|error_face_position_out_of_boundary|顔が大きすぎるか、写真の端の一部が外れています|\n|error_insufficient_lighting|照明が暗すぎて、分析が困難です|\n|error_face_angle_invalid|顔の角度が適切ではありません。正面を向いたショットでは、頭を正面から 10 度以内に保ってください。横顔を向いたショットでは、角度が 15 度以上である必要があります|\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 髪タイプ分析 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hair_length_detection.yaml","link":"/ja/reference/ai_hair_length_detection","routeSlug":"/ja/reference/ai_hair_length_detection","label":"髪の長さ分析","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hair_length_detection/section/概要","routeSlug":"/ja/reference/ai_hair_length_detection/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_hair_length_detection/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_hair_length_detection/section/概要/統合ガイド"},{"type":"link","label":"髪の長さの分類","link":"/ja/reference/ai_hair_length_detection/section/概要/髪の長さの分類","routeSlug":"/ja/reference/ai_hair_length_detection/section/概要/髪の長さの分類"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hair_length_detection/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hair_length_detection/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_hair_length_detection/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_hair_length_detection/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_hair_length_detection/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_hair_length_detection/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hair_length_detection/v1.0","routeSlug":"/ja/reference/ai_hair_length_detection/v1.0","items":[{"label":"髪の長さ分析タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_length_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-length-detection/post","routeSlug":"/ja/reference/ai_hair_length_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-length-detection/post","metadata":{"seo":{"title":"髪の長さ分析タスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-length-detection"},{"label":"髪の長さ分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_length_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-length-detection~1{task_id}/get","routeSlug":"/ja/reference/ai_hair_length_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-length-detection~1{task_id}/get","metadata":{"seo":{"title":"髪の長さ分析タスクのステータスを確認します。","description":"髪の長さ分析タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-length-detection/{task_id}"}]}],"metadata":{"type":"openapi","title":"髪の長さ分析","version":"","description":"# 概要\nAI 髪の長さ測定では、髪の長さを分析・測定し、パーソナライズされた製品やサービスの決定を支援します。\n耳上から背中中央までの 5 つの髪の長さを識別・分類します。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_length_S1_01_enu_b03bd393af.jpg)\n\n## 統合ガイド\n* 髪の長さ分析のための撮影方法\n* 正面を向いて自撮り写真を撮影します\n  - カメラをまっすぐ見ている、1 枚のクリアな写真のみで十分です。髪を下ろして胸にかかっている状態にし、真正面を向いて撮影してください。\n  - 代わりに、JS Camera Kit を使用して写真を撮影します。髪を下ろして胸にかかっている状態にしてください。結ばないでください。\n\n* AI による髪の長さの検出方法\n* ***/s2s/v2.0/file*** API を使用して、以下のアセットをアップロードします:\n  - 自撮り写真。\n\n* AI タスク ***/s2s/v2.0/task/hair-length-detection*** の実行 </br>\n正面を向いた自撮り画像を 1 枚送信して、髪の長さ検出タスクを実行します。AI のソース入力としてそのファイル ID を使用します。\n\n* タスクのステータスを成功またはエラーになるまでポーリングで確認します</br>\nこの ***task_id*** は、GET 'task/hair-length-detection' によるポーリングを通じてタスクのステータスを監視するために使用され、現在のエンジンステータスを取得します。エンジンがタスクを完了するまで、ステータスは 'running' のままであり、この段階ではユニットは消費されません。\n\n## 髪の長さの分類\n|サムネイル|髪の長さの分類|説明|\n| ----  | ----  | ----  |\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/thumb_hair_lenth_above_the_ears.b41525da.png)|耳上長さ|耳のすぐ上までかかる髪。|\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/thumb_hair_lenth_ear_length.0740b805.png)|耳長さ|耳たぶまで届く髪。|\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/thumb_hair_lenth_short_hair.d7f24ddb.png)|ショートヘア|肩より上でカットされた髪。|\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/thumb_hair_lenth_above_chest.1b624c17.png)|ミディアム長さ|鎖骨付近までかかる髪。|\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/thumb_hair_lenth_longer_hair.7fbcc9d0.png)|ロングヘア|背中中央までかかる髪。|\n\n* 結果引数\n* term: 結果は、検出された髪の長さタイプを示す文字列です。考えられるすべての結果文字列を配列で以下に示します:\n  ```json\n  [\"above the ears\", \"ear length\", \"ear length or longer\", \"short hair\", \"short hair or longer\", \"above chest\", \"above chest or longer\", \"long hair\"]\n  ```\n\n* 撮影方法の提案\n![撮影方法の提案](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI%20Hair%20Length%20Detection_how%20to%20shoot.png \"撮影方法の提案\")\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI%20Skin%20Analysis_camera.png)\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n|タイプ|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|髪の長さ分析|画像は幅と高さともに少なくとも 320 ピクセル、いずれかの次元で最大 4096 ピクセルである必要があります。画像の片側の長さが 1080 ピクセルを超える場合、分析のためにその制限内に自動的にリサイズされます。|< 10MB|jpg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size|画像の幅または高さが 320 ピクセル未満の場合、小さすぎて使用できません|\n|error_face_position_invalid|画像内で顔全体が完全に視認可能であり、一部が切れていない必要があります|\n|error_face_position_too_small|写真内の顔が小さすぎて、適切に分析できません|\n|error_face_position_out_of_boundary|顔が大きすぎるか、写真の端の一部または全体が外れています|\n|error_insufficient_lighting|照明が暗すぎて、分析が困難です|\n|error_face_angle_invalid|顔の角度が適切ではありません。正面を向いた撮影では、頭を正面から 10 度以内に保ってください。横を向いた撮影では、角度が 15 度以上である必要があります|\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| 髪の長さ分析 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hair_frizziness_detection.yaml","link":"/ja/reference/ai_hair_frizziness_detection","routeSlug":"/ja/reference/ai_hair_frizziness_detection","label":"髪のうねり分析","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hair_frizziness_detection/section/概要","routeSlug":"/ja/reference/ai_hair_frizziness_detection/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_hair_frizziness_detection/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_hair_frizziness_detection/section/概要/統合ガイド"},{"type":"link","label":"入力と出力","link":"/ja/reference/ai_hair_frizziness_detection/section/概要/入力と出力","routeSlug":"/ja/reference/ai_hair_frizziness_detection/section/概要/入力と出力"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hair_frizziness_detection/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hair_frizziness_detection/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_hair_frizziness_detection/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_hair_frizziness_detection/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_hair_frizziness_detection/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_hair_frizziness_detection/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hair_frizziness_detection/v1.0","routeSlug":"/ja/reference/ai_hair_frizziness_detection/v1.0","items":[{"label":"髪のうねり分析タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_frizziness_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-frizziness-detection/post","routeSlug":"/ja/reference/ai_hair_frizziness_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-frizziness-detection/post","metadata":{"seo":{"title":"髪のうねり分析タスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-frizziness-detection"},{"label":"髪のうねり分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_frizziness_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-frizziness-detection~1{task_id}/get","routeSlug":"/ja/reference/ai_hair_frizziness_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-frizziness-detection~1{task_id}/get","metadata":{"seo":{"title":"髪のうねり分析タスクのステータスを確認します。","description":"髪のうねり分析タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-frizziness-detection/{task_id}"}]}],"metadata":{"type":"openapi","title":"髪のうねり分析","version":"","description":"# 概要\n180° フルビュー髪のうねり分析\n\nAI 髪のうねり分析ツールでは、髪の正面、左側、右側の 3 枚の写真をアップロードして髪のうねりレベルを分析します。\n\n企業は、髪のうねりレベルに基づいたヘアソリューションやアンチフラジー製品を提供できます。\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_frizzy_S_02_enu_b80c238858.jpg)\n\n## 統合ガイド\n\n1. **セルフィーのアップロード**\n  ソース画像は以下の 2 通りの方法で提供できます。\n\n  - **既存の公開画像 URL の使用**\n    アップロードの代わりに、AI タスクを開始する際に公開アクセス可能な画像 URL を直接指定できます。\n\n  - **File API によるアップロード**\n    エンドポイントを使用します。\n    ```\n    POST /s2s/v2.0/file\n    ```\n    これにより、後続のタスク実行用の `file_id` が返されます。\n\n    - ***重要***: File API を呼び出すだけではファイルはアップロードされません。File API のレスポンスで提供された **URL に手動でファイルをアップロード** する必要があります。その URL がアップロード先です。次に進む前に、ファイルが正常に転送されたことを確認してください。\n\n    AI API を呼び出す前に、ファイルが正常にアップロードされていることを確認してください。File API を使用してアップロード URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスに ***file_id*** が含まれます。この ID は、そのファイルに関連する AI 機能にアクセスするために使用します。\n\n      > **警告:** File API のレスポンスで提供された URL にファイルをアップロードしない場合、AI API の使用時に 500 Server Error / unknown_internal_error または 404 Not Found エラーが発生します。\n\n2.  **AI タスクの実行とタスク ID の取得**\n    /s2s/v2.0/task/hair-frizziness-detection を使用して AI タスクを実行します。対象ユーザー画像には、``src_file_url`` または ``src_file_id`` のいずれかを指定します。また、適用するスタイルの ``template_id`` を指定し、``task_id`` を取得します。\n\n3.  **タスクのステータス確認のためのポーリング（成功または失敗まで）**\n    ``task_id`` を使用して、GET /s2s/v2.0/task/hair-frizziness-detection をポーリングし、現在のエンジンステータスを取得してタスクのステータスを監視します。エンジンがタスクを完了するまで、ステータスは running のままとなり、この段階ではユニットは消費されません。\n    AI タスクが成功または失敗した際に通知を受け取るために Webhook を実装することもできます。詳細は **[Webhook](../../../../develop/webhook)** セクションを参照してください。\n\n    > **警告:** 保持期間内にタスクのステータスを確認するためにポーリングを行うことが必須です。保持期間内にポーリングリクエストがない場合、タスクが正常に処理されていてもタイムアウトします。ユニットは消費されます。\n\n    > **警告:** タイムアウトしたタスクのステータスを確認すると、InvalidTaskId エラーが発生します。したがって、AI タスクを実行した後は、ステータスが success または error になるまで、保持期間内にステータスを確認するためにポーリングを行う必要があります。\n\n4.  **成功後の AI タスク結果の取得**\n    エンジンが入力ファイルを処理し、結果画像を生成すると、タスクのステータスは success に変わります。処理済み画像の URL が返されます。\n\n## 入力と出力\n* 入力形式\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_frizzy_step_01_ac5c651ea4.png)\n髪の正面、左側、右側の 3 枚の写真をアップロードします。\nJS Camera Kit を使用して、3 枚の適格な写真を撮影するための Javascript カメラモジュールを実装できます。\n\n\n* 出力形式\nAI 髪のうねり分析ツールでは髪質を評価し、滑らかな髪から非常にうねった髪まで、4 つの異なる髪のうねり度を識別します。\n\n| **マッピング (0–3)** | **用語**            | **説明**                                           |\n| ----------------- | ------------------- | --------------------------------------------------------- |\n| 0             | Not Frizzy      | 髪は滑らかで、目立つうねりはほとんどまたは全く見られません。     |\n| 1            | Slightly Frizzy | 軽いうねりが見られます。表面の質感にわずかな不規則性があります。 |\n| 2             | Frizzy         | 髪全体に目立つうねりがあります。質感の乱れが明確です。   |\n| 3             | Extreme Frizzy  | 強いうねりが広範囲に見られます。髪の質感が非常に不規則です。  |\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/hair_frizzy_S_01_enu_fcd10905ff.jpg)\n\n* サンプル出力\n```json\n{\n  \"mapping\": 1, // number; the key to map of result, alternatives: [0, 1, 2, 3]\n  \"term\": \"Slightly Frizzy\" // string; 1-1 map to the \"mapping\", alternatives: [\"Not Frizzy\", \"Slightly Frizzy\", \"Frizzy\", \"Extreme Frizzy\"]\n}\n```\n\n## ファイル仕様とエラー\n* サポートされる形式と寸法\n\n|タイプ|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|AI 髪のうねり分析|画像は幅と高さともに少なくとも 320 ピクセル、いずれかの次元で最大 4096 ピクセルである必要があります。画像の片側の長さが 1080 ピクセルを超える場合、分析のためにその制限内に自動的にリサイズされます。|< 10MB|jpg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_mismatch_image_size|すべての顔写真（正面、左側、右側）が同じサイズであることを確認してください|\n|error_below_min_image_size|画像の幅または高さが 320 ピクセル未満の場合、使用するには小さすぎます|\n|error_face_position_invalid|画像内で顔全体が完全に視認可能であり、一部が切れていない必要があります|\n|error_face_position_too_small|写真内の顔が小さすぎて適切に分析できません|\n|error_face_position_out_of_boundary|顔が大きすぎるか、写真の端の一部が外れています|\n|error_insufficient_lighting|照明が暗すぎて、分析が困難です|\n|error_face_angle_invalid|顔の角度が正しくありません。正面を向いたショットでは、頭を正面から 10 度以内に保ってください。横を向いたショットでは、角度は 15 度以上である必要があります|\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 髪のうねり分析 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hair_density_detection.yaml","link":"/ja/reference/ai_hair_density_detection","routeSlug":"/ja/reference/ai_hair_density_detection","label":"髪密度分析","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hair_density_detection/section/概要","routeSlug":"/ja/reference/ai_hair_density_detection/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_hair_density_detection/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_hair_density_detection/section/概要/統合ガイド"},{"type":"link","label":"髪密度の分類","link":"/ja/reference/ai_hair_density_detection/section/概要/髪密度の分類","routeSlug":"/ja/reference/ai_hair_density_detection/section/概要/髪密度の分類"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hair_density_detection/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hair_density_detection/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_hair_density_detection/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_hair_density_detection/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_hair_density_detection/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_hair_density_detection/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_hair_density_detection/v1.0","routeSlug":"/ja/reference/ai_hair_density_detection/v1.0","items":[{"label":"髪密度分析タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_density_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-density-detection/post","routeSlug":"/ja/reference/ai_hair_density_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-density-detection/post","metadata":{"seo":{"title":"髪密度分析タスクを実行します。","description":"タスクのステータスを確認するにはポーリングが必要です。詳細はポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/hair-density-detection"},{"label":"髪密度分析タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hair_density_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-density-detection~1{task_id}/get","routeSlug":"/ja/reference/ai_hair_density_detection/v1.0/paths/~1s2s~1v2.0~1task~1hair-density-detection~1{task_id}/get","metadata":{"seo":{"title":"髪密度分析タスクのステータスを確認します。","description":"髪密度分析タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hair-density-detection/{task_id}"}]}],"metadata":{"type":"openapi","title":"髪密度分析","version":"","description":"# 概要\nAI 髪密度分析では、アップロードした 1 枚の画像から頭皮の可視性と髪の分布パターンを評価し、髪の密度を 4 つのレベルに分類します。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI_hair_density_S3_02_b34f2db2ce.jpg)\n\n## 統合ガイド\n* AI 髪密度分析用の写真の撮影方法\n* セルフィーを撮影する\n  - カメラを正面に向け、適切な照明の下で頭を45度下げてください。髪を結ばず、生え際全体がはっきりと見えるようにしてください。\n\n  ![](https://d3ss46vukfdtpo.cloudfront.net/static/media/img_popup_step_animated_02.aadf7a34.png)\n\n  - 代わりに、JS Camera Kit を使用して写真を撮影してください。\n\n* AI による髪密度の検出方法\n* ***/s2s/v2.0/file*** API を使用して、以下のアセットをアップロードします：\n  - セルフィー写真。\n\n* AI タスク ***/s2s/v2.0/task/hair-density-detection*** を実行 </br>\n正面から45度下げたセルフィー画像を1枚送信して検出タスクを実行します。AI のソース入力としてそのファイル ID を使用します。\n\n* タスクのステータスを成功またはエラーになるまでポーリングして確認する</br>\nこの ***task_id*** は、GET 'task/hair-density-detection' によるポーリングを通じてタスクのステータスを監視するために使用され、現在のエンジンステータスを取得します。エンジンがタスクを完了するまで、ステータスは 'running' のままであり、この段階ではユニットは消費されません。\n\n\n## 髪密度の分類\n\n|サムネイル|髪密度の分類|説明|\n| ----  | ----  | ----  |\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/dt_classification_LV01.5097a6c2.png)|レベル 1<br>極めて低い密度|髪が著しくまばらで、広い範囲で頭皮が見えます。|\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/dt_classification_LV02.7966983d.png)|レベル 2<br>低い密度|特に頭頂部や分け目で頭皮がはっきりと見える、目立つ薄毛があります。|\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/dt_classification_LV03.c49dbfb7.png)|レベル 3<br>中程度の密度|直射日光の下で頭皮が部分的に見えますが、髪は中程度のボリュームとカバー率を維持しています。|\n|![](https://d3ss46vukfdtpo.cloudfront.net/static/media/dt_classification_LV04.e467f2aa.png)|レベル 4<br>高い密度|髪はふさふさで厚く見え、頭皮はほとんどまたは全く見えません。|\n\n\n* 撮影方法のヒント\n\n![撮影方法のヒント](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/icon_S2_step1_20d0a161da.png \"撮影方法のヒント\")\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI_hair_density_S1_02_f60369b14d.jpg)\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n|タイプ|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI 髪密度分析|画像は幅と高さが少なくとも100ピクセル、いずれかの次元で4096ピクセル以下である必要があります。画像の片方の辺が1080ピクセルを超える場合、分析のためにその制限内に自動的にリサイズされます。|< 10MB|jpg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size|画像の幅または高さが100ピクセル未満の場合、小さすぎて使用できません|\n|error_face_position_invalid|画像内で顔全体が完全に可視であり、一部が切れていない必要があります|\n|error_face_position_too_small|写真内の顔が小さすぎて適切に分析できません|\n|error_face_position_out_of_boundary|顔が大きすぎるか、写真の端の一部が外れています|\n|error_insufficient_lighting|照明が暗すぎて、分析が困難です|\n|error_face_angle_invalid|顔の角度が正しくありません。正面を向いた撮影では、頭を正面から10度以内に保ってください。横を向いた撮影では、角度は15度以上である必要があります|\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 髪密度分析 V1.0 | 1 |\n\n---\n"}},{"type":"separator","label":"ファッション","labelTranslationKey":"sidebar.reference.separators.fashion"},{"type":"group","fsPath":"@l10n/ja/reference/ai_clothes.yaml","link":"/ja/reference/ai_clothes","routeSlug":"/ja/reference/ai_clothes","label":"服バーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_clothes/section/概要","routeSlug":"/ja/reference/ai_clothes/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_clothes/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_clothes/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_clothes/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_clothes/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_clothes/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_clothes/section/概要/ユニット消費量"}]},{"type":"group","label":"V4.0","link":"/ja/reference/ai_clothes/v4.0","routeSlug":"/ja/reference/ai_clothes/v4.0","items":[{"label":"服バーチャル試着 V4 タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_clothes/v4.0/paths/~1s2s~1v2.0~1task~1cloth-v4/post","routeSlug":"/ja/reference/ai_clothes/v4.0/paths/~1s2s~1v2.0~1task~1cloth-v4/post","metadata":{"seo":{"title":"服バーチャル試着 V4 タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/cloth-v4"},{"label":"服バーチャル試着 V4 タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_clothes/v4.0/paths/~1s2s~1v2.0~1task~1cloth-v4~1{task_id}/get","routeSlug":"/ja/reference/ai_clothes/v4.0/paths/~1s2s~1v2.0~1task~1cloth-v4~1{task_id}/get","metadata":{"seo":{"title":"服バーチャル試着 V4 タスクのステータスを確認します。","description":"服バーチャル試着 V4 タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/cloth-v4/{task_id}"}]},{"type":"group","label":"V3.0","link":"/ja/reference/ai_clothes/v3.0","routeSlug":"/ja/reference/ai_clothes/v3.0","items":[{"label":"服バーチャル試着 V3 タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_clothes/v3.0/paths/~1s2s~1v2.0~1task~1cloth-v3/post","routeSlug":"/ja/reference/ai_clothes/v3.0/paths/~1s2s~1v2.0~1task~1cloth-v3/post","metadata":{"seo":{"title":"服バーチャル試着 V3 タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/cloth-v3"},{"label":"服バーチャル試着 V3 タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_clothes/v3.0/paths/~1s2s~1v2.0~1task~1cloth-v3~1{task_id}/get","routeSlug":"/ja/reference/ai_clothes/v3.0/paths/~1s2s~1v2.0~1task~1cloth-v3~1{task_id}/get","metadata":{"seo":{"title":"服バーチャル試着 V3 タスクのステータスを確認します。","description":"服バーチャル試着 V3 タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/cloth-v3/{task_id}"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_clothes/v2.0","routeSlug":"/ja/reference/ai_clothes/v2.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_clothes/v2.0/paths/~1s2s~1v2.0~1task~1template~1cloth/get","routeSlug":"/ja/reference/ai_clothes/v2.0/paths/~1s2s~1v2.0~1task~1template~1cloth/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/cloth"},{"label":"服バーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_clothes/v2.0/paths/~1s2s~1v2.0~1task~1cloth/post","routeSlug":"/ja/reference/ai_clothes/v2.0/paths/~1s2s~1v2.0~1task~1cloth/post","metadata":{"seo":{"title":"服バーチャル試着タスクを実行します。","description":"このエンドポイントは、服バーチャル試着プロセスを開始します。テンプレート ID を使用するか、参照画像（ソースファイルと参照ファイル）を提供できます。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/cloth"},{"label":"服バーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_clothes/v2.0/paths/~1s2s~1v2.0~1task~1cloth~1{task_id}/get","routeSlug":"/ja/reference/ai_clothes/v2.0/paths/~1s2s~1v2.0~1task~1cloth~1{task_id}/get","metadata":{"seo":{"title":"服バーチャル試着タスクのステータスを確認します。","description":"服バーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/cloth/{task_id}"}]}],"metadata":{"type":"openapi","title":"服バーチャル試着","version":"","description":"# 概要\nAI Clothes で、服のバーチャル試着を作成します。\n画像に衣装を重ね合わせて試着プレビューを生成します。\n\n---\n\n## 統合ガイド\n\n* API プレイグラウンド\nAPI プレイグラウンドで AI Clothes のバーチャル試着機能をテストします。\n\nAPI プレイグラウンドにアクセスするには:\n<https://yce.makeupar.com/api-console/en/api-playground/ai-clothes/>\n\n---\n\n* AI Clothes API 使用ガイド\n\nこのガイドでは、画像のアップロード、参照衣装の準備、および AI Clothes API を使用したバーチャル試着タスクの作成方法について説明します。\n\n***\n\n   * ステップ 1. File API を使用してファイルをアップロードする\n\n**File API** (`/s2s/v2.0/file`) を使用して、対象ユーザーの画像をアップロードします。\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\": \"full_body_photo_01_3dbd1b6683.jpg\",\n   \"file_size\": 547541\n }\n    ]\n  }'\n```\n\n***\n\n   * ステップ 2. File 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\nFile 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以下のいずれかの方法が可能です:\n\n*   File API (`/s2s/v2.0/file`) を使用して衣装画像をアップロードする、または\n*   有効な画像 URL を提供する。\n\n**サポートされる衣装画像:**\n\n*   服の商品画像。\n*   衣装参照としての全身写真。\n\n詳細な仕様については、**[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n***\n\n   * ステップ 5. AI タスクを作成する\n\n**AI Task API** (`/s2s/v2.0/task/cloth-v4`) を使用して、バーチャル試着タスクを作成します。\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.0/task/cloth-v4 \\\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/clothes_03_cccd5d4803.jpeg\",\n    \"ref_file_url\": \"https://plugins-media.makeupar.com/strapi/assets/clothes_reference_full_body_01_5a000d999f.png\",\n    \"garment_category\": \"full_body\"\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.0/task/cloth-v4/<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![](https://plugins-media.makeupar.com/smb/blog/post/2025-05-08/b80f4ae1-c905-4ec0-b491-e42c15e65575.gif)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/01%20ai%20clothes%20changer.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2023-12-01/45f451aa-4b4f-466d-9da7-4538573c92af.jpg)\n\n撮影方法のヒント:\n![撮影方法のヒント](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI-Cloth-Guideline.png \"撮影方法のヒント\")\n\n\n## ファイル仕様とエラー\n* サポートされる形式と寸法\n\n|タイプ|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ---- | ---- | ---- | ---- |\n|対象ユーザー画像|推奨: 1024×768、最小: 512×384、最大辺: 4096 px。</br></br> - 1 人のみ。</br> - 最適な結果を得るには、人物がフレームの少なくとも 80% を占めている必要があります。</br> - 画像には上半身のみを含め、胸から上を映してください。腹部は映す必要はありませんが、肩は見える必要があります。</br> - 顔全体がはっきりと見え、遮るものがない必要があります。</br> - 体は正面を向いて立っている状態である必要があります（座ったりしゃがんだりしていないこと）。 |< 10MB|jpg/png|\n|服の参照画像 |推奨: 1024×768、最小: 512×384、最大辺: 4096 px。</br></br> - 実写の服写真を参照として使用する場合</br>&nbsp;&nbsp;&nbsp;- 1 人のみである必要があります。</br>&nbsp;&nbsp;&nbsp;- 見える服の領域が、試着対象領域を完全にカバーしている必要があります。</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 例: 全身試着の場合、上半身のみの服画像は受け入れられません。</br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- 例: 下半身試着の場合、部分的なパンツ画像は受け入れられません。</br>&nbsp;&nbsp;&nbsp;- 服が激しく遮られていてはいけません（例: 長い髪や腕で覆われているなど）。</br>&nbsp;&nbsp;&nbsp;- 顔全体がはっきりと見え、遮るものがない必要があります。</br>&nbsp;&nbsp;&nbsp;- 体は正面を向いて立っている状態である必要があります（座ったりしゃがんだりしていないこと）。 </br></br> - 商品画像を参照として使用する場合</br>&nbsp;&nbsp;&nbsp;- 単一の衣類の正面からの商品ショットである必要があります。</br>&nbsp;&nbsp;&nbsp;- 合成画像（例: 1 枚の写真にトップスとボトムスが含まれているなど）は使用しないでください。</br>&nbsp;&nbsp;&nbsp;- 下半身の場合、実際に着用された衣装のみがサポートされ、単独の商品画像はサポートされません。|< 10MB|jpg/png|\n\n* エラーコード\n\n* エラーコード（前処理）\n\n| エラーコード | 説明 |\n| ---------- | ----------- |\n| exceed_max_filesize | SRC または REF 画像が大きすぎます。長辺は 4096 ピクセルを超えてはいけません。 |\n| error_below_min_image_size | SRC または REF 画像が小さすぎます。長辺は少なくとも 128 ピクセルである必要があります。 |\n| error_pose | アップロードされた人間の SRC 画像からポーズを検出できませんでした。 |\n| error_invalid_ref | REF 画像が無効です。例えば、空であるか、被写体が完全に見えていません。 |\n| error_apply_region_mismatch | SRC 画像内の適用領域が REF 画像と一致しないため、編集を適用できません。 |\n| error_invalid_src | ソース画像に下半身のみ、または足のみが映っている場合。 |\n\n* エラーコード（エンジン）\n\n| エラーコード | 説明 |\n| ---------- | ----------- |\n| invalid_parameter | - 無効な衣類カテゴリー。 <br> - Style_id が inference_style_list に含まれていません。 <br> - 無効な src_keys、dst_keys、または acts。 <br> - 無効な ref_keys または template_ref_image。 <br> - 必ずそのうち 1 つのみを提供してください。 |\n| error_download_image | SRC または REF 画像をダウンロードできませんでした。 |\n| exceed_max_filesize | SRC または REF 画像が大きすぎます。ファイルサイズは 10 MB を超えてはいけません。 |\n| error_nsfw_content_detected | 結果画像に潜在的な NSFW コンテンツが検出されました。 |\n| error_editing_failed | 結果画像がソース画像と類似しすぎているため、編集プロセスが失敗しました。 |\n| unknown_internal_error | - モデルの読み込みに失敗しました。 <br> - 無効なスケジューラーアルゴリズムタイプ。 <br> - エンジンが読み込まれていません。 <br> - ファイルがアップロード結果に含まれていません。 |\n| error_multi_person | 「normal」または「strict」のマルチパーソンフィルター設定下で、ソース画像または参照画像に複数の人物が検出されました。 |\n\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| 服バーチャル試着 V2.0 | 2 |\n| 服バーチャル試着 V3.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_hat.yaml","link":"/ja/reference/ai_hat","routeSlug":"/ja/reference/ai_hat","label":"帽子バーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_hat/section/概要","routeSlug":"/ja/reference/ai_hat/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_hat/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_hat/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_hat/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_hat/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_hat/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_hat/section/概要/ユニット消費"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_hat/v2.0","routeSlug":"/ja/reference/ai_hat/v2.0","items":[{"label":"帽子バーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hat/v2.0/paths/~1s2s~1v2.0~1task~1hat/post","routeSlug":"/ja/reference/ai_hat/v2.0/paths/~1s2s~1v2.0~1task~1hat/post","metadata":{"seo":{"title":"帽子バーチャル試着タスクを実行します。","description":"このエンドポイントは、帽子のバーチャル試着プロセスを開始します。ソースファイル、参照ファイル（URL または ID）、性別、スタイルパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/hat"},{"label":"帽子バーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_hat/v2.0/paths/~1s2s~1v2.0~1task~1hat~1{task_id}/get","routeSlug":"/ja/reference/ai_hat/v2.0/paths/~1s2s~1v2.0~1task~1hat~1{task_id}/get","metadata":{"seo":{"title":"帽子バーチャル試着タスクのステータスを確認します。","description":"帽子バーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/hat/{task_id}"}]}],"metadata":{"type":"openapi","title":"帽子バーチャル試着","version":"","description":"# 概要\n帽子バーチャル試着を作成します。\n帽子を着用した状態のプレビューを確認できます。\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\n*   **エンドポイント:** `/s2s/v2.0/task/hat`\n*   **認証:** すべてのリクエストで `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **セルフィー画像の準備:** バーチャル試着のターゲットとして、ご自身の画像をアップロードするか、有効な画像 URL を指定します。\n    1.  **帽子画像の準備:** 帽子の商品画像または帽子を着用した人物の写真をアップロードします。\n    1.  **スタイルと性別の選択:** 希望するスタイルと、ビジュアライズしたい性別を選択します。\n    1.  **AI タスクの実行とタスク ID の取得:** レスポンスから `task_id` を取得します。\n    1.  **ステータスのポーリング (`GET`):** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続けます。\n\n---\n\n* 認証\n- **Bearer トークン** を使用して、リクエストヘッダーに API キーを含めます。\n```\nAuthorization: Bearer YOUR_API_KEY\n```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n---\n\n* AI 帽子 API 使用ガイド\n\nこのガイドでは、画像のアップロード、参照用帽子の準備、および AI 帽子 API を使用したバーチャル試着タスクの作成方法について説明します。\n\n***\n\n   * ステップ 1. セルフィー画像の準備\n\n以下のいずれかの方法が可能です。\n*   File API (`/s2s/v2.0/file`) を使用してセルフィー画像をアップロードする、または\n*   有効な画像 URL を指定する。\n\n     * ステップ 1.1 File API を使用したファイルのアップロード\n\n**File API** (`/s2s/v2.0/file`) を使用して、ターゲットユーザーの画像をアップロードします。\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_photo_01_3dbd1b6683.jpg\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n***\n\n     * ステップ 1.2. File 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\": \"selfie_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     * ステップ 1.3. 指定された URL への画像アップロード\n\nFile 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 @'./selfie_photo_01_3dbd1b6683.jpg'\n```\n\n***\n\n   * ステップ 2. 参照用帽子画像の準備\n\n以下のいずれかの方法が可能です。\n\n*   File API (`/s2s/v2.0/file`) を使用して帽子画像をアップロードする、または\n*   有効な画像 URL を指定する。\n\n**サポートされる帽子画像:**\n\n*   帽子の商品画像。\n*   帽子を着用した人物の写真。\n\n詳細な仕様については、**[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n***\n\n   * ステップ 3. AI タスクの作成\n\n希望するスタイルと、ビジュアライズしたい性別を選択します。\n**AI タスク API** (`/s2s/v2.0/task/hat`) を使用して、バーチャル試着タスクを作成します。\n\n**パラメータ:**\n\n*   ユーザー画像用: `src_file_id` または `src_file_url`。\n*   帽子画像用: `ref_file_id` または `ref_file_url`。\n\n**リクエスト例:**\n\n```bash\ncurl --request POST \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/hat \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json' \\\n  --data '{\n    \"src_file_url\": \"https://example.com/selfie.jpg\",\n    \"ref_file_url\": \"https://example.com/accessory.jpg\",\n    \"gender\": \"female\",\n    \"style\": \"random\"\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   * ステップ 4. タスク結果のポーリング\n\nタスク ID を使用してステータスを確認します。\n\n```bash\ncurl --request GET \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/hat/SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json'\n```\n\n***\n\n   * ステップ 5. 結果の取得\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* 帽子バーチャル試着仕様\n\n   * 画像要件\n\n| 種類   | 最小解像度 | 備考 |\n| ------ | ------------------ | ----- |\n| セルフィー | 512 × 512 | 顔が見えること、頭から胸までが推奨 |\n| 帽子  | 512 × 512 (商品)<br>800 × 800 (着用時) | 帽子がはっきりと、遮られずに写っていること |\n\n**サポートされる帽子画像**\n\n* 商品画像要件\n    * 最小解像度: 512 × 512 ピクセル\n    * 画像あたり 1 つの商品のみ\n    * 商品は画像の高さの 25% 以上を占める必要があります\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/026_thumb_dca334af3c.jpg)\n\n* 着用画像要件\n    * 最小解像度: 800 × 800 ピクセル\n    * 単一アイテム要件: モデルは正確に 1 つのアイテムのみを着用している必要があります。複数のアイテムやアクセサリーは許可されません。\n    * カバレッジ比率: 着用したアイテムは画像全体の height の 20% 以上を占める必要があります。これにより、アイテムがフレーム内で明確かつ目立つことが保証されます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/010_thumb_51490eebeb.jpg)\n\n**サポートされるセルフィービュー**\n\n* 推奨画像解像度: 少なくとも 512 × 512 ピクセル。\n* 推奨顔のカバレッジ: 画像 height の 15% 以上。\n* 単一被写体要件: 画像には正確に 1 人の人間の被写体のみが含まれている必要があります。追加の人物や部分的な人物像は許可されません。\n* 顔の可視性: 被写体の顔が遮られることなく完全に可視である必要があります。髪、アクセサリー、またはオブジェクトが主要な顔の特徴を覆ってはいけません。\n* フレーミング: 画像には少なくとも頭部ショットが含まれており、頭頂部から胸までの領域をカバーする必要があります。最適な分析のためには、半身ショット（頭から腰まで）が推奨されます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/lashana_lynch_thumb_7a900b811e.jpg)\n\n**試着スタイル**\n\n* バーチャル試着出力を生成するための 5 つの事前定義されたスタイルがあります: \"style_sporty_casual\" \"style_urban_fashion\" \"style_vacation_casual\" \"style_warm_cozy\" および \"style_bohemian\"。AI タスク作成時にこの style パラメータを指定するか、デフォルトでシステムがランダムにスタイルを選択するようにできます。\n\n![style_vacation_casual](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/5f42385b_6aef_44cd_b576_2ec10e31305d_824cc2019b.jpg)\n\n---\n\n* サポートされる形式と寸法\n\n| AI 機能 | サポートされる寸法 | サポートされるファイルサイズ | サポートされる形式 |\n|  ----  | ----  | ----  | ----  |\n| 帽子バーチャル試着 | 入力: 長辺 <= 4096 <br>出力: 896 x 1152 | < 10MB | jpg/jpeg/png/heic |\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ------------------------------ | -------------------------------------------- |\n| error\\_download\\_image         | ソースまたは参照画像のダウンロードに失敗しました |\n| error\\_inference               | 推論パイプラインエラー                     |\n| error\\_no\\_face                | ソース画像で顔が検出されませんでした             |\n| error\\_nsfw\\_content\\_detected | 結果に NSFW コンテンツが検出されました              |\n| exceed\\_max\\_filesize          | ファイルサイズが 10 MB を超えています                      |\n| invalid\\_parameter             | 無効な gender または style 値                |\n| unknown\\_internal\\_error       | その他の内部エラー                        |\n\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| 帽子バーチャル試着 V2.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_scarf.yaml","link":"/ja/reference/ai_scarf","routeSlug":"/ja/reference/ai_scarf","label":"スカーフバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_scarf/section/概要","routeSlug":"/ja/reference/ai_scarf/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_scarf/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_scarf/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_scarf/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_scarf/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_scarf/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_scarf/section/概要/ユニット消費"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_scarf/v2.0","routeSlug":"/ja/reference/ai_scarf/v2.0","items":[{"label":"スカーフバーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_scarf/v2.0/paths/~1s2s~1v2.0~1task~1scarf/post","routeSlug":"/ja/reference/ai_scarf/v2.0/paths/~1s2s~1v2.0~1task~1scarf/post","metadata":{"seo":{"title":"スカーフバーチャル試着タスクを実行します。","description":"このエンドポイントは、スカーフバーチャル試着プロセスを開始します。ソースファイル、参照ファイル（URL または ID）、性別、およびスタイルパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/scarf"},{"label":"AI スカーフバーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_scarf/v2.0/paths/~1s2s~1v2.0~1task~1scarf~1{task_id}/get","routeSlug":"/ja/reference/ai_scarf/v2.0/paths/~1s2s~1v2.0~1task~1scarf~1{task_id}/get","metadata":{"seo":{"title":"AI スカーフバーチャル試着タスクのステータスを確認します。","description":"AI スカーフバーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/scarf/{task_id}"}]}],"metadata":{"type":"openapi","title":"スカーフバーチャル試着","version":"","description":"# 概要\nスカーフバーチャル試着を作成します。\nスカーフを服装に着用した状態のプレビューを確認できます。\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\n*   **エンドポイント:** `/s2s/v2.0/task/scarf`\n*   **認証:** すべてのリクエストには `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **セルフィー画像の準備:** バーチャル試着のターゲットとして、自分の画像をアップロードするか、有効な画像 URL を提供します。\n    1.  **スカーフ画像の準備:** スカーフ製品またはスカーフを着用した人物（遮るものなく明確に見える）の画像をアップロードするか、有効な画像 URL を提供します。\n    1.  **スタイルと性別の選択:** 希望するスタイルと、視覚化したい性別を選択します。\n    1.  **AI タスクの実行とタスク ID の取得:** レスポンスから `task_id` を取得します。\n    1.  **ステータスのポーリング (`GET`):** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続けます。\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer トークン** を使用して API キーを含めます:\n```\nAuthorization: Bearer YOUR_API_KEY\n```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n---\n\n* AI スカーフ API 使用ガイド\n\nこのガイドでは、画像のアップロード、参照スカーフの準備、および AI スカーフ API を使用したバーチャル試着タスクの作成方法について説明します。\n\n***\n\n   * ステップ 1. セルフィー画像の準備\n\n以下のいずれかの方法が利用可能です:\n*   File API (`/s2s/v2.0/file`) を使用してセルフィー画像をアップロードする、または\n*   有効な画像 URL を提供する。\n\n     * ステップ 1.1 File API を使用したファイルのアップロード\n\n**File API** (`/s2s/v2.0/file`) を使用して、ターゲットユーザーの画像をアップロードします。\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_photo_01_3dbd1b6683.jpg\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n***\n\n     * ステップ 1.2. File 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\": \"selfie_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     * ステップ 1.3. 提供された URL への画像アップロード\n\nFile 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 @'./selfie_photo_01_3dbd1b6683.jpg'\n```\n\n***\n\n   * ステップ 2. 参照スカーフ画像の準備\n\n以下のいずれかの方法が利用可能です:\n\n*   File API (`/s2s/v2.0/file`) を使用してスカーフ画像をアップロードする、または\n*   有効な画像 URL を提供する。\n\n**対応スカーフ画像:**\n\n*   スカーフの製品画像。\n*   遮るものなくスカーフを持っている人物（スカーフの参照用）。\n\n詳細な仕様については、**[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n***\n\n   * ステップ 3. AI タスクの作成\n\n希望するスタイルと、視覚化したい性別を選択します。\n**AI タスク API** (`/s2s/v2.0/task/scarf`) を使用してバーチャル試着タスクを作成します。\n\n**パラメータ:**\n\n*   ユーザー画像用: `src_file_id` または `src_file_url`。\n*   スカーフ画像用: `ref_file_id` または `ref_file_url`。\n\n**リクエスト例:**\n\n```bash\ncurl --request POST \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/scarf \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json' \\\n  --data '{\n    \"src_file_url\": \"https://example.com/selfie.jpg\",\n    \"ref_file_url\": \"https://example.com/accessory.jpg\",\n    \"gender\": \"female\",\n    \"style\": \"random\"\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   * ステップ 4. タスク結果のポーリング\n\nタスク ID を使用してステータスを確認します:\n\n```bash\ncurl --request GET \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/scarf/SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json'\n```\n\n***\n\n   * ステップ 5. 結果の取得\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* AI スカーフバーチャル試着仕様\n\n   * 画像要件\n\n| タイプ   | 最小解像度 | 備考 |\n| ------ | ------------------ | ----- |\n| セルフィー | 512 × 512 | 顔が見えること、頭から胸までが推奨 |\n| スカーフ  | 512 × 512 (製品)<br>800 × 800 (着用時) | 明確で遮られていないスカーフのビュー |\n\n**対応スカーフ画像**\n\n* 製品画像要件\n    * 最小解像度: 512 × 512 ピクセル\n    * 画像あたり 1 つの製品のみ\n    * 製品は画像の高さの 25 パーセント以上を占める必要があります\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/021_thumb_e356d121b3.jpg)\n\n* 着用画像要件\n    * 最小解像度: 800 × 800 ピクセル\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/008_thumb_5dd8b1be93.jpg)\n\n**対応セルフィービュー**\n\n* 推奨画像解像度: 少なくとも 512 × 512 ピクセル。\n* 推奨顔の被写体範囲: 画像の高さの 15 パーセント以上。\n* 画像には単一の人物が明確に写っており、顔全体が見え、頭から胸まで（少なくとも頭部ショット）がフレームに含まれている必要があります。半身ショットが推奨されます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/lashana_lynch_thumb_7a900b811e.jpg)\n\n**試着スタイル**\n\n* バーチャル試着出力を生成するための 5 つの事前定義スタイルがあります: \"style_french_elegance\", \"style_light_luxury\", \"style_cottagecore\", \"style_modern_chic\", \"style_bohemian\"。AI タスク作成時にこのスタイルパラメータを指定するか、デフォルトでシステムにランダムにスタイルを選択させることができます。\n\n![style_french_elegance](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/3d88ad75_41ca_4bf8_b81d_f52adf5db263_4a06b3e174.jpg)\n\n---\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI スカーフバーチャル試着|入力: 長辺 <= 4096 <br>出力: 896 x 1152 |< 10MB|jpg/jpeg/png/heic|\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ------------------------------ | -------------------------------------------- |\n| error\\_download\\_image         | ソースまたは参照画像のダウンロードに失敗しました |\n| error\\_inference               | 推論パイプラインエラー                     |\n| error\\_no\\_face                | ソース画像で顔が検出されませんでした             |\n| error\\_nsfw\\_content\\_detected | 結果に NSFW コンテンツが検出されました              |\n| exceed\\_max\\_filesize          | ファイルサイズが 10 MB を超えています                      |\n| invalid\\_parameter             | 無効な性別またはスタイル値                |\n| unknown\\_internal\\_error       | その他の内部エラー                        |\n\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI スカーフバーチャル試着 V2.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_bag.yaml","link":"/ja/reference/ai_bag","routeSlug":"/ja/reference/ai_bag","label":"バッグバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_bag/section/概要","routeSlug":"/ja/reference/ai_bag/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_bag/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_bag/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_bag/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_bag/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_bag/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_bag/section/概要/ユニット消費"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_bag/v2.0","routeSlug":"/ja/reference/ai_bag/v2.0","items":[{"label":"AI バッグタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_bag/v2.0/paths/~1s2s~1v2.0~1task~1bag/post","routeSlug":"/ja/reference/ai_bag/v2.0/paths/~1s2s~1v2.0~1task~1bag/post","metadata":{"seo":{"title":"AI バッグタスクを実行します。","description":"このエンドポイントは、バッグバーチャル試着プロセスを開始します。ソースファイル、参照ファイル（URL または ID）、および性別とスタイルパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/bag"},{"label":"AI バッグタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_bag/v2.0/paths/~1s2s~1v2.0~1task~1bag~1{task_id}/get","routeSlug":"/ja/reference/ai_bag/v2.0/paths/~1s2s~1v2.0~1task~1bag~1{task_id}/get","metadata":{"seo":{"title":"AI バッグタスクのステータスを確認します。","description":"AI バッグタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/bag/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI バッグバーチャル試着","version":"","description":"# 概要\nAI バッグで、バッグのバーチャル試着を作成します。\n\n## 統合ガイド\nこのガイドでは、以下を説明します：\n\n*   **エンドポイント:** `/s2s/v2.0/task/bag`\n*   **認証:** すべてのリクエストには `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **セルフィー画像の準備:** バーチャル試着対象として、自分の画像をアップロードするか、有効な画像 URL を提供します。\n    1.  **バッグ画像の準備:** バッグ製品、またはバッグを持っている人物（遮るものがない状態）の画像をアップロードするか、有効な画像 URL を提供します。\n    1.  **スタイルと性別の選択:** 希望するスタイルと、視覚化したい性別を選択します。\n    1.  **AI タスクの実行とタスク ID の取得:** レスポンスから `task_id` を取得します。\n    1.  **ステータスのポーリング (`GET`):** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを継続します。\n\n---\n\n* 認証\n- **ベアラートークン** を使用して、リクエストヘッダーに API キーを含めます：\n```\nAuthorization: Bearer YOUR_API_KEY\n```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n---\n\n* AI バッグ API 使用ガイド\n\nこのガイドでは、画像のアップロード、参照バッグの準備、および AI バッグ API を使用したバーチャル試着タスクの作成方法について説明します。\n\n***\n\n   * ステップ 1. ファイル API を使用したファイルのアップロード\n\n**ファイル API** (`/s2s/v2.0/file`) を使用して、対象ユーザーの画像をアップロードします。\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_photo_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\": \"selfie_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 @'./selfie_photo_01_3dbd1b6683.jpg'\n```\n\n***\n\n   * ステップ 4. 参照バッグ画像の準備\n\n以下が可能：\n\n*   ファイル API (`/s2s/v2.0/file`) を使用してバッグ画像をアップロードする、または\n*   有効な画像 URL を提供する。\n\n**サポートされるバッグ画像:**\n\n*   バッグの製品画像。\n*   バッグの参照として、遮るものなくバッグを持っている人物。\n\n詳細な仕様については **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n***\n\n   * ステップ 5. AI タスクの作成\n\n希望するスタイルと、視覚化したい性別を選択します。\n**AI タスク API** (`/s2s/v2.0/task/bag`) を使用してバーチャル試着タスクを作成します。\n\n**パラメータ:**\n\n*   ユーザー画像用: `src_file_id` または `src_file_url`。\n*   バッグ画像用: `ref_file_id` または `ref_file_url`。\n\n**リクエスト例:**\n\n```bash\ncurl --request POST \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/bag \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json' \\\n  --data '{\n    \"src_file_url\": \"https://example.com/selfie.jpg\",\n    \"ref_file_url\": \"https://example.com/accessory.jpg\",\n    \"gender\": \"female\",\n    \"style\": \"random\"\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.0/task/bag/SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT \\\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* AI バッグバーチャル試着仕様\n\n**サポートされるバッグ画像**\n\n* 製品画像要件\n    * 最小解像度: 512 × 512 ピクセル\n    * 画像あたり 1 つの製品のみ\n    * 製品は画像の高さの 25 % 以上を占める必要があります\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/040_thumb_c5f4d2af8e.jpg)\n\n* 着用画像要件\n    * 最小解像度: 800 × 800 ピクセル\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/003_thumb_c73b207cae.jpg)\n\n**サポートされるセルフィービュー**\n\n* 推奨画像解像度: 少なくとも 512 × 512 ピクセル。\n* 推奨顔の被写体範囲: 画像の高さの 15 % 以上。\n* 画像には、顔全体がはっきりと見え、頭から胸まで少なくとも頭部ショットが含まれる単一の人物が写っている必要があります。半身ショットが推奨されます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/lashana_lynch_thumb_7a900b811e.jpg)\n\n**試着スタイル**\n\n* バーチャル試着出力を生成するための 4 つの事前定義スタイルがあります: \"style_parisian_chic\", \"style_urban_chic\", \"style_mediterranean_chic\", \"style_art_deco_style\"。AI タスク作成時にこのスタイルパラメータを指定するか、デフォルトでシステムがランダムにスタイルを選択するようにできます。\n\n![style_parisian_chic](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/fca6a904_b13a_4c90_bc52_d9200a473c70_4d994afa3e.jpg)\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|AI バッグバーチャル試着|入力: 長辺 <= 4096 <br>出力: 1104 x 1472 |< 10MB|jpg/jpeg/png/heic|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_download_image | srcKeys/refKeys のダウンロードエラー |\n| error_inference            | 推論パイプラインエラー |\n| error_no_face              | ソース画像で顔が検出されませんでした |\n| error_nsfw_content_detected| 結果画像で NSFW コンテンツが検出されました |\n| exceed_max_filesize        | 入力ファイルサイズが最大制限 (10 MB) を超えています |\n| invalid_parameter          | 無効な性別オプション値 <br>無効なスタイルオプション値 |\n| unknown_internal_error     | その他 |\n\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI バッグバーチャル試着 V2.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_shoes.yaml","link":"/ja/reference/ai_shoes","routeSlug":"/ja/reference/ai_shoes","label":"靴バーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_shoes/section/概要","routeSlug":"/ja/reference/ai_shoes/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_shoes/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_shoes/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_shoes/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_shoes/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_shoes/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_shoes/section/概要/ユニット消費"}]},{"type":"group","label":"V3.0","link":"/ja/reference/ai_shoes/v3.0","routeSlug":"/ja/reference/ai_shoes/v3.0","items":[{"label":"靴バーチャル試着 V3.0 タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_shoes/v3.0/paths/~1s2s~1v2.0~1task~1shoes-transfer/post","routeSlug":"/ja/reference/ai_shoes/v3.0/paths/~1s2s~1v2.0~1task~1shoes-transfer/post","metadata":{"seo":{"title":"靴バーチャル試着 V3.0 タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/shoes-transfer"},{"label":"靴バーチャル試着 V3.0 タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_shoes/v3.0/paths/~1s2s~1v2.0~1task~1shoes-transfer~1{task_id}/get","routeSlug":"/ja/reference/ai_shoes/v3.0/paths/~1s2s~1v2.0~1task~1shoes-transfer~1{task_id}/get","metadata":{"seo":{"title":"靴バーチャル試着 V3.0 タスクのステータスを確認します。","description":"靴バーチャル試着 V3.0 タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/shoes-transfer/{task_id}"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_shoes/v2.0","routeSlug":"/ja/reference/ai_shoes/v2.0","items":[{"label":"靴バーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes/post","routeSlug":"/ja/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes/post","metadata":{"seo":{"title":"靴バーチャル試着タスクを実行します。","description":"このエンドポイントは靴のバーチャル試着プロセスを開始します。ソースファイル、参照ファイル（URL または ID）、性別、スタイルパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/shoes"},{"label":"靴バーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes~1{task_id}/get","routeSlug":"/ja/reference/ai_shoes/v2.0/paths/~1s2s~1v2.0~1task~1shoes~1{task_id}/get","metadata":{"seo":{"title":"靴バーチャル試着タスクのステータスを確認します。","description":"靴バーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/shoes/{task_id}"}]}],"metadata":{"type":"openapi","title":"靴バーチャル試着","version":"","description":"# 概要\n靴バーチャル試着を作成します。\n靴を履いた状態のプレビューを確認できます。\n\n## 統合ガイド\nこのガイドでは、以下を説明します。\n\n*   **エンドポイント:** `/s2s/v2.0/task/shoes`\n*   **認証:** すべてのリクエストには `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **セルフィー画像の準備:** バーチャル試着の対象として、自分の画像をアップロードするか、有効な画像 URL を指定します。\n    1.  **靴画像の準備:** 靴の商品画像または靴を履いた人物の写真をアップロードします。\n    1.  **スタイルと性別の選択:** 希望するスタイルと、視覚化したい性別を選択します。\n    1.  **AI タスクの実行とタスク ID の取得:** レスポンスから `task_id` を取得します。\n    1.  **ステータスのポーリング (`GET`):** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続けます。\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer トークン** を使用して API キーを含めます:\n```\nAuthorization: Bearer YOUR_API_KEY\n```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n---\n\n* AI 靴 API 使用ガイド\n\nこのガイドでは、画像のアップロード、参照用靴の準備、および AI 靴 API を使用したバーチャル試着タスクの作成方法について説明します。\n\n***\n\n   * ステップ 1. セルフィー画像の準備\n\n以下のいずれかの方法が可能です:\n*   File API (`/s2s/v2.0/file`) を使用してセルフィー画像をアップロードする、または\n*   有効な画像 URL を指定する。\n\n     * ステップ 1.1 File API を使用したファイルのアップロード\n\n**File API** (`/s2s/v2.0/file`) を使用して、対象ユーザーの画像をアップロードします。\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_photo_01_3dbd1b6683.jpg\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n***\n\n     * ステップ 1.2. File 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\": \"selfie_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     * ステップ 1.3. 指定された URL への画像アップロード\n\nFile 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 @'./selfie_photo_01_3dbd1b6683.jpg'\n```\n\n***\n\n   * ステップ 2. 参照用靴画像の準備\n\n以下のいずれかの方法が可能です:\n\n*   File API (`/s2s/v2.0/file`) を使用して靴画像をアップロードする、または\n*   有効な画像 URL を指定する。\n\n**サポートされる靴画像:**\n\n*   靴の商品画像。\n*   靴を履いた人物の写真。\n\n詳細な仕様については、**[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n***\n\n   * ステップ 3. AI タスクの作成\n\n希望するスタイルと、視覚化したい性別を選択します。\n**AI タスク API** (`/s2s/v2.0/task/shoes`) を使用して、バーチャル試着タスクを作成します。\n\n**パラメータ:**\n\n*   ユーザー画像用: `src_file_id` または `src_file_url`。\n*   靴画像用: `ref_file_id` または `ref_file_url`。\n\n**リクエスト例:**\n\n```bash\ncurl --request POST \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/shoes \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json' \\\n  --data '{\n    \"src_file_url\": \"https://example.com/selfie.jpg\",\n    \"ref_file_url\": \"https://example.com/accessory.jpg\",\n    \"gender\": \"female\",\n    \"style\": \"random\"\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   * ステップ 4. タスク結果のポーリング\n\nタスク ID を使用してステータスを確認します:\n\n```bash\ncurl --request GET \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/shoes/SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json'\n```\n\n***\n\n   * ステップ 5. 結果の取得\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* AI 靴バーチャル試着仕様\n\n   * 画像要件\n\n| 種類 | 最小解像度 | 備考 |\n| ------ | ------------------ | ----- |\n| セルフィー | 512 × 512 | 顔が見えること、頭から胸までが推奨 |\n| 靴 | 512 × 512 (商品)<br>800 × 800 (着用) | 靴がはっきりと、遮られずに写っていること |\n\n**サポートされる靴画像**\n\n* 商品画像の要件\n    * 最小解像度: 512 × 512 ピクセル\n    * 画像あたり 1 つの製品のみ\n    * 製品は画像の高さの 25% 以上を占める必要があります\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/0019_thumb_06a4a9cc5f.jpg)\n\n* 着用画像の要件\n    * 最小解像度: 800 × 800 ピクセル\n    * 単一アイテム要件: モデルは正確に 1 つのアイテムのみを着用している必要があります。複数のアイテムやアクセサリーは許可されません。\n    * カバレッジ比率: 着用アイテムは画像全体の height の 20% 以上を占める必要があります。これにより、アイテムがフレーム内で明確に見え、目立つことが保証されます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/0006_thumb_50a0a0640c.jpg)\n\n**サポートされるセルフィービュー**\n\n* 推奨画像解像度: 少なくとも 512 × 512 ピクセル。\n* 推奨顔のカバレッジ: 画像の高さの 15% 以上。\n* 単一被写体要件: 画像には正確に 1 人の人間の被写体のみが含まれている必要があります。追加の人物や部分的な人物像は許可されません。\n* 顔の可視性: 被写体の顔が完全に視認可能で、遮られていない必要があります。髪、アクセサリー、またはオブジェクトが主要な顔の特徴を覆ってはいけません。\n* フレーミング: 画像には少なくとも頭部ショットを含み、頭頂部から胸までの領域をカバーする必要があります。最適な分析のためには、半身ショット（頭から腰まで）が推奨されます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/lashana_lynch_thumb_7a900b811e.jpg)\n\n**試着スタイル**\n\n* バーチャル試着出力の生成には、\"style_minimalist\" \"style_bohemian\" \"style_cottagecore\" \"style_french_elegance\" および \"style_retro_fashion\" の 5 つの事前定義されたスタイルがあります。AI タスク作成時にこの style パラメータを指定するか、デフォルトでシステムがランダムにスタイルを選択させることができます。\n\n![style_bohemian](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/cc55fe0d_aec9_4ead_b2e9_bc70f48c58b9_670a875b29.jpg)\n\n---\n\n* サポートされる形式と寸法\n\n| AI 機能 | サポートされる寸法 | サポートされるファイルサイズ | サポートされる形式 |\n|  ----  | ----  | ----  | ----  |\n| AI 靴バーチャル試着 | 入力: 長辺 <= 4096 <br>出力: 1008 x 1344 | < 10MB | jpg/jpeg/png/heic |\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ------------------------------ | -------------------------------------------- |\n| error\\_download\\_image         | ソースまたは参照画像のダウンロードに失敗しました |\n| error\\_inference               | 推論パイプラインエラー |\n| error\\_no\\_face                | ソース画像で顔が検出されませんでした |\n| error\\_nsfw\\_content\\_detected | 結果に NSFW コンテンツが検出されました |\n| exceed\\_max\\_filesize          | ファイルサイズが 10 MB を超えています |\n| invalid\\_parameter             | 無効な gender または style 値 |\n| unknown\\_internal\\_error       | その他の内部エラー |\n\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## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 靴バーチャル試着 V2.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_fabric.yaml","link":"/ja/reference/ai_fabric","routeSlug":"/ja/reference/ai_fabric","label":"ファブリックチェンジ","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_fabric/section/概要","routeSlug":"/ja/reference/ai_fabric/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_fabric/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_fabric/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_fabric/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_fabric/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_fabric/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_fabric/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_fabric/v1.0","routeSlug":"/ja/reference/ai_fabric/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1template~1fabric/get","routeSlug":"/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1template~1fabric/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/fabric"},{"label":"ファブリックタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1fabric/post","routeSlug":"/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1fabric/post","metadata":{"seo":{"title":"ファブリックタスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/fabric"},{"label":"ファブリックタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1fabric~1{task_id}/get","routeSlug":"/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1fabric~1{task_id}/get","metadata":{"seo":{"title":"ファブリックタスクのステータスを確認します。","description":"ファブリックタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/fabric/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI ファブリックチェンジ","version":"","description":"# 概要\nAI ファブリック API では、画像の衣服領域にファブリックスタイルを適用します。\n新しいファブリックスタイルを追加します。\n\n---\n\n## 統合ガイド\n\n* AI ファブリック API 使用ガイド\n\nこのガイドでは、画像のアップロード、事前定義されたファブリックスタイルの取得、および AI ファブリック API を使用したバーチャル試着タスクの作成方法について説明します。\n\n***\n\n   * ステップ 1. ファイル API を使用してファイルをアップロードする\n\n**File API** (`/s2s/v2.0/file`) を使用して、対象ユーザーの画像をアップロードします。\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\": \"full_body_photo_01_3dbd1b6683.jpg\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n***\n\n   * ステップ 2. File 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\nFile 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**Template API** (`/s2s/v2.0/task/template/fabric`) を使用して、事前定義されたファブリックテンプレートのリストを取得します:\n\n```bash\ncurl --request GET \\\n    --url 'https://yce-api-01.makeupar.com/s2s/v2.0/task/template/fabric?page_size=20&starting_token=73a3c9e69b89' \\\n    --header 'Authorization: Bearer YOUR_API_KEY'\n```\n\n***\n\n   * ステップ 5. AI タスクを作成する\n\n**AI Task API** (`/s2s/v2.0/task/fabric`) を使用して、バーチャル試着タスクを作成します。\n\n**パラメータ:**\n\n*   ユーザー画像用: `src_file_id` または `src_file_url`。\n*   ファブリックスタイル用: `template_id`。\n\n**リクエスト例:**\n\n```bash\ncurl --request POST \\\n    --url https://yce-api-01.makeupar.com/s2s/v2.0/task/fabric \\\n    --header 'Authorization: Bearer YOUR_API_KEY' \\\n    --header 'content-type: application/json' \\\n    --data '{\n    \"template_id\":\"good_template_001\",\n    \"src_file_url\":\"https://example.com/selfie.jpg\"\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.0/task/fabric/<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/strapi/assets/AI%20Fabric.png)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2024-05-07/b103976d-1b0e-4bed-aab4-9307308b84d7.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/03%20ai%20clothes%20changer.jpg)\n\n撮影方法の提案:\n![撮影方法の提案](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI-Cloth-Guideline.png \"撮影方法の提案\")\n\n---\n\n## ファイル仕様とエラー\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|AI ファブリック|長辺 <= 4096、単一の人物のみ、腹部、顔、肩がすべて見えている必要があります。顔が遮られてはいけません。体は直立し、正面を向いており、座るやしゃがむなどのポーズは避けてください。|< 10MB|jpg/jpeg|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_apply_region_not_detected|入力画像内の衣服領域が小さすぎるか、検出されませんでした\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| ファブリックチェンジ V1.0 | 2 |\n\n---\n"}},{"type":"separator","label":"ジュエリー＆ウォッチ","labelTranslationKey":"sidebar.reference.separators.jewelryWatches"},{"type":"group","fsPath":"@l10n/ja/reference/ring_vto.yaml","link":"/ja/reference/ring_vto","routeSlug":"/ja/reference/ring_vto","label":"指輪バーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ring_vto/section/概要","routeSlug":"/ja/reference/ring_vto/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ring_vto/section/概要/統合ガイド","routeSlug":"/ja/reference/ring_vto/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ring_vto/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ring_vto/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ring_vto/section/概要/js-camera-kit","routeSlug":"/ja/reference/ring_vto/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ring_vto/section/概要/ユニット消費","routeSlug":"/ja/reference/ring_vto/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ring_vto/v1.0","routeSlug":"/ja/reference/ring_vto/v1.0","items":[{"label":"新しいファイルを作成します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1file~12d-vto~1ring/post","routeSlug":"/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1file~12d-vto~1ring/post","metadata":{"seo":{"title":"新しいファイルを作成します。","description":"新しいファイルをアップロードするには、まず File API を使用する必要があります。URL が発行されるので、その URL を使用してファイルをアップロードします。アップロードが完了したら、同じレスポンス内の file_id を使用して AI 機能を利用できます。"}},"httpPath":"/s2s/v2.0/file/2d-vto/ring"},{"label":"指輪バーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1ring/post","routeSlug":"/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1ring/post","metadata":{"seo":{"title":"指輪バーチャル試着タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/2d-vto/ring"},{"label":"指輪バーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1ring~1{task_id}/get","routeSlug":"/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1ring~1{task_id}/get","metadata":{"seo":{"title":"指輪バーチャル試着タスクのステータスを確認します。","description":"指輪バーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/2d-vto/ring/{task_id}"}]}],"metadata":{"type":"openapi","title":"指輪バーチャル試着","version":"","description":"# 概要\nAR リングやエンゲージメントリングのバーチャル試着を作成します。2D 画像でリングの試着プレビューを生成します。\n\n## 統合ガイド\n本ガイドでは以下内容を説明します:\n\n*   **エンドポイント:** `/s2s/v2.0/task/2d-vto/ring`\n*   **認証:** すべてのリクエストに `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **手の画像を準備する:** 画像をアップロードするか、手の有効な画像 URL を提供します\n    1.  **リングの画像を準備する:** 画像をアップロードするか、リング製品の有効な画像 URL を提供します\n    1.  **AI タスクを発行しタスク ID を取得する:** レスポンスから `task_id` を取得します。\n    1.  **ステータスをポーリングする（`GET`）:** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続行してください。\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします:\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-ring-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-ring-virtual-try-on/)\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer Token** を使用して API キーを含めます:\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、VTO タスクペイロードに有効な画像 URL を提供できます。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでにパブリックな画像 URL を持っている場合は、このステップをスキップできます。\n\nFile API のレスポンスで提供された URL にファイルを直接アップロードし、その後 File API が返した対応する `src_file_id` を使用して AI タスクを呼び出すことができます。または VTO タスクペイロードに有効な画像 URL を `src_file_url` として提供します。`src_file_id` または `src_file_url` がバーチャル試着の対象となります。\n\nまた、`src_file_id` または `src_file_url` に適用するリング製品画像を参照として `ref_file_ids` または `ref_file_urls` で提供する必要があります。\n\nAI エンジンでは、リング製品画像の自動背景透過に対応しています。ただし、手（`srcmsk_file_id` または `srcmsk_file_url`）またはリング製品（`refmsk_file_ids` または `refmsk_file_urls`）のオクルージョンマスク画像ファイルを提供してセグメンテーションを微調整できます。\n\n---\n\n* 2. リング VTO タスクの作成と結果のポーリング\n\n画像とテンプレート ID が揃ったら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` に達するまでタスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/2d-vto/ring\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/2d-vto/ring/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* 指輪バーチャル試着の仕様\n\n**サポートされるリングビュー**\nリング画像は四分之三前面ビュー（約 45 度）で提供する必要があります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_product_01_9a4d0680f2_b46afe9a53.jpg)\n\n**サポートされる手のビュー**\n手の甲が完全に、5 つの指がすべて明確に見え、オクルージョン（遮蔽）がない状態である必要があります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_user_01_6d9893abd0_c7427cdb78.jpg)\n\n**ring\\_wearing\\_finger: integer (0–4)**\nリングを着用する指を指定します:\n0 = 親指\n1 = 人差し指\n2 = 中指\n3 = 薬指\n4 = 小指\n\n**ring\\_wearing\\_location: float (0.0–1.0)**\n指に沿った位置を示します:\n0.0 = MCP 関節（大きな関節）に近い\n1.0 = PIP 関節（中央の関節）に近い\n\n![ring_wearing_location](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_wearing_location_59567be4af.jpg)\n\n**ring\\_shadow\\_intensity: float (0.0–1.0)**\n影の強さを制御します:\n0.0 = 影なし\n1.0 = 最大限の影\nデフォルト: 0.15\n\n**ring\\_ambient\\_light\\_intensity: float (0.0–1.0)**\nライティングがターゲットの手画像を参照する度合いを定義します:\n0.0 = 手画像のライティングを無視\n1.0 = 手画像のライティングと影のレンダリングに完全に一致\nデフォルト: 1.0\n\n**リングアンカーポイント: ピクセル座標の 2 点の配列（任意）**\nリングが指に接する内側のエッジをマークし、左と右の点を指定します。幅広または厚みのあるリングには特に役立ちます。\nこのパラメータを提供しない場合、AI エンジンがアンカーポイントを自動的に検出します。\n\n![ring_anchor_point](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_anchor_point_e6eb241ef8.jpg)\n\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|指輪バーチャル試着|長辺 <= 4096 |< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| RUNTIME_ERROR | ランタイムで予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真が正しく処理できませんでした（例: 手が検出されなかった） |\n| OBJECT_DETECTION_FAIL | オブジェクト写真が正しく処理できませんでした（例: 製品が検出されなかった） |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイルの形式が正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| 指輪バーチャル試着 V1.0 | シングルアイテム着用で 1 ユニット<br> スタック着用で 2 ユニット |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_bracelet.yaml","link":"/ja/reference/ai_bracelet","routeSlug":"/ja/reference/ai_bracelet","label":"ブレスレットバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_bracelet/section/概要","routeSlug":"/ja/reference/ai_bracelet/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_bracelet/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_bracelet/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_bracelet/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_bracelet/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_bracelet/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_bracelet/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_bracelet/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_bracelet/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_bracelet/v1.0","routeSlug":"/ja/reference/ai_bracelet/v1.0","items":[{"label":"AI 2D ブレスレットバーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_bracelet/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1bracelet/post","routeSlug":"/ja/reference/ai_bracelet/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1bracelet/post","metadata":{"seo":{"title":"AI 2D ブレスレットバーチャル試着タスクを実行します。","description":"このエンドポイントは、ブレスレットのバーチャル試着プロセスを開始します。ソースファイルと参照画像（URL または File ID 経由）に加え、アライメントとシャドウイングのための特定のパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/2d-vto/bracelet"},{"label":"AI 2D ブレスレットバーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_bracelet/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1bracelet~1{task_id}/get","routeSlug":"/ja/reference/ai_bracelet/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1bracelet~1{task_id}/get","metadata":{"seo":{"title":"AI 2D ブレスレットバーチャル試着タスクのステータスを確認します。","description":"AI 2D ブレスレットバーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/2d-vto/bracelet/{task_id}"}]}],"metadata":{"type":"openapi","title":"ブレスレットバーチャル試着","version":"","description":"# 概要\nブレスレットのバーチャル試着を作成します。\n2D 画像 1 枚でブレスレットの試着プレビューを生成します。\n\nジュエリーブランドで使えます。\n\n## 統合ガイド\n本ガイドでは以下内容を説明します:\n\n*   **エンドポイント:** `/s2s/v2.0/task/2d-vto/bracelet`\n*   **認証:** すべてのリクエストに `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **手首の画像を準備する:** 画像をアップロードするか、手首の有効な画像 URL を提供します\n    1.  **ブレスレットの画像を準備する:** 画像をアップロードするか、ブレスレット製品の有効な画像 URL を提供します\n    1.  **AI タスクを発行しタスク ID を取得する:** レスポンスから `task_id` を取得します。\n    1.  **ステータスをポーリングする（`GET`）:** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続行してください。\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします:\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-bracelet-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-bracelet-virtual-try-on/)\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer Token** を使用して API キーを含めます:\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、VTO タスクペイロードに有効な画像 URL を提供できます。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでにパブリックな画像 URL を持っている場合は、このステップをスキップできます。\n\nFile API のレスポンスで提供された URL にファイルを直接アップロードし、その後 File API が返した対応する `src_file_id` を使用して AI タスクを呼び出すことができます。または VTO タスクペイロードに有効な画像 URL を `src_file_url` として提供します。`src_file_id` または `src_file_url` がバーチャル試着の対象となります。\n\nまた、`src_file_id` または `src_file_url` に適用するブレスレット製品画像を参照として `ref_file_ids` または `ref_file_urls` で提供する必要があります。\n\nAI エンジンでは、ブレスレット製品画像の自動背景透過に対応しています。ただし、手（`srcmsk_file_id` または `srcmsk_file_url`）またはブレスレット製品（`refmsk_file_ids` または `refmsk_file_urls`）のオクルージョンマスク画像ファイルを提供してセグメンテーションを微調整できます。\n\n---\n\n* 2. ブレスレット VTO タスクの作成と結果のポーリング\n\n画像とテンプレート ID が揃ったら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` に達するまでタスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/2d-vto/bracelet\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/2d-vto/bracelet/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* ブレスレットバーチャル試着の仕様\n\n**サポートされるブレスレットビュー**\nブレスレット画像は四分之三前面ビュー（約 45 度）で提供する必要があります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/bracelet_product_09_2cb9721d77_2f8d90ab9f.jpg)\n\n**サポートされる手首ビュー**\n手首の裏側が完全に、5 つの指がすべて明確に見え、オクルージョン（遮蔽）がない状態である必要があります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/watch_and_bracelet_user_01_09f16603cb_878dc89179.jpg)\n\n**bracelet\\_wearing\\_location: float (−0.3 to 1.0)**\n手首に沿った位置を示します:\n−0.3 は主要な手首関節に近いことを示します\n1.0 は主要な手首関節から遠いことを示します\nデフォルト値: null（エンジンのデフォルトを使用）\n\n![bracelet_wearing_location](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/bracelet_wearing_location_01ac0a048e.jpg)\n\n**bracelet\\_shadow\\_intensity: float (0.0 to 1.0)**\n影の強さを制御します:\n0.0 は影なしを示します\n1.0 は最大限の影を示します\nデフォルト値: 0.15\n\n**bracelet\\_ambient\\_light\\_intensity: float (0.0 to 1.0)**\nライティングがターゲットの手画像を参照する度合いを定義します:\n0.0 は手画像のライティングを無視します\n1.0 は手画像のライティングと影のレンダリングに完全に一致させます\nデフォルト値: 1.0\n\n**ブレスレットアンカーポイント: ピクセル座標の 2 点の配列（任意）**\nブレスレットが手首に接する内側のエッジをマークし、左と右の点を指定します。\nこのパラメータを提供しない場合、AI エンジンがアンカーポイントを自動的に検出します。\n![bracelet_anchor_point](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/bracelet_anchor_point_c353245edc.jpg)\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|ブレスレットバーチャル試着|長辺 <= 4096 |< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| RUNTIME_ERROR | ブレスレットランタイムで予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真が正しく処理できませんでした（例: 手が検出されなかった） |\n| OBJECT_DETECTION_FAIL | オブジェクト写真が正しく処理できませんでした（例: 製品が検出されなかった） |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイルの形式が正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| ブレスレットバーチャル試着 V1.0 | シングルアイテム着用で 1 ユニット<br> スタック着用で 2 ユニット |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_watch.yaml","link":"/ja/reference/ai_watch","routeSlug":"/ja/reference/ai_watch","label":"ウォッチバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_watch/section/概要","routeSlug":"/ja/reference/ai_watch/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_watch/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_watch/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_watch/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_watch/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_watch/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_watch/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_watch/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_watch/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_watch/v1.0","routeSlug":"/ja/reference/ai_watch/v1.0","items":[{"label":"AI 2D ウォッチバーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_watch/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1watch/post","routeSlug":"/ja/reference/ai_watch/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1watch/post","metadata":{"seo":{"title":"AI 2D ウォッチバーチャル試着タスクを実行します。","description":"このエンドポイントはウォッチバーチャル試着プロセスを開始します。ソースファイルと参照画像（URL または File ID 経由）、およびアライメント、シャドウ、着用位置の特定のパラメータを提供する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/2d-vto/watch"},{"label":"AI 腕時計バーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_watch/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1watch~1{task_id}/get","routeSlug":"/ja/reference/ai_watch/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1watch~1{task_id}/get","metadata":{"seo":{"title":"AI 腕時計バーチャル試着タスクのステータスを確認します。","description":"AI 腕時計バーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/2d-vto/watch/{task_id}"}]}],"metadata":{"type":"openapi","title":"ウォッチバーチャル試着","version":"","description":"# 概要\nAR ウォッチのバーチャル試着を作成します。2D 画像 1 枚でウォッチの試着プレビューを生成します。\n\n## 統合ガイド\n本ガイドでは以下内容を説明します:\n\n*   **エンドポイント:** `/s2s/v2.0/task/2d-vto/watch`\n*   **認証:** すべてのリクエストに `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **手首の画像を準備する:** 画像をアップロードするか、手首の有効な画像 URL を提供します\n    1.  **ウォッチの画像を準備する:** 画像をアップロードするか、ウォッチ製品の有効な画像 URL を提供します\n    1.  **AI タスクを発行しタスク ID を取得する:** レスポンスから `task_id` を取得します。\n    1.  **ステータスをポーリングする（`GET`）:** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続行してください。\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします:\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-watch-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-watch-virtual-try-on/)\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer Token** を使用して API キーを含めます:\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、VTO タスクペイロードに有効な画像 URL を提供できます。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでにパブリックな画像 URL を持っている場合は、このステップをスキップできます。\n\nFile API のレスポンスで提供された URL にファイルを直接アップロードし、その後 File API が返した対応する `src_file_id` を使用して AI タスクを呼び出すことができます。または VTO タスクペイロードに有効な画像 URL を `src_file_url` として提供します。`src_file_id` または `src_file_url` がバーチャル試着の対象となります。\n\nまた、`src_file_id` または `src_file_url` に適用するウォッチ製品画像を参照として `ref_file_ids` または `ref_file_urls` で提供する必要があります。\n\nAI エンジンでは、ウォッチ製品画像の自動背景透過に対応しています。ただし、手（`srcmsk_file_id` または `srcmsk_file_url`）またはウォッチ製品（`refmsk_file_ids` または `refmsk_file_urls`）のオクルージョンマスク画像ファイルを提供してセグメンテーションを微調整できます。\n\n---\n\n* 2. ウォッチ VTO タスクの作成と結果のポーリング\n\n画像とテンプレート ID が揃ったら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` に達するまでタスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/2d-vto/watch\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/2d-vto/watch/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* ウォッチバーチャル試着の仕様\n\n**サポートされるウォッチビュー**\n文字盤が遮蔽されていない明瞭な前面ビューのウォッチ画像。ストラップはリアルな装着長さに見えるようにトリミングしてください。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/watch_product_01_aab8053028_50ab7fe9a5.jpg)\n\n**サポートされる手首ビュー**\n手首の裏側が完全に、5 つの指がすべて明確に見え、オクルージョン（遮蔽）がない状態である必要があります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/watch_and_bracelet_user_01_09f16603cb_878dc89179.jpg)\n\n**watch\\_wearing\\_location: float (−0.3 to 1.0)**\n手首に沿った位置を示します:\n−0.3 は主要な手首関節に近いことを示します\n1.0 は主要な手首関節から遠いことを示します\nデフォルト値: null（エンジンのデフォルトを使用）\n\n![watch_wearing_location](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/bracelet_wearing_location_01ac0a048e.jpg)\n\n**watch\\_shadow\\_intensity: float (0.0 to 1.0)**\n影の強さを制御します:\n0.0 は影なしを示します\n1.0 は最大限の影を示します\nデフォルト値: 0.15\n\n**watch\\_ambient\\_light\\_intensity: float (0.0 to 1.0)**\nライティングがターゲットの手画像を参照する度合いを定義します:\n0.0 は手画像のライティングを無視します\n1.0 は手画像のライティングと影のレンダリングに完全に一致させます\nデフォルト値: 1.0\n\n**ウォッチアンカーポイント: ピクセル座標の 4 点の配列（任意）**\n最初の 2 点は、装着時のストラップの始まりと終わりをマークします。\n残りの 2 点は、ウォッチケースの上端と下端をマークします。\n\n![watch_anchor_point](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/Product_anchors_ece6851c88.jpg)\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|ウォッチバーチャル試着|長辺 <= 4096 |< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| RUNTIME_ERROR | ウォッチランタイムで予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真が正しく処理できませんでした（例: 手が検出されなかった） |\n| OBJECT_DETECTION_FAIL | オブジェクト写真が正しく処理できませんでした（例: 製品が検出されなかった） |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイルの形式が正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| ウォッチバーチャル試着 V1.0 | シングルアイテム着用で 1 ユニット |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_earrings.yaml","link":"/ja/reference/ai_earrings","routeSlug":"/ja/reference/ai_earrings","label":"イヤリングバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_earrings/section/概要","routeSlug":"/ja/reference/ai_earrings/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_earrings/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_earrings/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_earrings/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_earrings/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_earrings/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_earrings/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_earrings/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_earrings/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_earrings/v1.0","routeSlug":"/ja/reference/ai_earrings/v1.0","items":[{"label":"AI 2D イヤリングバーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_earrings/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1earring/post","routeSlug":"/ja/reference/ai_earrings/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1earring/post","metadata":{"seo":{"title":"AI 2D イヤリングバーチャル試着タスクを実行します。","description":"このエンドポイントはイヤリングのバーチャル試着プロセスを開始します。ソースファイルと参照画像（URL またはファイル ID 経由）に加え、アライメント、シャドウ、装着位置のための特定のパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/2d-vto/earring"},{"label":"AI 2D イヤリングバーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_earrings/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1earring~1{task_id}/get","routeSlug":"/ja/reference/ai_earrings/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1earring~1{task_id}/get","metadata":{"seo":{"title":"AI 2D イヤリングバーチャル試着タスクのステータスを確認します。","description":"AI 2D イヤリングバーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/2d-vto/earring/{task_id}"}]}],"metadata":{"type":"openapi","title":"イヤリングバーチャル試着","version":"","description":"# 概要\nイヤリングバーチャル試着\nイヤリング試着とピアシング試着のプレビューを作成します。\n\n2D 画像からイヤリングバーチャル試着を作成します。3D モデリングは不要です。\n\n## 統合ガイド\n本ガイドでは以下内容を説明します:\n\n*   **エンドポイント:** `/s2s/v2.0/task/2d-vto/earring`\n*   **認証:** すべてのリクエストに `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **セルフィー画像を準備する:** 画像をアップロードするか、有効な画像 URL を提供します\n    2.  **イヤリング画像を準備する:** 画像をアップロードするか、イヤリング製品の有効な画像 URL を提供します\n    3.  **AI タスクを発行しタスク ID を取得する:** レスポンスから `task_id` を取得します。\n    4.  **ステータスをポーリングする（`GET`）:** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続行してください。\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします:\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-earring-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-earring-virtual-try-on/)\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer Token** を使用して API キーを含めます:\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、VTO タスクペイロードに有効な画像 URL を提供できます。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでにパブリックな画像 URL を持っている場合は、このステップをスキップできます。\n\nFile API のレスポンスで提供された URL にファイルを直接アップロードし、その後 File API が返した対応する `src_file_id` を使用して AI タスクを呼び出すことができます。または VTO タスクペイロードに有効な画像 URL を `src_file_url` として提供します。`src_file_id` または `src_file_url` がバーチャル試着の対象となります。\n\nまた、`src_file_id` または `src_file_url` に適用するイヤリング製品画像を参照として `ref_file_ids` または `ref_file_urls` で提供する必要があります。\n\nAI エンジンでは、イヤリング製品画像の自動背景透過に対応しています。ただし、手（`srcmsk_file_id` または `srcmsk_file_url`）またはイヤリング製品（`refmsk_file_ids` または `refmsk_file_urls`）のオクルージョンマスク画像ファイルを提供してセグメンテーションを微調整できます。\n\n---\n\n* 2. イヤリング VTO タスクの作成と結果のポーリング\n\n画像とテンプレート ID が揃ったら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` に達するまでタスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/2d-vto/earring\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/2d-vto/earring/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* イヤリングバーチャル試着の仕様\n\n**サポートされるイヤリング参照画像**\n* 遮蔽のない明瞭な前面ビューの単一のイヤリング画像。\n*   すべてのパラメータ（アンカーポイント、マスク、位置などを含む）は、参照画像が**片方のイヤリング**を着用している場合のみ適用されます。\n*   試着の参照画像に**両方のイヤリング**が表示されている場合、すべてのパラメータは**自動検出とデフォルト設定**を使用します。\n*   **両方のイヤリング**を試着する場合、より明瞭な耳がソースとして使用され、もう片方の耳はミラーリングによって生成されます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/earring_product_01_41c943f9fc_037ffb1241.jpg) ![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/earring_product_07_5476e0a156_a69e8e6549.jpg)\n\n**サポートされるセルフィービュー**\n\n*   イヤリングバーチャル試着は前面画像に対応していますが、最も良い結果は横顔の画像で得られます。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/Earring_restriction_cdf1de3c7b.png)\n\n**earring\\_wearing\\_location: integer array of size 2**\nセルフィー内でイヤリングを配置すべきターゲット位置を指定します。\nデフォルト値: null（エンジンのデフォルト）\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/wearing_location_b4f6f4453a.jpg)\n\n**earring\\_scale: number greater than 0**\nセンチメートルでイヤリングのサイズを制御します。\nデフォルト値: null（エンジンのデフォルト）\n\n**earring\\_is\\_right\\_ear: boolean**\nイヤリングが右耳に装着されているかどうかを示します。デフォルトでは右耳に装着されます。\nデフォルト値: true\n\n**earring\\_occluded\\_type: number (Enum: 0, 1, 2)**\nオクルージョンの種類を指定します:\n0 は自動検出を意味します\n1 は遮蔽ありを意味します\n2 は遮蔽なしを意味します\nデフォルト値: 0\n\n**earring\\_shadow\\_intensity: float (0.0 to 1.0)**\n影の強さを制御します:\n0.0 は影なしを示します\n1.0 は最大限の影を示します\nデフォルト値: 0.15\n\n**earring\\_ambient\\_light\\_intensity: float (0.0 to 1.0)**\nライティングがセルフィー画像を参照する度合いを定義します:\n0.0 はセルフィー画像のライティングを無視します\n1.0 はセルフィー画像のライティングと影のレンダリングに完全に一致させます\nデフォルト値: 1.0\n\n**イヤリングアンカーポイント: ピクセル座標の 1 点の配列（任意）**\nイヤリング製品画像内の装着位置を指定します。\nデフォルト値: null（エンジンのデフォルト）\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/anchor_point_787282aa19.jpg)\n\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|イヤリングバーチャル試着|長辺 <= 4096 |< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| RUNTIME_ERROR | イヤリングランタイムで予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真が正しく処理できませんでした（例: 手が検出されなかった） |\n| OBJECT_DETECTION_FAIL | オブジェクト写真が正しく処理できませんでした（例: 製品が検出されなかった） |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイルの形式が正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| イヤリングバーチャル試着 V1.0 | シングルアイテム着用で 1 ユニット<br> スタック着用で 2 ユニット |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_necklace.yaml","link":"/ja/reference/ai_necklace","routeSlug":"/ja/reference/ai_necklace","label":"ネックレスバーチャル試着","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_necklace/section/概要","routeSlug":"/ja/reference/ai_necklace/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_necklace/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_necklace/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_necklace/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_necklace/section/概要/ファイル仕様とエラー"},{"type":"link","label":"JS Camera Kit","link":"/ja/reference/ai_necklace/section/概要/js-camera-kit","routeSlug":"/ja/reference/ai_necklace/section/概要/js-camera-kit"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_necklace/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_necklace/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_necklace/v1.0","routeSlug":"/ja/reference/ai_necklace/v1.0","items":[{"label":"AI 2D ネックレスバーチャル試着タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_necklace/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1necklace/post","routeSlug":"/ja/reference/ai_necklace/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1necklace/post","metadata":{"seo":{"title":"AI 2D ネックレスバーチャル試着タスクを実行します。","description":"このエンドポイントは、ネックレスのバーチャル試着プロセスを開始します。ソースファイルと参照画像（URL またはファイル ID 経由）、およびアライメント、シャドウ、着用位置のための特定のパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/2d-vto/necklace"},{"label":"AI 2D ネックレスバーチャル試着タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_necklace/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1necklace~1{task_id}/get","routeSlug":"/ja/reference/ai_necklace/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1necklace~1{task_id}/get","metadata":{"seo":{"title":"AI 2D ネックレスバーチャル試着タスクのステータスを確認します。","description":"AI 2D ネックレスバーチャル試着タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/2d-vto/necklace/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI ネックレスバーチャル試着","version":"","description":"# 概要\nネックレスのバーチャル試着を作成します。\nAI の首元と鎖骨トラッキングにより、ネックレスの試着プレビューを生成します。\n\n2D 画像からネックレスのバーチャル試着を作成します。3D モデリングは不要です。\n\n## 統合ガイド\n本ガイドでは以下内容を説明します:\n\n*   **エンドポイント:** `/s2s/v2.0/task/2d-vto/necklace`\n*   **認証:** すべてのリクエストに `Authorization: Bearer YOUR_API_KEY` が必要です\n*   **ワークフロー:**\n    1.  **セルフィー画像を準備する:** 画像をアップロードするか、有効な画像 URL を提供します\n    2.  **ネックレス画像を準備する:** 画像をアップロードするか、ネックレス製品の有効な画像 URL を提供します\n    3.  **AI タスクを発行しタスク ID を取得する:** レスポンスから `task_id` を取得します。\n    4.  **ステータスをポーリングする（`GET`）:** `task_id` を使用してタスクのステータスを確認します。`task_status` が `\"success\"` または `\"error\"` になるまでポーリングを続行してください。\n\n---\n\n* API プレイグラウンド\n\nAPI プレイグラウンドで API を対話的にテストします:\n\n**API プレイグラウンド:**\n[http://yce.makeupar.com/api-console/en/api-playground/ai-necklace-virtual-try-on/](http://yce.makeupar.com/api-console/en/api-playground/ai-necklace-virtual-try-on/)\n\n---\n\n* 認証\n- リクエストヘッダーに **Bearer Token** を使用して API キーを含めます:\n    ```\n    Authorization: Bearer YOUR_API_KEY\n    ```\nAPI キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.\n\n\n* 1. 画像のアップロード\n\nファイルをサーバーに直接アップロードするか、VTO タスクペイロードに有効な画像 URL を提供できます。\n\n   * アップロードエンドポイント\n\n```\nPOST /s2s/v2.0/file\n```\n\nすでにパブリックな画像 URL を持っている場合は、このステップをスキップできます。\n\nFile API のレスポンスで提供された URL にファイルを直接アップロードし、その後 File API が返した対応する `src_file_id` を使用して AI タスクを呼び出すことができます。または VTO タスクペイロードに有効な画像 URL を `src_file_url` として提供します。`src_file_id` または `src_file_url` がバーチャル試着の対象となります。\n\nまた、`src_file_id` または `src_file_url` に適用するネックレス製品画像を参照として `ref_file_ids` または `ref_file_urls` で提供する必要があります。\n\nAI エンジンでは、セルフィーの自動背景透過に対応しています。ただし、首（`srcmsk_file_id` または `srcmsk_file_url`）のオクルージョンマスク画像ファイルを提供してセグメンテーションを微調整できます。\n\n---\n\n* 2. ネックレス VTO タスクの作成と結果のポーリング\n\n画像とテンプレート ID が揃ったら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` に達するまでタスクステータスをポーリングする必要があります。\n\n   * タスク作成エンドポイント\n\n```\nPOST /s2s/v2.0/task/2d-vto/necklace\n```\n\n   * ポーリングエンドポイント\n\n```\nGET /s2s/v2.0/task/2d-vto/necklace/{task_id}\n```\n\n---\n\n## ファイル仕様とエラー\n\n* ネックレスバーチャル試着の仕様\n\n**サポートされるネックレスビュー**\n背景を除去した、ネックレスを着用した前面画像。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/necklace_product_01_124206cfbe_3993a2128d.jpg)\n\n**サポートされるセルフィービュー**\n首が明確に見えており、遮蔽のない前面のセルフィー。頭の水平回転は 20 度以内でサポートされます。頭のサイズは比例したものであり、首の幅は画像幅の少なくとも 15 パーセントを占める必要があります。\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/Necklace_restriction_83410fb6c1.png)\n\n**necklace\\_wearing\\_location: array of two points (optional)**\nネックレスを配置すべき写真内のターゲット位置を指定します。\nデフォルト: null（エンジンのデフォルト）\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/wearing_location_874264bb70.jpg)\n\n**necklace\\_shadow\\_intensity: float (0.0 to 1.0)**\n影の強さを制御します:\n0.0 は影なしを示します\n1.0 は最大限の影を示します\nデフォルト値: 0.15\n\n**necklace\\_ambient\\_light\\_intensity: float (0.0 to 1.0)**\nライティングがセルフィー画像を参照する度合いを定義します:\n0.0 はセルフィー画像のライティングを無視します\n1.0 はセルフィー画像のライティングと影のレンダリングに完全に一致させます\nデフォルト値: 1.0\n\n**ネックレスアンカーポイント: ピクセル座標の 2 点の配列（任意）**\n製品画像内のネックレスチェーンの左右に見える端部のアンカーポイントを指定し、アラインメントに使用します。\nデフォルト: null（エンジンのデフォルト）\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/anchor_point_7f9b254ca4.jpg)\n\n---\n\n* サポートされる形式と寸法\n\n|AI 機能|サポートされる寸法|サポートされるファイルサイズ|サポートされる形式|\n|  ----  | ----  | ----  | ----  |\n|ネックレスバーチャル試着|長辺 <= 4096 |< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| RUNTIME_ERROR | ネックレスランタイムで予期しないエラーが発生しました |\n| PHOTO_DETECTION_FAIL | ユーザー写真が正しく処理できませんでした（例: 首が検出されなかった） |\n| OBJECT_DETECTION_FAIL | オブジェクト写真が正しく処理できませんでした（例: 製品が検出されなかった） |\n| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |\n| INPUT_ERROR | 入力ファイルの形式が正しくありません |\n| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |\n\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## JS Camera Kit\n{% partial file=\"/_partials/js-camera-kit.md\" /%}\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| ネックレスバーチャル試着 V1.0 | シングルアイテム着用で 1 ユニット |\n\n---\n"}},{"type":"separator","label":"画像編集","labelTranslationKey":"sidebar.reference.separators.image"},{"type":"group","fsPath":"@l10n/ja/reference/ai_face_swap.yaml","link":"/ja/reference/ai_face_swap","routeSlug":"/ja/reference/ai_face_swap","label":"AI 顔交換","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_face_swap/section/概要","routeSlug":"/ja/reference/ai_face_swap/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_face_swap/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_face_swap/section/概要/統合ガイド"},{"type":"link","label":"入力と出力","link":"/ja/reference/ai_face_swap/section/概要/入力と出力","routeSlug":"/ja/reference/ai_face_swap/section/概要/入力と出力"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_face_swap/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_face_swap/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_face_swap/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_face_swap/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_face_swap/v1.0","routeSlug":"/ja/reference/ai_face_swap/v1.0","items":[{"label":"AI 顔交換の顔検出タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap~1pre-process/post","routeSlug":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap~1pre-process/post","metadata":{"seo":{"title":"AI 顔交換の顔検出タスクを実行します。","description":"ソース画像に複数の有効なターゲットが含まれる可能性がある場合、またはエフェクトを適用する検出ターゲットを明示的に選びたい場合は、前処理タスクを使います。単一ターゲットの画像では、機能がデフォルトの index 値をサポートしているため、手動でのターゲット選択が不要な場合は前処理をスキップできます。"}},"httpPath":"/s2s/v2.0/task/face-swap/pre-process"},{"label":"AI 顔交換の顔検出タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap~1pre-process~1{task_id}/get","routeSlug":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap~1pre-process~1{task_id}/get","metadata":{"seo":{"title":"AI 顔交換の顔検出タスクのステータスを確認します。","description":"AI 顔交換の顔検出タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/face-swap/pre-process/{task_id}"},{"label":"AI 顔交換タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap/post","routeSlug":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap/post","metadata":{"seo":{"title":"AI 顔交換タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/face-swap"},{"label":"AI 顔交換タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap~1{task_id}/get","routeSlug":"/ja/reference/ai_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap~1{task_id}/get","metadata":{"seo":{"title":"AI 顔交換タスクのステータスを確認します。","description":"AI 顔交換タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/face-swap/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 顔交換","version":"","description":"# 概要\nAI 顔交換では、写真内の顔を交換します。1 つまたは複数の顔の交換に対応しています。\n\n## 統合ガイド\n* AI 顔交換の実装方法\n\n   * ステップ 1: ソース画像と参照画像のアップロード\n\n      1. API からアップロード URL をリクエストします:\n\n        ```\n        POST https://yce-api-01.makeupar.com/s2s/v2.0/file\n        Authorization: Bearer YOUR_API_KEY\n        Content-Type: application/json\n        ```\n\n        ボディ:\n\n        ```json\n        {\n            \"files\": [\n            {\n                \"file_name\": \"target.jpg\",\n                \"file_size\": 123456,\n                \"content_type\": \"image/jpeg\"\n            }\n            ]\n        }\n        ```\n        1. レスポンスには、事前署名付きの **アップロード URL** と `file_id` が含まれます。\n        2. 指定された URL に対して HTTP PUT リクエストでファイルをアップロードします。\n        3. 後で使用するために `file_id` を保存します。**ターゲット**画像と**参照**画像の両方に対してこの手順を繰り返します。\n\n      2. 実際のファイルを **アップロード URL** にアップロードします。\n\n---\n\n   * ステップ 2: ソース画像と参照画像の前処理（顔検出）\n\n        1. 前処理タスクを作成します:\n\n        ```\n        POST https://yce-api-01.makeupar.com/s2s/v2.0/task/face-swap/pre-process\n        Authorization: Bearer YOUR_API_KEY\n        Content-Type: application/json\n        ```\n\n        ボディ:\n\n        ```json\n        {\n            \"request_id\": 1,\n            \"payload\": {\n            \"file_sets\": {\n                \"src_ids\": [\"TARGET_FILE_ID\"]\n            },\n            \"actions\": [\n                { \"id\": 0 }\n            ]\n            }\n        }\n        ```\n        1. API は `task_id` を返します。\n        2. タスクのステータスを次の URL でポーリングします:\n\n        ```\n        GET https://yce-api-01.makeupar.com/s2s/v2.0/task/face-swap/pre-process?task_id=TASK_ID\n        ```\n        1. 完了すると、バウンディングボックス付きの検出された顔のリストを受け取ります。\n\n---\n\n   * ステップ 3: 顔交換タスクの実行\n        1. どの参照画像が各ソース画像を置き換えるかを定義します\n        `face_mapping` 配列は、**ソース画像**内の顔が**参照画像**内の顔によってどのように置き換えられるかを定義します。これは、ソース内で検出された顔を特定の参照画像に接続するリンクリストとして機能します。\n\n        * 構造\n\n            配列内の各要素は、2 つのプロパティを含むオブジェクトです:\n\n            | パラメータ | 型 | 説明 |\n            | :--- | :--- | :--- |\n            | `position` | `integer` | **ソース画像**内で検出された顔のインデックス（例: 0, 1, 2）。 |\n            | `index` | `integer` | 交換対象となる**参照画像リスト**内の顔画像のインデックス。 |\n\n                * ロジックルール\n            1.  **インデックスマッピング:** `index` は、参照リストに提供された画像の順序に直接対応します。\n                *   `0`: 1 番目の参照画像。\n                *   `1`: 2 番目の参照画像。\n            2.  **交換のスキップ:** ソース内で検出された特定の顔の交換をスキップするには、`index` と `position` の両方を `-1` に設定します。\n            3.  **配列の順序:** 配列内のオブジェクトの順序は、`position` に基づいて一致させる必要があります。\n\n                * 使用例\n\n            **シナリオ:**\n            *   **参照リスト:** 2 枚の画像を提供（画像 A、画像 B）。\n            *   **ソース画像:** 3 つの顔が検出される（顔 0、顔 1、顔 2）。\n\n            **目標:**\n            *   **顔 0**（ソース）を**画像 1**（参照）と交換する。\n            *   **顔 1**（ソース）の交換をスキップする。\n            *   **顔 2**（ソース）を**画像 0**（参照）と交換する。\n\n            **設定:**\n\n            ```json\n            \"face_mapping\": [\n                {\n                    \"index\": 1,  // Use the second reference image\n                    \"position\": 0 // Apply to the first detected face in source\n                },\n                {\n                    \"index\": -1, // Skip swapping\n                    \"position\": -1 // Skip swapping\n                },\n                {\n                    \"index\": 0,  // Use the first reference image\n                    \"position\": 2 // Apply to the third detected face in source\n                }\n            ]\n            ```\n\n        1. メインタスクリクエストを送信します:\n\n        ```\n        POST https://yce-api-01.makeupar.com/s2s/v2.0/task/face-swap\n        Authorization: Bearer YOUR_API_KEY\n        Content-Type: application/json\n        ```\n\n        ボディ:\n\n        ```json\n        {\n            \"request_id\": 2,\n            \"payload\": {\n            \"file_sets\": {\n                \"src_ids\": [\"TARGET_FILE_ID\"],\n                \"ref_ids\": [\"REFERENCE_FILE_ID\"]\n            },\n            \"actions\": [\n                {\n                \"id\": 0,\n                \"params\": {\n                    \"face_mapping\": [\n                    { \"index\": 0, \"position\": 0 },\n                    { \"index\": -1, \"position\": -1 }\n                    ]\n                }\n                }\n            ]\n            }\n        }\n        ```\n        1. レスポンスには `task_id` が返されます。\n\n---\n\n   * ステップ 4: タスクステータスのポーリングと結果の取得\n        許可されたポーリングウィンドウ内で、一定の間隔でタスクステータスを照会するタイミングループを実装する必要があります。\n        1. 次の URL でポーリングします:\n\n        ```\n        GET https://yce-api-01.makeupar.com/s2s/v2.0/task/face-swap?task_id=TASK_ID\n        ```\n        2. `status` が `success` になると、レスポンスには生成された画像の URL が含まれます。\n        3. その URL から画像をダウンロードまたは表示します。\n\n---\n\n   * ステップ 5: プラットフォームへの統合\n\n        * **Web フロントエンド**では、fetch または Axios を使用して JavaScript で直接実装できます。\n        * **バックエンド**（Node.js、Python、Java、PHP など）では、標準的な HTTP ライブラリを使用して同じエンドポイントを使用できます。\n        * タスクは非同期で実行されるため、リトライとエラーハンドリングを実装してください。\n\n---\n\n    * デバッグガイド\n        1. **Invalid TaskId エラー**\n            </br>**理由:** タイムアウトしたタスクのステータスを確認しようとすると、InvalidTaskId エラーが発生します。したがって、AI タスクが開始されたら、ステータスが success または error に変わるまで、polling_interval 内でステータスをポーリングする必要があります。\n            </br>**解決策:** タスクが無効になるのを避けるために、許可されたポーリングウィンドウ内で一定の間隔でタスクステータスを照会するタイミングループを実装する必要があります。\n\n        2. **ソース画像で一部の顔が検出されない理由**\n            </br>**理由:** 顔がはっきりと見えており、覆われたり遮られたりしておらず、画像内で十分に大きい必要があります。\n            </br>**解決策:** 顔が大きく写っており、覆いや遮りがなくはっきりと見える写真を撮影してみてください。\n\n---\n\n## 入力と出力\n\n* 実際の例:\n複数顔交換サンプル:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/dt_yce_face_swap_S2_img_04_d4b747a41d.jpg)\n\n単一顔交換サンプル:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/dt_yce_face_swap_S2_img_05_8e68faff2c.jpg)\n\n* 撮影方法の提案:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_AI%20Skin%20Analysis_camera_f93315b088.png)\n\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI 顔交換|入力と出力: 長辺が 4096 ピクセル以下|< 10MB|jpg/jpeg/png|\n\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ------------------ | ----------- |\n| exceed_max_filesize | 入力ファイルサイズが最大制限を超えています |\n| invalid_parameter | パラメータ値が無効です |\n| error_download_image | ソース画像のダウンロード中にエラーが発生しました |\n| error_download_mask | マスク画像のダウンロード中にエラーが発生しました |\n| error_decode_image | ソース画像のデコード中にエラーが発生しました |\n| error_decode_mask | マスク画像のデコード中にエラーが発生しました |\n| error_download_video | ソース動画のダウンロード中にエラーが発生しました |\n| error_decode_video | ソース動画のデコード中にエラーが発生しました |\n| error_nsfw_content_detected | ソース画像で NSFW コンテンツが検出されました |\n| error_no_face | ソース画像で顔が検出されませんでした |\n| error_pose | ソース画像でポーズの検出に失敗しました |\n| error_face_parsing | ソース画像での顔解析に失敗しました |\n| error_inference | 推論パイプラインでエラーが発生しました |\n| exceed_nsfw_retry_limits | NSFW 画像の生成を避けるためのリトライ制限を超えました |\n| error_upload | 結果画像のアップロード中にエラーが発生しました |\n| error_multiple_people | 人物の数が最大制限を超えています |\n| error_no_shoulder | ソース画像で肩が見えません |\n| error_large_face_angle | アップロード画像の顔の角度が大きすぎます |\n| error_unsupport_ratio | 入力画像のアスペクト比はサポートされていません |\n| unknown_internal_error | その他の内部エラー |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 顔交換 V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_image_extender.yaml","link":"/ja/reference/ai_image_extender","routeSlug":"/ja/reference/ai_image_extender","label":"AI 画像拡張","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_image_extender/section/概要","routeSlug":"/ja/reference/ai_image_extender/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_image_extender/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_image_extender/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_image_extender/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_image_extender/section/概要/ユニット消費"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_image_extender/v2.0","routeSlug":"/ja/reference/ai_image_extender/v2.0","items":[{"label":"AI 画像拡張タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_extender/v2.0/paths/~1s2s~1v2.0~1task~1out-paint/post","routeSlug":"/ja/reference/ai_image_extender/v2.0/paths/~1s2s~1v2.0~1task~1out-paint/post","metadata":{"seo":{"title":"AI 画像拡張タスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。この API は 3 つの主要なパラメータを受け取ります: 入力画像、ピボットポイント、出力画像。"}},"httpPath":"/s2s/v2.0/task/out-paint"},{"label":"AI 画像拡張タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_extender/v2.0/paths/~1s2s~1v2.0~1task~1out-paint~1{task_id}/get","routeSlug":"/ja/reference/ai_image_extender/v2.0/paths/~1s2s~1v2.0~1task~1out-paint~1{task_id}/get","metadata":{"seo":{"title":"AI 画像拡張タスクのステータスを確認します。","description":"AI 画像拡張タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/out-paint/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 画像拡張","version":"","description":"# 概要\nAI 画像拡張（アウトペインティング）では、あらゆる比率で画像を拡張できます。スタイルや美観を損なうことなく、元の品質を維持します。背景を自動的に拡大でき、拡張された領域は元の写真と自然に馴染むように処理されます。\n\n![AI 画像拡張](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_outpainting_S1_img_03_cf19a018d9.jpg \"AI 画像拡張\")\n\nInstagram での投稿や、画像の額装表示など、用途に合わせてさまざまなサイズと比率から選択できます。拡張された領域は元の写真と自然に溶け込むように処理されます。\n\n![AI 画像拡張](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_outpainting_S1_img_01_1876fb85a5.jpg \"AI 画像拡張\")\n\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| AI 画像拡張 | 長辺 <= 4096 | < 10MB | jpg/jpeg |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 画像拡張 V2.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_object_removal_pro.yaml","link":"/ja/reference/ai_object_removal_pro","routeSlug":"/ja/reference/ai_object_removal_pro","label":"AI 除去","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_object_removal_pro/section/概要","routeSlug":"/ja/reference/ai_object_removal_pro/section/概要","items":[{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_object_removal_pro/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_object_removal_pro/section/概要/ユニット消費量"}]},{"type":"group","label":"V4.0","link":"/ja/reference/ai_object_removal_pro/v4.0","routeSlug":"/ja/reference/ai_object_removal_pro/v4.0","items":[{"label":"AI 除去タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_object_removal_pro/v4.0/paths/~1s2s~1v2.0~1task~1generative-fill/post","routeSlug":"/ja/reference/ai_object_removal_pro/v4.0/paths/~1s2s~1v2.0~1task~1generative-fill/post","metadata":{"seo":{"title":"AI 除去タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/generative-fill"},{"label":"AI 除去タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_object_removal_pro/v4.0/paths/~1s2s~1v2.0~1task~1generative-fill~1{task_id}/get","routeSlug":"/ja/reference/ai_object_removal_pro/v4.0/paths/~1s2s~1v2.0~1task~1generative-fill~1{task_id}/get","metadata":{"seo":{"title":"AI 除去タスクのステータスを確認します。","description":"AI 除去タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/generative-fill/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 除去","version":"","description":"# 概要\n高度な AI 除去 Pro 技術により、写真編集を一段レベル上げます。\n人物や反射、影などの不要な要素を除去しつつ、細部まではっきりと保ちます。\n写真とシンプルなグレースケールマスクをアップロードするだけで、すっきりとした自然な仕上がりを実現できます。\n\n使用例:\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/YCE_web_relayout_sign_in_index_Object_Removal_b93ad75683.jpg)\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2026-02-26/webp_6b27a29f-eab0-4205-a69d-d001fffd12ea.jpg)\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 除去 | 標準：1 ユニット <br> プロフェッショナル：2 ユニット |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_photo_enhance.yaml","link":"/ja/reference/ai_photo_enhance","routeSlug":"/ja/reference/ai_photo_enhance","label":"高画質化","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_photo_enhance/section/概要","routeSlug":"/ja/reference/ai_photo_enhance/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_photo_enhance/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_photo_enhance/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_photo_enhance/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_photo_enhance/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_photo_enhance/v1.0","routeSlug":"/ja/reference/ai_photo_enhance/v1.0","items":[{"label":"高画質化タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_enhance/v1.0/paths/~1s2s~1v2.0~1task~1enhance/post","routeSlug":"/ja/reference/ai_photo_enhance/v1.0/paths/~1s2s~1v2.0~1task~1enhance/post","metadata":{"seo":{"title":"高画質化タスクを実行します。","description":"このエンドポイントは写真のエンハンスメント処理を開始します。ファイルアップロード API から取得したファイル ID を指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/enhance"},{"label":"高画質化タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_enhance/v1.0/paths/~1s2s~1v2.0~1task~1enhance~1{task_id}/get","routeSlug":"/ja/reference/ai_photo_enhance/v1.0/paths/~1s2s~1v2.0~1task~1enhance~1{task_id}/get","metadata":{"seo":{"title":"高画質化タスクのステータスを確認します。","description":"高画質化タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/enhance/{task_id}"}]}],"metadata":{"type":"openapi","title":"高画質化","version":"","description":"# 概要\nAI 高画質化は、高度な AI とディープラーニング技術で画像の詳細を分析し、解像度を向上させます。低解像度の画像を鮮明にし、モーションブラーを修正します。\n * ピクセル化の解消: ピクセル化を除去し、より滑らかで輪郭がはっきりした画像にします。\n * ぼやけた写真の修正: ぼやけを除去し、よりシャープでくっきりとしたディテールを際立たせます。\n * 品質の向上: より細かなディテールを引き出し、画像のあらゆる部分を際立たせます。\n * 画像のシャープ化: シャープネスを高め、より鮮明で鮮やかな画像にします。\n * 明瞭度の改善: 全体的な明瞭度を向上させ、写真を新鮮でプロフェッショナルな仕上がりにします。\n * 顔の補正: 動的な画像において、顔の特徴を洗練させ、よりリアルで補正されたポートレートを作成します。\n\nBefore sample:\n![AI Photo Enhance](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_s5_poster_1_0779bbdbdb.jpg \"AI Photo Enhance\")\n\nAfter sample:\n![AI Photo Enhance](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_s5_poster_2_a2e15250ef.jpg \"AI Photo Enhance\")\n\n\nBefore sample:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_s2_poster_1_4cd6425807.jpg)\n\nAfter sample:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_s2_poster_2_7674281362.jpg)\n\n---\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| AI 高画質化 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 高画質化 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_background_removal.yaml","link":"/ja/reference/ai_background_removal","routeSlug":"/ja/reference/ai_background_removal","label":"背景透過","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_background_removal/section/概要","routeSlug":"/ja/reference/ai_background_removal/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_background_removal/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_background_removal/section/概要/統合ガイド"},{"type":"link","label":"入力と出力","link":"/ja/reference/ai_background_removal/section/概要/入力と出力","routeSlug":"/ja/reference/ai_background_removal/section/概要/入力と出力"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_background_removal/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_background_removal/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費","link":"/ja/reference/ai_background_removal/section/概要/ユニット消費","routeSlug":"/ja/reference/ai_background_removal/section/概要/ユニット消費"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_background_removal/v1.0","routeSlug":"/ja/reference/ai_background_removal/v1.0","items":[{"label":"AI 背景透過タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_background_removal/v1.0/paths/~1s2s~1v2.0~1task~1sod/post","routeSlug":"/ja/reference/ai_background_removal/v1.0/paths/~1s2s~1v2.0~1task~1sod/post","metadata":{"seo":{"title":"AI 背景透過タスクを実行します。","description":"このエンドポイントは背景透過処理を開始します。ファイルアップロード API から取得したファイル ID を指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/sod"},{"label":"AI 背景透過タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_background_removal/v1.0/paths/~1s2s~1v2.0~1task~1sod~1{task_id}/get","routeSlug":"/ja/reference/ai_background_removal/v1.0/paths/~1s2s~1v2.0~1task~1sod~1{task_id}/get","metadata":{"seo":{"title":"AI 背景透過タスクのステータスを確認します。","description":"AI 背景透過タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/sod/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 背景透過","version":"","description":"# 概要\nAI 背景透過では、写真から背景を除去します。\n* 自動背景検出: AI を使用して被写体と背景を識別し、分離します。\n* 高精度編集: 被写体の周囲にクリーンで精密なエッジを提供します。\n* 多様なカテゴリに対応: 人物、製品、動物、車、グラフィックなどに対応します。\n* 他の AI タスクとの連携: 出力ファイル ID を他の AI タスクにチェーンできます。\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2023-11-03/54285311-7c65-4658-9e27-11bf5c8dfe56.jpg)\n\n## 統合ガイド\n* AI 背景透過の実行方法\n1. **ソース画像のリサイズ</br>**\n   サポートされている寸法に合わせて写真をリサイズします。詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n\n2. **ファイル API を使用したファイルのアップロード</br>**\n   ***/s2s/v2.0/file*** API を使用して、対象ユーザーの画像をアップロードします。\n     - 画像要件\n       - 詳細は **[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。\n     - ***重要***: ファイル API を呼び出すだけではファイルはアップロードされません。**ファイル API のレスポンスで提供される URL** にファイルを**手動でアップロード**する必要があります。その URL がアップロード先です。次に進む前に、ファイルがそこに正常に転送されたことを確認してください。<br>\n     AI API を呼び出す前に、ファイルが正常にアップロードされていることを確認してください。ファイル API を使用してアップロード URL を取得し、その場所にファイルをアップロードします。アップロードが完了すると、レスポンスに ***file_id*** が返されます。この ID は、そのファイルに関連する AI 機能にアクセスするために使用します。\n\n       > **警告:** ファイル API のレスポンスで提供される URL にファイルをアップロードしない場合、AI API の使用時に 500 Server Error / unknown_internal_error または 404 Not Found エラーが発生する可能性があります。\n\n3. **AI タスクの実行</br>**\n   アップロードが完了したら、ファイル ID を指定して POST 'task/sod' を呼び出し、AI タスクを実行して監視用の ***task_id*** を取得します。\n\n4. **Webhook またはポーリングを設定し、タスクが成功またはエラーになるまでステータスを確認する</BR>**\n***task_id*** は、保持期間全体を通じてタスクのステータスを監視するための Webhook の設定やポーリングの実装に使用されます。AI エンジンがタスクを完了するまで、ステータスは running のままです。タスクが running 状態の間は、ユニットは消費されません。処理が完了すると、タスクのステータスは success または error に変わります。\n\n1. **成功時に AI タスクの結果を取得する</BR>**\nエンジンが入力ファイルを正常に処理し、結果の画像を生成すると、タスクは 'success' ステータスに変わります。処理済み画像の URL と、結果画像を再アップロードせずに別の AI タスクにチェーンできる dst_id が得られます。\nユニットはこの場合のみ消費されます。エンジンがタスクの処理に失敗した場合、タスクのステータスは 'error' に変わり、ユニットは消費されません。</BR>\nユニットを控除する際、システムは期限切れに近いものから優先的に控除します。期限日が同じ場合は、最も早い日に取得したユニットから控除されます。\n\n* デモシナリオ:\n一般的な実装ケース:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/Transparen_Background_aca3cdbd83.jpg)\n\n## 入力と出力\n* 入力\n    * `Image`\n- **型:** `image`\n- **説明:** 前景が明確な画像。\n\n実際のアプリケーション（入力）:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_removal_bg_s4_poster_1_289b8eaf81.png)\n\n---\n\n* 出力\n    * `Foreground image`\n- **型:** `image`\n- **説明:** 背景が除去された画像。\n\n実際のアプリケーション（出力）:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_removal_bg_s4_poster_2_a6bc3c5f6a.png)\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|ファイルサイズ|受け入れ可能な形式|\n|  ----  | ----  | ----  | ----  |\n|AI 背景透過|入力画像と出力画像の両方に対する推奨事項と制限は以下の通りです:</br>解像度: 4096 × 4096 ピクセル（最長辺は 4096 ピクセルを超えてはなりません）|<10MB|JPG および PNG|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|exceed_max_filesize|入力ファイルサイズが最大制限を超えています|\n|invalid_parameter|パラメータ値が無効です|\n|error_download_image|ソース画像のダウンロードに失敗しました|\n|error_download_mask|マスク画像のダウンロードに失敗しました|\n|error_decode_image|ソース画像のデコードに失敗しました|\n|error_decode_mask|マスク画像のデコードに失敗しました|\n|error_download_video|ソース動画のダウンロードに失敗しました|\n|error_decode_video|ソース動画のデコードに失敗しました|\n|error_nsfw_content_detected|ソース画像に NSFW コンテンツが検出されました|\n|error_no_face|ソース画像に顔が検出されませんでした|\n|error_pose|ソース画像でポーズの検出に失敗しました|\n|error_face_parsing|ソース画像で顔のセグメンテーションに失敗しました|\n|error_inference|推論パイプラインエラー|\n|exceed_nsfw_retry_limits|NSFW 画像の生成を避けるための再試行制限を超えました|\n|error_upload|結果画像のアップロードに失敗しました|\n|error_multiple_people|ソース画像で複数の人物が検出されました|\n|error_no_shoulder|ソース画像で肩が見えません|\n|error_large_face_angle|アップロードされた画像の顔の角度が大きすぎます|\n|error_hair_too_short|入力された髪が短すぎます|\n|error_unexpected_video_duration|動画の長さが dstDuration と等しくありません|\n|error_bald_image|入力されたヘアスタイルがハゲです|\n|error_unsupport_ratio|入力画像のアスペクト比がサポートされていません|\n|unknown_internal_error|その他|\n\n---\n\n## ユニット消費\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 背景透過 V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_photo_colorize.yaml","link":"/ja/reference/ai_photo_colorize","routeSlug":"/ja/reference/ai_photo_colorize","label":"カラー化","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_photo_colorize/section/概要","routeSlug":"/ja/reference/ai_photo_colorize/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_photo_colorize/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_photo_colorize/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_photo_colorize/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_photo_colorize/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_photo_colorize/v1.0","routeSlug":"/ja/reference/ai_photo_colorize/v1.0","items":[{"label":"カラー化タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_colorize/v1.0/paths/~1s2s~1v2.0~1task~1colorize/post","routeSlug":"/ja/reference/ai_photo_colorize/v1.0/paths/~1s2s~1v2.0~1task~1colorize/post","metadata":{"seo":{"title":"カラー化タスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/colorize"},{"label":"カラー化タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_colorize/v1.0/paths/~1s2s~1v2.0~1task~1colorize~1{task_id}/get","routeSlug":"/ja/reference/ai_photo_colorize/v1.0/paths/~1s2s~1v2.0~1task~1colorize~1{task_id}/get","metadata":{"seo":{"title":"カラー化タスクのステータスを確認します。","description":"カラー化タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/colorize/{task_id}"}]}],"metadata":{"type":"openapi","title":"カラー化","version":"","description":"# 概要\n最新の AI 技術で、白黒写真や古い画像をカラー化・修復します。カラー化（AI Photo Colorize）は、暖色系から寒色系までの 4 種類のカラーバージョンを生成します。ディープラーニングで白黒写真を数秒でカラー画像に変換します。\n\n![カラー化（AI Photo Colorize）](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_colorize_s4_poster_11c0bdfead.jpg \"AI Photo Colorize\")\n\n---\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| カラー化 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| カラー化 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_photo_lighting.yaml","link":"/ja/reference/ai_photo_lighting","routeSlug":"/ja/reference/ai_photo_lighting","label":"AI 照明","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_photo_lighting/section/概要","routeSlug":"/ja/reference/ai_photo_lighting/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_photo_lighting/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_photo_lighting/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_photo_lighting/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_photo_lighting/section/概要/ユニット消費量"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_photo_lighting/v2.0","routeSlug":"/ja/reference/ai_photo_lighting/v2.0","items":[{"label":"AI 照明タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_lighting/v2.0/paths/~1s2s~1v2.0~1task~1lighting/post","routeSlug":"/ja/reference/ai_photo_lighting/v2.0/paths/~1s2s~1v2.0~1task~1lighting/post","metadata":{"seo":{"title":"AI 照明タスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/lighting"},{"label":"AI 照明タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_lighting/v2.0/paths/~1s2s~1v2.0~1task~1lighting~1{task_id}/get","routeSlug":"/ja/reference/ai_photo_lighting/v2.0/paths/~1s2s~1v2.0~1task~1lighting~1{task_id}/get","metadata":{"seo":{"title":"AI 照明タスクのステータスを確認します。","description":"AI 照明タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/lighting/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 照明","version":"","description":"# 概要\nAI 画像明るさ調整ツールで、画像を明るくできます。\nAI 照明で暗い写真や画像を明るくできます。\n\nBefore\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_lighting_v3_poster_1_b7d976b686.jpg)\nAfter\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_lighting_v3_poster_2_79d3be33bc.jpg)\nAI ツールで低照度の写真を簡単に明るくし、ディテールと鮮やかな色を引き出します。\n\n\n\nBefore\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_lighting_v6_poster_1_2422530612.jpg)\nAfter\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_lighting_v6_poster_2_63f1ecc244.jpg)\nAI 照明で商品写真を明るくし、魅力的なプレゼンテーションを実現します。\n\n---\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| AI 照明 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 照明 V2.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_color_correction.yaml","link":"/ja/reference/ai_color_correction","routeSlug":"/ja/reference/ai_color_correction","label":"AI カラー補正","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_color_correction/section/概要","routeSlug":"/ja/reference/ai_color_correction/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_color_correction/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_color_correction/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_color_correction/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_color_correction/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_color_correction/v1.0","routeSlug":"/ja/reference/ai_color_correction/v1.0","items":[{"label":"AI カラー補正タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_color_correction/v1.0/paths/~1s2s~1v2.0~1task~1colorize~1color-correct/post","routeSlug":"/ja/reference/ai_color_correction/v1.0/paths/~1s2s~1v2.0~1task~1colorize~1color-correct/post","metadata":{"seo":{"title":"AI カラー補正タスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。"}},"httpPath":"/s2s/v2.0/task/colorize/color-correct"},{"label":"AI カラー補正タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_color_correction/v1.0/paths/~1s2s~1v2.0~1task~1colorize~1color-correct~1{task_id}/get","routeSlug":"/ja/reference/ai_color_correction/v1.0/paths/~1s2s~1v2.0~1task~1colorize~1color-correct~1{task_id}/get","metadata":{"seo":{"title":"AI カラー補正タスクのステータスを確認します。","description":"AI カラー補正タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/colorize/color-correct/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI カラー補正","version":"","description":"# 概要\nAI カラー補正で、写真の彩度、色温度、色相をワンタップで自動調整します。ホワイトバランスによる色温度の補正、鮮やかな色合いの表現、露出レベルによる明るさのバランス調整、色かぶりの除去、自然な肌色の人物写真への改善、シャドウとハイライトの詳細の強調、ノイズ除去とクリアさの向上、クリエイティブなカラーグレーディング効果の適用まで、すべて可能です。暖色系から寒色系まで異なる色調を持つ 4 種類のカラーグレーディングバージョンを数秒で生成できます。\n\nサンプル\nBefore:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/color_correction_topbanner_before_dt_100_45429e8625.jpg)\n\nAfter:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/color_correction_topbanner_after_dt_100_ef9f9c48ed.jpg)\n\n\n\nBefore:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/color_correction_s1_image_before_dt_fa73b5d41a.jpg)\n\nAfter\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/color_correction_s1_image_after_dt_a3e88a101b.jpg)\n\n\n---\n\n## ファイル仕様とエラー\n* 対応フォーマットとサイズ\n\n| AI 機能 | 対応サイズ | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| AI カラー補正 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI カラー補正 V1.0 | 2 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_photo_background_change.yaml","link":"/ja/reference/ai_photo_background_change","routeSlug":"/ja/reference/ai_photo_background_change","label":"AI 背景変更","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_photo_background_change/section/概要","routeSlug":"/ja/reference/ai_photo_background_change/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_photo_background_change/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_photo_background_change/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_photo_background_change/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_photo_background_change/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_photo_background_change/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_photo_background_change/section/概要/ユニット消費量"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_photo_background_change/v2.0","routeSlug":"/ja/reference/ai_photo_background_change/v2.0","items":[{"label":"AI 背景変更 V2 の事前定義テンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_background_change/v2.0/paths/~1s2s~1v2.0~1task~1template~1bg-replace/get","routeSlug":"/ja/reference/ai_photo_background_change/v2.0/paths/~1s2s~1v2.0~1task~1template~1bg-replace/get","metadata":{"seo":{"title":"AI 背景変更 V2 の事前定義テンプレートを一覧表示します。","description":"AI 背景変更 V2 の事前定義テンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/bg-replace"},{"label":"AI 背景変更 V2 タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_background_change/v2.0/paths/~1s2s~1v2.0~1task~1bg-replace/post","routeSlug":"/ja/reference/ai_photo_background_change/v2.0/paths/~1s2s~1v2.0~1task~1bg-replace/post","metadata":{"seo":{"title":"AI 背景変更 V2 タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/bg-replace"},{"label":"AI 背景変更 V2 タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_background_change/v2.0/paths/~1s2s~1v2.0~1task~1bg-replace~1{task_id}/get","routeSlug":"/ja/reference/ai_photo_background_change/v2.0/paths/~1s2s~1v2.0~1task~1bg-replace~1{task_id}/get","metadata":{"seo":{"title":"AI 背景変更 V2 タスクのステータスを確認します。","description":"AI 背景変更 V2 タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/bg-replace/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 背景変更","version":"","description":"# 概要\n\nAI 背景変更 API で、画像から被写体を切り出して背景を分離します。\n\nカスタムプロンプトまたは事前定義されたテンプレートで背景を置き換えます。\n\n**使用例**\n\nBefore:\n![](https://yce.makeupar.com/assets/images/sod/banner/change/yce-topbanner-dt-before.jpg)\n\nAfter:\n![](https://yce.makeupar.com/assets/images/sod/banner/change/yce-topbanner-dt-after.jpg)\n\n\nBefore:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_change_bg_s5_poster_before_0753db3e02.jpg)\n\nAfter:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_change_bg_s5_poster_after_7fb288fde2.jpg)\n\n---\n\n## 統合ガイド\n\n**1. 画像のアップロード**\n\n以下のエンドポイントを通じて、アップロード URL とファイル ID をリクエストします。\n\n```\nPOST /s2s/v2.0/file\n```\n\n返された URL を使用して画像をアップロードします。\nまたは、独自のストレージにホストされた公開アクセス可能な画像 URL を指定することもできます。\n\n\n**2. 背景説明プロンプトの準備または背景テンプレートの選択**\n\n```\nGET /s2s/v2.0/task/template/bg-replace\n```\n\n事前定義された背景テンプレートのリストを取得し、template_id で 1 つを選択します。プロンプトを使用する場合、プロンプトに基づいて背景が生成されます。テンプレートを使用する場合、template_id で指定されたテンプレートから背景が生成され、prompt パラメータは無視されます。\n\n\n**3. 分析タスクの実行**\n\n```\nPOST /s2s/v2.0/task/bg-replace\n```\n\nファイル ID または画像 URL と、希望する背景プロンプトを指定してタスクを送信します。\nレスポンスには、結果の追跡と取得に使用される task_id が返されます。\n\n\n**4. タスク結果の取得**\n\n```\nGET /s2s/v2.0/task/bg-replace/{task_id}\n```\n\nタスク ID を使用してステータスを追跡し、結果を取得します。\n\n[Webhook](../develop/webhook.md) を設定すると、タスク完了時に成功またはエラーのステータスで非同期通知を受信できます。タスクエンドポイントを繰り返し呼び出して、ステータスが running から success または error に更新されるまでポーリングすることもできます。\n\n課金は、タスクが正常に完了した場合にのみ発生します。\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| AI 背景変更 | 長い辺の長さは 4096 ピクセル以下である必要があります。 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize | 入力ファイルサイズが最大制限を超えています。 |\n| size_mismatch_on_input_image_and_mask | 入力画像のサイズは、入力マスク画像の寸法と一致する必要があります。 |\n| invalid_parameter | パラメータ値が無効です。リクエストパラメータが不足しているか、無効な形式であるか、サポートされていない値が含まれています。|\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 背景変更 V2.0 | 4 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_photo_background_blur.yaml","link":"/ja/reference/ai_photo_background_blur","routeSlug":"/ja/reference/ai_photo_background_blur","label":"背景ぼかし","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_photo_background_blur/section/概要","routeSlug":"/ja/reference/ai_photo_background_blur/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_photo_background_blur/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_photo_background_blur/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_photo_background_blur/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_photo_background_blur/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_photo_background_blur/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_photo_background_blur/section/概要/ユニット消費量"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_photo_background_blur/v2.0","routeSlug":"/ja/reference/ai_photo_background_blur/v2.0","items":[{"label":"背景ぼかしタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_background_blur/v2.0/paths/~1s2s~1v2.0~1task~1bg-blur/post","routeSlug":"/ja/reference/ai_photo_background_blur/v2.0/paths/~1s2s~1v2.0~1task~1bg-blur/post","metadata":{"seo":{"title":"背景ぼかしタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/bg-blur"},{"label":"背景ぼかしタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_photo_background_blur/v2.0/paths/~1s2s~1v2.0~1task~1bg-blur~1{task_id}/get","routeSlug":"/ja/reference/ai_photo_background_blur/v2.0/paths/~1s2s~1v2.0~1task~1bg-blur~1{task_id}/get","metadata":{"seo":{"title":"背景ぼかしタスクのステータスを確認します。","description":"背景ぼかしタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/bg-blur/{task_id}"}]}],"metadata":{"type":"openapi","title":"背景ぼかし","version":"","description":"# 概要\n背景ぼかし API では、写真の背景をぼかします。\n\n背景ぼかし API で、被写体を自動的に切り出し、背景をぼかします。\n\n\n**主な利用シーン:**\n\n* ポートレート強化\nボケ効果を適用して被写体を際立たせます。\n\n    Before:\n    ![](https://yce.makeupar.com/assets/images/sod/banner/blur/yce-topbanner-dt-before.jpg)\n\n    After:\n    ![](https://yce.makeupar.com/assets/images/sod/banner/blur/yce-topbanner-dt-after.jpg)\n\n* プロフェッショナルな証明写真\n標準的な写真からスタジオ風の背景ぼかし効果を作成します。\n\n    Before:\n    ![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_blur_bg_s3_poster_1_50a314e3f9.jpg)\n\n    After:\n    ![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_blur_bg_s3_poster_2_afb0548cb7.jpg)\n\n---\n\n## 統合ガイド\n\n**入力要件と処理基準:**\n\n- 明確で目立つ前景の被写体を含む画像をアップロードします。\n- 画像の長辺は **4,096 px** を超えてはいけません。\n- ソースファイルサイズは **10 MB** 未満である必要があります。\n- 少なくとも 1 つの明確に視認できる前景の被写体が必要です。\n- 単一被写体の分析のみサポートされています。複数の人物が存在する場合、API は可視面積が最大の被写体を自動的に選択します。\n\n\n**ワークフロー:**\n\n1. File API を呼び出します。\n2. レスポンスから署名付きアップロード URL を取得します。\n3. 返された URL に実際の画像をアップロードします。\n4. AI タスクを作成します。\n5. Webhook を設定するか、完了するまでタスクステータスをポーリングします。\n6. 処理が成功したら、生成された結果画像をダウンロードします。\n\n---\n\n**ステップ 1 — File API を使用してファイルメタデータをアップロードする**\n\n`POST /s2s/v2.0/file` を使用してファイルレコードを作成し、ソース画像のアップロード詳細を取得します。\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\": \"full_body_photo_01_3dbd1b6683.jpg\",\n        \"file_size\": 547541\n      }\n    ]\n  }'\n```\n\n**File API レスポンス例:**\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**ステップ 2 — File API レスポンスの詳細を取得する**\n\nレスポンスには以下が含まれます:\n\n| フィールド | 説明 |\n| --- | --- |\n| `file_id` | AI タスクの作成に使用される識別子。 |\n| `requests.url` | 実際の画像ファイルをアップロードするための署名付き URL。 |\n| `requests.method` | アップロードメソッド。通常は `PUT`。 |\n| `requests.headers` | アップロードリクエストに必要なヘッダー。 |\n\n---\n\n**ステップ 3 — 提供された URL に画像をアップロードする**\n\nFile 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 — AI タスクを作成する**\n\n`POST /s2s/v2.0/task/bg-blur` を使用して AI タスクを作成します。\n\n| パラメータ | 説明 | 例 |\n| --- | --- | --- |\n| `src_file_id` | File API アップロードフローから返されるファイル ID。アップロードファイルワークフローを使用する場合に必須。 | `\"SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud\"` |\n| `src_file_url` | ソース画像の直接 URL。`src_file_id` の代替として使用します。 | `\"https://example.com/selfie.jpg\"` |\n| `intensity` | ぼかしの強度。0 はぼかしなし、100 は最大ぼかしを意味します。 | 50 |\n\n**リクエスト例:**\n\n```javascript\nconst resp = await fetch(\n  'https://yce-api-01.makeupar.com/s2s/v2.0/task/bg-blur',\n  {\n    method: 'POST',\n    headers: {\n      'Content-Type': 'application/json',\n      Authorization: 'Bearer <YOUR_TOKEN_HERE>'\n    },\n    body: JSON.stringify({\n      src_file_url: 'https://example.com/selfie.jpg',\n      intensity: 50\n    })\n  }\n);\n\nconst data = await resp.json();\nconsole.log(data);\n```\n\n**AI タスク API レスポンス:**\n\n```json\n{\n  \"status\": 200,\n  \"data\": {\n    \"task_id\": \"SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT\"\n  }\n}\n```\n\n---\n\n**ステップ 5 — Webhook の設定またはタスク結果のポーリング**\n\n設定および検証の詳細については、[Webhook 統合ガイド](../develop/webhook.md) を参照してください。\n\nポーリングの場合は、返された `task_id` を使用してタスクステータスを確認します。\n\n```bash\ncurl --request GET \\\n  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/bg-blur/<YOUR_TASK_ID> \\\n  --header 'Authorization: Bearer YOUR_API_KEY' \\\n  --header 'content-type: application/json'\n```\n\n---\n\n**ステップ 6 — 結果画像を取得する**\n\n処理が成功すると、レスポンスの `data.results.url` にダウンロード 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アクセストークンが無効な場合、API は `401` レスポンスを返します。\n\n```json\n{\n  \"status\": 401,\n  \"error\": \"Unauthorized\",\n  \"error_code\": \"InvalidAccessToken\"\n}\n```\n\n---\n\n## ファイル仕様とエラー\n\n**ファイル仕様:**\n\n| 仕様 | 要件 |\n| --- | --- |\n| 画像タイプ | 画像には、1 つの明確で目立つ前景の被写体または人物が含まれている必要があります。 |\n| 長辺の最大解像度 | 長辺は **4096 px** を超えてはいけません。 |\n| ファイルサイズ制限 | **10 MB** 未満である必要があります。 |\n| サポート形式 | `jpg`, `png`。 |\n\n**エラーコード:**\n\n| エラーコード | 説明 |\n| --- | --- |\n| `exceed_max_filesize` | ソース画像が許容される最大寸法またはファイルサイズを超えています。長辺は 4096 px を超えてはならず、ファイルサイズは 10 MB 未満である必要があります。 |\n| `error_nsfw_content_detected` | ソース画像または生成された結果画像に潜在的な NSFW コンテンツが検出されました。 |\n| `invalid_parameter` | ソースキー、宛先キー、アクション、モード値、強度レベル、またはタスク設定に対して無効なパラメータが提供されました。 |\n| `error_download_image` | ソース画像を正常にダウンロードできませんでした。 |\n| `error_decode_image` | ソース画像を正常にデコードできませんでした。 |\n\n**環境と依存関係:**\n\n| ツール / 言語 | 推奨ランタイムバージョン |\n| --- | --- |\n| cURL | Bash ≥ 3.2; curl ≥ 7.58 (モダンな TLS/HTTP サポート付き); jq ≥ 1.6 (堅牢な JSON 解析用)。 |\n| Node.js | グローバル `fetch` サポートのため Node ≥ 18。 |\n| JavaScript ブラウザサポート | Chrome / Edge ≥ 80, Firefox ≥ 74, Safari ≥ 13.1。 |\n| PHP | モダンな TLS 互換性のため PHP ≥ 7.4; ext-curl を推奨、または OpenSSL および JSON サポート付きで `allow_url_fopen=On`。 |\n| Python | f-strings のため Python ≥ 3.10; requests ≥ 2.20.0。 |\n| Java | HttpClient のため Java 11+; Jackson Databind ≥ 2.12.0。 |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| 背景ぼかし V2.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_replace.yaml","link":"/ja/reference/ai_replace","routeSlug":"/ja/reference/ai_replace","label":"AI 置き換え","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_replace/section/概要","routeSlug":"/ja/reference/ai_replace/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_replace/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_replace/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_replace/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_replace/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_replace/v1.0","routeSlug":"/ja/reference/ai_replace/v1.0","items":[{"label":"AI 置き換えタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_replace/v1.0/paths/~1s2s~1v2.0~1task~1obj-replace/post","routeSlug":"/ja/reference/ai_replace/v1.0/paths/~1s2s~1v2.0~1task~1obj-replace/post","metadata":{"seo":{"title":"AI 置き換えタスクを実行します。","description":"タスクステータスの確認については、ポーリングガイドを参照してください。この API には、ソース画像、マスクファイル、およびマスクされた領域を置き換える内容を説明するプロンプトが必要です。"}},"httpPath":"/s2s/v2.0/task/obj-replace"},{"label":"AI 置き換えタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_replace/v1.0/paths/~1s2s~1v2.0~1task~1obj-replace~1{task_id}/get","routeSlug":"/ja/reference/ai_replace/v1.0/paths/~1s2s~1v2.0~1task~1obj-replace~1{task_id}/get","metadata":{"seo":{"title":"AI 置き換えタスクのステータスを確認します。","description":"AI 置き換えタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/obj-replace/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 置き換え","version":"","description":"# 概要\nAI 置き換えで、写真の不要な要素を新しいオブジェクトに置き換えます。テキストの指示だけで、不要なオブジェクトを削除して新しいオブジェクトに置き換えられます。バッグや車などのオブジェクトを除去できます。\n\nサンプル:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_AI_replace_S3_feature_img_02_a73a26bcc3.jpg)\n\n\nSNS に投稿する旅行写真やプロモーション画像の仕上げに、AI 置き換えが使えます。要素を削除・置き換えて、コンテンツの内容を強調できます。\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_AI_replace_S3_feature_img_03_42c9cd98d0.jpg)\n\n\nAI 置き換えで、空いているスペースに家具やオブジェクトを配置して、ルームモックアップを作成できます。\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_AI_replace_S3_feature_img_04_4d2d82f76e.jpg)\n\n---\n\n## ファイル仕様とエラー\n* 対応フォーマットと寸法\n\n| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| AI 置き換え | 長辺 <= 2048 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 置き換え V1.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_avatar_generator.yaml","link":"/ja/reference/ai_avatar_generator","routeSlug":"/ja/reference/ai_avatar_generator","label":"AI アバター","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_avatar_generator/section/概要","routeSlug":"/ja/reference/ai_avatar_generator/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_avatar_generator/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_avatar_generator/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_avatar_generator/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_avatar_generator/section/概要/ユニット消費量"}]},{"type":"group","label":"V3.0","link":"/ja/reference/ai_avatar_generator/v3.0","routeSlug":"/ja/reference/ai_avatar_generator/v3.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_avatar_generator/v3.0/paths/~1s2s~1v2.0~1task~1template~1ai-avatar/get","routeSlug":"/ja/reference/ai_avatar_generator/v3.0/paths/~1s2s~1v2.0~1task~1template~1ai-avatar/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/ai-avatar"},{"label":"AI アバタータスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_avatar_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-avatar/post","routeSlug":"/ja/reference/ai_avatar_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-avatar/post","metadata":{"seo":{"title":"AI アバタータスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/ai-avatar"},{"label":"AI アバタータスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_avatar_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-avatar~1{task_id}/get","routeSlug":"/ja/reference/ai_avatar_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-avatar~1{task_id}/get","metadata":{"seo":{"title":"AI アバタータスクのステータスを確認します。","description":"AI アバタータスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/ai-avatar/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI アバター","version":"","description":"# 概要\nAI マジックアバターツールでは、画像から画像への生成技術（image-to-image）を使います。つまり、アバターはユーザーの写真に基づいて生成されます。写真を選ぶと、アプリに組み込まれた技術がユーザーの顔の特徴を分析し、学習を開始します。\n\nより多くのアバタースタイルについては、https://yce.makeupar.com/avatar を参照してください。\n\nユースケース:\n![AI アバター](https://bcw-media.s3.ap-northeast-1.amazonaws.com/Christmas_Avatar_b861c35edf.jpg \"AI アバター\")\n\n![AI アバター](https://plugins-media.makeupar.com/smb/blog/post/2023-04-06/fc2c3b2e-2b7f-48c9-96c1-cdb780f9dc1d.jpg \"AI アバター\")\n\n\n撮影時の推奨事項:\n![撮影時の推奨事項](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png \"撮影時の推奨事項\")\n\n---\n\n## ファイル仕様とエラー\n* 対応フォーマットとサイズ\n\n| AI 機能 | 対応サイズ | 対応ファイルサイズ | 対応フォーマット |\n| ---- | ---- | ----  | ---- |\n| AI アバター | 入力: 長辺 <= 4096、出力: 長辺 <= 1024 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI アバター V3.0 | 4 枚あたり 1 ユニット * |\n\n    > *画像数または動画の長さが割り切れない場合、ユニット数は切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_headshot_generator.yaml","link":"/ja/reference/ai_headshot_generator","routeSlug":"/ja/reference/ai_headshot_generator","label":"AI ビジネス写真","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_headshot_generator/section/概要","routeSlug":"/ja/reference/ai_headshot_generator/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_headshot_generator/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_headshot_generator/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_headshot_generator/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_headshot_generator/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_headshot_generator/v1.0","routeSlug":"/ja/reference/ai_headshot_generator/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_headshot_generator/v1.0/paths/~1s2s~1v2.0~1task~1template~1headshot/get","routeSlug":"/ja/reference/ai_headshot_generator/v1.0/paths/~1s2s~1v2.0~1task~1template~1headshot/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/headshot"},{"label":"AI ビジネス写真タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_headshot_generator/v1.0/paths/~1s2s~1v2.0~1task~1headshot/post","routeSlug":"/ja/reference/ai_headshot_generator/v1.0/paths/~1s2s~1v2.0~1task~1headshot/post","metadata":{"seo":{"title":"AI ビジネス写真タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/headshot"},{"label":"AI ビジネス写真タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_headshot_generator/v1.0/paths/~1s2s~1v2.0~1task~1headshot~1{task_id}/get","routeSlug":"/ja/reference/ai_headshot_generator/v1.0/paths/~1s2s~1v2.0~1task~1headshot~1{task_id}/get","metadata":{"seo":{"title":"AI ビジネス写真タスクのステータスを確認します。","description":"AI ビジネス写真タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/headshot/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI ビジネス写真","version":"","description":"# 概要\nAI ビジネス写真ジェネレーターで、写真をプロフェッショナルなビジネス写真に変換します。\n* 多彩なスタイル: 洗練された LinkedIn 用ビジネス写真からクリエイティブなモデル風ビジネス写真まで、用途に合わせたルックを選べます。\n* プロフェッショナルな結果: ビジネス写真が自然に見えるよう補正し、採用担当者やクライアントに良い印象を与えます。\n* 利便性: 写真家がいなくても、いつでもどこでも複数の AI ビジネス写真を生成できます。\n\nその他の AI ビジネス写真スタイルについては、https://yce.makeupar.com/ai-headshot-generator. を参照してください。\n\nユースケース:\n![AI ビジネス写真ジェネレーター](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_headshot_s2_img_03_4b55742358.jpg \"AI ビジネス写真ジェネレーター\")\n\n![AI ビジネス写真ジェネレーター](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_headshot_s1_img_1_d03183d7e0.jpg \"AI ビジネス写真ジェネレーター\")\n\n\n撮影方法のヒント:\n![撮影方法のヒント](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png \"撮影方法のヒント\")\n\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| AI ビジネス写真ジェネレーター | 入力画像に OpenPose で両肩ポイントと顔全体が確認できる人物が 1 人含まれており、短辺が 1024 ピクセル以下であることを確認してください。それ以外の場合、エンジンは自動的に 1024 にリサイズします。出力: 長辺 <= 1024 | < 10MB | jpg/jpeg/png |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| exceed_max_filesize |\t入力ファイルサイズが最大制限を超えています |\n| invalid_parameter |\tパラメータ値が無効です |\n| error_download_image\t| ソース画像のダウンロードに失敗しました |\n| error_decode_image\t| ソース画像のデコードに失敗しました |\n| error_nsfw_content_detected\t| ソース画像に NSFW コンテンツが検出されました |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI ビジネス写真ジェネレーター V1.0 | 2 枚あたり 1 ユニット * |\n\n    > *画像数または動画の長さが割り切れない場合、ユニットは切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_studio_generator.yaml","link":"/ja/reference/ai_studio_generator","routeSlug":"/ja/reference/ai_studio_generator","label":"AI スタジオ写真","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_studio_generator/section/概要","routeSlug":"/ja/reference/ai_studio_generator/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_studio_generator/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_studio_generator/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_studio_generator/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_studio_generator/section/概要/ユニット消費量"}]},{"type":"group","label":"V3.0","link":"/ja/reference/ai_studio_generator/v3.0","routeSlug":"/ja/reference/ai_studio_generator/v3.0","items":[{"label":"プリセットテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_studio_generator/v3.0/paths/~1s2s~1v2.0~1task~1template~1ai-studio/get","routeSlug":"/ja/reference/ai_studio_generator/v3.0/paths/~1s2s~1v2.0~1task~1template~1ai-studio/get","metadata":{"seo":{"title":"プリセットテンプレートを一覧表示します。","description":"プリセットテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/ai-studio"},{"label":"AI スタジオ写真タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_studio_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-studio/post","routeSlug":"/ja/reference/ai_studio_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-studio/post","metadata":{"seo":{"title":"AI スタジオ写真タスクを実行します。","description":"タスクステータスの確認方法については、ポーリングガイドを参照してください。ソース画像、テンプレート ID、出力数設定が必要です。"}},"httpPath":"/s2s/v2.0/task/ai-studio"},{"label":"AI スタジオ写真タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_studio_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-studio~1{task_id}/get","routeSlug":"/ja/reference/ai_studio_generator/v3.0/paths/~1s2s~1v2.0~1task~1ai-studio~1{task_id}/get","metadata":{"seo":{"title":"AI スタジオ写真タスクのステータスを確認します。","description":"AI スタジオ写真タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/ai-studio/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI スタジオ写真","version":"","description":"# 概要\nAI スタジオ写真では、セルフィーをスタジオ品質のポートレートに変換します。\n* スタジオ不要の利便性：カメラマンやスタジオへの訪問は不要です。いつでもどこでも、スタジオ品質の芸術的な写真を生成できます\n* 迅速な写真変換：高速処理により、高品質な芸術的な写真の結果を即座に得られます。素早い更新に最適です\n* 高品質な芸術的出力：スタジオで撮影したかのような、細部が鮮明で照明が完璧なプロフェッショナル基準の芸術的な写真を提供します\n\nユースケース:\n![AI スタジオ写真](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_AI_studio_S1_img_19b627b6af.jpg \"AI スタジオ写真\")\n\n![AI スタジオ写真](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_AI_studio_S2_img_01_2e318817e9.jpg \"AI スタジオ写真\")\n\n\n撮影のヒント：\n![撮影のヒント](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Hair_Extension_recommendation_ba24bd5d92.png \"撮影のヒント\")\n\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n|AI スタジオ写真|入力画像に 1 つの顔が含まれていること、短辺が少なくとも 200 ピクセル、長辺が 1920 ピクセル以下であることを確認してください。複数の顔がある場合、エンジンは最も大きい顔を選択します。出力解像度は 960×1280 (W×H) を超えません|< 10MB|jpg/jpeg/png|\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n|error_below_min_image_size\t|入力画像の解像度が小さすぎます|\n|error_exceed_max_image_size\t|入力画像の解像度が大きすぎます|\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI スタジオ写真 V3.0 | 画像 2 枚につき 1 ユニット * |\n\n    > *画像数または動画の長さが割り切れない場合、ユニット数は切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_image_generator.yaml","link":"/ja/reference/ai_image_generator","routeSlug":"/ja/reference/ai_image_generator","label":"AI 画像生成","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_image_generator/section/概要","routeSlug":"/ja/reference/ai_image_generator/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_image_generator/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_image_generator/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_image_generator/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_image_generator/section/概要/ユニット消費量"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_image_generator/v2.0","routeSlug":"/ja/reference/ai_image_generator/v2.0","items":[{"label":"テキストから画像への AI 画像生成タスク V2 を実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-image~1youcam/post","routeSlug":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-image~1youcam/post","metadata":{"seo":{"title":"テキストから画像への AI 画像生成タスク V2 を実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/text-to-image/youcam"},{"label":"テキストから画像への AI 画像生成タスク V2 のステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-image~1youcam~1{task_id}/get","routeSlug":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-image~1youcam~1{task_id}/get","metadata":{"seo":{"title":"テキストから画像への AI 画像生成タスク V2 のステータスを確認します。","description":"テキストから画像への AI 画像生成タスク V2 のステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/text-to-image/youcam/{task_id}"},{"label":"画像から画像への AI 画像生成タスク V2 を実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-image~1youcam/post","routeSlug":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-image~1youcam/post","metadata":{"seo":{"title":"画像から画像への AI 画像生成タスク V2 を実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/image-to-image/youcam"},{"label":"画像から画像への AI 画像生成タスク V2 のステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-image~1youcam~1{task_id}/get","routeSlug":"/ja/reference/ai_image_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-image~1youcam~1{task_id}/get","metadata":{"seo":{"title":"画像から画像への AI 画像生成タスク V2 のステータスを確認します。","description":"画像から画像への AI 画像生成タスク V2 のステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/image-to-image/youcam/{task_id}"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_image_generator/v1.0","routeSlug":"/ja/reference/ai_image_generator/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_generator/v1.0/paths/~1s2s~1v2.0~1task~1template~1text-to-image/get","routeSlug":"/ja/reference/ai_image_generator/v1.0/paths/~1s2s~1v2.0~1task~1template~1text-to-image/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/text-to-image"},{"label":"AI 画像生成タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_generator/v1.0/paths/~1s2s~1v2.0~1task~1text-to-image/post","routeSlug":"/ja/reference/ai_image_generator/v1.0/paths/~1s2s~1v2.0~1task~1text-to-image/post","metadata":{"seo":{"title":"AI 画像生成タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/text-to-image"},{"label":"AI 画像生成タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_image_generator/v1.0/paths/~1s2s~1v2.0~1task~1text-to-image~1{task_id}/get","routeSlug":"/ja/reference/ai_image_generator/v1.0/paths/~1s2s~1v2.0~1task~1text-to-image~1{task_id}/get","metadata":{"seo":{"title":"AI 画像生成タスクのステータスを確認します。","description":"AI 画像生成タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/text-to-image/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 画像生成","version":"","description":"# 概要\nAI 画像生成では、テキストプロンプトから画像を生成します。カートゥーン、油絵、スケッチなどのスタイルを試せます。画像を参照として追加することもできます。\n\nその他のスタイルについては、https://yce.makeupar.com/ai-art-generator. を参照してください。\n\nユースケース:\n![AI 画像生成](https://bcw-media.s3.ap-northeast-1.amazonaws.com/text_to_image_v3_video_02f161f909.jpg \"AI 画像生成\")\n\n![AI 画像生成](https://bcw-media.s3.ap-northeast-1.amazonaws.com/text_to_image_v4_poster_092d2fbb9f.jpg \"AI 画像生成\")\n\n出力例:\n![AI 画像生成](https://bcw-media.s3.ap-northeast-1.amazonaws.com/text_to_image_topbanner_dt_2_e325681588.jpg \"AI 画像生成\")\n\n![AI 画像生成](https://bcw-media.s3.ap-northeast-1.amazonaws.com/text_to_image_topbanner_dt_5_8b4fa13c6a.jpg \"AI 画像生成\")\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n| ---- | ---- | ---- | ---- |\n| V1.0 Text to Image | 出力: 長辺 1024 ピクセル。 | プロンプトは 500 文字以内 | N/A |\n| V2.0 Text to Image | 出力: 初期解像度は 1664 × 928 で、対応解像度は 1664 × 928 (16:9)、1472 × 1104 (4:3)、1328 × 1328 (1:1)、1104 × 1472 (3:4)、928 × 1664 (9:16) です。 | プロンプトは 800 文字以内 | N/A |\n| V2.0 Image to Image | 入力: 幅と高さの両方が 384 から 3072 ピクセルの範囲内である必要があります。 <br>出力: 幅と高さのカスタマイズ可能な範囲は 512 から 2,048 ピクセルで、初期設定では入力画像のアスペクト比に基づき、総ピクセル数が約 1,024 × 1,024 となるように維持されます。 | <10MB<br> プロンプトは 800 文字以内 | JPG、JPEG、PNG、BMP、TIFF、WEBP、GIF。 <br>アニメーション GIF の場合、最初のフレームのみが処理されます。 |\n\n* エラーコード\n\n| エラーコード | 説明 |\n| ---------- | ----------- |\n| exceed_max_filesize | アップロードされたファイルサイズが最大制限を超えています。 |\n| invalid_parameter | 1 つ以上のパラメータが不足しているか、無効です |\n| error_download_image | ソース画像のダウンロードに失敗しました。 |\n| error_decode_image | ソース画像のデコードまたは解析に失敗しました。 |\n| error_nsfw_content_detected | ソース画像に NSFW（職場不適切）コンテンツが検出されました。 |\n| error_unsupport_ratio | 入力画像のアスペクト比はサポートされていません。 |\n| unknown_internal_error | 不明な内部エラーが発生しました。 |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 画像生成 V1.0 | 2 |\n| AI 画像生成 V2.0 | 1 |\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_watermark_removal.yaml","link":"/ja/reference/ai_watermark_removal","routeSlug":"/ja/reference/ai_watermark_removal","label":"AI 透かし除去","items":[{"type":"group","label":"V1.0","link":"/ja/reference/ai_watermark_removal/v1.0","routeSlug":"/ja/reference/ai_watermark_removal/v1.0","items":[{"label":"AIウォーターマーク除去タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_watermark_removal/v1.0/paths/~1s2s~1v2.0~1task~1wmk-removal/post","routeSlug":"/ja/reference/ai_watermark_removal/v1.0/paths/~1s2s~1v2.0~1task~1wmk-removal/post","metadata":{"seo":{"title":"AIウォーターマーク除去タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/wmk-removal"},{"label":"AIウォーターマーク除去タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_watermark_removal/v1.0/paths/~1s2s~1v2.0~1task~1wmk-removal~1{task_id}/get","routeSlug":"/ja/reference/ai_watermark_removal/v1.0/paths/~1s2s~1v2.0~1task~1wmk-removal~1{task_id}/get","metadata":{"seo":{"title":"AIウォーターマーク除去タスクのステータスを確認します。","description":"AIウォーターマーク除去タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/wmk-removal/{task_id}"}]}],"metadata":{"type":"openapi","title":"AIウォーターマーク除去","version":""}},{"type":"separator","label":"動画編集","labelTranslationKey":"sidebar.reference.separators.video"},{"type":"group","fsPath":"@l10n/ja/reference/ai_video_generator.yaml","link":"/ja/reference/ai_video_generator","routeSlug":"/ja/reference/ai_video_generator","label":"静止画を動画に","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_video_generator/section/概要","routeSlug":"/ja/reference/ai_video_generator/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_video_generator/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_video_generator/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_video_generator/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_video_generator/section/概要/ユニット消費量"}]},{"type":"group","label":"V2.0","link":"/ja/reference/ai_video_generator/v2.0","routeSlug":"/ja/reference/ai_video_generator/v2.0","items":[{"label":"AI 画像から動画への生成 V2 タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-video~1youcam/post","routeSlug":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-video~1youcam/post","metadata":{"seo":{"title":"AI 画像から動画への生成 V2 タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/image-to-video/youcam"},{"label":"AI 画像から動画への生成 V2 タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-video~1youcam~1{task_id}/get","routeSlug":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1image-to-video~1youcam~1{task_id}/get","metadata":{"seo":{"title":"AI 画像から動画への生成 V2 タスクのステータスを確認します。","description":"AI 画像から動画への生成 V2 タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/image-to-video/youcam/{task_id}"},{"label":"AI テキストから動画へのタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-video~1youcam/post","routeSlug":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-video~1youcam/post","metadata":{"seo":{"title":"AI テキストから動画へのタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/text-to-video/youcam"},{"label":"AI テキストから動画へのタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-video~1youcam~1{task_id}/get","routeSlug":"/ja/reference/ai_video_generator/v2.0/paths/~1s2s~1v2.0~1task~1text-to-video~1youcam~1{task_id}/get","metadata":{"seo":{"title":"AI テキストから動画へのタスクのステータスを確認します。","description":"AI テキストから動画へのタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/text-to-video/youcam/{task_id}"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_video_generator/v1.0","routeSlug":"/ja/reference/ai_video_generator/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_generator/v1.0/paths/~1s2s~1v2.0~1task~1template~1image-to-video/get","routeSlug":"/ja/reference/ai_video_generator/v1.0/paths/~1s2s~1v2.0~1task~1template~1image-to-video/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/image-to-video"},{"label":"画像から動画へのタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_generator/v1.0/paths/~1s2s~1v2.0~1task~1image-to-video/post","routeSlug":"/ja/reference/ai_video_generator/v1.0/paths/~1s2s~1v2.0~1task~1image-to-video/post","metadata":{"seo":{"title":"画像から動画へのタスクを実行します。","description":"このエンドポイントは、画像から動画への変換プロセスを開始します。テンプレート ID とソースファイル（URL またはファイル ID 経由）を指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。"}},"httpPath":"/s2s/v2.0/task/image-to-video"},{"label":"画像から動画へのタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_generator/v1.0/paths/~1s2s~1v2.0~1task~1image-to-video~1{task_id}/get","routeSlug":"/ja/reference/ai_video_generator/v1.0/paths/~1s2s~1v2.0~1task~1image-to-video~1{task_id}/get","metadata":{"seo":{"title":"画像から動画へのタスクのステータスを確認します。","description":"画像から動画へのタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/image-to-video/{task_id}"}]}],"metadata":{"type":"openapi","title":"静止画を動画に","version":"","description":"# 概要\nYouCam AI 静止画を動画に は、テキストプロンプトと画像を動画に変換します。\nAI 技術で、写真に動きの効果を付与します。\n\n画像から AI 動画を作成するには、背景がクリーンで人物がはっきりと写っている写真を使用します。画像をアップロードすると、テキストプロンプトと写真が動画に変換されます。\n\nユースケース:\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_Animate%20Photo_047_d9e1cff579.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/AI_Dance_Video_61cf4c58d1.png)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/241216_AI_Kiss_image05_c3b7f1ac5b.jpg)\n\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| V1.0 画像から動画へ (Standard) |入力: >= 300*300px、アスペクト比 1:2.5 ~ 2.5:1。出力: 最大 720p 30fps|入力: <10MB。出力: 5 秒または 10 秒|jpg/jpeg/png|\n| V1.0 画像から動画へ (Professional) |入力: >= 300*300px、アスペクト比 1:2.5 ~ 2.5:1。出力: 最大 1080p 30fps|入力: <10MB。出力: 5 秒または 10 秒|jpg/jpeg/png|\n| V2.0 画像から動画へ | 入力画像の長辺は 4096 ピクセル以下、アスペクト比は 1:2.5 から 2.5:1 の範囲である必要があります。 <br> サポートされる出力解像度は 480p、720p、1080p です。入力画像の短辺が選択した解像度を超える場合、または長辺がターゲットサイズより小さい場合、短辺が選択した解像度に一致するように画像が自動的にリサイズされます。 |入力: <10MB。出力: 5 秒または 10 秒|jpg/jpeg/png|\n\n* エラーコード\n\n| エラーカテゴリー | シナリオ / 説明 | 推奨アクション |\n| -------------- | ---------------------- | ---------------- |\n| 無効なリクエストパラメータ | リクエストパラメータが無効または欠落しています | すべてのリクエストパラメータが正しいことを確認します |\n| | 無効なパラメータ値 (例: 不正なキーまたは不正な値) | レスポンスのエラーメッセージフィールドを確認し、リクエストパラメータを更新します |\n| | 無効なリクエストメソッド | API ドキュメントを確認し、正しい HTTP メソッドを使用します |\n| | リクエストされたリソースが存在しません (例: モデルが見つかりません) | レスポンスのエラーメッセージフィールドを参照し、リクエストパラメータを修正します|\n| トリガー戦略 | プラットフォームポリシーがトリガーされました | プラットフォームポリシーに違反していないか確認します |\n| | コンテンツセキュリティポリシーがトリガーされました | 入力コンテンツを確認・修正し、リクエストを再送信します |\n| | リクエストレートが高すぎます (レート制限超過)| リクエスト頻度を下げ、後で再試行するか、カスタマーサービスに連絡して制限を引き上げます |\n| | 同時実行または QPS がクォータを超えています   | リクエスト頻度を下げるか、後で再試行します |\n| 内部エラー  | 内部サーバーエラー | 後で再試行するか、カスタマーサービスに連絡します |\n| | サーバーが一時的に利用できません | 後で再試行するか、カスタマーサービスに連絡します |\n| | リクエスト滞留による内部タイムアウト| 後で再試行するか、カスタマーサービスに連絡します |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 静止画を動画に (Standard) V1.0 | 3 (1 秒) * |\n| AI 静止画を動画に (Professional) V1.0 | 6 (1 秒) * |\n| AI 静止画を動画に (画像から動画へ) V2.0 | 1 ユニット (480p / 1 秒) * <br> 2 ユニット (720p / 1 秒) * <br> 3 ユニット (1080p / 1 秒) * |\n| AI 静止画を動画に (テキストから動画へ) V2.0 | 2 ユニット (720p / 1 秒) * <br> 3 ユニット (1080p / 1 秒) * |\n\n    > *画像数または動画の長さが割り切れない場合、ユニット数は切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_video_enhancer.yaml","link":"/ja/reference/ai_video_enhancer","routeSlug":"/ja/reference/ai_video_enhancer","label":"AI 動画高画質化","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_video_enhancer/section/概要","routeSlug":"/ja/reference/ai_video_enhancer/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_video_enhancer/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_video_enhancer/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_video_enhancer/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_video_enhancer/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_video_enhancer/v1.0","routeSlug":"/ja/reference/ai_video_enhancer/v1.0","items":[{"label":"AI 動画高画質化タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_enhancer/v1.0/paths/~1s2s~1v2.0~1task~1video-sr/post","routeSlug":"/ja/reference/ai_video_enhancer/v1.0/paths/~1s2s~1v2.0~1task~1video-sr/post","metadata":{"seo":{"title":"AI 動画高画質化タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/video-sr"},{"label":"AI 動画高画質化タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_enhancer/v1.0/paths/~1s2s~1v2.0~1task~1video-sr~1{task_id}/get","routeSlug":"/ja/reference/ai_video_enhancer/v1.0/paths/~1s2s~1v2.0~1task~1video-sr~1{task_id}/get","metadata":{"seo":{"title":"AI 動画高画質化タスクのステータスを確認します。","description":"AI 動画高画質化タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/video-sr/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 動画高画質化","version":"","description":"# 概要\n\nAI 動画高画質化 API で、動画の品質を自動的に向上させます。ぼやけの修正、シャープネスの調整、明るさの最適化、低解像度映像のアップスケーリングを行います。\n\n動画編集や機械学習の経験は不要です。ユーザー生成コンテンツ（UGC）を扱うアプリケーション、メディアプラットフォーム、マーケティングツール、コンテンツ自動化システムで使えます。\n\n\n**主要機能**\n\n1. ぼやけ補正\n   モーションブラーや曖昧なディテールを検出し、AI 強化モデルでよりシャープなフレームを再構築します。\n\n2. シャープネス最適化\n   エッジやテクスチャを強化し、動画をくっきりとします。\n\n3. 明るさと露出の調整\n   照明の不一致を自動的に補正し、視認性とカラーバランスを整えます。\n\n4. AI アップスケーリング\n   480p などの低品質フォーマットを HD 品質にアップスケーリングします。ディテールを保持します。\n\n5. 品質向上\n   ノイズリダクションとアーティファクト除去を適用します。\n\n使用例:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_video_enhancer_S2_feature_video_03_S_0_10169a6902.jpg)\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| AI 動画高画質化 | 入力動画の長さは 60 秒以下、解像度は 2K 以下、フレームレートは 30fps 以下である必要があります。 | 長さ制限: 60s | コンテナ: mov, mp4 <br>動画: MPEG-4, MPEG-4 AVC, <br>音声: aac, amr, mp3 |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_download_video | ソース動画のダウンロードに失敗しました |\n| error_decode_video | ソース動画のデコードに失敗しました |\n| error_unsupported_video | 対応していない動画形式です |\n| exceed_max_filesize | 入力ファイルサイズが最大制限を超えています|\n| error_nsfw_content_detected | ソースファイルで NSFW コンテンツが検出されました |\n| error_decode_mask | マスク画像のデコードに失敗しました |\n| invalid_parameter | パラメータ値が無効です|\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 動画高画質化 V1.0 | 1 (2 秒) * |\n\n    > *画像の枚数または動画の長さが割り切れない場合、ユニットは切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_video_face_swap.yaml","link":"/ja/reference/ai_video_face_swap","routeSlug":"/ja/reference/ai_video_face_swap","label":"AI 動画顔入れ替え","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_video_face_swap/section/概要","routeSlug":"/ja/reference/ai_video_face_swap/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_video_face_swap/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_video_face_swap/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_video_face_swap/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_video_face_swap/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_video_face_swap/v1.0","routeSlug":"/ja/reference/ai_video_face_swap/v1.0","items":[{"label":"AI 顔交換（動画）タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap-vid/post","routeSlug":"/ja/reference/ai_video_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap-vid/post","metadata":{"seo":{"title":"AI 顔交換（動画）タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/face-swap-vid"},{"label":"AI 動画顔入れ替えタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap-vid~1{task_id}/get","routeSlug":"/ja/reference/ai_video_face_swap/v1.0/paths/~1s2s~1v2.0~1task~1face-swap-vid~1{task_id}/get","metadata":{"seo":{"title":"AI 動画顔入れ替えタスクのステータスを確認します。","description":"AI 動画顔入れ替えタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/face-swap-vid/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 動画顔入れ替え","version":"","description":"# 概要\n動画顔入れ替えは、YouCam の AI 動画顔入れ替え API で、動画内の人物の顔を別の人物の顔に置き換える AI 駆動のプロセスです。\n高度な AI 技術により、AI 動画顔入れ替えは非常にリアルな結果を提供します。顔の表情、ライティング、肌色は細かく調整され、入れ替えた顔が元の映像とシームレスに融合するようにします。\n\n> **備考:** この API は単一の顔を含む動画のみをサポートします。カスタマイズ可能なソリューションについては、[お問い合わせください](mailto:YouCamOnlineEditor_API@perfectcorp.com)。\n\n使用例:\n![](https://plugins-media.makeupar.com/smb/blog/post/2024-08-23/b1f96100-37d6-4c28-b467-d397e9c3a25d.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/dt_yce_video_face_swap_S3_video_03_28785ebe0c.jpg)\n\n![](https://plugins-media.makeupar.com/smb/story/2024-09-12/3582f617-e88e-4219-9e72-43d4c26791cd.png)\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| AI 動画顔入れ替え | 入力動画は 30 秒、4K 解像度、または 30 FPS を超えてはならず、出力は長辺 1280 解像度、30 FPS、最大 30 秒に制限されます。 | 長さ制限: 30s | コンテナ: mov, mp4 <br>動画: MPEG-4, MPEG-4 AVC, <br>音声: aac, amr, mp3 |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_download_video | ソース動画のダウンロードに失敗しました |\n| error_decode_video | ソース動画のデコードに失敗しました |\n| error_unsupported_video | 対応していない動画形式です |\n| exceed_max_filesize | 入力ファイルサイズが最大制限を超えています|\n| error_nsfw_content_detected | ソースファイルで NSFW コンテンツが検出されました |\n| error_decode_mask | マスク画像のデコードに失敗しました |\n| invalid_parameter | パラメータ値が無効です|\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 動画顔入れ替え V1.0 | 1 (5 秒) * |\n\n    > *画像数または動画の長さが割り切れない場合、ユニットは切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_video_style_transfer.yaml","link":"/ja/reference/ai_video_style_transfer","routeSlug":"/ja/reference/ai_video_style_transfer","label":"動画をアニメ化","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_video_style_transfer/section/概要","routeSlug":"/ja/reference/ai_video_style_transfer/section/概要","items":[{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_video_style_transfer/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_video_style_transfer/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_video_style_transfer/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_video_style_transfer/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_video_style_transfer/v1.0","routeSlug":"/ja/reference/ai_video_style_transfer/v1.0","items":[{"label":"事前定義されたテンプレートを一覧表示します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_style_transfer/v1.0/paths/~1s2s~1v2.0~1task~1template~1video-trans/get","routeSlug":"/ja/reference/ai_video_style_transfer/v1.0/paths/~1s2s~1v2.0~1task~1template~1video-trans/get","metadata":{"seo":{"title":"事前定義されたテンプレートを一覧表示します。","description":"事前定義されたテンプレートを一覧表示します。"}},"httpPath":"/s2s/v2.0/task/template/video-trans"},{"label":"動画をアニメ化タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_style_transfer/v1.0/paths/~1s2s~1v2.0~1task~1video-trans/post","routeSlug":"/ja/reference/ai_video_style_transfer/v1.0/paths/~1s2s~1v2.0~1task~1video-trans/post","metadata":{"seo":{"title":"動画をアニメ化タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/video-trans"},{"label":"動画をアニメ化タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_style_transfer/v1.0/paths/~1s2s~1v2.0~1task~1video-trans~1{task_id}/get","routeSlug":"/ja/reference/ai_video_style_transfer/v1.0/paths/~1s2s~1v2.0~1task~1video-trans~1{task_id}/get","metadata":{"seo":{"title":"動画をアニメ化タスクのステータスを確認します。","description":"動画をアニメ化タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/video-trans/{task_id}"}]}],"metadata":{"type":"openapi","title":"動画をアニメ化","version":"","description":"# 概要\nAI 動画フィルターとエフェクトで、動画にスタイルを適用できます。AI 動画フィルターにより、動画全体にスタイルを変換します。ポップアート、レトロ、アニメなど複数のスタイルから選択でき、すべてのフレームに適用されます。\n\n使用例:\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/dt_yce_video_style_transfer_S1_video_1_0_6d571a8bbb.jpg)\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/yce_web_video_style_transfe_S2_feature_03_0_6dd652a6f2.jpg)\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと解像度\n\n|AI 機能|対応解像度|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| 動画をアニメ化 | 入力動画は 30 秒、4K 解像度、30 FPS を超えてはならず、出力は長辺 1280 解像度、16 FPS、最大 30 秒に制限されます。 | 長さ制限：30 秒 | コンテナ：mov, mp4 <br>動画：MPEG-4, MPEG-4 AVC, <br>音声：aac, amr, mp3 |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_download_video | ソース動画のダウンロードに失敗しました |\n| error_decode_video | ソース動画のデコードに失敗しました |\n| error_unsupported_video | 対応していない動画形式です |\n| exceed_max_filesize | 入力ファイルサイズが最大制限を超えています |\n| error_nsfw_content_detected | ソースファイルで NSFW コンテンツが検出されました |\n| error_decode_mask | マスク画像のデコードに失敗しました |\n| invalid_parameter | パラメータ値が無効です |\n\n---\n\n## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 動画をアニメ化 V1.0 | 4 (1 秒) * |\n\n    > *画像数または動画の長さが割り切れない場合、ユニットは切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_video_object_removal.yaml","link":"/ja/reference/ai_video_object_removal","routeSlug":"/ja/reference/ai_video_object_removal","label":"AI 動画消しゴム","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_video_object_removal/section/概要","routeSlug":"/ja/reference/ai_video_object_removal/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_video_object_removal/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_video_object_removal/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_video_object_removal/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_video_object_removal/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_video_object_removal/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_video_object_removal/section/概要/ユニット消費量"}]},{"type":"group","label":"V2.1","link":"/ja/reference/ai_video_object_removal/v2.1","routeSlug":"/ja/reference/ai_video_object_removal/v2.1","items":[{"label":"新しいファイルを作成します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_object_removal/v2.1/paths/~1s2s~1v2.0~1file~1obj-rem-vid/post","routeSlug":"/ja/reference/ai_video_object_removal/v2.1/paths/~1s2s~1v2.0~1file~1obj-rem-vid/post","metadata":{"seo":{"title":"新しいファイルを作成します。","description":"新しいファイルをアップロードするには、まず File API を使用する必要があります。URL が発行されるので、その URL を使用してファイルをアップロードします。アップロードが完了すると、同じレスポンス内の file_id を使用して AI 機能を利用開始できます。"}},"httpPath":"/s2s/v2.0/file/obj-rem-vid"},{"label":"AI 動画消しゴムタスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_object_removal/v2.1/paths/~1s2s~1v2.0~1task~1obj-rem-vid/post","routeSlug":"/ja/reference/ai_video_object_removal/v2.1/paths/~1s2s~1v2.0~1task~1obj-rem-vid/post","metadata":{"seo":{"title":"AI 動画消しゴムタスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/obj-rem-vid"},{"label":"AI 動画消しゴムタスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_object_removal/v2.1/paths/~1s2s~1v2.0~1task~1obj-rem-vid~1{task_id}/get","routeSlug":"/ja/reference/ai_video_object_removal/v2.1/paths/~1s2s~1v2.0~1task~1obj-rem-vid~1{task_id}/get","metadata":{"seo":{"title":"AI 動画消しゴムタスクのステータスを確認します。","description":"AI 動画消しゴムタスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/obj-rem-vid/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 動画消しゴム","version":"","description":"# 概要\n\n**AI 動画消しゴム**\n\n![](https://plugins-media.makeupar.com/smb/blog/post/2025-02-04/webp_537ec670-48c0-49fc-b96b-8073de21a64b.webp)\n\nAI 動画消しゴム API で、動画から不要な要素を除去できます。観光客で混雑した背景、散らかったデスク、ガラス表面の反射など、マスクした領域を除去します。\n\n\n---\n\n## 統合ガイド\n\n**1. ソース動画とマスク画像の準備**\n入力動画の長さは 60 秒以下である必要があり、出力動画の長辺は 1920 ピクセル以下、フレームレートは 30 フレーム/秒以下である必要があります。\n\n\n**2. ファイルのアップロード**\n以下のエンドポイントを通じて、アップロード URL とファイル ID を取得します。\n\n```\nPOST /s2s/v2.0/file\n```\n\n入力動画:\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_video_object_removal_input_edd43a2470.png)\n\n\n参考入力マスク:\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_video_object_removal_mask_4a1c9fb658.png)\n\n\n**3. AI タスクの実行**\n\n```\nPOST /s2s/v2.0/task/obj-rem-vid\n```\n\nファイル ID または画像 URL を入力としてタスクを送信します。レスポンスには、結果の追跡と取得に使用される task_id が返されます。\n\n\n**4. タスク結果の取得**\n\n```\nGET /s2s/v2.0/task/obj-rem-vid/{task_id}\n```\n\nタスク ID を使用してステータスを追跡し、結果を取得します。\n\n[Webhook](../develop/webhook.md) を設定すると、タスク完了時に成功またはエラーのステータスを含む非同期通知を受信できます。また、タスクエンドポイントを繰り返し呼び出して、ステータスが running から success または error に更新されるまでポーリングすることもできます。\n\n課金は、タスクが正常に完了した場合にのみ発生します。\n\n\n出力動画サンプル:\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/webp_video_object_removal_output_eb7670cd9e.png)\n\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| AI 動画消しゴム | 入力動画の長さは 60 秒以下である必要があり、出力動画の長辺は 1920 ピクセル以下、フレームレートは 30 フレーム/秒以下である必要があります。 | 長さ制限: 60s | コンテナ: mov, mp4 <br>動画: MPEG-4, MPEG-4 AVC, <br>音声: aac, amr, mp3 |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_download_video | ソース動画のダウンロードに失敗しました |\n| error_decode_video | ソース動画のデコードに失敗しました |\n| error_unsupported_video | 対応していない動画形式です |\n| exceed_max_filesize | 入力ファイルサイズが最大制限を超えています |\n| error_nsfw_content_detected | ソースファイルで NSFW コンテンツが検出されました |\n| error_decode_mask | マスク画像のデコードに失敗しました |\n| invalid_parameter | パラメータ値が無効です |\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 動画消しゴム V2.1 | 2 (1 秒) * |\n\n    > *画像数または動画の長さが均等に割り切れない場合、ユニットは切り上げられます。\n\n---\n"}},{"type":"group","fsPath":"@l10n/ja/reference/ai_video_background_replace.yaml","link":"/ja/reference/ai_video_background_replace","routeSlug":"/ja/reference/ai_video_background_replace","label":"AI 動画背景置換","items":[{"type":"group","label":"概要","link":"/ja/reference/ai_video_background_replace/section/概要","routeSlug":"/ja/reference/ai_video_background_replace/section/概要","items":[{"type":"link","label":"統合ガイド","link":"/ja/reference/ai_video_background_replace/section/概要/統合ガイド","routeSlug":"/ja/reference/ai_video_background_replace/section/概要/統合ガイド"},{"type":"link","label":"ファイル仕様とエラー","link":"/ja/reference/ai_video_background_replace/section/概要/ファイル仕様とエラー","routeSlug":"/ja/reference/ai_video_background_replace/section/概要/ファイル仕様とエラー"},{"type":"link","label":"ユニット消費量","link":"/ja/reference/ai_video_background_replace/section/概要/ユニット消費量","routeSlug":"/ja/reference/ai_video_background_replace/section/概要/ユニット消費量"}]},{"type":"group","label":"V1.0","link":"/ja/reference/ai_video_background_replace/v1.0","routeSlug":"/ja/reference/ai_video_background_replace/v1.0","items":[{"label":"AI 動画背景置換タスクを実行します。","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_background_replace/v1.0/paths/~1s2s~1v2.0~1task~1bg-replace-vid/post","routeSlug":"/ja/reference/ai_video_background_replace/v1.0/paths/~1s2s~1v2.0~1task~1bg-replace-vid/post","metadata":{"seo":{"title":"AI 動画背景置換タスクを実行します。","description":"AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、success または error の通知が来たら、受け取った task_id を使ってタスクの結果を照会します。設定と検証の詳細は Webhook 統合ガイド を参照してください。"}},"httpPath":"/s2s/v2.0/task/bg-replace-vid"},{"label":"AI 動画背景置換タスクのステータスを確認します。","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/ja/reference/ai_video_background_replace/v1.0/paths/~1s2s~1v2.0~1task~1bg-replace-vid~1{task_id}/get","routeSlug":"/ja/reference/ai_video_background_replace/v1.0/paths/~1s2s~1v2.0~1task~1bg-replace-vid~1{task_id}/get","metadata":{"seo":{"title":"AI 動画背景置換タスクのステータスを確認します。","description":"AI 動画背景置換タスクのステータスを確認します。"}},"httpPath":"/s2s/v2.0/task/bg-replace-vid/{task_id}"}]}],"metadata":{"type":"openapi","title":"AI 動画背景置換","version":"","description":"# 概要\n\n**AI 動画背景置換**\n\n![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/Green_Screen_ddb7892393.png)\n\nAI 動画背景置換 API で、動画に任意の背景を追加できます。風景やカスタム画像などの背景から選択できます。\nスタジオやグリーンスクリーンは不要です。動画の背景を置き換えます。\n\n\n---\n\n## 統合ガイド\n\n**1. ソース動画と背景画像の準備**\n出力は MP4 形式で、入力と同じ解像度、フレームレートは最大 30 フレーム/秒（入力がこの制限を超える場合は自動変換）、最大長は 600 秒（入力動画が長い場合は最初の 600 秒のみ保持）である必要があります。\n\n背景画像は JPG または PNG 形式で、最大解像度は 4096 x 4096 ピクセル（長辺が 4096 ピクセル以下）、ファイルサイズは 10 メガバイト以下である必要があります。\n\n\n**2. ファイルのアップロード**\n以下のエンドポイントを通じて、アップロード URL とファイル ID をリクエストします。\n\n```\nPOST /s2s/v2.0/file\n```\n\n\n**3. AI タスクの実行**\n\n```\nPOST /s2s/v2.0/task/bg-replace-vid\n```\n\nファイル ID または画像 URL を入力として使用してタスクを送信します。レスポンスには、結果の追跡と取得に使用される task_id が返されます。\n\n\n**4. タスク結果の取得**\n\n```\nGET /s2s/v2.0/task/bg-replace-vid/{task_id}\n```\n\nタスク ID を使用してステータスを追跡し、結果を取得します。\n\n[Webhook](../develop/webhook.md) を設定すると、タスク完了時に成功またはエラーのステータスを含む非同期通知を受信できます。また、タスクエンドポイントを繰り返し呼び出して、ステータスが running から success または error に更新されるまでポーリングすることもできます。\n\n料金は、タスクが正常に完了した場合にのみ課金されます。\n\n\n\n---\n\n## ファイル仕様とエラー\n\n* 対応フォーマットと寸法\n\n|AI 機能|対応寸法|対応ファイルサイズ|対応フォーマット|\n|  ----  | ----  | ----  | ----  |\n| AI 動画背景置換 | 出力は MP4 形式で、入力と同じ解像度、フレームレートは最大 30 フレーム/秒（入力がこの制限を超える場合は自動変換）、最大長は 600 秒（入力動画が長い場合は最初の 600 秒のみ保持）である必要があります。 <br>背景画像は JPG または PNG 形式で、最大解像度は 4096 x 4096 ピクセル（長辺が 4096 ピクセル以下）、ファイルサイズは 10 メガバイト以下である必要があります。 | 動画長制限: 600s <br> 背景画像: <10MB | コンテナ: mp4 <br>動画: MPEG-4, MPEG-4 AVC, <br>音声: aac, amr, mp3 |\n\n* エラーコード\n\n|エラーコード|説明|\n|  ----  | ----  |\n| error_download_video | ソース動画のダウンロードに失敗しました |\n| error_decode_video | ソース動画のデコードに失敗しました |\n| error_unsupported_video | 対応していない動画形式です |\n| exceed_max_filesize | 入力ファイルサイズが最大制限を超えています |\n| error_nsfw_content_detected | ソースファイルで NSFW コンテンツが検出されました |\n| error_decode_mask | マスク画像のデコードに失敗しました |\n| invalid_parameter | パラメータ値が無効です |\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## ユニット消費量\n\n| AI 機能 | 消費ユニット |\n|---|---|\n| AI 動画背景置換 V1.0 | 2 (1 秒) * |\n\n    > *画像数または動画長が均等に割り切れない場合、ユニットは切り上げられます。\n\n---\n"}}]}