# スカーフバーチャル試着

# 概要
スカーフバーチャル試着を作成します。
スカーフを服装に着用した状態のプレビューを確認できます。
## 統合ガイド
このガイドでは、以下を説明します。
* **エンドポイント:**

`/s2s/v2.0/task/scarf`
* **認証:**
 すべてのリクエストには
`Authorization: Bearer YOUR_API_KEY`
 が必要です
* **ワークフロー:**
  1. **セルフィー画像の準備:**
 バーチャル試着のターゲットとして、自分の画像をアップロードするか、有効な画像 URL を提供します。
  2. **スカーフ画像の準備:**
 スカーフ製品またはスカーフを着用した人物（遮るものなく明確に見える）の画像をアップロードするか、有効な画像 URL を提供します。
  3. **スタイルと性別の選択:**
 希望するスタイルと、視覚化したい性別を選択します。
  4. **AI タスクの実行とタスク ID の取得:**
 レスポンスから
`task_id`
 を取得します。
  5. **ステータスのポーリング (`GET`):**

`task_id`
 を使用してタスクのステータスを確認します。
`task_status`
 が
`"success"`
 または
`"error"`
 になるまでポーリングを続けます。



---

* 認証

- リクエストヘッダーに
**Bearer トークン**
 を使用して API キーを含めます:


```
Authorization: Bearer YOUR_API_KEY
```
API キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.


---

* AI スカーフ API 使用ガイド

このガイドでは、画像のアップロード、参照スカーフの準備、および AI スカーフ API を使用したバーチャル試着タスクの作成方法について説明します。


---

* ステップ 1. セルフィー画像の準備

以下のいずれかの方法が利用可能です:
* File API (`/s2s/v2.0/file`) を使用してセルフィー画像をアップロードする、または
* 有効な画像 URL を提供する。
  * ステップ 1.1 File API を使用したファイルのアップロード

**File API** (`/s2s/v2.0/file`) を使用して、ターゲットユーザーの画像をアップロードします。
**画像要件:**
* セルフィー写真をアップロードします。
* 写真に上半身が明確に写っていることを確認します。
* 複数の人物や気が散るオブジェクトがある背景は避けてください。

**リクエスト例:**

```bash
curl --request POST \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/file \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
    "files": [
      {
        "content_type": "image/jpg",
        "file_name": "selfie_photo_01_3dbd1b6683.jpg",
        "file_size": 547541
      }
    ]
  }'
```


---

* ステップ 1.2. File API レスポンスの取得

レスポンスには以下が含まれます:
* AI タスク作成用の
`file_id`
。
* 実際の画像ファイルをアップロードするための
`requests.url`
。

**レスポンス例:**

```json
{
  "status": 200,
  "data": {
    "files": [
      {
        "content_type": "image/jpg",
        "file_name": "selfie_photo_01_3dbd1b6683.jpg",
        "file_id": "SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9/13W5TOD8/u/FfjK3xgCQ+hRt9MJXBFaud",
        "requests": [
          {
            "method": "PUT",
            "url": "https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...",
            "headers": {
              "Content-Length": "547541",
              "Content-Type": "image/jpg"
            }
          }
        ]
      }
    ]
  }
}
```


---

* ステップ 1.3. 提供された URL への画像アップロード

File API レスポンスの `requests.url` を使用して画像をアップロードします:

```bash
curl --location --request PUT 'https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature...' \
  --header 'Content-Type: image/jpg' \
  --header 'Content-Length: 547541' \
  --data-binary @'./selfie_photo_01_3dbd1b6683.jpg'
```


---

* ステップ 2. 参照スカーフ画像の準備

以下のいずれかの方法が利用可能です:
* File API (
`/s2s/v2.0/file`
) を使用してスカーフ画像をアップロードする、または
* 有効な画像 URL を提供する。

**対応スカーフ画像:**
* スカーフの製品画像。
* 遮るものなくスカーフを持っている人物（スカーフの参照用）。

詳細な仕様については、**[ファイル仕様とエラー](#section/overview/File-Specs-and-Errors)** を参照してください。


---

* ステップ 3. AI タスクの作成

希望するスタイルと、視覚化したい性別を選択します。
**AI タスク API** (`/s2s/v2.0/task/scarf`) を使用してバーチャル試着タスクを作成します。
**パラメータ:**
* ユーザー画像用:
`src_file_id`
 または
`src_file_url`
。
* スカーフ画像用:
`ref_file_id`
 または
`ref_file_url`
。

**リクエスト例:**

```bash
curl --request POST \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/scarf \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json' \
  --data '{
    "src_file_url": "https://example.com/selfie.jpg",
    "ref_file_url": "https://example.com/accessory.jpg",
    "gender": "female",
    "style": "random"
}'
```
**レスポンス例:**

```json
{
  "status": 200,
  "data": {
    "task_id": "SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT"
  }
}
```


---

* ステップ 4. タスク結果のポーリング

タスク ID を使用してステータスを確認します:

```bash
curl --request GET \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/scarf/SaGaqpDgKwFrVBgMpQMA3HY0LeqdT9_13W5TOD8_u_GPi6NqQ3dhlmN-6ntFwhzT \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json'
```


---

* ステップ 5. 結果の取得

成功したレスポンスには、結果画像のダウンロード URL が含まれます:

```json
{
  "status": 200,
  "data": {
    "error": null,
    "results": {
      "url": "https://yce-us.s3-accelerate.amazonaws.com/demo/ttl30/...signature..."
    },
    "task_status": "success"
  }
}
```
無効な API キーエラーレスポンス:

```json
{
  "status": 401,
  "error": "Unauthorized",
  "error_code": "InvalidAccessToken"
}
```


---

## ファイル仕様とエラー
* AI スカーフバーチャル試着仕様
  * 画像要件

| タイプ | 最小解像度 | 備考 |
|  --- | --- | --- |
| セルフィー | 512 × 512 | 顔が見えること、頭から胸までが推奨 |
| スカーフ | 512 × 512 (製品)800 × 800 (着用時) | 明確で遮られていないスカーフのビュー |

**対応スカーフ画像**
* 製品画像要件
  * 最小解像度: 512 × 512 ピクセル
  * 画像あたり 1 つの製品のみ
  * 製品は画像の高さの 25 パーセント以上を占める必要があります

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/021_thumb_e356d121b3.jpg)
* 着用画像要件
  * 最小解像度: 800 × 800 ピクセル

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/008_thumb_5dd8b1be93.jpg)
**対応セルフィービュー**
* 推奨画像解像度: 少なくとも 512 × 512 ピクセル。
* 推奨顔の被写体範囲: 画像の高さの 15 パーセント以上。
* 画像には単一の人物が明確に写っており、顔全体が見え、頭から胸まで（少なくとも頭部ショット）がフレームに含まれている必要があります。半身ショットが推奨されます。

![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/lashana_lynch_thumb_7a900b811e.jpg)
**試着スタイル**
* バーチャル試着出力を生成するための 5 つの事前定義スタイルがあります: "style_french_elegance", "style_light_luxury", "style_cottagecore", "style_modern_chic", "style_bohemian"。AI タスク作成時にこのスタイルパラメータを指定するか、デフォルトでシステムにランダムにスタイルを選択させることができます。

![style_french_elegance](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/3d88ad75_41ca_4bf8_b81d_f52adf5db263_4a06b3e174.jpg)


---

* 対応フォーマットと寸法

| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |
|  --- | --- | --- | --- |
| AI スカーフバーチャル試着 | 入力: 長辺 <= 4096 出力: 896 x 1152 | < 10MB | jpg/jpeg/png/heic |

* エラーコード

| エラーコード | 説明 |
|  --- | --- |
| error_download_image | ソースまたは参照画像のダウンロードに失敗しました |
| error_inference | 推論パイプラインエラー |
| error_no_face | ソース画像で顔が検出されませんでした |
| error_nsfw_content_detected | 結果に NSFW コンテンツが検出されました |
| exceed_max_filesize | ファイルサイズが 10 MB を超えています |
| invalid_parameter | 無効な性別またはスタイル値 |
| unknown_internal_error | その他の内部エラー |

* 環境と依存関係

| サンプルコード言語 / ツール | 推奨ランタイムバージョン |
|  --- | --- |
| cURL | - bash >= 3.2   - curl >= 7.58 (モダンな TLS/HTTP サポート)   - jq >= 1.6 (堅牢な JSON パーシング) |
| Node.js (JavaScript) | Node >= 18 (グローバル fetch のため) |
| JavaScript | - Chrome / Edge >= 80   - Firefox >= 74   - Safari >= 13.1 |
| PHP | PHP >= 7.4 (モダンな TLS/互換性のため), ext-curl (推奨) または allow_url_fopen=On + ext-openssl, ext-json |
| Python | Python >= 3.10 (f-strings のため), requests >= 2.20.0 |
| Java | Java 11+ (HttpClient のため), Jackson Databind >= 2.12.0 |



---

## ユニット消費
| AI 機能 | 消費ユニット |
|  --- | --- |
| AI スカーフバーチャル試着 V2.0 | 2 |



---

License: Privacy policy

## Servers

```
https://yce-api-01.makeupar.com
```

## Security

### BearerAuthenticationV2

標準の 'Bearer authentication' を使用します。ヘッダーに 'API Key' を設定してください: `Authorization:Bearer YOUR_API_KEY`。'Bearer' と 'YOUR_API_KEY' の間にスペースがある点にご注意ください。

Type: http
Scheme: bearer

## Download OpenAPI description

 - [スカーフバーチャル試着](https://docs.perfectcorp.com/_bundle/@l10n/ja/reference/ai_scarf.yaml)

## V2.0

 - [POST /s2s/v2.0/task/scarf](https://docs.perfectcorp.com/ja/reference/ai_scarf/v2.0/paths/~1s2s~1v2.0~1task~1scarf/post.md): このエンドポイントは、スカーフバーチャル試着プロセスを開始します。ソースファイル、参照ファイル（URL または ID）、性別、およびスタイルパラメータを指定する必要があります。タスクは非同期で処理され、このレスポンスで返される task_id を使用してステータスを確認できます。
 - [GET /s2s/v2.0/task/scarf/{task_id}](https://docs.perfectcorp.com/ja/reference/ai_scarf/v2.0/paths/~1s2s~1v2.0~1task~1scarf~1%7Btask_id%7D/get.md)
