✨ Tạo ảnh AI chất lượng cao với Nano Banana model
Nano Banana API cho phép bạn tạo, chỉnh sửa và tăng độ phân giải ảnh bằng AI với 3 chức năng chính:
Base URL: https://havisoft.vn/api/v1/nano-banana
Phương thức thanh toán: Credit-based (trừ credit ngay khi tạo job)
Tất cả các request phải bao gồm API Key trong header:
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Authorization: Bearer <YOUR_API_KEY>⚠️ Lưu ý: Bảo mật API Key của bạn. Không chia sẻ hoặc commit vào repository công khai.
Giá credit được tính dựa trên:
📊 Xem bảng giá chi tiết: Trang Pricing
Bạn có thể kiểm tra giá credit chính xác cho từng tùy chọn tại trang Pricing của hệ thống. Credit sẽ được trừ ngay khi job được tạo thành công.
Tạo ảnh mới từ mô tả văn bản.
Endpoint: POST /api/v1/nano-banana/generate
{
"prompt": "Một cánh rừng tre vàng, phong cách tranh sơn dầu, ánh sáng hoàng hôn",
"ratio": "16:9",
"format": "png"
}
| Trường | Kiểu | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|---|
prompt |
string | ✅ | - | Mô tả ảnh cần tạo (tối đa 3000 ký tự) |
ratio |
string | ❌ | "auto" |
Tỷ lệ khung hình: auto, 1:1, 3:4, 9:16, 4:3, 16:9 |
format |
string | ❌ | "png" |
Định dạng ảnh: png, jpeg |
{
"success": true,
"TaskId": "task_7e1c41cd4cf6fdce",
"model": "google/nano-banana",
"cost": 13,
"currency": "credits",
"status": "waiting"
}
| Trường | Mô tả |
|---|---|
success |
true nếu thành công |
TaskId |
Mã tác vụ để theo dõi và kiểm tra trạng thái |
model |
Tên model được sử dụng |
cost |
Số credit đã trừ |
currency |
Đơn vị thanh toán (luôn là "credits") |
status |
Trạng thái job: waiting, running, succeeded, failed |
Chỉnh sửa ảnh hiện có theo hướng dẫn văn bản.
Endpoint: POST /api/v1/nano-banana/edit
{
"prompt": "Thêm hiệu ứng ánh sáng mặt trời, làm bầu trời xanh hơn",
"image_urls": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
],
"ratio": "16:9",
"format": "png"
}
| Trường | Kiểu | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|---|
prompt |
string | ✅ | - | Hướng dẫn chỉnh sửa (tối đa 3000 ký tự) |
image_urls |
array[string] | ⭕ | - | Mảng URL ảnh (tối đa 4 ảnh). Ưu tiên dùng mảng này |
image_url |
string | ⭕ | - | URL ảnh đơn (dùng khi không có image_urls) |
ratio |
string | ❌ | "auto" |
Tỷ lệ khung hình |
format |
string | ❌ | "png" |
Định dạng ảnh |
⚠️ Lưu ý: Phải có ít nhất một trong hai:
image_urlshoặcimage_url
{
"success": true,
"TaskId": "task_2496a7982a64d676",
"model": "google/nano-banana-edit",
"cost": 13,
"currency": "credits",
"status": "waiting"
}
Tăng độ phân giải ảnh lên 2x hoặc 4x.
Endpoint: POST /api/v1/nano-banana/upscale
{
"input_image_url": "https://example.com/image.jpg",
"input_scale": 4,
"input_face_enhance": true,
"input_output_format": "png"
}
| Trường | Kiểu | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|---|
input_image_url |
string | ✅ | - | URL ảnh cần upscale |
input_scale |
integer | ✅ | - | Hệ số tăng: 2 hoặc 4 |
input_face_enhance |
boolean | ❌ | false |
Bật tăng cường khuôn mặt |
input_output_format |
string | ❌ | "png" |
Định dạng ảnh: png, jpeg, jpg |
{
"success": true,
"TaskId": "task_ae9ce6729e09e633",
"model": "nano-banana-upscale",
"cost": 8,
"currency": "credits",
"status": "waiting"
}
Kiểm tra trạng thái và kết quả của job.
Endpoint: GET /api/v1/nano-banana/status/{taskId}
{
"success": true,
"TaskId": "task_7e1c41cd4cf6fdce",
"status": "waiting",
"model": "nano-banana",
"created_at": "2025-11-12T10:30:00.000000Z",
"updated_at": "2025-11-12T10:30:15.000000Z"
}
{
"success": true,
"TaskId": "task_7e1c41cd4cf6fdce",
"status": "succeeded",
"model": "nano-banana",
"created_at": "2025-11-12T10:30:00.000000Z",
"updated_at": "2025-11-12T10:35:20.000000Z",
"result": {
"image_url": "https://havisoft.vn/storage/images/xxx.png",
"thumbnail_url": "https://havisoft.vn/storage/images/xxx_thumb.png",
"format": "png",
"ratio": "16:9",
"image_resolution": "1024x1024"
}
}
{
"success": true,
"TaskId": "task_7e1c41cd4cf6fdce",
"status": "failed",
"model": "nano-banana",
"created_at": "2025-11-12T10:30:00.000000Z",
"updated_at": "2025-11-12T10:32:10.000000Z",
"error": {
"message": "Error message here"
}
}
{
"success": false,
"error": "job_not_found",
"message": "Không tìm thấy job với TaskId này"
}
401 Unauthorized
{
"error": "missing_api_key"
}
hoặc
{
"error": "invalid_api_key"
}
💡 Giải pháp: Kiểm tra API Key trong header Authorization: Bearer <KEY>
402 Payment Required
{
"success": false,
"error": "insufficient_credits",
"required": 13,
"available": 5
}
💡 Giải pháp: Nạp thêm credit vào tài khoản
422 Unprocessable Entity
{
"success": false,
"error": "missing_image_urls"
}
💡 Giải pháp: Kiểm tra request body, đảm bảo các trường bắt buộc đã được gửi đúng format
504 Gateway Timeout
{
"success": false,
"error": "provider_timeout",
"message": "Không nhận được phản hồi hợp lệ từ hệ thống xử lý. Vui lòng thử lại sau.",
"TaskId": null
}
💡 Giải pháp:
404 Not Found
{
"success": false,
"error": "job_not_found",
"message": "Không tìm thấy job với TaskId này"
}
💡 Giải pháp: Kiểm tra lại TaskId hoặc đảm bảo job thuộc về user hiện tại
| Trạng thái | Mô tả | Badge |
|---|---|---|
waiting |
Job đang chờ xử lý | 🟡 |
running |
Job đang được xử lý | 🔵 |
succeeded |
Job hoàn thành thành công | 🟢 |
failed |
Job thất bại | 🔴 |
provider_timeout, đợi vài giây rồi thử lạisuccess field trong responseinsufficient_creditsNếu gặp vấn đề hoặc cần hỗ trợ, vui lòng:
TaskId khi báo lỗi để được hỗ trợ nhanh chóngPhiên bản tài liệu: 1.0
Cập nhật lần cuối: 12/11/2025