本文へスキップ

一致スコアを捏造せず、ポートレートから有名人そっくり機能を作る

Look-Alikeは1枚$0.05で、名前やスコアではなく生成画像を返します。共有前の結果の確認方法と、同意の扱いを解説します。

執筆
Lydia
公開
読了時間
約 10 分
更新
ポートレート撮影の雑誌風イラスト: ティール色の服を着た短いオーバーン色の髪の成人女性が三脚に載ったカメラの前に座り、成人のカメラマンが横でソフトボックスを調整している。Look-Alike の結果ではない。

Celebrity Look-Alike(look-alike-v1)は、ポートレート1枚を、1リクエストあたり$0.05で有名人そっくりの生成画像に変えます。レスポンスは画像のみで、有名人のIDフィールドも、ランキングも、類似度スコアもありません。 画像自体は、印刷された見出し、有名人の名前、手書き風のサインが入った2分割レイアウトになることがあり、文字が崩れることもあります。共有カードはそれを前提に設計し、名前を本人確認済みの識別として見せないでください。

Look-Alike は本人が自発的に使うエンタメ機能に向いています。自撮りをアップロードすると、共有できる画像が返ります。プロンプトも、対象人物の指定も、強度の調整もないため、衣装を指定して変えたい場合や、繰り返し登場する架空キャラクターには画像編集モデルを使ってください。

「そっくり」APIの種類を選ぶ

そっくり系ツールの多くは、実際には別の2種類のどちらかです。顔認識サービスやオープンソースのプロジェクトは、顔をベクトルに変換して有名人データベースを検索し、名前とスコアを返します。一般向けの診断サイトは、根拠となる手法なしに「92%一致」のようなパーセントを表示します。Look-Alikeはそのどちらでもありません。

やりたいこと使うもの
1枚の写真から、共有できるそっくり生成画像を作るLook-Alike
ランキング付きの有名人名や類似度の数値認識サービス、または保有ライセンスのあるデータベースに対する自前のエンベディング検索。Look-Alikeはどちらも返さない
一人の顔を、自分で選んだターゲット画像に合成するフェイススワップのエンドポイント

エンドポイントが受け付けるもの

項目現在の仕様
モデルIDspicyapi/look-alike-v1/edit
入力image_url 1つ: JPG、PNG、WEBP、GIF、最大10 MB
料金1リクエスト$0.05。結果が気に入らなくても課金される
利用不可プロンプト、ターゲットの有名人、シード、サイズ、強度、類似度
保持期間元画像は1日後、結果は14日後に削除
白いシャツの成人男性のスタジオポートレートが2枚並び、上に「Your Celebrity Look-Alike」という見出しと印刷された有名人の名前がある。右のポートレートには同じ名前の手書き風サインも入っている

モデルページの Look-Alike 出力例: 返される画像は見出し付きの2分割コラージュで、実在の人物の名前が印刷されています。きれいな単独の顔写真を前提にしたレイアウトは崩れます。

モデルページの例は、印刷された名前とサインが入った2分割コラージュです。画像内に文字が入る前提で設計してください。実際の出力をカードのサイズでプレビューし、縦横比は保ってください(正方形に引き伸ばすと顔が歪みます)。文字を切り取っても、残った顔が確認済みの一致になるわけではありません。

元写真を準備する

モデルページには失敗しやすいケースが挙げられています。集合写真、横顔、サングラス、手や髪で顔が隠れている写真、被写体ブレ、非常に小さい顔は、一致の質を下げるか、呼び出しが失敗する原因になります。照明が良く、ほぼ正面で、フレームの適切な割合を占め、両目と生え際が見える顔を1つ使ってください。向きとトリミングはアップロード前に適用してください。ギャラリーのサムネイルは回転メタデータを無視することがありますが、アップロードされるバイト列にはそのメタデータが残ります。集合写真の小さな顔を拡大しても細部は増えないので、新しい写真を依頼してください。

短いオーバーン色の髪でティール色のブラウスを着た架空の成人女性を、無地の背景の前でほぼ正面から撮った写真。両目が見えている

イラストで、Look-Alike の結果ではありません。ほぼ正面の成人のポートレートで、読み取りやすい入力のフレーミングを示します。

まず Playground で試す

  1. Look-Alike のページを開き、Playground タブの Form 表示のままにします。実行するには、残高のあるアカウントでサインインします。
  2. 同意した成人のポートレートを Input image(JPG、PNG、WEBP、GIF、最大10 MB)にドロップするか、Asset URL で直接リンクを貼ります。ほかに設定する項目はありません。
  3. 実行し、返された画像全体を開いて、以下の手順で確認します。

コードを書く前に、いちばん難しい元写真をここで試してください。Playground で一致が外れるなら API でも外れます。対処は、より良い写真を使うことです。

次にコードから呼び出す

Python SDK をインストールし(pip install spicyapi)、サーバー環境に SPICY_API_KEY を設定して、次を実行します。

python
import urllib.request
import uuid

from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

photo = client.upload_file("./authorized-adult-portrait.jpg")  # becomes a spicy:// URI

task = client.create_task(
    model="spicyapi/look-alike-v1/edit",
    input_data={"image_url": photo["uri"]},
    idempotency_key=str(uuid.uuid4()),  # new key per new request; reuse only to retry the same one
)

final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")

url = output_assets(final)[0]["url"]
# some script clients get 403 without a User-Agent
request = urllib.request.Request(url, headers={"User-Agent": "look-alike-example/1.0"})
with urllib.request.urlopen(request) as response, open("look-alike.webp", "wb") as out:
    out.write(response.read())

送信するのは image_url だけです。有名人の名前など、追加のプロパティは受け付けません。アップロード、待機、再試行はタスクガイドと Python SDK リファレンスで説明しています。Webhook についてはポーリングと Webhook の比較ガイドを参照してください。結果は 14 日後に削除されるため、ユーザーが画像を保存する場合は、自社のストレージにコピーしてください。

または Agent に実行させる

アシスタントにリクエストを実行させる場合、CLI と MCP サーバーは料金を表示し、有料の呼び出しの前に確認を求めます。Skill は指示を追加するだけです。

  • CLI。 spicyapi はターミナルから1つのタスクを実行します(npx @spicyapi/cli ならインストール不要)。アップロードが出力する URI を使い、{"image_url": "spicy://..."} を input.json に保存します。

``bash spicyapi files upload ./authorized-adult-portrait.jpg spicyapi tasks create --model spicyapi/look-alike-v1/edit --input-file input.json --wait ``

  • MCP サーバー。 アシスタントに MCP サーバーを追加し、「Run Look-Alike on ./authorized-adult-portrait.jpg.」と依頼します。spicyapi_upload_file を呼び、次に料金確認で止まる spicyapi_task_create、続いて spicyapi_task_wait を呼びます。
  • Skill。 npx skills add spicyapi-ai/spicy-skill で Agent Skill をインストールすると、コーディングアシスタントがフィールドを推測せず、最新のモデルスキーマを読みます。単独ではタスクを実行できないので、CLI か MCP と併用してください。

共有カードを作る前に結果を確認する

顔のクロップではなく、返された画像全体を開きます。余分なパネル、見出しの文字、実在の名前、サイン、追加の顔、見た目の年齢の変化を確認してください。結果には Generated look-alike portrait(生成されたそっくりポートレート)とラベルを付けます。名前を見せたくない場合は、文字を切り取るか隠してください。残った顔が確認済みの一致になるわけではありません。隣に「93%一致」や「確認済みの有名人本人」と書かないでください。また、別のモデルが画像から読み取った名前を、Look-Alike が判定したかのように表示しないでください。画像に埋め込まれた文字は生成コンテンツで、誤っていることがあります。

ティール色の服の成人女性がポートレートのプリントを持ち、ネイビーの服の成人カメラマンがそれを指している。机の上には風景写真のプリントがほかにもある

イラストで、Look-Alike の結果ではありません。書き出しを選ぶ前に、画像全体と顔の周囲もすべて確認してください。

参加者が画像を気に入らなければ、破棄するか別の写真で試すことを提案してください。特定の有名人に寄せる手段はないため、再実行は改良ではなく、$0.05 の新しい候補になります。

問題次の対応
リクエストが拒否されたプロンプト、シード、サイズ、名前のフィールドを削除し、image_url だけを送る。
元画像を取得できないログインページ、期限切れの URL、HTML のレスポンスを、アクセスできる画像か spicy:// 参照に置き換える。
顔が不鮮明、または別人に一致した十分な品質の元画像から顔1つを切り出して使うか、より鮮明なポートレートを依頼する。
画像内の名前やサインを見せたくない共有を保留して見せ方を変える。名前は要求も削除もできるレスポンスフィールドではない。
参加者が特定のキャラクターや衣装を望む代わりに、参照画像に対応した画像編集モデルを使う。
完了したタスクのダウンロードに失敗するダウンロードを再試行する。新しいリクエストは作らない。

同意と共有

入力は常に実在の人物の顔なので、法的義務を検討する際は顔認識と同じ機能として扱ってください。生体情報は EU と米国の一部で別途規制されています。たとえばイリノイ州の BIPA は、生体識別子を収集する前に書面での通知とインフォームド・コンセントを求めています。この目的に同意した成人の写真だけを使い、公人の写真やほかから取得した画像は使わないでください。Look-Alike を本人識別、本人確認、監視、顔データベースの構築に使ってはいけません。生成の許可と、元画像や結果を公開する許可は別のものとして扱ってください。

Look-Alike はセーフティチェッカーなしで動作するため、年齢とコンテンツのルールはプロダクト側で適用する必要があります。実在の人物のポートレートで、性的、親密、または名誉を毀損する素材を作らないでください。結果を実在の人物についての主張として提示しないでください。服をきちんと着た成人の胸から上のポートレートが、公開するエンタメ機能での安全な標準入力です。

絞ったフローにしてください。非公開の元画像プレビュー、処理中の状態、完全な結果、明示的な保存または共有の操作です。生成が終わっても自動で公開しないでください。

他の言語 English · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano · Polski

実際に試してみる

支払いは実行した分だけ。プランもサブスクリプションもありません。

使用モデル:MiniMax H3 · ByteDance Seedance 2.0 Fast