# AI ファブリックチェンジ

# 概要
AI ファブリック API では、画像の衣服領域にファブリックスタイルを適用します。
新しいファブリックスタイルを追加します。


---

## 統合ガイド
* AI ファブリック API 使用ガイド

このガイドでは、画像のアップロード、事前定義されたファブリックスタイルの取得、および AI ファブリック API を使用したバーチャル試着タスクの作成方法について説明します。


---

* ステップ 1. ファイル 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": "full_body_photo_01_3dbd1b6683.jpg",
        "file_size": 547541
      }
    ]
  }'
```


---

* ステップ 2. File API のレスポンスを取得する

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

**レスポンス例:**

```json
{
  "status": 200,
  "data": {
    "files": [
      {
        "content_type": "image/jpg",
        "file_name": "full_body_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"
            }
          }
        ]
      }
    ]
  }
}
```


---

* ステップ 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 @'./full_body_photo_01_3dbd1b6683.jpg'
```


---

* ステップ 4. 事前定義されたファブリックテンプレートを取得する

**Template API** (`/s2s/v2.0/task/template/fabric`) を使用して、事前定義されたファブリックテンプレートのリストを取得します:

```bash
curl --request GET \
    --url 'https://yce-api-01.makeupar.com/s2s/v2.0/task/template/fabric?page_size=20&starting_token=73a3c9e69b89' \
    --header 'Authorization: Bearer YOUR_API_KEY'
```


---

* ステップ 5. AI タスクを作成する

**AI Task API** (`/s2s/v2.0/task/fabric`) を使用して、バーチャル試着タスクを作成します。
**パラメータ:**
* ユーザー画像用:
`src_file_id`
 または
`src_file_url`
。
* ファブリックスタイル用:
`template_id`
。

**リクエスト例:**

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

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


---

* ステップ 6. タスク結果をポーリングする

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

```bash
curl --request GET \
  --url https://yce-api-01.makeupar.com/s2s/v2.0/task/fabric/<YOUR_TASK_ID> \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'content-type: application/json'
```


---

* ステップ 7. 結果を取得する

成功したレスポンスには、結果画像のダウンロード 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"
}
```


---

ユースケース:
![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI%20Fabric.png)
![](https://plugins-media.makeupar.com/smb/blog/post/2024-05-07/b103976d-1b0e-4bed-aab4-9307308b84d7.jpg)
![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/03%20ai%20clothes%20changer.jpg)
撮影方法の提案:
![撮影方法の提案](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/AI-Cloth-Guideline.png)


---

## ファイル仕様とエラー
* サポートされる形式と寸法

| AI 機能 | サポートされる寸法 | サポートされるファイルサイズ | サポートされる形式 |
|  --- | --- | --- | --- |
| AI ファブリック | 長辺 <= 4096、単一の人物のみ、腹部、顔、肩がすべて見えている必要があります。顔が遮られてはいけません。体は直立し、正面を向いており、座るやしゃがむなどのポーズは避けてください。 | < 10MB | jpg/jpeg |

* エラーコード

| エラーコード | 説明 |
|  --- | --- |
| error_apply_region_not_detected | 入力画像内の衣服領域が小さすぎるか、検出されませんでした |

* 環境と依存関係

| サンプルコード言語 / ツール | 推奨ランタイムバージョン |
|  --- | --- |
| 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 機能 | 消費ユニット |
|  --- | --- |
| ファブリックチェンジ V1.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

 - [AI ファブリックチェンジ](https://docs.perfectcorp.com/_bundle/@l10n/ja/reference/ai_fabric.yaml)

## V1.0

 - [GET /s2s/v2.0/task/template/fabric](https://docs.perfectcorp.com/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1template~1fabric/get.md)
 - [POST /s2s/v2.0/task/fabric](https://docs.perfectcorp.com/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1fabric/post.md): タスクステータスの確認については、ポーリングガイドを参照してください。
 - [GET /s2s/v2.0/task/fabric/{task_id}](https://docs.perfectcorp.com/ja/reference/ai_fabric/v1.0/paths/~1s2s~1v2.0~1task~1fabric~1%7Btask_id%7D/get.md)
