换脸

namifusion/faceswap-v5

NamiFusion Faceswap v5は、圧倒的なスピードとコストパフォーマンスを誇る顔換えモデルです。肌の色調補正機能を備え、プロ品質を維持しつつ、大規模かつリアルタイムなワークフローに最適化されています。

サンプル

换脸 example 1

パラメータ

名前既定制約説明
source_imageソース画像 (顔)image_upload0–1 items
target_imageターゲット画像 (背景/全身)image_upload0–1 items
additional_prompt追加プロンプトtextarea
image_format出力形式selectjpegpng | jpeg | webp
quality画質調整slider9510 ~ 100 · step 1
seedシード値number8005332

出力フィールド

フィールド説明
imagesarray<string>

API

統一 REST API でこのモデルを呼び出せます。API Keys ページでキーを取得してください。

cURL
# 1) Submit — returns { "task_uuid": "..." }
curl -X POST "https://www.namifusion.com/api/v1/marketplace/run/namifusion/faceswap-v5" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "source_image": [
      "https://segmind-resources.s3.amazonaws.com/input/d823dde1-aaae-4231-87b7-1d472bc71cef-faceswap-v5-input.png"
    ],
    "target_image": [
      "https://segmind-inference-inputs.s3.amazonaws.com/48892b17-762c-4de5-b6d8-f99d8e139115-black-man-image.jpeg"
    ],
    "image_format": "jpeg",
    "quality": 95,
    "seed": 8005332
  }
}'

# 2) Poll until status is "completed", then read the output URLs
curl "https://www.namifusion.com/api/v1/marketplace/run/tasks/TASK_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time, requests

API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1) Submit
resp = requests.post(
    "https://www.namifusion.com/api/v1/marketplace/run/namifusion/faceswap-v5",
    headers=HEADERS,
    json={
        "input": {
            "source_image": [
                "https://segmind-resources.s3.amazonaws.com/input/d823dde1-aaae-4231-87b7-1d472bc71cef-faceswap-v5-input.png"
            ],
            "target_image": [
                "https://segmind-inference-inputs.s3.amazonaws.com/48892b17-762c-4de5-b6d8-f99d8e139115-black-man-image.jpeg"
            ],
            "image_format": "jpeg",
            "quality": 95,
            "seed": 8005332
        }
    },
)
resp.raise_for_status()  # 401/402/429/5xx stop here instead of polling a bad task
task = resp.json()

# 2) Poll until a terminal state (completed / failed / cancelled).
#    This model is allowed up to 300s server-side.
deadline = time.time() + 360
while task.get("status") not in ("completed", "failed", "cancelled"):
    if time.time() > deadline:
        raise TimeoutError(f"still {task.get('status')} — keep the task_uuid and poll later")
    time.sleep(3)
    poll = requests.get(f"https://www.namifusion.com/api/v1/marketplace/run/tasks/{task['task_uuid']}", headers=HEADERS)
    poll.raise_for_status()
    task = poll.json()

print(task["status"], task.get("output"))
JavaScript
const API_KEY = "YOUR_API_KEY";
const HEADERS = { Authorization: `Bearer ${API_KEY}` };

// 1) Submit
const resp = await fetch("https://www.namifusion.com/api/v1/marketplace/run/namifusion/faceswap-v5", {
  method: "POST",
  headers: { ...HEADERS, "Content-Type": "application/json" },
  body: JSON.stringify({
    "input": {
      "source_image": [
        "https://segmind-resources.s3.amazonaws.com/input/d823dde1-aaae-4231-87b7-1d472bc71cef-faceswap-v5-input.png"
      ],
      "target_image": [
        "https://segmind-inference-inputs.s3.amazonaws.com/48892b17-762c-4de5-b6d8-f99d8e139115-black-man-image.jpeg"
      ],
      "image_format": "jpeg",
      "quality": 95,
      "seed": 8005332
    }
  }),
});
if (!resp.ok) throw new Error(`submit failed: ${resp.status} ${await resp.text()}`);
let task = await resp.json();

// 2) Poll until a terminal state (completed / failed / cancelled).
//    This model is allowed up to 300s server-side.
const deadline = Date.now() + 360 * 1000;
while (!["completed", "failed", "cancelled"].includes(task.status)) {
  if (Date.now() > deadline) throw new Error(`still ${task.status} — keep the task_uuid and poll later`);
  await new Promise((r) => setTimeout(r, 3000));
  const poll = await fetch(`https://www.namifusion.com/api/v1/marketplace/run/tasks/${task.task_uuid}`, { headers: HEADERS });
  if (!poll.ok) throw new Error(`poll failed: ${poll.status}`);
  task = await poll.json();
}

console.log(task.status, task.output);

ドキュメント

NamiFusion Faceswap v5

AI 画像フェイススワップ v5:超高速な顔・スマートヘッドスワップ、内蔵スキントーンマッチングで大量処理・本番環境に対応。

NamiFusion Faceswap v5 は、スピードとスケールを重視した画像フェイススワップ API です。Faceswap v2 と同等の推論速度を維持しながら出力品質を大幅に向上させ、自動スマートヘッドスワップ・内蔵スキントーンマッチング・クリエイティブプロンプトサポートを備えています。NamiFusion フェイススワップシリーズの中で最もコスト効率の高い選択肢です。


主な特徴

  • 超高速推論: Faceswap v2 と同等のスピードを維持しながら、出力品質を大幅に改善。
  • スマートヘッドスワップ: 顔のみの合成か頭部全体の合成かを自動判断し、最も自然な結果を生成——手動でのモード選択は不要。
  • 内蔵スキントーンマッチング: スキントーンを自動調整し、手動補正なしで自然でシームレスな結果を実現。
  • クリエイティブプロンプトサポート: additional_prompt を使用して「帽子をかぶっている」「笑顔」などの細かな属性変化を誘導。
  • 再現可能な出力: シードベースの生成により、実行間で一貫した結果を保証。A/B テストやバッチワークフローに最適。
  • コスト最適化: プロフェッショナルレベルの品質を犠牲にせず、NamiFusion シリーズで最も手頃なフェイススワップオプション。

技術仕様

パラメータ詳細
コア入力フィールドsource_imagetarget_imageseed
オプションフィールドadditional_promptimage_formatquality
画像フォーマットpngjpegwebp
クオリティ範囲10 – 100(デフォルト:95
シードのデフォルト値8005332
平均推論時間~9.63s

クイックスタート

API エンドポイント

エンドポイントメソッド説明
/api/v1/marketplace/run/namifusion/faceswap-v5POSTFaceswap v5 タスクを送信(同期)

Faceswap v5 は同期レスポンスモデルを採用しています——結果はレスポンスボディに直接返され、ポーリングは不要です。

リクエストパラメータ概要

リクエストボディの Faceswap v5 コアフィールドは以下の通りです:

{
  "source_image": "string(URL)",
  "target_image": "string(URL)",
  "additional_prompt": "string",
  "image_format": "png | jpeg | webp",
  "quality": 95,
  "seed": 8005332
}

認証

リクエストヘッダーに API Key を含めてください:

X-API-Key: sk-your-api-key

標準的な呼び出しフロー

Faceswap v5 は同期ワークフローを採用しており、結果画像が直接返されます:

  1. 入力パラメータを指定して POST /api/v1/marketplace/run/namifusion/faceswap-v5 を呼び出す。
  2. レスポンスに結果画像が直接含まれる。
  3. ポーリングのステップは不要。

タスクの送信と結果の取得

curl -X POST "https://www.namifusion.com/api/v1/marketplace/run/namifusion/faceswap-v5" \
  -H "X-API-Key: sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "source_image": "https://example.com/source.jpg",
      "target_image": "https://example.com/target.jpg",
      "image_format": "png",
      "quality": 95,
      "seed": 8005332
    }
  }'

成功レスポンスの例:

{
  "status": "completed",
  "output": {
    "image_url": "https://cdn.namifusion.com/result/faceswap_v5_abc123.png"
  }
}

失敗レスポンスの例:

{
  "status": "failed",
  "output": null,
  "error_message": "Face swap failed because no valid face was detected in source_image."
}

シナリオ 1:基本的なフェイススワップ(最小パラメータ)

デフォルトの品質とフォーマットで問題ない、クイックテストやシンプルな単一顔スワップシナリオに適しています。

リクエスト例

{
  "source_image": "https://example.com/source.jpg",
  "target_image": "https://example.com/target.jpg"
}

動作説明

  • image_format のデフォルトは png
  • quality のデフォルトは 95
  • seed のデフォルトは 8005332
  • スマートヘッドスワップが自動実行——モード選択は不要。
  • 内蔵スキントーンマッチングは常に有効。

シナリオ 2:本番環境向けフェイススワップ(フルパラメータ)

出力フォーマット・品質・再現性が重要な、本番パイプライン・マーケティングキャンペーン・コンテンツ制作に適しています。

リクエスト例

{
  "source_image": "https://example.com/source_face.jpg",
  "target_image": "https://example.com/target_person.jpg",
  "additional_prompt": "wearing a hat",
  "image_format": "jpeg",
  "quality": 95,
  "seed": 2023
}

動作説明

  • additional_prompt が出力の細かな属性変化を誘導(アクセサリー、表情など)。
  • image_format: "jpeg" でファイルサイズを小さく抑え、Web 配信に最適。
  • quality: 95 で本番グレードの出力忠実度を確保。
  • 固定 seed により、同じ入力での繰り返し呼び出しで同一の結果を保証。

シナリオ 3:大量バッチ処理(スピード優先)

最高品質よりもスループットとコストを優先する、自動化パイプライン・データセット匿名化・リアルタイムアプリケーションに適しています。

リクエスト例

{
  "source_image": "https://example.com/source.jpg",
  "target_image": "https://example.com/target.jpg",
  "image_format": "webp",
  "quality": 75,
  "seed": 42
}

動作説明

  • quality: 75 で許容できる視覚品質を維持しながら処理時間と出力サイズを削減。
  • image_format: "webp" で Web スケール配信における圧縮と品質の最適なバランスを実現。
  • バッチ実行全体で一貫した seed を使用することで、キャッシュや A/B テスト向けの再現可能な出力を確保。

パラメータと戻り値の詳細

リクエストパラメータ

パラメータ必須デフォルト説明
source_imagestringはい顔の同一性を提供するソース画像の URL。
target_imagestringはい顔が置き換えられるターゲット画像の URL。
additional_promptstringいいえ""細かな属性誘導のための短い説明プロンプト(例:"wearing a hat""smiling")。
image_formatstringいいえ"png"出力画像フォーマット。指定可能な値:"png""jpeg""webp"
qualityintegerいいえ9510 から 100 の出力品質。値が高いほど忠実度が上がりファイルサイズも大きくなる。
seedintegerいいえ8005332再現性のためのランダムシード。同じ入力で同じシードを使用すると同一の出力が得られる。

バリデーションルールと一般的なエラー

source_image / target_image

  • 公開アクセス可能な URL である必要があります。
  • source_image の顔が同一性を提供し、target_image の顔が置き換えられます。
  • 最良の結果を得るには、顔の特徴がはっきりと見える正面向きの画像を使用してください。

additional_prompt

  • プロンプトは短く説明的に保ってください(例:"wearing sunglasses""different hairstyle")。
  • 長く複雑なプロンプトは避けてください——v5 は細かく制御された変化に最適化されています。
  • 属性の変更が不要な場合は空白のままにしてください。

image_format

  • 指定可能な値:"png""jpeg""webp"
  • 速度とサイズ効率には jpeg を推奨。
  • 最高の詳細度や後編集の柔軟性が必要な場合は png を推奨。
  • webp は品質と圧縮の最適なバランスを提供。

quality

  • 10 から 100 の整数。
  • 推奨:本番・最終アセットには 95、高速テストと反復には 75–85

パラメータが出力に与える影響

パラメータの組み合わせ結果への影響
quality: 95本番グレードの忠実度;ファイルサイズが大きい。
quality: 75–85処理が速くファイルが小さい;テストに適している。
image_format: "jpeg"最速の処理と最小のファイルサイズ。
image_format: "png"最高の詳細度;後編集に最適。
image_format: "webp"Web 配信に最適な品質対サイズ比。
additional_prompt ありスワップ後の顔出力の細かな属性変化を誘導。
additional_prompt なし属性変更なし;純粋な顔/頭部スワップ。
固定 seed同じ入力での繰り返し呼び出しで同一の出力。
ランダム seed実行ごとに出力がわずかに変化。

ユースケース別推奨設定

ユースケースqualityimage_formatseedadditional_prompt
コンテンツ制作(サムネイル、SNS)85webp1001"wearing sunglasses"
マーケティング・広告(キャンペーン素材)95jpeg2023"different hairstyle"
プライバシー保護(データセット匿名化)90png31415(空白のまま)
リアルタイム / 大量バッチ処理75jpeg または webp42(空白のまま)

注意事項

  1. スマートヘッドスワップは常に有効: Faceswap v5 は顔のみの合成か頭部全体の合成かを自動判断します——設定は不要です。
  2. スキントーンマッチングは内蔵: モデルがスキントーンを自動調整するため、手動での色補正はほとんど不要です。
  3. 画像の姿勢をある程度揃える: ソースとターゲットの頭部角度と照明条件が近いほど、より自然な結果が得られます。
  4. 一貫性のために固定シードを使用: A/B テスト、キャッシュ、バッチパイプラインでは、再現可能な出力を確保するためにシードを固定してください。
  5. 公開アクセス可能な URL を優先: サービスが画像リソースを確実に取得できるようになります。
  6. 複雑なプロンプトは避ける: additional_prompt は詳細なシーン描写ではなく、短く細かな属性ヒントのために設計されています。