# 笑顔補正

# 概要
AI 笑顔補正では、表情を笑顔に変換します。

AI 笑顔補正は 2 種類の笑顔スタイルをサポートしています。

1.  **smile_with_teeth_visible**  
    歯が見える笑顔を作成します。

2.  **closed_mouth_smile**  
    唇を閉じた控えめな笑顔を作成します。

写真の内容に合わせて笑顔タイプを選択します。

![](https://plugins-media.makeupar.com/smb/blog/post/2024-03-22/5f25b0f7-5d43-421b-ae50-5def0de69f2a.jpg)

![](https://plugins-media.makeupar.com/smb/blog/post/2024-12-16/4f4397e0-9e87-429a-8e39-a9d399b6602b.jpg)

## 統合ガイド
このガイドでは、以下を説明します。

AI 笑顔補正 のワークフロー:

**エンドポイント:** `/s2s/v2.0/task/ai-smile`

**認証必須:** `Authorization: Bearer YOUR_API_KEY`

**ワークフロー手順:**

1. **画像アップロード準備:**
    - アップロード用の自撮り画像を準備します。
    - File API `/s2s/v2.0/file` を呼び出して、アップロード URL と関連する `file_id` を取得します。
    - 提供されたアップロード URL を使用して、自撮り画像をアップロードします。

2. **AI タスクの開始とタスク ID の取得:**
    - `file_id` と選択したエフェクト設定を HTTP POST リクエストで `/s2s/v2.0/task/ai-smile` に送信します。
    - このやり取りを識別する一意のタスク ID をレスポンスで待ちます。

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

---

1. 認証
- **Bearer トークン** を使用して、リクエストヘッダーに API キーを含めます:
    ```
    Authorization: Bearer YOUR_API_KEY
    ```
API キーの確認場所: https://yce.makeupar.com/api-console/en/api-keys/.


2. 画像のアップロード

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

   * アップロードエンドポイント

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

    すでに公開画像 URL がある場合は、この手順をスキップできます。

---

3. AI 笑顔タスクの作成と結果のポーリング

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

    * タスク作成エンドポイント

        ```
        POST /s2s/v2.0/task/ai-smile
        ```

    * ポーリングエンドポイント

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

---

## ファイル仕様とエラー

* AI 笑顔仕様

**サポートされる自撮りビュー**
単一人物の画像のみサポートされます。画像には、長辺が 640 ピクセルの場合に 32 x 32 ピクセルを超える十分なサイズの顔が明確に写っている必要があり、顔検出の失敗を避けるため、撮影角度はロールがプラスマイナス 75 度以内、ヨーがプラスマイナス 90 度以内である必要があります。

![](https://plugins-media.makeupar.com/strapi/assets/thumbnail_face_reshape_01_85c8ffc055.jpg)


---

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

| AI 機能 | サポートされる寸法 | サポートされるファイルサイズ | サポートされる形式|
|  ----  | ----  | ----  | ----  |
| AI 笑顔 | 長辺 <= 4096 | < 10MB | jpg/jpeg/png/heic |


* エラーコード

| エラーコード | 説明 |
| ---------- | ----------- |
| EXCEED_MAX_FILESIZE  | 入力ファイルが最大許容サイズを超えています。 |
| INVALID_PARAMETER     | 1 つ以上の必須パラメータが欠落、空、または不正な形式です。  |
| ERROR_DOWNLOAD_IMAGE | ソース画像をダウンロードできませんでした。 |
| ERROR_NO_FACE        | 提供された画像で顔が検出されませんでした。 |
| ERROR_INFERENCE       | ワークフローの問題、実行エラー、エンコーディングエラー、または出力画像の欠落により、推論プロセスが失敗しました。 |
| UNKNOWN_INTERNAL_ERROR | 予期しない内部エラーが発生しました。 |


* 環境と依存関係

| サンプルコード言語 / ツール | 推奨ランタイムバージョン |
|---|---|
| cURL | - bash >= 3.2</br>   - curl >= 7.58 (モダンな TLS/HTTP サポート)</br>   - jq >= 1.6 (堅牢な JSON 解析) |
| Node.js (JavaScript) | Node >= 18 (グローバル fetch 用) |
| JavaScript | - Chrome / Edge >= 80</br>   - Firefox >= 74</br>   - 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 笑顔 V1.0 | 1 |

---


License: Privacy policy

## Servers

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

## Security

### BearerAuthenticationV2

[object Object]

Type: http
Scheme: bearer

## Download OpenAPI description

 - [笑顔補正](https://docs.perfectcorp.com/_bundle/@l10n/ja/reference/ai_smile.yaml)

## V1.0

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