Bài trước tôi kể chuyện mất nguyên một ngày để so giá text LLM. Nhưng thú thật, lý do tôi đi so giá ngay từ đầu không phải text. Tôi cần giọng đọc cho một project TTS nhỏ, và nhân tiện so luôn ảnh với video của hai nhà tôi đang cân nhắc: MiniMax và ByteDance. Kết quả là bảng giá multimodal còn khó đọc hơn bảng giá text, vì bên text ít nhất mọi nhà còn cùng bán một thứ là token. Bên này thì không.

Số liệu trong bài là ảnh chụp đầu tháng 6/2026, lấy first-party từ trang giá của từng nhà. Như mọi khi: giá AI đổi nhanh, verify lại trước khi quyết ngân sách. Cái đáng giữ là cách đọc bảng giá, không phải con số.

Ảnh: cùng một chữ “image generation”, giá lệch nhau mười lần

Bên text LLM, hai model cùng hạng mà lệch giá nhau 2 tới 3 lần đã là nhiều. Nên khi so giá ảnh, tôi mặc định khoảng cách cũng cỡ đó. Sai.

MiniMax image-01 tính $0.0035 một ảnh. Seedream của ByteDance, tùy phiên bản, $0.03 tới $0.04 một ảnh. Cùng là sinh ảnh từ text, lệch nhau khoảng mười lần. Không phải mười phần trăm. Mười lần.

Tôi chưa nói gì về chất lượng, vì tôi chưa đặt hai model cạnh nhau mà chấm. Có thể Seedream đáng từng xu chênh lệch. Nhưng nếu bạn chỉ cần ảnh minh họa mức “tạm được”, chọn nhầm cổng là hóa đơn nhân mười mà không hay. Và để công bằng với cả hai: ngoài phạm vi bài này, Cloudflare Workers AI chạy FLUX.1-schnell ở mức khoảng $0.0001 một ảnh, rẻ hơn MiniMax thêm cả chục lần nữa. Thị trường gen ảnh không có mặt bằng giá. Mỗi nhà một hành tinh.

Video: không ai bán cùng một đơn vị

Đây là phần làm tôi vẽ nháp ra giấy nhiều nhất, vì ba nguồn giá nói ba thứ tiếng khác nhau.

MiniMax bán video Hailuo theo “unit”. Một clip 768p 6 giây là 1 unit. Clip 768p 10 giây là 2 units. Clip 1080p 6 giây cũng 2 units. Quy ra tiền pay-as-you-go thì một clip rơi vào khoảng $0.28 tới $0.56. Muốn biết một unit là bao nhiêu tiền, bạn phải đọc bảng quy đổi nằm trong FAQ chứ không nằm trên bảng giá chính.

ByteDance Seedance thì niêm yết thẳng per-video theo độ phân giải: Seedance 2.0 một clip 5 giây giá $0.35 ở 480p, $0.76 ở 720p, $1.87 ở 1080p. Nghe đắt hơn Hailuo. Nhưng cùng trang đó, model thế hệ cũ Seedance 1.0 Pro Fast chỉ $0.05 tới $0.24 một clip. Cùng một nhà, model cũ rẻ hơn model mới cỡ bảy tám lần, và với nhiều use case thì model cũ vẫn đủ dùng. Bảng giá không bao giờ tự gợi ý điều đó cho bạn.

Còn nếu đọc giá qua reseller, mọi thứ đổi đơn vị lần nữa: OpenRouter với PiAPI báo giá Seedance theo từng giây. Per-second, per-video, per-unit, ba cách tính cho cùng một sản phẩm. Quy đổi nhầm một bước là so sai cả bảng.

Một chi tiết tôi thấy thú vị: phía sau cái giá per-video của Seedance là một công thức tính token thật, kiểu số token bằng thời lượng nhân chiều rộng nhân chiều cao nhân fps chia 1024. Tức là video cũng bị tính bằng token, chỉ là nhà cung cấp quy sẵn ra tiền một clip cho bạn đỡ đau đầu. Và một điểm cộng cho cả hai nhà: clip sinh lỗi hoặc bị chặn moderation thì không bị tính tiền.

Hailuo còn một cái bẫy nhỏ về matrix độ phân giải: bản native chỉ có 1080p ở 6 giây hoặc 768p tới 10 giây. Không tồn tại lựa chọn 1080p 10 giây. Nếu kế hoạch của bạn cần clip dài ở độ phân giải cao, cái ô đó trong bảng tính của bạn đang trống mà bạn chưa biết.

Gói prepaid video: discount đổi lấy hạn dùng

MiniMax có các gói video trả trước, từ $1,000 tới $6,000 một tháng, đơn giá unit rẻ hơn pay-as-you-go từ 5 tới 20 phần trăm. Nghe hấp dẫn cho tới khi đọc điều khoản: units hết hạn sau một tháng và không cộng dồn. Hết tháng, quota còn lại reset về không.

Phép tính ở đây đơn giản: giảm 5 phần trăm không bù nổi việc bỏ phí 10 phần trăm quota. Gói trả trước kiểu này chỉ đáng khi volume của bạn đều và đoán được. Dùng giật cục thì pay-as-you-go an toàn hơn, đúng cái logic hình dạng lượng dùng tôi đã viết ở bài trước.

TTS: chỗ tôi thật sự cần, và kết luận bị đảo ngược

Giờ tới phần tôi quan tâm nhất. MiniMax tính TTS theo ký tự: giọng turbo $60 cho 1 triệu ký tự, giọng HD $100. Họ còn có gói subscription riêng cho audio, gói nhỏ nhất khoảng $5 một tháng cho 100 nghìn credits, tính ra value gấp đôi pay-as-you-go. Đến đây tôi đã gần chốt: project nhỏ, lấy gói $5 của MiniMax, xong chuyện.

Rồi tôi mở được trang giá TTS của ByteDance. Phải nói “mở được” vì trang này render bằng JavaScript, công cụ fetch tĩnh đọc về một khung trống, đúng cái bẫy số sáu của bài trước. Mở bằng trình duyệt thật thì số hiện ra đầy đủ, và nó đảo ngược kết luận của tôi.

ByteDance TTS 2.0 pay-as-you-go giá $30 cho 1 triệu ký tự. Bằng đúng một nửa giọng turbo của MiniMax, và bằng một phần ba giọng HD. Mua trước còn rẻ hơn: gói 100 nghìn ký tự giá $2.80, các gói lớn quy ra $24 tới $27.5 một triệu. Và quan trọng nhất với người mới test: kích hoạt dịch vụ được tặng 20 nghìn ký tự miễn phí.

Hai chi tiết đáng để ý trước khi bê con số này vào bảng tính.

Thứ nhất, cách đếm ký tự rất sòng phẳng theo nghĩa đen: một chữ cái, một dấu câu, một dấu cách, một lần xuống dòng đều đếm là một ký tự. Markup SSML cũng đếm. Văn bản tiếng Việt có dấu cách giữa từng âm tiết, nên số ký tự thật sẽ cao hơn số chữ bạn nhìn thấy kha khá.

Thứ hai, hạn dùng. Credits trong gói subscription audio của MiniMax hết theo tháng, không cộng dồn. Gói trả trước của ByteDance có hạn một năm. Với project chạy giật cục kiểu của tôi, tháng làm tháng nghỉ, hạn một năm ăn đứt. $2.80 cho 100 nghìn ký tự nằm yên đó chờ mình dùng, không có đồng hồ đếm ngược cuối tháng.

Nhưng rẻ trên giấy chưa phải là thắng

Tới đây dễ kết luận “TTS thì chọn ByteDance, chấm hết”. Tôi chưa dám. Mọi con số ở trên là giá, không phải chất lượng. TTS là sản phẩm nghe bằng tai: giọng tiếng Việt tự nhiên tới đâu, ngắt nghỉ có đúng chỗ không, đọc số và từ vay mượn ra sao. Bảng giá không trả lời được câu nào trong số đó.

Nên kế hoạch test của tôi thành ra thế này: kích hoạt 20 nghìn ký tự miễn phí của ByteDance trước, vì miễn phí. Cho nó đọc đúng đoạn văn tiếng Việt tôi định dùng trong project. Nếu nghe ổn, mua gói $2.80 chạy tiếp, hạn một năm nên không vội. Nếu nghe không ổn, lúc đó mới sang MiniMax với gói $5 một tháng, và nhớ tắt auto-renew nếu chỉ định test một đợt.

Tổng chi phí để biết chắc mình nên dùng nhà nào: dưới 10 đô. So với việc chọn bừa theo bảng giá rồi nghe ra một giọng đọc ngang phè ở giữa project, đó là 10 đô rẻ. Bài trước tôi học được rằng bảng giá niêm yết không phải con số mình thực trả. Bài này thêm một tầng nữa: với multimodal, ngay cả khi đọc đúng con số, thứ con số không nói được mới là thứ quyết định.