Hướng dẫn · Di chuyển hệ thống
Di chuyển từ FASHN sang Photta những gì thay đổi, những gì giữ nguyên
Tóm tắt trong một câu
Việc chuyển hệ thống tích hợp try-on sang Photta đồng nghĩa với việc dùng một bearer key mới, request body mới và đường dẫn kiểm tra trạng thái mới. Cấu trúc của luồng tích hợp — submit, poll, download, lưu trữ — không thay đổi.
- Thời gian điển hình: 1.5–4 min
- Credits: 5 credits ở 2K · 6 credits ở 4K
- Xử lý: async, polling
Mọi số liệu trên trang này đều lấy từ tài liệu Photta API · đã kiểm tra
Tóm tắt nhanh
Các đội ngũ chuyển đổi giữa các try-on API vì những lý do thông thường: kết quả đầu ra phù hợp hơn với catalogue của họ, chi phí trên mỗi hình ảnh tối ưu hơn ở quy mô sử dụng của họ, hoặc họ cần một tính năng mà nhà cung cấp hiện tại không có — batch ghost mannequin, chụp cận cảnh chi tiết, tái sử dụng người mẫu được tạo xuyên suốt một mùa thời trang.
Ba điểm: thông tin xác thực, request body và đường dẫn trạng thái. Photta xác thực bằng bearer key trên mọi lệnh gọi, sử dụng tên trường riêng và báo cáo trạng thái tác vụ trên một endpoint trạng thái riêng cho từng tính năng. Mọi giá trị mà mã của bạn gửi lên đều được định nghĩa rõ ràng dưới dạng enum hoặc ID mà bạn có thể truy vấn danh sách trước.
Kiến trúc hệ thống. Cả hai đều là API bất đồng bộ theo mô hình submit và poll, vì vậy queue, worker, chính sách retry và hệ thống lưu trữ của bạn đều tiếp tục hoạt động bình thường. Trên thực tế, việc di chuyển chỉ là viết một client module mới và map lại một tập hợp tên trường mới, chứ không phải dựng lại toàn bộ pipeline.
Endpoint bạn sẽ chuyển sang
Được đọc trực tiếp từ tài liệu Photta API, không viết thủ công.
Tổng quan nhanh
- Endpoint
- POST /api/v1/tryon/apparel
- Xác thực
- Bearer API key
- Xử lý
- Bất đồng bộ — polling status endpoint
- Thời gian điển hình
- 1.5–4 min
- Credits
- 5 credits ở 2K · 6 credits ở 4K
- Tỷ lệ khung hình
- 3:4 · 1:1 · 4:3 · 9:16 · 16:9
- Giới hạn đầu vào
- Tối đa 10 MB mỗi ảnh; JPEG, PNG, WebP
- Idempotent
- Không
Bốn điểm thực sự thay đổi
Xác thực
Một bearer key duy nhất cho mọi endpoint, được tạo trong dashboard Photta của bạn. Không phân chia scope theo từng endpoint và không cần bước trao đổi token.
Request body
Photta sử dụng các trường snake_case với enum đã được ghi nhận trong tài liệu, cùng id của người mẫu, tư thế và nền mà bạn lấy từ các endpoint tài nguyên rồi lưu vào cache.
Polling
Thực hiện poll endpoint trạng thái của tính năng mỗi 3 giây một lần cho đến khi trả về completed hoặc failed. Không sử dụng webhook, do đó bạn không cần mở công khai thêm bất kỳ endpoint nào.
Cách tính phí
Tính credits trên mỗi lượt gọi — 5 credit ở 2K và 6 credit ở 4K cho tính năng try-on trang phục — trừ ngay khi tác vụ bắt đầu và tự động hoàn lại nếu tác vụ thất bại.
Request mới
Cùng một lệnh gọi bằng cURL, Node.js và Python.
RESPONSE=$(curl -s -X POST https://api.photta.app/api/v1/tryon/apparel \
-H "Authorization: Bearer $PHOTTA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": true,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
}')
ID=$(echo "$RESPONSE" | jq -r '.data.id')const res = await fetch("https://api.photta.app/api/v1/tryon/apparel", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PHOTTA_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": true,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
}),
});
const { data } = await res.json(); // data.id, data.statusimport os, requests
res = requests.post(
"https://api.photta.app/api/v1/tryon/apparel",
headers={"Authorization": f"Bearer {os.environ['PHOTTA_API_KEY']}"},
json={
"product_type": "top",
"product_images": [
"https://cdn.yourstore.com/products/shirt-front.jpg"
],
"product_back_image": "https://cdn.yourstore.com/products/shirt-back.jpg",
"product_category": "t_shirt",
"mannequin_id": "mnk_f3a9b1",
"pose_id": "pose_c2d4e5",
"background": "https://cdn.yourstore.com/backgrounds/studio-loft.jpg",
"lock_background": True,
"resolution": "2K",
"aspect_ratio": "3:4",
"body_size": "M",
"expression": "neutral",
"user_instruction": "Keep the collar pattern crisp and centered."
},
)
data = res.json()["data"] # data["id"], data["status"]Các câu hỏi về việc di chuyển
Thời gian chuyển đổi mất bao lâu?
Chỉ gói gọn trong một module client: một key mới, tên trường mới, đường dẫn trạng thái mới. Nếu worker của bạn đã có sẵn logic gửi yêu cầu và poll, phần code xung quanh sẽ không đổi.
Tôi có cần thay đổi hệ thống hàng đợi không?
Không. Cả hai API đều là bất đồng bộ, nên bất kể bạn đang dùng gì — Celery, BullMQ, Inngest, hay một cron table — cấu trúc hiện tại vẫn giữ nguyên. Bạn chỉ cần thay đổi các lệnh gọi bên trong tác vụ.
Các hình ảnh tôi đã tạo trước đó sẽ ra sao?
Chúng là các tệp nằm trên bộ lưu trữ riêng của bạn và hoàn toàn không bị ảnh hưởng. Việc chuyển đổi chỉ tác động đến những gì bạn render tiếp theo, không ảnh hưởng đến nội dung đã xuất bản.
Mức giá so với nhau thế nào?
Trang so sánh đối chiếu chi phí credits trên mỗi lượt gọi của Photta với thông tin FASHN công bố trên trang giá của họ, kèm theo ngày ghi nhận của từng số liệu. Khối lượng sử dụng thực tế của bạn sẽ quyết định bên nào tối ưu hơn.
Tôi có thể chạy song song cả hai bên không?
Có, và đây là cách an toàn nhất để chuyển đổi. Hãy gửi một phần danh mục sản phẩm qua endpoint mới, so sánh kết quả trên sản phẩm thực tế, sau đó mới chuyển toàn bộ phần còn lại.
Đọc tiếp
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.
ĐọcSo sánh
Photta vs FASHN — So sánh trực tiếp API AI thời trang
So sánh Photta và FASHN: endpoint, giá credits, các gói dịch vụ, giới hạn concurrency. Dữ liệu được trích xuất từ chính trang bảng giá của từng công ty vào ngày 2026-04-19. Không có số liệu tự dựng.
ĐọcTài liệu tham khảo
Bảng giá Photta API
Chi phí tính bằng credits cho từng endpoint của Photta API ở độ phân giải 2K và 4K, cơ chế trừ phí và hoàn tiền, cùng các endpoint miễn phí. Không tính giá tiền trực tiếp trên từng ảnh.
ĐọcTà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.
ĐọcBắ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.
Đọc
Mọi số liệu trên trang này đều lấy từ tài liệu Photta API · đã kiểm tra
Chạy song song, sau đó chuyển đổi
Trỏ một bản sao của queue sang endpoint mới và tự mình so sánh kết quả đầu ra.
- 1.5–4 min
- 5 credits ở 2K · 6 credits ở 4K
- async, polling