Chọn model, size, n khi gọi API tạo hình ảnh: tối ưu tiền và thời gian
Ba tham số quyết định gần hết tiền và thời gian chờ: chọn hạng theo nội dung, số n an toàn trong khoảng 90 giây mỗi lượt, khổ nào đáng dùng và cách tự đo.

Khi gọi API AI Hình Ảnh, ba tham số model, size và n quyết định gần như toàn bộ hoá đơn và thời gian chờ. Chọn theo cảm tính, người ta thường rơi vào một trong hai cực: dùng Max cho mọi thứ "cho chắc" rồi trả gấp ba, hoặc gửi n: 4 hạng Max rồi thắc mắc vì sao chỉ nhận về hai hình ảnh. Bài này đưa ra các con số để chọn có cơ sở, cùng một đoạn mã nhỏ đo thời gian thật trên hệ thống của bạn.
Ba hạng: giá, tốc độ, sở trường
model | Máy vẽ | Giá mỗi hình ảnh | Thời gian mỗi hình ảnh | Mạnh | Yếu |
|---|---|---|---|---|---|
plus | FLUX.2 klein 4B | 500 điểm | khoảng 6–10 giây | Phong cảnh, đồ vật, kiến trúc, không gian, ánh sáng tự nhiên | Cận mặt người, bàn tay, tỉ lệ cơ thể khi cận cảnh |
pro | Z-Image Turbo | 1.000 điểm | khoảng 20–25 giây | Da, vải, chất liệu, ánh sáng: chân dung, thời trang, sản phẩm | Đôi khi hiểu sai bố cục có nhiều hành động cùng lúc |
max | Qwen-Image | 1.500 điểm | khoảng 25–40 giây | Hiểu câu lệnh kỹ nhất, người và bàn tay chuẩn, cảnh nhiều chi tiết | Chậm và đắt nhất |
Thời gian trên là khi máy vẽ rảnh. Máy đặt tại Việt Nam và dùng chung với các dịch vụ khác, lúc bận phải cộng thêm thời gian chờ. Giá hiện hành luôn lấy được bằng GET https://aihinhanh.com/v1/models (trường price_vnd), nên mã của bạn đừng ghi cứng giá.
Chọn hạng theo nội dung
| Nội dung | Hạng nên dùng | Vì sao |
|---|---|---|
| Hình đầu bài phong cảnh, món ăn, đồ vật, không có người | plus | Đủ đẹp, nhanh nhất, rẻ nhất |
| Không gian nội thất, kiến trúc, quán xá không người | plus | Sở trường của FLUX.2 klein |
| Sản phẩm cận cảnh cần thấy chất liệu (vải, da, gốm, gỗ) | pro | Chất liệu và ánh sáng tốt hơn rõ |
| Chân dung một người, người mẫu thời trang | pro | Da và vải rất thật |
| Người đang cầm, rót, dùng sản phẩm (thấy bàn tay) | max | Bàn tay chuẩn nhất |
| Nhiều người tương tác, cảnh lớp học, bữa tiệc gia đình | max | Hiểu bố cục phức tạp tốt nhất |
| Minh hoạ phong cách tranh, hoạt hình, màu nước | plus, thử pro nếu chưa ưng | Lỗi chi tiết ít lộ ở phong cách tranh |
Quy tắc ngón tay cái: có bàn tay thấy rõ thì Max, có da và vải ở cận cảnh thì Pro, còn lại Plus. Với phần lớn hệ thống tạo hình đầu bài, 70–80% số lượt rơi vào Plus.
Cảnh báo với tên mô hình OpenAI
Mã chuyển từ OpenAI hay gửi model: "gpt-image-1" hoặc "dall-e-3". Những tên này vẫn chạy: đi kèm quality: "high" (hoặc "hd") thì thành Max, còn lại thành Plus. Một dòng quality: "hd" sót lại từ mã cũ có thể làm hoá đơn tăng gấp ba. Hãy gửi thẳng plus, pro, max. Chi tiết chuyển mã ở bài chuyển mã OpenAI Images sang AI Hình Ảnh.
n: số hình ảnh mỗi lượt và ngân sách 90 giây
Đây là tham số hay bị hiểu sai nhất. Các hình ảnh trong một lượt được vẽ lần lượt, không song song, và cả lượt có ngân sách khoảng 90 giây (lượt gọi là đồng bộ, phía trước còn có lớp mạng cắt kết nối quá lâu). Hình ảnh nào không kịp vẽ trong ngân sách sẽ không trả về và được hoàn điểm.
Nhân thời gian mỗi hình ảnh với n là ra ngay:
| Hạng | n = 1 | n = 2 | n = 3 | n = 4 |
|---|---|---|---|---|
plus (6–10 giây) | Thoải mái | Thoải mái | Thoải mái | Thoải mái (24–40 giây) |
pro (20–25 giây) | Thoải mái | Thoải mái | Vừa (60–75 giây) | Dễ hụt (80–100 giây) |
max (25–40 giây) | Thoải mái | Vừa (50–80 giây) | Dễ hụt | Gần như chắc hụt |
"Dễ hụt" nghĩa là lúc máy rảnh có thể đủ, lúc bận thì thiếu. Hụt không mất tiền (đã hoàn điểm phần thiếu), nhưng mất thời gian: bạn chờ gần 90 giây để nhận hai hình ảnh, rồi phải gửi thêm lượt cho phần còn lại.
Số n an toàn: Plus tới 4, Pro tới 2, Max 1. Cần nhiều hình ảnh Max thì gửi nhiều lượt n: 1 nối nhau.
Khi nào n lớn đáng tiền
n lớn có ích khi bạn cần chọn: bốn biến thể của cùng một câu lệnh (mỗi hình ảnh một hạt giống ngẫu nhiên, khác nhau về bố cục), người duyệt chọn một. Với hình đầu bài tự động không có người duyệt, n: 1 là đủ; trả tiền cho ba hình ảnh không ai xem là phí.
Một cách tiết kiệm khi cần chọn: tìm câu lệnh bằng Plus, vẽ bản cuối bằng hạng cao. Gửi Plus n: 4 (2.000 điểm) với vài cách viết câu lệnh, xem cách nào cho bố cục đúng ý, rồi gửi câu lệnh đó cho Max n: 1 (1.500 điểm). Lưu ý: hình ảnh Max sẽ khác hình ảnh Plus vì là máy vẽ khác; thứ chuyển được sang là câu lệnh, không phải hình ảnh. Cách này giúp bạn khỏi trả giá Max cho những lần thử câu lệnh sai.
size: khổ nào đáng dùng
API nhận size dạng RỘNGxCAO bất kỳ, cạnh dài tới 2048, tự làm tròn về bội số của 16, tổng số pixel tối đa khoảng 2,4 triệu. Nhưng "nhận được" không có nghĩa "nên dùng". Sáu khổ mà trang web dùng là điểm khởi đầu tốt:
| Khổ | size | Dùng cho |
|---|---|---|
| Ngang 3:2 | 1536x1024 | Hình đầu bài, website, bài Facebook ngang |
| Vuông 1:1 | 1280x1280 | Hình sản phẩm, bài Instagram, Zalo |
| Dọc 2:3 | 1024x1536 | Thời trang, chân dung toàn thân |
| Màn rộng 16:9 | 1664x928 | Hình đại diện video, hình khổ ngang đầu trang |
| Dọc 9:16 | 928x1664 | Tin dạng dọc, TikTok, Reels |
| Dọc 4:5 | 1152x1440 | Bài dọc trên Facebook, Instagram |
Sáu khổ này đều quanh mức 1,5–1,7 triệu pixel. Kéo lên 2048 cạnh dài làm tăng số pixel máy phải vẽ, nên chậm hơn mà giá vẫn tính theo hình ảnh. Với web, hình ảnh hiển thị hiếm khi rộng quá 1200 px; khổ lớn hơn chỉ có ích khi in ấn hoặc cần cắt khung nhiều. Hai khổ quen của DALL·E 3 là 1792x1024 và 1024x1792 được tự đổi sang 1664x928 và 928x1664.
Mẹo nhỏ: vẽ đúng tỉ lệ cần dùng, đừng vẽ 3:2 rồi cắt thành 9:16. Cắt mất hai phần ba hình ảnh thì vừa phí vừa dễ cắt mất chủ thể.
Để mã tự chọn hạng
Trong hệ thống tự động, người nhập liệu hiếm khi nhớ bảng chọn hạng. Cách gọn là thêm vài cột đánh dấu đơn giản vào dữ liệu (có bàn tay không, có người cận cảnh không, có chất liệu cần thấy rõ không) và để mã quyết định:
```python
def chon_hang(co_ban_tay: bool, nhieu_nguoi: bool, can_chat_lieu: bool) -> str:
if co_ban_tay or nhieu_nguoi:
return "max"
if can_chat_lieu:
return "pro"
return "plus"
def n_an_toan(hang: str, can: int) -> int:
tran = {"plus": 4, "pro": 2, "max": 1}[hang]
return min(can, tran)
```
Ba câu hỏi có hoặc không thì người nhập liệu nào cũng trả lời được, còn chuyện Plus hay Max để mã lo. Hàm n_an_toan cắt n theo hạng; phần còn thiếu thì xếp thêm lượt. Đừng đoán hạng bằng cách dò từ khoá trong câu lệnh (thấy chữ "hand" thì lên Max): câu lệnh có muôn kiểu viết, dò từ khoá sẽ sót nhiều hơn trúng.
Bảng tính chi phí cho vài tình huống
| Tình huống | Cách chọn | Điểm mỗi tháng |
|---|---|---|
| Blog đăng 30 bài, mỗi bài một hình đầu bài | plus, n: 1, 3:2 | 15.000 |
| Như trên, người duyệt chọn 1 trong 2 | plus, n: 2 | 30.000 |
| Cửa hàng thời trang 100 mẫu mới, mỗi mẫu một hình ảnh bối cảnh có người mẫu | pro, n: 1, 2:3 | 100.000 |
| Quán cà phê 20 hình ảnh có người pha chế cầm ly | max, n: 1, 4:5 | 30.000 |
| Gian hàng 240 mã, phân hạng như bài CSV | Trộn ba hạng | khoảng 250.000 |
Dòng cuối lấy từ bài tạo hàng loạt hình ảnh sản phẩm từ CSV, nơi có cách đặt trần chi phí cho cả đợt. Giá API bằng giá web, ví điểm dùng chung cả hệ AI Đỉnh; xem bảng giá.
Đo trên hệ thống của bạn
Con số thời gian trong bài là mức thường gặp. Hệ thống của bạn nên tự đo, vì đường mạng và giờ chạy khác nhau. Đoạn mã nhỏ này gọi mỗi hạng một lượt và in thời gian:
```python
import os
import time
import requests
KEY = os.environ["AHN_KEY"] # ahn_XXXX
CAU = ("A wooden bench under a flame tree in a quiet schoolyard, "
"late afternoon light, realistic photo, wide shot")
for hang in ("plus", "pro", "max"):
t = time.time()
r = requests.post(
"https://aihinhanh.com/v1/images/generations",
headers={"Authorization": f"Bearer {KEY}"},
json={"model": hang, "prompt": CAU, "size": "1536x1024",
"n": 1, "output_format": "webp"},
timeout=120,
)
giay = time.time() - t
if r.status_code == 200:
u = r.json()["usage"]
print(f"{hang:5} {giay:5.1f}s {u['images']} hình ảnh {u['credits']} điểm")
else:
print(f"{hang:5} {giay:5.1f}s lỗi {r.status_code}, Retry-After={r.headers.get('Retry-After')}")
time.sleep(3)
```
Ba lượt tốn 3.000 điểm. Chạy vào khung giờ hệ thống của bạn sẽ chạy thật (ví dụ 2 giờ sáng cho đợt hàng loạt), ghi lại, rồi tính n an toàn theo số đo của chính bạn thay vì theo bảng chung.
Lỗi chọn tham số hay gặp
| Triệu chứng | Nguyên nhân | Sửa |
|---|---|---|
| Hoá đơn cao bất thường | quality: "hd" sót lại khiến tên OpenAI chạy hạng Max | Gửi model là plus, pro hoặc max, bỏ quality |
Gửi n: 4 nhận 2 | Hạng chậm vượt ngân sách khoảng 90 giây | Giảm n, gửi nhiều lượt |
| Bàn tay sáu ngón trong hình ảnh sản phẩm | Dùng Plus cho cảnh có tay | Lên Max cho những dòng có tay |
| Lượt nào cũng chậm | Khổ quá lớn so với nhu cầu | Về sáu khổ chuẩn |
| Hình ảnh bị cắt mất chủ thể | Vẽ sai tỉ lệ rồi cắt | Vẽ đúng tỉ lệ cần dùng |



