Khả năng · Tạo mannequin
API tạo mannequin bằng AI cho người mẫu của riêng bạn
Tóm tắt trong một câu
API tạo mannequin của Photta xây dựng người mẫu AI chân thực từ các thuộc tính bạn chọn, trả về một mannequin id có thể tái sử dụng và tốn 4 credits. Hai bộ builder: một cho trang phục, một được tinh chỉnh cho ảnh chụp cận cảnh trang sức.
- Thời gian điển hình: 30-60s
- Credits: 4 credits
- Xử lý: async, polling
- Giới hạn: 600 requests/min
- Xác thực: Bearer key
Mọi số liệu trên trang này đều lấy từ tài liệu Photta API · đã kiểm tra
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"]Tổng quan nhanh
Tổng quan nhanh
- Endpoint
- POST /api/v1/mannequins/generate
- Xác thực
- Bearer API key
- Xử lý
- Bất đồng bộ — polling status endpoint
- Thời gian điển hình
- 30-60s
- Credits
- 4 credits
- Giới hạn đầu vào
- Tối đa 10 MB mỗi ảnh; JPEG, PNG, WebP
- Idempotent
- Không
Request và response
Request
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 / Completed
{
"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"
}Tham số request
categoryKiểu: stringBắt buộc
Mannequin category.
Giá trị:FemaleMaleGirlChildBoyChildethnicityKiểu: string
Ethnic appearance.
Giá trị:east_asian_koreaneast_asian_chinesesoutheast_asiansouth_asiannordicwestern_europeaneastern_europeanmediterraneanafricanafrican_americanmiddle_easternlatin_americanbrazilianmixed_asian_europeanpolynesianageKiểu: string
Age range.
Giá trị:early_20slate_20searly_30slate_30s40s50sbaby_1toddler_2_4young_5_7child_8_10preteen_11_13skin_toneKiểu: string
Skin tone.
Giá trị:lightlight_mediummediummedium_darkdarkface_shapeKiểu: string
Face shape.
Giá trị:ovalsquareroundheartoblongdiamondeye_colorKiểu: string
Eye color.
Giá trị:browndark_brownblackbluegreenhazelgrayambereye_shapeKiểu: string
Eye shape.
Giá trị:almondroundmonolidhoodedupturneddownturnedexpressionKiểu: string
Facial expression.
Giá trị:neutralsoft_smilewarm_smileseriousconfidentfriendlyfacial_hairKiểu: string
Facial hair style (Male only).
Giá trị:nonelight_stubblemedium_stubbleshort_beardfull_beardgoateemustachemakeupKiểu: string
Makeup style (Female only).
Giá trị:naturalminimalsoft_glamprofessionaleditorialhair_styleKiểu: string
Hair style. Available options depend on category — use /options endpoint.
hair_colorKiểu: string
Hair color.
Giá trị:blackdark_brownmedium_brownlight_brownauburnredblondeplatinum_blondegraywhitehair_textureKiểu: string
Hair texture.
Giá trị:straightwavycurlycoilybody_typeKiểu: string
Body type. Options depend on category — use /options endpoint.
heightKiểu: string
Height.
Giá trị:shortaveragetallglassesKiểu: string
Glasses.
Giá trị:noneeyeglassessunglassesfrecklesKiểu: string
Freckles.
Giá trị:nonelightprominentpiercingsKiểu: string
Piercings.
Giá trị:noneearnosemultiple
Lỗi
- 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.
Giới hạn
- 600 request mỗi phút trên mỗi API key (Fixed window; giới hạn như nhau trên mọi gói)
- Mã 429 kèm header Retry-After: 30 giây
- Tối đa 10 MB mỗi ảnh
- Định dạng: JPEG, PNG, WebP
- Batch đồng thời theo từng gói: Free 1 · Hobby 2 · Seller 3 · Brand 4 · Studio 6
- Chỉ hỗ trợ polling — API không gửi webhook.
Đưa thuộc tính vào, nhận người mẫu tái sử dụng được ra
Đọc options, chọn thuộc tính, gửi request, polling, sau đó tái sử dụng id.
Bước 1
Tạo API key
Tạo mannequin sử dụng cùng thông tin xác thực và cùng số dư credit như mọi tính năng khác của Photta.
Bước 2
Đọc danh mục option
GET `/api/v1/mannequins/generate/options` trả về mọi giá trị được chấp nhận, bao gồm danh sách `hair_style` và `body_type` khác nhau theo từng danh mục. Hãy điều khiển form của bạn từ endpoint này thay vì hardcode các enum.
Bước 3
POST mannequin
POST `/api/v1/mannequins/generate` với `category` — `Female`, `Male`, `GirlChild` hoặc `BoyChild` — cùng với bất kỳ thuộc tính nào trong 17 thuộc tính tùy chọn: chủng tộc, độ tuổi, tông da, dáng mặt và dáng mắt, biểu cảm, râu, trang điểm, kiểu tóc, vóc dáng, chiều cao, kính mắt, tàn nhang và khuyên xỏ.
Bước 4
Polling cho đến khi tác vụ hoàn thành
GET `/api/v1/mannequins/generate/:id` mỗi 3 giây cho đến khi `data.status` là `completed` hoặc `failed`; thời gian hoàn thành thông thường là 30 đến 60 giây.
Bước 5
Tái sử dụng mannequin
Body trả về khi hoàn tất chứa một object `mannequin` kèm id riêng của nó. Hãy truyền id đó vào tham số `mannequin_id` trong các tác vụ try-on hoặc kính mắt sau này và mọi bức ảnh đều giữ nguyên cùng một khuôn mặt.
Cùng một endpoint trong Node.js, Python và cURL
Node.js
API tạo mannequin bằng AI trong Node.js
Gọi aPI tạo mannequin bằng AI của Photta từ backend Node.js bằng fetch gốc. Không cần SDK: chỉ cần lưu key, gửi job và poll kết quả.
ĐọcPython
API tạo mannequin bằng AI trong Python
Gọi aPI tạo mannequin bằng AI của Photta trong Python với thư viện requests. Wrapper ba mươi dòng, hỗ trợ async qua httpx, hoạt động trong Django, FastAPI và Celery.
ĐọccURL
API tạo mannequin bằng AI với cURL
Gọi trực tiếp aPI tạo mannequin bằng AI của Photta từ shell bằng cURL. Gửi request, poll, tải về — mọi snippet đều kết hợp hoàn hảo với jq cho các script pipeline.
Đọc
Các câu hỏi lập trình viên thường đặt ra trước khi tạo người mẫu
Mannequin AI là gì?
Một người mẫu được tạo tự động mà bạn chỉ định ngoại hình thay vì phải tuyển chọn diễn viên. Kết quả trả về dưới dạng một id, nhờ đó cùng một khuôn mặt, mái tóc và vóc dáng có thể mặc mọi trang phục trong catalog.
Chi phí cho một mannequin là bao nhiêu?
4 credits, áp dụng cho cả builder trang phục và builder trang sức. Việc tái sử dụng mannequin đã có trong buổi chụp sau không tốn thêm chi phí — bạn trả phí cho lượt try-on, không phải cho người mẫu.
Tôi có thể thiết lập những thuộc tính nào?
`category` là bắt buộc. Mọi thông số khác là tùy chọn: chủng tộc, độ tuổi, tông da, dáng mặt, màu và dáng mắt, biểu cảm, râu, trang điểm, kiểu tóc, màu và kết cấu tóc, vóc dáng, chiều cao, kính mắt, tàn nhang và khuyên xỏ. Endpoint options liệt kê toàn bộ các giá trị được chấp nhận.
Bộ builder trang sức dùng để làm gì?
POST `/api/v1/mannequins/jewelry/generate` tạo người mẫu được tinh chỉnh cho các bức ảnh chụp cận cảnh trang sức: endpoint nhận `jewelry_type`, `shot_type`, `camera_angle`, `background` và `lighting` thay vì các thuộc tính toàn thân, giúp phần cổ áo, tai hoặc bàn tay hiển thị chính xác ở cự ly gần.
Tôi có thể tái sử dụng cùng một người mẫu qua các buổi chụp khác nhau không?
Có — đó chính là mục đích của endpoint này. Mannequin id được tạo ra sẽ được chấp nhận làm `mannequin_id` cho try-on trang phục, try-on trang sức và studio kính mắt.
Làm thế nào để polling kết quả?
GET `/api/v1/mannequins/generate/:id` mỗi 3 giây cho đến khi `data.status` là `completed` hoặc `failed`. Trình tạo trang sức polling đường dẫn trạng thái riêng của nó.
Các tính năng liên quan
Tính năng
Virtual try-on API cho trang phục
REST API giúp mặc trang phục lên mannequin AI. Bất đồng bộ, thời gian tạo 1.5–4 phút, 5 credits ở 2K, 6 ở 4K. Kèm ví dụ cURL, Node.js và Python.
Xem endpointTính năng
API try-on trang sức dành cho dây chuyền, nhẫn, vòng tay và hoa tai
Đưa dây chuyền, nhẫn, vòng tay và hoa tai lên người mẫu AI qua REST. 5 credits ở độ phân giải 2K, tích hợp sẵn mannequin cận cảnh, render chuẩn phản chiếu theo tài liệu Photta.
Xem endpointXây dựng
Xây dựng tính năng virtual try-on cho ứng dụng của bạn
Quy trình end-to-end để triển khai tính năng virtual try-on với Photta API: tải lên, gửi yêu cầu, polling từ worker, kết xuất kết quả. Kiến trúc chuẩn server-only với TypeScript.
Xem endpointSo sánh
Photta vs Fitroom — chọn giải pháp phù hợp cho API thời trang
So sánh Photta và Fitroom về các endpoint, chi phí credits mỗi lượt gọi, mô hình giá và phạm vi tích hợp. Lấy từ website của từng bên vào ngày 2026-04-19. Không có số liệu tự tạo.
Xem endpointBắt đầu nhanh
Tạo ảnh Photta đầu tiên trong vòng chưa đầy năm phút.
Đăng ký, tạo API key, chạy lệnh cURL đầu tiên, polling cho đến khi hoàn thành, lưu trữ kết quả. Năm bước, có tài liệu hướng dẫn trọn gói từ đầu đến cuối.
Xem endpointTài liệu tham khảo
Mã lỗi Photta API
Danh sách đầy đủ các loại lỗi của Photta API kèm theo status code, cấu trúc body của lỗi, và những lỗi nào có thể thử lại.
Xem endpointTài liệu tham khảo
Rate limit của Photta API
Rate limit của Photta API, khung thời gian, header Retry-After, khoảng thời gian polling và giới hạn đồng thời theo từng gói, tất cả đều được lấy từ tài liệu API.
Xem endpoint
Mọi số liệu trên trang này đều lấy từ tài liệu Photta API · đã kiểm tra
Thử nghiệm API trong năm phút
Tạo một Photta API key, dán đoạn mã cURL ở trên, và bạn sẽ nhận được bức ảnh mẫu mặc đồ đầu tiên trước khi pha xong ly cà phê.
- 30-60s
- 4 credits
- async, polling
- 600 requests/min
- Bearer key