はじめに
ポートレートを 1 枚受け取り、いちばん似ている有名人の生成画像を返します。プロンプトもパラメーターもなく、写真が入力のすべてです。
リクエストは画像 URL 1 つで、1 回単位で課金します。エンタメや SNS のプロダクトに向けた 1 回呼ぶだけの機能で、本人確認のための道具ではありません。
主な機能とハイライト
写真 1 枚を送り、1 枚が返る。ほかに送るものはない
リクエストは画像 URL 1 つだけです。プロンプトも seed もサイズも強度もないので、結果を動かすのはアップロードした写真だけです。送信したらタスクをポーリングして画像を受け取ります。このカタログのほかのメディアの呼び出しと同じ形です。1 回の料金は、画像に誰が返ってきても変わりません。
返るのは生成画像で、名前でもスコアでもない
レスポンスには画像が 1 枚入っているだけです。有名人の名前も、候補のランキングも、似ている度合いのパーセンテージもありません。画像の横に置くのは自分で書いた文言であって、モデルの主張ではありません。そのほうが安全です。体験は画像そのものを中心に組み立て、見せて、シェアしてもらい、横に数字を添えるのは避けてください。
使ってよいかを判断するときは、顔認識として扱う
入力は常に実在する人の顔です。そのためこのエンドポイントは、このカタログのほかのどれにも関係しない、肖像や生体情報に関するルールの対象になります。生体情報は EU や米国の一部で個別に規制されていて、同意の基準が高いこともあります。写っている本人がそれと知って同意した写真だけを送ってください。著名人の写真や、どこかから持ってきた画像は使わないでください。本人の特定、認証、監視、顔のデータベース作りにも絶対に使わないでください。返ってくるものは実在の人物についての事実の記述ではありません。アップロードした元画像は 1 日後、生成された結果は 14 日後に削除されます。
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
image_url | はい | はっきり写った、ほぼ正面のポートレートを 1 枚。顔は 1 つだけ見えている状態にしてください。 1 文字以上 |
料金
$0.05 / リクエスト
望んだものと違う一致でも、完了したリクエストとして課金されます。
ユースケース
アップロード 1 回で、シェアできる 1 枚
プロダクトの体験が、写真を 1 枚アップロードして、生成された 1 枚をシェアするだけなら、このエンドポイントを使います。ポートレートを image_url で送り、タスクをポーリングし、返ってきた画像を表示します。横に表示できる名前やスコアはありません。
エンタメや SNS の機能
「どの有名人に似ている?」というやり取りを、写真のアップロードの裏で API を 1 回呼ぶだけで実現します。制作の道具ではなく、一般向けアプリの中でシェアされる瞬間を作るためのものです。
キャンペーンの仕掛け
マーケティングの流れに入れる、軽いインタラクティブな一手です。自撮りをアップロードすると、シェアできる 1 枚が返ってきます。参加者 1 人につき 1 回の呼び出しなので、費用も読めます。
写真アプリや美容アプリ
既存のポートレート機能の横に置く、遊びの機能です。プロンプトの工夫もパラメーターも要らないので、フォームの項目 1 つでアプリに組み込めます。
プロンプトガイドと実践のヒント
返るのは判定ではなく画像
エンドポイントが返すのは生成された画像で、名前、ランキング、似ている度合いのスコアではありません。プロダクトにラベルが必要なら、画像そのものを見せるしかありません。API はほかに表示できるものを返しません。
はっきりした正面のポートレートを送る
光がよく当たった顔が 1 つだけ、おおむねカメラのほうを向き、画面のそれなりの部分を占めている写真にしてください。集合写真、横顔に近い角度、サングラス、動きのぶれ、顔がとても小さい場合は、似ている度合いが落ちるか、呼び出しそのものが失敗します。
反復する前に結果を確かめる
1 枚の画像に顔は 1 つ、おおむね正面向きで、光がはっきり当たっているもの。横顔の角度、顔が隠れている場合(サングラス、手、顔にかかる髪)、動きのぶれ、顔がとても小さい場合は、似ている度合いが落ちるか、呼び出しが失敗します。プロンプトもマスクも強度も seed もないので、結果が違うときに直す方法は別の写真だけです。レスポンスは画像だけで、名前もランキングも信頼度の値もありません。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/look-alike-v1/edit",
"input": {
"image_url": "https://example.com/reference.png"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。

