# ネイル再現

# 概要
ネイル再現 API では、参照写真のネイルデザインを手の写真に転送します。
ジェルネイル、ネイルアート、ポリッシュ仕上げ、ラメ、シェルアクセント、メタリックテクスチャーなどのネイルスタイルをプレビューとして再現します。
美容ブランド、サロン、ネイルアーティストで使えます。
![](https://plugins-media.makeupar.com/smb/blog/post/2022-11-24/8821ab6e-9852-4401-89df-dd6005fb81fc.jpg)
## 統合ガイド
このガイドでは、以下を説明します。
ネイル再現 API のワークフロー：
**エンドポイント:** `/s2s/v2.0/task/ai-nail`
**認証必須:** `Authorization: Bearer YOUR_API_KEY`
**ワークフロー手順:**
1. **画像アップロード準備:**

- プロセスは、File API を使用して
`/s2s/v2.0/file`
 に手の画像を準備することから始まります。

1. **参照写真のアップロード:**

- 希望するネイルデザインが写った参照写真を、File API を使用して
`/s2s/v2.0/file`
 にアップロードします。すべての爪が明確に見えるようにしてください。

1. **AI タスクの開始とタスク ID の取得:**

- アップロードした画像を HTTP POST リクエストで
`/s2s/v2.0/task/ai-nail`
 に送信します。
- このインタラクションを識別する一意の
`task_id`
 をレスポンスで待ちます。

1. **タスクステータスのポーリング（継続的な確認）:**

- 取得した
`task_id`
 を使用して、HTTP GET リクエスト（例：
`GET /task/${task_id}`
）でタスクステータスを定期的にポーリングします。
- 以下を継続的に監視します：
- `Task_status = "success"`
（処理完了）。
- `Task_status = "error"`
（該当する場合、解決または再試行）。
- ステータスが success に遷移したら、ワークフローを適切に更新します。

このワークフローにより、タスクの監視と結果の取得を行います。


---

* 認証

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


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

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


```
POST /s2s/v2.0/file
```
または、公開画像 URL が既に存在する場合は、この手順をスキップします。


---

*   1. 参照写真のアップロード

ファイルをサーバーに直接アップロードするか、AI タスクペイロードに有効な画像 URL を指定します。すべての爪が見えるようにしてください。
* アップロードエンドポイント


```
POST /s2s/v2.0/file
```


---

*   1. ネイル再現 AI タスクの作成と結果のポーリング

画像と完全なエフェクトペイロードが用意できたら、タスクを作成します。API はリクエストを非同期で処理します。ステータスが `success` または `error` になるまで、タスクステータスをポーリングします。
* タスク作成エンドポイント


```
POST /s2s/v2.0/task/ai-nail
```
* ポーリングエンドポイント


```
GET /s2s/v2.0/task/ai-nail/{task_id}
```


---

## ファイル仕様とエラー
* ネイル再現 仕様
**対応する手のビュー**
画像あたり最大 2 本の手に対応します。追加の手は無視されます。検出のため、各手が画像面積の少なくとも 0.5% を占める必要があります（FHD で約 102×102 px、2K で 139×139 px、4K 画像で 204×204 px）。
![](https://plugins-media.makeupar.com/strapi/assets/small_webp_bare_nails_014_f6451b0343.png)
**対応する参照画像**
![](https://plugins-media.makeupar.com/strapi/assets/small_webp_ref_6_341b11df3d.png)
![](https://plugins-media.makeupar.com/strapi/assets/small_webp_ref_2_86a47c1c26.png)



---

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

| AI 機能 | 対応寸法 | 対応ファイルサイズ | 対応フォーマット |
|  --- | --- | --- | --- |
| ネイル再現 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png |

* エラーコード

| エラーコード | 説明 |
|  --- | --- |
| exceed_max_filesize | 画像ファイルが大きすぎます |
| invalid_parameter | 入力パラメータが不足しているか、形式が正しくありません |
| error_download_image | ファイルアップロードが完了していないか、画像 URL が無効です |
| error_inference | 推論に失敗しました。入力画像と参照画像がサポートされているか確認してください |
| no_hand_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 | 1 |



---

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_nail_transfer.yaml)

## V1.0

 - [POST /s2s/v2.0/task/ai-nail](https://docs.perfectcorp.com/ja/reference/ai_nail_transfer/v1.0/paths/~1s2s~1v2.0~1task~1ai-nail/post.md): AI タスクは非同期です。機能ごとに Webhook がサポートされている場合は、Webhook による完了処理を優先します。Webhook エンドポイントを設定し、Webhook 署名を検証したうえで、`success` または `error` の通知が来たら、受け取った `task_id` を使ってタスクの結果を照会します。設定と検証の詳細は [Webhook 統合ガイド](/develop/
 - [GET /s2s/v2.0/task/ai-nail/{task_id}](https://docs.perfectcorp.com/ja/reference/ai_nail_transfer/v1.0/paths/~1s2s~1v2.0~1task~1ai-nail~1%7Btask_id%7D/get.md)
