ポートレートスタイライザー API
PixMiller REST API · v1
ポートレートとスタイルを送信すると、AIがアニメ、油絵、3Dなどにリスタイルし、スタイライズされた画像を返します。
このエンドポイントはプレビュー中 — ルートとパラメータが確定中で、リリース前に変更される可能性があります。規約(X-Api-Key認証、JSONレスポンス)は本番背景除去APIと一致します。
POST
https://api.pixmiller.com/v1/portrait-style
1
認証とリクエスト
リクエストヘッダーの
X-Api-Key: YOUR_API_KEYにシークレットキーを送信。アカウントページでキーを作成・管理。
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
image_file
|
file | 必須 | ポートレート写真——顔が明確に写っているものを推奨 |
style
|
string | 必須 | スタイルプリセットID(全リストは GET /v1/styles) |
prompt
|
string | 任意 | カスタムスタイル説明、スタイルプリセットを上書き |
2
コードサンプル
言語を選んでコピー — そのまま実行可能。1curl -X POST "https://api.pixmiller.com/v1/portrait-style" \2 -H "X-Api-Key: YOUR_API_KEY" \3 -F "[email protected]" \4 -F "style=anime"
1import requests23resp = requests.post(4 "https://api.pixmiller.com/v1/portrait-style",5 headers={"X-Api-Key": "YOUR_API_KEY"},6 files={"image_file": open("portrait.jpg", "rb")},7 data={"style": "anime"},8)9print(resp.json()["url"])
1import fs from "node:fs";23const form = new FormData();4form.append("image_file", new Blob([fs.readFileSync("portrait.jpg")]), "portrait.jpg");5form.append("style", "anime");6const resp = await fetch("https://api.pixmiller.com/v1/portrait-style", {7 method: "POST",8 headers: { "X-Api-Key": "YOUR_API_KEY" },9 body: form,10});11console.log((await resp.json()).url);
3
レスポンス
1{2 "url": "https://cdn.pixmiller.com/result/8Kd2pQ.png"3}
url
処理済み画像の一時URL(元画像は3日後に自動削除されます)。
4
エラー
エラーは対応するステータスコードと以下の形式のJSONボディを返します {"errors":{"code":"…","message":"…"}}.
400
validation error
image_fileが未指定・無効、ファイルサイズ超過、または画像ソースの競合。
401
authentication_failed
X-Api-Keyヘッダーが未指定または無効です。
402
not_enough_credit
size=fullがリクエストされましたが、アカウントのHDクレジットが残っていません。
422
invalid_image
画像を処理できませんでした——小さすぎるか、非対応、またはデコードに失敗しました。
429
throttled
レート制限を超過しました。Retry-Afterヘッダー後にリトライしてください。