Tài liệu API
nano-2/product-image
Nano 2 — Đặt sản phẩm vào bối cảnh thương mại đẹp mắt hoặc ghép người mẫu cầm sản phẩm — giữ nguyên logo & chữ.
type: imageoutput: imageTheo tham số — dùng POST /v1/generations/estimate để báo giá
Input — tham số đầu vào
POST
/v1/generationsGửi JSON gồm "model": "nano-2/product-image" và các tham số dưới đây ở cùng cấp. Tham số không có trong bảng sẽ bị từ chối (400).
| Tham số | Kiểu | Giá trị hỗ trợ | Mô tả |
|---|---|---|---|
modelrequired | string | nano-2/product-image | Mã model |
image_urlrequired | string (URL image) | Ảnh sản phẩm gốc | |
reference_image_urls | string[] (URL image) | Tối đa 3 file | Ảnh người mẫu / bối cảnh mẫu (tuỳ chọn) |
product_stylerequired | enum | Ảnh chụp sản phẩm thương mại chuyên nghiệp, đặt sản phẩmNgười mẫu nữ trẻ đẹp Việt Nam cầm và giới thiệu sản phẩmNgười mẫu nam lịch lãm cầm và giới thiệu sản phẩmCận cảnh bàn tay thon đẹp đang cầm sản phẩm Mặc định: | Kiểu ảnh |
product_scenerequired | enum | trên bục đá cẩm thạch trắng trong studio cao cấp, ánh sáng thương mại sắc néttrên mặt bàn gỗ tự nhiên cạnh cây xanh, nắng sớm dịu nhẹgiữa không gian phòng khách hiện đại sang trọngtrên nền màu pastel tối giản với bóng đổ mềmngoài bãi biển đầy nắng, nước trong xanh Mặc định: | Bối cảnh |
prompt | string | Tối đa 4.000 ký tự | Mô tả thêm góc chụp / đạo cụ (tuỳ chọn) |
aspect_ratio | enum | 1:116:99:164:33:4adaptive | Tỉ lệ khung hình |
resolution | enum | 1K2K4K Mặc định: | Độ phân giải Tổ hợp hợp lệ: 1K; 2K; 4K |
- Tham số file (string URL) nhận link công khai http(s) — máy chủ tự tải về — hoặc URL trả về từ API tải file POST /account/ai/uploads.
- Bỏ trống tham số không bắt buộc thì dùng giá trị mặc định.
Ví dụ request
curl -X POST https://nov.ai.vn/api/v1/generations \
-H "X-API-Key: $API_KEY" -H "Content-Type: application/json" \
-d '{
"model": "nano-2/product-image",
"image_url": "https://example.com/image.jpg",
"product_style": "Ảnh chụp sản phẩm thương mại chuyên nghiệp, đặt sản phẩm",
"product_scene": "trên bục đá cẩm thạch trắng trong studio cao cấp, ánh sáng thương mại sắc nét",
"prompt": "Một chú mèo phi hành gia",
"aspect_ratio": "1:1",
"resolution": "1K"
}'Output — kết quả trả về
Tác vụ chạy bất đồng bộ. POST /v1/generations trả ngay đối tượng generation với status queued hoặc processing; hỏi lại GET /v1/generations/{id} mỗi 5–10 giây tới khi status là succeeded, failed hoặc cancelled.
GET
/v1/generations/{id}{
"id": "3f1c...-uuid",
"object": "generation",
"code": "T8KQ2M4X",
"model": "nano-2/product-image",
"status": "succeeded", // queued | processing | succeeded | failed | cancelled
"progress": 100,
"cost": 2400, // số tiền đã trừ
"currency": "VND",
"refunded": false,
"output": {
"type": "image",
"files": [{ "url": "https://nov.ai.vn/uploads/ai/outputs/....png", "type": "image", "name": "image.png" }],
"text": null
},
"error": null,
"created_at": "2026-10-30T08:00:00.000Z",
"completed_at": "2026-10-30T08:01:12.000Z"
}| Trường | Ý nghĩa |
|---|---|
| output.files[].url | Link file kết quả — nên tải về hệ thống của bạn, file trên máy chủ có thể được dọn sau một thời gian. |
| output.text | Nội dung văn bản (chỉ có với model trả văn bản). |
| cost | Số tiền VND đã trừ vào số dư; lỗi hoặc huỷ thì tự hoàn lại (refunded = true). |
| error | Lý do lỗi khi status = failed. |
Báo giá trước khi chạy
POST
/v1/generations/estimateCùng body với POST /v1/generations, không chạy và không trừ tiền.
# => { "object": "estimate", "model": "nano-2/product-image", "cost": 2400, "currency": "VND" }