功能 · 模特生成
AI 模特生成 API 针对你自己的模特
一句话总结
Photta 的模特生成 API 可根据你选择的属性构建逼真的 AI 模特,返回可复用的 mannequin id,每次消耗 4 credits。包含两个构建器:一个用于服装,一个专为珠宝特写调优。
- 常规耗时: 30-60s
- Credits: 4 credits
- 处理方式: 异步,轮询
- 限制: 600 次请求/分钟
- 身份验证: Bearer key
本页所有数据均来自 Photta API 文档 · 已验证
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]概览
概览
- 端点
- POST /api/v1/mannequins/generate
- 身份验证
- Bearer API 密钥
- 处理方式
- 异步 — 轮询状态端点
- 常规耗时
- 30-60s
- Credits
- 4 credits
- 输入限制
- 单张图片最大 10 MB;支持 JPEG, PNG, WebP
- 幂等性
- 否
请求与响应
请求
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/mannequins/generate \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/mannequins/generate", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/mannequins/generate",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"category": "Female",
"ethnicity": "east_asian_korean",
"age": "late_20s",
"skin_tone": "light_medium",
"expression": "neutral",
"hair_style": "long_straight",
"hair_color": "black",
"body_type": "slim",
"height": "average"
},
)
data = res.json()["data"] # data["id"], data["status"]202 Accepted / 已完成
{
"data": {
"id": "mmk_r4s5t6",
"status": "processing",
"category": "Female",
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z"
},
"request_id": "req_mnk002"
}{
"data": {
"id": "mmk_r4s5t6",
"status": "completed",
"mannequin": {
"id": "mnk_v7w8x9",
"name": "Generated Mannequin",
"gender": "female",
"thumbnail_url": "https://cdn.photta.app/mannequins/mnk_v7w8x9-thumb.jpg"
},
"credits_used": 4,
"created_at": "2026-04-10T14:00:00Z",
"completed_at": "2026-04-10T14:00:42Z",
"duration_ms": 42000
},
"request_id": "req_mnk003"
}请求参数
category类型: string必填
Mannequin category.
取值:FemaleMaleGirlChildBoyChildethnicity类型: string
Ethnic appearance.
取值:east_asian_koreaneast_asian_chinesesoutheast_asiansouth_asiannordicwestern_europeaneastern_europeanmediterraneanafricanafrican_americanmiddle_easternlatin_americanbrazilianmixed_asian_europeanpolynesianage类型: string
Age range.
取值:early_20slate_20searly_30slate_30s40s50sbaby_1toddler_2_4young_5_7child_8_10preteen_11_13skin_tone类型: string
Skin tone.
取值:lightlight_mediummediummedium_darkdarkface_shape类型: string
Face shape.
取值:ovalsquareroundheartoblongdiamondeye_color类型: string
Eye color.
取值:browndark_brownblackbluegreenhazelgrayambereye_shape类型: string
Eye shape.
取值:almondroundmonolidhoodedupturneddownturnedexpression类型: string
Facial expression.
取值:neutralsoft_smilewarm_smileseriousconfidentfriendlyfacial_hair类型: string
Facial hair style (Male only).
取值:nonelight_stubblemedium_stubbleshort_beardfull_beardgoateemustachemakeup类型: string
Makeup style (Female only).
取值:naturalminimalsoft_glamprofessionaleditorialhair_style类型: string
Hair style. Available options depend on category — use /options endpoint.
hair_color类型: string
Hair color.
取值:blackdark_brownmedium_brownlight_brownauburnredblondeplatinum_blondegraywhitehair_texture类型: string
Hair texture.
取值:straightwavycurlycoilybody_type类型: string
Body type. Options depend on category — use /options endpoint.
height类型: string
Height.
取值:shortaveragetallglasses类型: string
Glasses.
取值:noneeyeglassessunglassesfreckles类型: string
Freckles.
取值:nonelightprominentpiercings类型: string
Piercings.
取值:noneearnosemultiple
错误
- 400
invalid_request_error - The request is malformed or contains invalid parameters.
- 401
authentication_error - The API key is missing, invalid, or expired.
- 402
insufficient_credits_error - Your account does not have enough credits.
- 404
not_found_error - The requested resource does not exist.
- 409
conflict_error - The request conflicts with current state — e.g. your concurrent-batch cap is reached.
- 429
rate_limit_error - Too many requests. Slow down and retry.Retry-After: 30
- 500
api_error - An internal server error occurred. Retry later.
限制
- 每个 API 密钥每分钟 600 次请求 (固定窗口;各套餐限制相同)
- 429 响应包含 Retry-After: 30 秒
- 单张图片最大 10 MB
- 格式:: JPEG, PNG, WebP
- 各套餐并发批处理数:: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- 仅支持轮询 — API 不发送 Webhook。
输入属性,输出可复用模特
读取选项、选择属性、提交、轮询,然后复用该 id。
步骤 1
生成 API key
模特生成与 Photta 的其他所有功能使用相同的凭证和相同的 credit 余额。
步骤 2
读取选项目录
GET `/api/v1/mannequins/generate/options` 会返回所有支持的值,包括因品类而异的 `hair_style` 和 `body_type` 列表。建议基于此驱动你的表单,而不是硬编码枚举值。
步骤 3
POST 请求生成模特
调用 POST `/api/v1/mannequins/generate` 并传入 `category`——`Female`、`Male`、`GirlChild` 或 `BoyChild`——以及 17 个可选属性中的任意项:族裔、年龄、肤色、脸型与眼型、表情、胡须、妆容、发型、体型、身高、眼镜、雀斑和穿孔。
步骤 4
轮询直至任务完成
每隔 3 秒 GET `/api/v1/mannequins/generate/:id`,直到 `data.status` 为 `completed` 或 `failed`;通常在 30 到 60 秒内完成。
步骤 5
复用模特
完成的响应体中包含一个带有自身 id 的 `mannequin` 对象。在后续的 try-on 或眼镜任务中将该 id 作为 `mannequin_id` 传入,每张成片都将保持相同的面孔。
Node.js、Python 和 cURL 下的同一 endpoint
Node.js
在 Node.js 中使用 AI 模特生成 API
在 Node.js 后端中使用原生 fetch 调用 Photta 的 aI 模特生成 API。无需 SDK:存储你的 key、提交任务、轮询获取结果即可。
阅读Python
Python 中的 AI 模特生成 API
在 Python 中使用 requests 库调用 Photta 的 aI 模特生成 API。三十行包装函数,通过 httpx 具备异步亲和性,可在 Django、FastAPI 和 Celery 中开箱即用。
阅读cURL
通过 cURL 调用 AI 模特生成 API
直接在终端中使用 cURL 调用 Photta 的 aI 模特生成 API。提交、轮询、下载——每个代码片段均可搭配 jq 用于自动化流水线脚本。
阅读
开发者在生成模特前常问的问题
什么是 AI 模特?
一种通过指定外观而非真人选角生成的模特。它以 id 的形式返回,因此目录中的每件服装都可以穿在同一张面孔、发型和身材上。
生成一个模特需要多少费用?
服装构建器和珠宝构建器均为 4 credits。在后续拍摄中复用已有模特无需额外付费——你只需为 try-on 付费,无需为模特付费。
我可以设置哪些属性?
`category` 为必填项。其余均为可选项:族裔、年龄、肤色、脸型、瞳色与眼型、表情、胡须、妆容、发型、发色与发质、体型、身高、眼镜、雀斑和穿孔。options endpoint 列出了所有支持的值。
珠宝构建器有什么用途?
POST `/api/v1/mannequins/jewelry/generate` 用于构建专为珠宝特写场景调优的模特:它接收 `jewelry_type`、`shot_type`、`camera_angle`、`background` 和 `lighting`,而非全身属性,从而确保颈线、耳朵或手部在近距离下呈现正确细节。
我可以在不同拍摄中复用同一个模特吗?
可以——这也是该 endpoint 的核心目的。生成的 mannequin id 可在服装 try-on、珠宝 try-on 和眼镜工坊中作为 `mannequin_id` 传入。
如何轮询获取结果?
每 3 秒 GET 一次 `/api/v1/mannequins/generate/:id`,直到 `data.status` 变为 `completed` 或 `failed`。珠宝生成器轮询其自有的状态路径。
相关功能
功能特性
虚拟 try-on API 适用于服装
将服装穿在 AI 模特身上的 REST API。异步处理,1.5–4 分钟生成耗时,2K 分辨率 5 credits,4K 分辨率 6 credits。提供 cURL、Node.js 与 Python 示例代码。
查看 endpoint功能特性
首饰试穿 API 适用于项链、戒指、手链和耳环
通过 REST 将项链、戒指、手链和耳环穿戴至 AI 模特身上。2K 规格单次 5 credits,内置特写模特,具备 Photta 文档所述的反光感知渲染能力。
查看 endpoint构建
为你的应用构建虚拟 try-on 功能
使用 Photta API 上线虚拟 try-on 功能的端到端方案:上传、提交任务、通过 worker 轮询并渲染结果。TypeScript + 纯服务端模式架构。
查看 endpoint对比
Photta vs Fitroom —— 选择最适合你的时尚 AI API
从 endpoint、单次调用 credits 成本、定价模式和集成方式全方位对比 Photta 与 Fitroom。数据于 2026-04-19 提取自双方官网。无任何虚构数字。
查看 endpoint快速开始
5 分钟内生成第一张 Photta 图像。
注册、生成 API 密钥、运行第一个 cURL 调用、轮询直至完成、持久化保存结果。共五个步骤,端到端完整记录。
查看 endpoint参考
Photta API 错误
Photta API 错误类型的完整列表及其状态码、错误响应体的结构,以及哪些失败情况值得重试。
查看 endpoint参考
Photta API 速率限制
Photta API 的速率限制、时间窗口、Retry-After 请求头、轮询间隔以及各套餐的并发上限,均取自官方 API 文档。
查看 endpoint
本页所有数据均来自 Photta API 文档 · 已验证
五分钟内上手试用 API
生成 Photta API key,粘贴上方的 cURL 代码片段,咖啡还没煮好,你的第一张模特实穿图就已经生成完毕。
- 30-60s
- 4 credits
- 异步,轮询
- 600 次请求/分钟
- Bearer key