# 指輪バーチャル試着

# 概要
AR リングやエンゲージメントリングのバーチャル試着を作成します。2D 画像でリングの試着プレビューを生成します。
## 統合ガイド
本ガイドでは以下内容を説明します:
* **エンドポイント:**

`/s2s/v2.0/task/2d-vto/ring`
* **認証:**
 すべてのリクエストに
`Authorization: Bearer YOUR_API_KEY`
 が必要です
* **ワークフロー:**
  1. **手の画像を準備する:**
 画像をアップロードするか、手の有効な画像 URL を提供します
  2. **リングの画像を準備する:**
 画像をアップロードするか、リング製品の有効な画像 URL を提供します
  3. **AI タスクを発行しタスク ID を取得する:**
 レスポンスから
`task_id`
 を取得します。
  4. **ステータスをポーリングする（`GET`）:**

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



---

* API プレイグラウンド

API プレイグラウンドで API を対話的にテストします:
**API プレイグラウンド:**
[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/)


---

* 認証

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

```
Authorization: Bearer YOUR_API_KEY
```

API キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.
*   1. 画像のアップロード

ファイルをサーバーに直接アップロードするか、VTO タスクペイロードに有効な画像 URL を提供できます。
* アップロードエンドポイント


```
POST /s2s/v2.0/file
```
すでにパブリックな画像 URL を持っている場合は、このステップをスキップできます。
File API のレスポンスで提供された URL にファイルを直接アップロードし、その後 File API が返した対応する `src_file_id` を使用して AI タスクを呼び出すことができます。または VTO タスクペイロードに有効な画像 URL を `src_file_url` として提供します。`src_file_id` または `src_file_url` がバーチャル試着の対象となります。
また、`src_file_id` または `src_file_url` に適用するリング製品画像を参照として `ref_file_ids` または `ref_file_urls` で提供する必要があります。
AI エンジンでは、リング製品画像の自動背景透過に対応しています。ただし、手（`srcmsk_file_id` または `srcmsk_file_url`）またはリング製品（`refmsk_file_ids` または `refmsk_file_urls`）のオクルージョンマスク画像ファイルを提供してセグメンテーションを微調整できます。


---

*   1. リング VTO タスクの作成と結果のポーリング

画像とテンプレート ID が揃ったら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` に達するまでタスクステータスをポーリングする必要があります。
* タスク作成エンドポイント


```
POST /s2s/v2.0/task/2d-vto/ring
```
* ポーリングエンドポイント


```
GET /s2s/v2.0/task/2d-vto/ring/{task_id}
```


---

## ファイル仕様とエラー
* 指輪バーチャル試着の仕様

**サポートされるリングビュー**
リング画像は四分之三前面ビュー（約 45 度）で提供する必要があります。
![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_product_01_9a4d0680f2_b46afe9a53.jpg)
**サポートされる手のビュー**
手の甲が完全に、5 つの指がすべて明確に見え、オクルージョン（遮蔽）がない状態である必要があります。
![](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_user_01_6d9893abd0_c7427cdb78.jpg)
**ring_wearing_finger: integer (0–4)**
リングを着用する指を指定します:
0 = 親指
1 = 人差し指
2 = 中指
3 = 薬指
4 = 小指
**ring_wearing_location: float (0.0–1.0)**
指に沿った位置を示します:
0.0 = MCP 関節（大きな関節）に近い
1.0 = PIP 関節（中央の関節）に近い
![ring_wearing_location](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_wearing_location_59567be4af.jpg)
**ring_shadow_intensity: float (0.0–1.0)**
影の強さを制御します:
0.0 = 影なし
1.0 = 最大限の影
デフォルト: 0.15
**ring_ambient_light_intensity: float (0.0–1.0)**
ライティングがターゲットの手画像を参照する度合いを定義します:
0.0 = 手画像のライティングを無視
1.0 = 手画像のライティングと影のレンダリングに完全に一致
デフォルト: 1.0
**リングアンカーポイント: ピクセル座標の 2 点の配列（任意）**
リングが指に接する内側のエッジをマークし、左と右の点を指定します。幅広または厚みのあるリングには特に役立ちます。
このパラメータを提供しない場合、AI エンジンがアンカーポイントを自動的に検出します。
![ring_anchor_point](https://bcw-media.s3.ap-northeast-1.amazonaws.com/strapi/assets/ring_anchor_point_e6eb241ef8.jpg)


---

* サポートされる形式と寸法

| AI 機能 | サポートされる寸法 | サポートされるファイルサイズ | サポートされる形式 |
|  --- | --- | --- | --- |
| 指輪バーチャル試着 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png |

* エラーコード

| エラーコード | 説明 |
|  --- | --- |
| RUNTIME_ERROR | ランタイムで予期しないエラーが発生しました |
| PHOTO_DETECTION_FAIL | ユーザー写真が正しく処理できませんでした（例: 手が検出されなかった） |
| OBJECT_DETECTION_FAIL | オブジェクト写真が正しく処理できませんでした（例: 製品が検出されなかった） |
| PHOTO_CHECK_INVALID | ユーザー写真のポーズまたはサイズが無効です |
| INPUT_ERROR | 入力ファイルの形式が正しくありません |
| INPUT_MAIN_IMAGE_EMPTY | ユーザー画像が必要です |

* 環境と依存関係

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



---

## JS Camera Kit


---

## ユニット消費
| AI 機能 | 消費ユニット |
|  --- | --- |
| 指輪バーチャル試着 V1.0 | シングルアイテム着用で 1 ユニット スタック着用で 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' の間にスペースが 1 つ必要です。

Type: http
Scheme: bearer

## Download OpenAPI description

 - [指輪バーチャル試着](https://docs.perfectcorp.com/_bundle/@l10n/ja/reference/ring_vto.yaml)

## V1.0

 - [POST /s2s/v2.0/file/2d-vto/ring](https://docs.perfectcorp.com/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1file~12d-vto~1ring/post.md): 新しいファイルをアップロードするには、まず File API を使用する必要があります。URL が発行されるので、その URL を使用してファイルをアップロードします。アップロードが完了したら、同じレスポンス内の file_id を使用して AI 機能を利用できます。
 - [POST /s2s/v2.0/task/2d-vto/ring](https://docs.perfectcorp.com/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1ring/post.md): AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、`success` または `error` の通知が来たら、受け取った `task_id` を使ってタスクの結果を照会します。設定と検証の詳細は [Webhook 統合ガイド](/develop/
 - [GET /s2s/v2.0/task/2d-vto/ring/{task_id}](https://docs.perfectcorp.com/ja/reference/ring_vto/v1.0/paths/~1s2s~1v2.0~1task~12d-vto~1ring~1%7Btask_id%7D/get.md)
