ราคา Multimodal: รูปภาพ เสียง และวิดีโอคิดเงินจริงอย่างไร
โมเดลสามตัวเจอภาพ 500 ภาพชุดเดียวกัน แต่ค่าบริการต่างกัน 5.5 เท่า และตัวที่ถูกสุดพลิกทันทีเมื่อมีคน resize ภาพ
ในหน้านี้
นี่คืองานหนึ่งงาน แต่คิดราคาได้สามแบบ: อธิบายภาพถ่ายสินค้า 500 ภาพ ภาพละ caption สั้น ๆ หนึ่งอัน ภาพชุดเดียวกัน instruction เดียวกัน ความยาวคำตอบเท่ากัน สิ่งเดียวที่เปลี่ยนคือโมเดลตัวไหนเป็นคนอ่านภาพ
| ภาพถ่าย | gpt-5.6-luna | gemini-3.1-flash-lite | claude-haiku-4.5 |
|---|---|---|---|
| 800 × 600 | $0.0848 | $0.1638 | $0.4380 |
| 1024 × 768 | $0.1200 | $0.1638 | $0.6370 |
| 1280 × 960 | $0.1718 | $0.1638 | $0.9010 |
| 1600 × 1200 | $0.2558 | $0.1638 | $0.9010 |
| 4000 × 3000 | $0.3220 | $0.1638 | $0.9010 |
มีสามเรื่องในตารางนี้ที่ควรหยุดดู
โมเดลที่ถูกที่สุด เปลี่ยน ระหว่างแถวที่สามกับแถวที่สี่ ทั้งที่เป็นงานเดียวกัน เพียงเพราะมีคน resize ภาพถ่าย ถ้าขอเป็นย่อหน้าแทน caption จุดตัดก็ขยับอีกครั้ง: ที่ 1280 × 960 ผู้ชนะคือ Gemini สำหรับ caption สี่สิบ token และเป็น OpenAI สำหรับย่อหน้าสี่ร้อย token
คอลัมน์ Gemini ไม่ขยับเลย ในทุกแถว: ภาพถ่าย 4000 \u00d7 3000 มีต้นทุนเท่ากับภาพ 640 \u00d7 480 พอดี ภาพถ่าย 4000 × 3000 มีต้นทุนเท่ากับภาพถ่าย 640 × 480 พอดี นั่นไม่ใช่เพดานราคา แต่เป็นผลจากวิธีนับของมัน และหมายความว่าการปรับต้นทุนที่พบบ่อยที่สุดในธุรกิจนี้ — downsample ก่อน upload — ให้ผลแบบนี้:
| image tokens, 4000 × 3000 → 800 × 600 | ต้นทุนของรัน | ประหยัด | |
|---|---|---|---|
gpt-5.6-luna | 2,942 → 570 | $0.3220 → $0.0848 | 73.7 % |
claude-haiku-4.5 | 1,564 → 638 | $0.9010 → $0.4380 | 51.4 % |
gemini-3.1-flash-lite | 1,032 → 1,032 | $0.1638 → $0.1638 | 0.0 % |
ไม่มีตัวเลขไหนในนี้เป็นราคาที่ผู้ขายประกาศไว้ ทั้งสามต้อง คำนวณ จากกฎสามชุดที่ต่างกัน เพราะไม่มีที่ไหนถือว่าภาพถ่ายเป็นหน่วยคิดเงินจริง: ก่อนอื่นมันถูกแปลงเป็น token ด้วยเลขคณิตที่เขียนไว้ในสามที่ที่เข้ากันไม่ได้
บทที่ 16 สร้างใบเรียกเก็บเงินของ text และหยุดตรงที่ text สิ้นสุด บทนี้คือส่วนที่เหลือของ invoice: รูปภาพ speech transcription วิดีโอ และ raw compute ซึ่งรวมกันแล้วถูกคิดเงินด้วยหน่วยต่างกันแปดแบบ และวิธีเปรียบเทียบสิ่งที่ไม่ได้ขายด้วยมาตรวัดเดียวกัน
แสดงรายละเอียด
สิ่งที่บทนี้ต้องใช้จากบทก่อนหน้า
- บทที่ 7 สร้าง tokenizer และหน่วย ทุกอย่างในบทนี้คือความพยายามแปลงสิ่งที่ไม่ใช่ text ให้กลายเป็นหน่วยนั้น
- บทที่ 8 วางหลักว่าโมเดลบริโภคอะไร: ไม่ใช่สัญลักษณ์ แต่เป็นเวกเตอร์ใน embedding space นั่นคือเหตุผลที่รูปภาพถูกคิดราคาเป็น token ได้ตั้งแต่แรก
- บทที่ 16 สร้าง
computeCost, price tiers และ token buckets ห้าถังของมัน บทนี้ขยาย function นั้น แทนที่จะแทนที่มัน - บทที่ 11 แนะนำ LoRA ในฐานะเทคนิค fine-tuning และ บทที่ 20 คิดราคามันในฐานะการตัดสินใจด้านงบประมาณ ที่นี่มันโผล่มาบนโมเดลที่ไม่ใช่ language model
ไม่มี tensor ตามกฎจาก บทที่ 14: นี่คือภาษีราคา การแปลงหน่วย และบัญชี จึงเป็น TypeScript
ทำไมภาพถ่ายถึงมีราคาเป็น token
ลิงก์ไปยังส่วน: ทำไมภาพถ่ายถึงมีราคาเป็น tokentransformer รับลำดับของเวกเตอร์ มันไม่สนว่าเวกเตอร์เหล่านั้นมาจากไหน บทที่ 8 ป้อน embeddings ที่ lookup จาก token id ให้มัน ไม่มีอะไรใน architecture บังคับว่าต้องมี lookup
ดังนั้น: ตัดภาพเป็นสี่เหลี่ยมขนาดคงที่ แผ่แต่ละสี่เหลี่ยมเป็นรายการตัวเลข แล้วดันแต่ละรายการผ่าน learned linear layer หนึ่งชั้นเพื่อให้ได้เวกเตอร์ที่มีความกว้างเท่ากับของโมเดล patch สีขนาด 32 × 32 คือ ตัวเลข; projection แปลงมันเป็นเวกเตอร์มิติ หนึ่งตัว ซึ่งมี shape เดียวกับที่ text token เข้ามาพอดี ทั้งหมดมีแค่นี้ และนี่คือ paper ที่ชื่อก็บอกไว้: รูปภาพหนึ่งภาพมีค่าเท่ากับคำ 16 × 16 คำ1 เพิ่ม positional encoding เพื่อให้โมเดลรู้ว่าสี่เหลี่ยมไหนอยู่ตรงไหน สลับผลลัพธ์เข้ากับ text embeddings แล้วลำดับที่โมเดลอ่านก็เป็นรูปภาพส่วนหนึ่งและประโยคอีกส่วนหนึ่ง
paper สามฉบับทำให้มันกลายเป็นผลิตภัณฑ์ CLIP ฝึก image encoder และ text encoder ให้เห็นพ้องกัน บนคู่ข้อมูลที่ scrape มา 400 ล้านคู่ ซึ่งเป็นจุดที่แนวคิดว่า pixel และคำสามารถแชร์ space เดียวกันเลิกเป็นแค่สมมติฐาน2 Flamingo เอา frozen vision encoder ไป bolt เข้ากับ frozen language model ด้วย bridging layers ที่ฝึกเพิ่มไม่กี่ชั้น3 LLaVA แสดงว่า bridge เป็น linear projection ชั้นเดียวได้ และสอน instruction-following ด้วยข้อมูลที่สร้างขึ้นได้ ซึ่งเป็นเหตุผลที่ open vision-language model ทุกตัวหลังจากนั้นหน้าตาใกล้เคียงกัน4
ผลต่อ invoice ของคุณตรงไปตรงมาและไม่หวือหวา: patches คือ positions ใน sequence ดังนั้นมันคือ input tokens ดังนั้นคุณจ่ายเงินตาม input rate จำนวนเท่าไรเป็นเลขคณิต และ provider แต่ละรายทำต่างกัน
กฎสามชุด ทั้งหมดเผยแพร่แล้ว แต่ไม่มีชุดไหนเหมือนกัน
ลิงก์ไปยังส่วน: กฎสามชุด ทั้งหมดเผยแพร่แล้ว แต่ไม่มีชุดไหนเหมือนกันกฎทุกข้อด้านล่าง implement จาก documentation ของ provider เอง และตรวจเทียบกับ worked examples ใน documentation เดียวกัน
OpenAI คลุมภาพด้วย patch 32 × 32 แล้วคูณจำนวนด้วย factor ต่อโมเดล หากจำนวน patch เกินงบของโมเดลและ detail level นั้น ภาพจะถูกย่อจนกว่าจะพอดี:
Anthropic คลุมภาพด้วย patch 28 × 28 หนึ่ง visual token ต่อ patch และกำหนดเพดานทั้งด้านยาวและจำนวน token — 1,568 pixels และ 1,568 tokens ในโมเดล standard-tier, 2,576 และ 4,784 ใน tier ความละเอียดสูง ภาพที่ใหญ่เกินจะถูก scale ลงสู่ขนาดใหญ่ที่สุดที่ยังพอดีกับทั้งสองเงื่อนไข5
Google ไม่ได้นับ pixels เลย ภาพที่ทั้งสองด้านยาวไม่เกิน 384 pixels คิดเหมา 258 tokens ภาพที่ใหญ่กว่านั้นจะถูกตัดเป็น tiles tile ละ 258 tokens และ grid ของ tile มาจาก crop unit ขนาด 6
export function openaiImageTokens(
w: number, h: number,
{ maxDim, patchBudget, multiplier }: { maxDim: number; patchBudget: number; multiplier: number },
) {
const fit = Math.min(1, maxDim / Math.max(w, h)); // never enlarges
w = Math.floor(w * fit); h = Math.floor(h * fit);
let patches = Math.ceil(w / 32) * Math.ceil(h / 32);
if (patches > patchBudget) {
const s = Math.sqrt((32 * 32 * patchBudget) / (w * h));
const adj = s * Math.min(
Math.floor((w * s) / 32) / ((w * s) / 32),
Math.floor((h * s) / 32) / ((h * s) / 32));
patches = Math.ceil(Math.floor(w * adj) / 32) * Math.ceil(Math.floor(h * adj) / 32);
}
return Math.ceil(patches * multiplier);
}
export function anthropicVisualTokens(
w: number, h: number,
{ maxLongEdge, maxTokens }: { maxLongEdge: number; maxTokens: number },
) {
const tok = (a: number, b: number) => Math.ceil(a / 28) * Math.ceil(b / 28);
const long = Math.max(w, h), short = Math.min(w, h);
for (let L = Math.min(long, maxLongEdge); L >= 1; L--) {
const t = tok(L, Math.round((short * L) / long));
if (t <= maxTokens) return t;
}
return 0;
}
export function geminiImageTokens(w: number, h: number) {
if (w <= 384 && h <= 384) return 258;
const crop = Math.floor(Math.min(w, h) / 1.5);
return Math.ceil(w / crop) * Math.ceil(h / crop) * 258;
}รันแต่ละกฎกับตัวเลขที่ vendor ของมันพิมพ์เอง:
OpenAI, gpt-5.4 at detail:high (2048 px, 2,500 patches, 1.2x)
1024x1024 -> 1024 patches -> 1229 tokens doc says 1229 MATCH
2048x2048 -> 2500 patches -> 3000 tokens doc says 3000 MATCH
Anthropic, the published table (one tier per row shown)
200x200 std 64 @ 200x200 doc 64, not resized OK
1000x1000 std 1296 @ 1000x1000 doc 1296, not resized OK
1092x1092 std 1521 @ 1092x1092 doc 1521, not resized OK
1920x1080 std 1560 @ 1456x819 doc 1560, 1456x819 OK
2000x1500 std 1564 @ 1269x952 doc 1564, 1269x952 OK
3840x2160 hi 4784 @ 2576x1449 doc 4784, 2576x1449 OK
Google, the worked example
960x540 -> crop 360 -> 3 x 2 = 6 tiles doc says 6 MATCHมีการพิมพ์ความตรงกันเก้ารายการ; การรันเต็มตรวจสิบห้ารายการ เพราะตารางของ Anthropic ให้ทั้งสอง tier สำหรับทั้งหกขนาด ตอนนี้กฎเหล่านี้เป็นของคุณแล้ว จะรันกับภาพถ่ายไหนก็ได้ที่คุณมี และนั่นคือประเด็น: นี่คือ function เพียงสามตัวในบทนี้ที่คุณเอามาจากหน้าราคาไม่ได้
คำว่า "ใหญ่กว่า" หมายถึงอะไร สามแบบ
ลิงก์ไปยังส่วน: คำว่า "ใหญ่กว่า" หมายถึงอะไร สามแบบส่งภาพถ่าย 4:3 ภาพเดียวกันผ่านทั้งสามระบบที่หกขนาด:
| ขนาด | OpenAI, high | Anthropic, standard | Anthropic, high-res | Gemini |
|---|---|---|---|---|
| 384 × 288 | 130 | 154 | 154 | 258 |
| 640 × 480 | 360 | 414 | 414 | 1,032 |
| 800 × 600 | 570 | 638 | 638 | 1,032 |
| 1600 × 1200 | 2,280 | 1,564 | 2,494 | 1,032 |
| 3200 × 2400 | 2,942 | 1,564 | 4,740 | 1,032 |
| 4000 × 3000 | 2,942 | 1,564 | 4,740 | 1,032 |
อ่านคอลัมน์สุดท้ายลงมา เมื่อภาพกว้างเกิน 384 pixels ตัวเลขไม่เปลี่ยนอีกเลย และนั่นไม่ใช่เรื่องบังเอิญหรือเพดาน แทน crop unit กลับเข้าไปในสูตร tile สำหรับภาพที่อย่างน้อยก็กว้างเท่ากับสูง:
ขนาดหักล้างกันหมด image tokens ของ Google ขึ้นกับ aspect ratio และไม่ขึ้นกับอย่างอื่นเลย ภาพถ่าย 4:3 มีสี่ tiles ไม่ว่าจะเป็น thumbnail หรือ poster ข้อเท็จจริงเชิงพีชคณิตข้อนี้เพียงข้อเดียวอธิบายศูนย์ในตาราง savings ด้านบนทั้งหมด และไม่มีหน้าราคาไหนระบุไว้
อีกสองคอลัมน์ใช้เพดานแทน ที่ความสูงต่างกันและด้วยเหตุผลต่างกัน — Anthropic ที่เพดาน token ที่ประกาศไว้, OpenAI ที่ patch budget หลังจาก pixel limit — จึงทำให้เส้นโค้งทั้งสามตัดกันที่ขนาดต่างกัน
ทีนี้ลองทำให้มันพัง วิธีที่ดูชัดเจนในการใช้เงินน้อยลงกับ vision model คือขอรายละเอียดน้อยลง ดังนั้นส่ง detail: "low":
1600x1200 low = 2280 high = 2280 ratio 1.00
3200x2400 low = 3687 high = 2942 ratio 1.25การขอ detail น้อยลง กลับแพงขึ้น 25 % นี่ไม่ใช่ bug และ OpenAI บอกไว้ในบรรทัดหนึ่งของ sizing table: ใน model family นั้น low ใช้ 2048-pixel limit พร้อม 6,144-patch budget ขณะที่ high ใช้ pixel limit เดียวกันพร้อม 2,500-patch budget "so it can use more tokens than high"7 คำว่า low ตั้งชื่อ fidelity setting ไม่ใช่ราคา: ในสองจากห้า model families ที่ document ไว้ มันไม่ประหยัดเลย และในหนึ่งจากสองนั้น มันแพงกว่า
การสร้างภาพหนึ่งภาพเป็นเครื่องจักรคนละแบบ
ลิงก์ไปยังส่วน: การสร้างภาพหนึ่งภาพเป็นเครื่องจักรคนละแบบทุกอย่างจนถึงตอนนี้คือโมเดล อ่าน รูปภาพ การสร้างรูปภาพหนึ่งภาพทำงานบนกลไกที่ไม่มี token อยู่เลย และนั่นคือเหตุผลที่มันถูกขายเป็นราคาต่อภาพ ไม่ใช่ต่อคำ
การสร้างภาพ: ราคาต่อภาพคือราคาต่อ token
ลิงก์ไปยังส่วน: การสร้างภาพ: ราคาต่อภาพคือราคาต่อ tokenVendors เผยแพร่ image generation เป็นราคาต่อภาพ แต่มันไม่ใช่ GPT Image models ปล่อย image tokens เฉพาะทางที่จำนวนขึ้นกับ size และ quality ที่ขอ; คูณจำนวนที่เผยแพร่ด้วย image output rate ที่เผยแพร่ของ GPT Image 1 ที่ $40 ต่อหนึ่งล้าน แล้วเทียบกับราคาต่อภาพในหน้าเดียวกัน:
| quality | 1024 × 1024 | 1024 × 1536 | 1536 × 1024 |
|---|---|---|---|
| low | 272 tok → $0.0109 ($0.011) | 408 tok → $0.0163 ($0.016) | 400 tok → $0.0160 ($0.016) |
| medium | 1,056 tok → $0.0422 ($0.042) | 1,584 tok → $0.0634 ($0.063) | 1,568 tok → $0.0627 ($0.063) |
| high | 4,160 tok → $0.1664 ($0.167) | 6,240 tok → $0.2496 ($0.25) | 6,208 tok → $0.2483 ($0.25) |
ตัวเลขที่ derive มาเก้าตัวเทียบกับตัวเลขที่เผยแพร่เก้าตัว ทุกคู่ตรงกันภายใน $0.00211 Google ยิ่ง explicit กว่านั้น และทำ conversion ให้คุณบนหน้าราคาเอง: image output ที่ $60 ต่อหนึ่งล้าน tokens, "output images at 1K (1024x1024px) consume 1120 tokens and are equivalent to $0.067 per image"12
ดังนั้นราคาต่อภาพคือราคาต่อ token ที่พับจำนวนเข้าไปแล้ว ซึ่งก็ไม่เป็นไร และมันซ่อนบางอย่างไว้ เอาตารางของ generation ปัจจุบันแล้วหารย้อนกลับ:
quality 1024x1024 1024x1536
low $0.006 -> 200 tok $0.005 -> 167 tok
medium $0.053 -> 1767 tok $0.041 -> 1367 tok
high $0.211 -> 7033 tok $0.165 -> 5500 tokภาพที่ ใหญ่กว่า คือภาพที่ ถูกกว่า ในทุก quality canvas 1024 × 1536 มี pixels มากกว่า 1024 × 1024 อยู่ 50 % และใช้ tokens น้อยกว่า 23 % ที่ medium OpenAI ชี้ไว้ในประโยคที่คุณน่าจะข้าม — "a larger non-square resolution can sometimes produce fewer output tokens than a smaller or square resolution at the same quality setting" — และใน model generation ก่อนหน้า มันวิ่งกลับทาง portrait แพงกว่า square 50 %11 ค่า default ของ 1024x1024 ทุกตัวที่เขียนไว้ก่อนการเปลี่ยนแปลงนั้น ตอนนี้เป็นตัวเลือกที่แพง
เสียง คิดเงินตามวินาที ตัวอักษร และ token
ลิงก์ไปยังส่วน: เสียง คิดเงินตามวินาที ตัวอักษร และ tokenขอให้ผลิตภัณฑ์สามตัวพูดข้อความ 519 ตัวอักษรเดียวกัน — เสียงประมาณ 38 วินาที — แล้วคุณได้ระบบหน่วยสามแบบจาก vendors สองราย:
| model | หน่วย | ราคา |
|---|---|---|
tts-1 | ต่อตัวอักษร | $15.00 ต่อหนึ่งล้านตัวอักษร → $0.007785 |
tts-1-hd | ต่อตัวอักษร | $30.00 ต่อหนึ่งล้านตัวอักษร → $0.015570 |
gemini-3.1-flash-tts | ต่อ audio token, 25 ต่อวินาที | $20.00 ต่อหนึ่งล้าน → $0.019319 |
vendor รายเดียวขายทั้งสองหน่วย: tts-1 ของ OpenAI คิดราคาต่อหนึ่งล้านตัวอักษร ขณะที่ gpt-4o-mini-tts คิดราคาต่อหนึ่งล้าน tokens, $0.60 เข้าและ $12.00 ออก13 ดังนั้น "text-to-speech ที่ถูกที่สุด" จึงไม่ใช่คำถามที่มีคำตอบ จนกว่าคุณจะบอกว่าคุณกำลังพูดอะไร
และสองหน่วยนี้บอดต่อสิ่งตรงข้ามกัน ราคาต่อตัวอักษรมองไม่เห็น duration: เลือกเสียงที่ช้า ตั้งใจพูด หรือเพิ่ม pause แล้วบิลไม่ขยับในขณะที่ audio ยาวขึ้น ราคาต่อวินาทีมองไม่เห็น content: สามสิบวินาทีราคาเท่ากันไม่ว่าจะเป็นย่อหน้าทางเทคนิคที่แน่นมาก หรือคนกำลังนับหนึ่งถึงสิบ เปลี่ยน voice แล้ว vendor หนึ่งในสองรายของคุณเท่านั้นที่ reprice
Transcription วิ่งกลับทางและเป็นบรรทัดที่ง่ายที่สุดใน invoice ทั้งหมด — คิดตามนาทีของ audio แบบ flat:
whisper $0.005960 ($0.006 / min)
gpt-transcribe $0.004470 ($0.0045 / min)
gpt-4o-mini-transcribe $0.002980 ($0.003 / min)
gpt-live-transcribe $0.016887 ($0.017 / min)สังเกตแถวสุดท้ายเทียบกับแถวที่สาม: การทำแบบ live ขณะที่คำพูดเข้ามา แพงกว่าการทำกับไฟล์ที่เสร็จแล้ว 5.7 เท่า ช่องว่างนั้นคือราคาของการ batch ไม่ได้ และเป็นสิ่งที่ทำให้ส่วนถัดไปแพง
เสียงหนึ่งนาที แยกรายการ
ลิงก์ไปยังส่วน: เสียงหนึ่งนาที แยกรายการทีนี้คือตัวเลขที่ตัดสินว่า voice เป็น feature หรือ product
สายสนทนา: บทสนทนา support สิบ turn, 149 คำ ซึ่งที่อัตรา 150 words per minute ที่ประกาศไว้ เท่ากับ speech 59.6 วินาที — 21.2 วินาทีพูดโดยผู้โทร, 38.4 วินาทีพูดตอบกลับ token conversions เป็นของ providers เอง OpenAI: "audio tokens in user messages are 1 token per 100 ms of audio, while audio tokens in assistant messages are 1 token per 50 ms"14 Google: 25 tokens ต่อวินาที ทั้งสองทิศทาง ซึ่งหน้าราคายืนยันด้วยการเผยแพร่ $12.00 ต่อหนึ่งล้านและ $0.018 ต่อนาทีในบรรทัดเดียวกัน12
บทสนทนาสะสมเหมือนที่บทที่ 16 บอกไว้ทุกประการ เพราะเป็นกลไกเดียวกัน: "the entire conversation is sent to the model for each Response... thus turns later in the session will be more expensive"14 เพียงแต่ตอนนี้ history ถูกวัดเป็น audio tokens
| turn | user | assistant | fresh audio in | cached audio in | audio out | cost |
|---|---|---|---|---|---|---|
| 1 | 4.4 s | 9.2 s | 44 | 0 | 184 | $0.013224 |
| 2 | 5.6 s | 9.6 s | 56 | 228 | 192 | $0.014211 |
| 3 | 5.2 s | 9.2 s | 52 | 476 | 184 | $0.013670 |
| 4 | 4.0 s | 4.8 s | 40 | 712 | 96 | $0.007749 |
| 5 | 2.0 s | 5.6 s | 20 | 848 | 112 | $0.008187 |
ทีนี้คือการเปรียบเทียบที่ตัดสิน product ทั้งสี่ normalise เป็นหนึ่งนาที:
| ต่อนาที | เทียบกับ text | |
|---|---|---|
gpt-realtime-2.1, no caching | $0.131259 | 37.9× |
gpt-realtime-2.1, history cached | $0.057425 | 16.6× |
gemini-3.1-flash-live, no caching | $0.023965 | 6.9× |
คำเดียวกันที่พิมพ์, gpt-5.6-terra | $0.003461 | — |
สามสิบแปดเท่า ไม่ใช่สามสิบแปดเปอร์เซ็นต์ การแลกเปลี่ยนข้อมูลเดียวกันทุกอย่าง แต่ทำในรูปเสียงแทน text แพงกว่าเกือบสอง order of magnitude และช่องว่างนั้นไม่มีส่วนไหนเป็น margin ที่ใครเลือกจะชาร์จ — มันคือ conversion rate เสียง assistant หนึ่งวินาทีคือยี่สิบ tokens วินาทีเดียวกันนั้นบรรทุก 2.5 คำตาม rate ที่ประกาศ และ transcript ที่วัดได้วิ่งที่ 1.26 tokens ต่อคำ ดังนั้นเมื่อเป็น text มันคือ 3.15 tokens เสียงเป็น package ที่ เทอะทะกว่า 6.3 เท่า สำหรับความหมายเดียวกัน และ token ของมันแต่ละตัวถูกคิดเงินที่ 5.3 เท่าของ text output rate และ 16 เท่าของ text input rate คูณ bulk ratio ด้วย price ratio แล้ว order of magnitude ก็อยู่ตรงนั้นแล้วก่อนบัญชีใด ๆ จะเริ่ม
ผลเชิงปฏิบัติการสองอย่างหล่นออกจากตารางโดยตรง
Audio caching ไม่ใช่ optimisation แต่มันคือ business model Cached audio input อยู่ที่ $0.40 ต่อหนึ่งล้าน เทียบกับ fresh $32.00 — ส่วนลด 98.75 % ที่ลดค่า call ลงครึ่งหนึ่ง กฎคือของบทที่ 16 ไม่เปลี่ยน: cache match prefix ดังนั้นอะไรที่ถูกแทรกไว้ด้านหน้าของบทสนทนากลางสายจะทำลายมัน และตำแหน่งธรรมชาติที่จะใส่ "ตอนนี้ผู้โทรยืนยันตัวตนแล้ว" ก็คือตรงนั้นพอดี
และไม่มีอะไรที่คุณทำใน client จะ un-bill เสียงได้ ผู้ใช้พูดแทรก assistant, code ของคุณหยุด playback, speaker เงียบลง อะไรก็ตามที่ถูก generate ไปแล้วถูก charge ไปแล้ว เพราะ billing accrue เมื่อ response ถูกสร้าง; และตามกฎของบทที่ 16 อะไรก็ตามที่ยังอยู่ใน conversation จะถูกส่งซ้ำเป็น input audio ทุก turn หลังจากนั้น บทที่ 14 พูดประเด็นนี้เกี่ยวกับการ abort text stream ใน voice มันแพงกว่าสามสิบเท่า
วิดีโอ, GPU-seconds, และราคาที่ไม่ใช่ราคา
ลิงก์ไปยังส่วน: วิดีโอ, GPU-seconds, และราคาที่ไม่ใช่ราคาวิดีโอถูกขายเป็นราคาต่อวินาทีโดย vendors บางราย และต่อ clip โดยบางราย พร้อม tiers ตาม resolution และบางครั้งตาม duration รูปทรงสองแบบนี้ไม่ได้ต่างกันแค่ความสะดวก; มันตัดกัน
| model | 1 s | 2 s | 5 s | 10 s | 20 s |
|---|---|---|---|---|---|
veo-3.1, ต่อวินาที, 1080p | $0.400 | $0.800 | $2.000 | $4.000 | $8.000 |
veo-3.1-fast, ต่อวินาที, 1080p | $0.120 | $0.240 | $0.600 | $1.200 | $2.400 |
sora-2, ต่อวินาที, 720p | $0.100 | $0.200 | $0.500 | $1.000 | $2.000 |
hailuo-02, ต่อ clip, 1080p | $0.480 | $0.480 | $0.480 | $0.480 | $0.480 |
mochi, ต่อ GPU-second | $0.018 | $0.037 | $0.092 | $0.183 | $0.366 |
vendor แบบต่อ clip แพงกว่าแบบต่อวินาทีเมื่อสั้นกว่า 1.2 วินาที และถูกกว่า 16.7 เท่าที่ความยาวยี่สิบวินาที ไม่มีการจัดอันดับของสองโมเดลนี้ที่รอดจากการเปลี่ยนความยาว clip ดังนั้น "video model ไหนถูกที่สุด" จึงไม่ใช่คำถามเกี่ยวกับโมเดล
แถวสุดท้ายแย่กว่า และเป็นหัวใจที่ซื่อสัตย์ของบทนี้ mochi ถูกคิดเงินตาม GPU seconds จริง — prediction time ที่วัดได้ของ job — ที่ $0.001400 ต่อวินาทีบน A100 และ $0.001525 บน H100 ซึ่งเป็น rate ของเครื่องเช่าเท่านั้น15 นั่นเป็น tariff ที่แม่นยำสมบูรณ์แบบ และมัน ไม่ใช่ราคา เพราะปริมาณที่มันคูณด้วยไม่รู้จนกว่าคุณจะ commit ว่าจะจ่ายมันไปแล้ว แถวด้านบน assume สิบสอง GPU-seconds ต่อหนึ่งวินาทีของ output; เพิ่มสมมติฐานนั้นสี่เท่าแล้วมันหลุดจาก band ที่ถูกที่สุด และเมื่อหกเท่าเท่านั้นจึงลงกลางตาราง มันเป็น tariff เดียวในหน้านี้ที่คุณใส่ใน quote ไม่ได้
ตัว normaliser
ลิงก์ไปยังส่วน: ตัว normaliserดังนั้น: tokens, image tokens, ตัวอักษร, นาที, video seconds, clips ทั้งก้อน, GPU seconds, flat units แปดปริมาณ และวิธีเดียวที่จะวางทั้งหมดบนแกนเดียวกันได้คือประกาศ workload แล้วคิดราคา
นี่คือ extension ของ computeCost จากบทที่ 16 — tier machinery เดิม แต่ตอนนี้มี criteria ที่ไม่ใช่ prompt length:
export interface MediaCriteria {
resolution?: string[]; quality?: string[];
hasAudio?: boolean; maxDurationSeconds?: number;
}
export interface MediaTier { when?: MediaCriteria; price: number }
export type MediaRate = number | MediaTier[];
const matches = (when: MediaCriteria, u: Usage) => {
const inList = (l?: string[], v?: string) => !l || (v !== undefined && l.includes(v));
if (!inList(when.resolution, u.resolution)) return false;
if (!inList(when.quality, u.quality)) return false;
if (when.hasAudio !== undefined && when.hasAudio !== (u.hasAudio ?? false)) return false;
if (when.maxDurationSeconds !== undefined
&& (u.videoSeconds ?? 0) > when.maxDurationSeconds) return false;
return true;
};
const mediaPrice = (rate: MediaRate | undefined, u: Usage): number => {
if (rate === undefined) return 0;
if (typeof rate === "number") return rate;
for (const t of rate.filter((t) => t.when)) if (matches(t.when!, u)) return t.price;
return rate.find((t) => !t.when)?.price ?? 0; // the tier with no criteria is the default
};
export function computeCost(p: Pricing, u: Usage): number {
let c = textCost(p, u); // Chapter 16, unchanged
if (p.imageInputToken || p.imageOutputToken) {
c += (u.imageInputTokens ?? 0) * (p.imageInputToken ?? 0)
+ (u.imageOutputTokens ?? 0) * (p.imageOutputToken ?? 0);
} else if (p.imageUnit !== undefined) c += (u.images ?? 1) * mediaPrice(p.imageUnit, u);
if (p.videoSecond !== undefined) c += (u.videoSeconds ?? 0) * mediaPrice(p.videoSecond, u);
if (p.videoUnit !== undefined) c += (u.videoCount ?? 1) * mediaPrice(p.videoUnit, u);
c += (u.audioInputTokens ?? 0) * (p.audioInputToken ?? 0)
+ (u.cachedAudioInputTokens ?? 0) * (p.cachedAudioInputToken ?? p.audioInputToken ?? 0)
+ (u.audioOutputTokens ?? 0) * (p.audioOutputToken ?? 0)
+ (u.computeSeconds ?? 0) * (p.computeSecond ?? 0)
+ (u.chars ?? 0) * (p.perChar ?? 0)
+ (u.minutes ?? 0) * (p.perMinute ?? 0);
return c;
}สองบรรทัดที่ mark ไว้คือจุดที่มันพัง tariff ที่ quote ต่อ unit คูณ u.images ?? 1; tariff ที่ quote ต่อ token คูณสิ่งที่ default เป็นศูนย์ ป้อน usage ว่างให้ทั้งคู่ — shape ที่คุณได้เมื่อ measurement ล้มเหลว — แล้วดู:
per image (nano-banana-pro) empty usage => $0.1500
per clip (hailuo-02) empty usage => $0.1500
per unit (a cloned voice) empty usage => $3.0000
per token (gpt-image-2) empty usage => $0.0000
per second (veo-3.1) empty usage => $0.0000
per GPU-second (mochi) empty usage => $0.0000ไม่มีอะไรเกิดขึ้นหกครั้ง และมัน cost สามดอลลาร์หนึ่งครั้งกับไม่ cost อะไรเลยห้าครั้ง นั่นไม่ใช่ความต่างจาก rounding; มันคือการตัดสินใจว่าเลขที่หายไปหมายความว่าอะไร ซึ่งถูกทำแยกกันสำหรับแต่ละ unit และไม่เคยเขียนไว้ กฎที่ถูกต้องคือ field ที่ไม่มีใครวัดจะยังคง absent เพราะ "not measured" กับ "measured and came out zero" เป็นคนละเรื่องกัน function นี้กลับไม่เห็นด้วยอย่างเงียบ ๆ
failure ที่สองคือ duration tariff แบบคิดราคา clip เลือก tier ด้วย maxDurationSeconds เทียบกับ u.videoSeconds ?? 0 ดังนั้น usage ที่ไม่เคยบันทึก duration จะ match tier ที่ สั้นที่สุด:
duration recorded -> $0.45
duration missing -> $0.27ลด 40 เปอร์เซ็นต์เพราะไม่รู้ว่าวิดีโอยาวเท่าไร bug ทั้งสองมีรากเดียวกัน: default ที่เลือกเพื่อความสะดวกภายใน function ที่หน้าที่ทั้งหมดคือความแม่นยำ
ทำให้ตัวเลขเปรียบเทียบกันได้
ลิงก์ไปยังส่วน: ทำให้ตัวเลขเปรียบเทียบกันได้เมื่อคำนวณต้นทุนได้แล้ว การเปรียบเทียบต้องมีอีกครึ่งหนึ่ง — workload ตัวแทนที่ประกาศไว้ หนึ่งรายการต่อ engine ระบุแบบสาธารณะเพื่อให้ผู้อ่านไม่เห็นด้วยได้:
export const representative = {
text: { blend: [[{ promptTokens: 1e6 }, 0.25], [{ completionTokens: 1e6 }, 0.75]] },
image: { images: 1, imageInputTokens: 50, imageOutputTokens: 1500 },
video: { videoSeconds: 5, videoCount: 1, resolution: "1080p", hasAudio: true, computeSeconds: 60 },
voice: { chars: 1000, computeSeconds: 10 },
stt: { minutes: 1 },
};ทุกบรรทัดในนั้นคือ argument Text ผสม input หนึ่งในสี่และ output สามในสี่ เพราะการใช้งานจริงเอนเอียงไปทาง output; blend ห้าสิบห้าสิบจัดอันดับโมเดลต่างออกไป image workload assume output tokens 1,500 ระหว่าง 1,056 ของ OpenAI สำหรับ medium square กับ 1,584 สำหรับ medium portrait วิดีโอ assume ห้าวินาทีที่ 1080p และเราเพิ่งเห็น vendors สองรายสลับตำแหน่งกันที่ 1.2 วินาที compute entry assume หกสิบ GPU-seconds เพราะไม่มีอย่างอื่นให้ assume
นี่คือวิธีการ และเป็นวิธีเดียวที่ซื่อสัตย์ที่มี: คุณเปรียบเทียบราคาในหน่วยต่างกันไม่ได้; คุณเปรียบเทียบได้เพียงต้นทุนของ workload ที่คุณเขียนไว้ ตารางใดก็ตามที่ rank multimodal models โดยไม่พิมพ์ workload ของตัวเอง กำลัง rank สมมติฐานของตัวเอง
ต่อจากนี้ไปไหน
ลิงก์ไปยังส่วน: ต่อจากนี้ไปไหนตอนนี้คุณคิดราคาทุกอย่างที่โมเดลผลิตได้ ไม่ว่าจะขายในหน่วยไหน และพูดออกมาชัดเจนได้ว่า comparison ของคุณ assume workload ใด นั่นปิด invoice ที่บทที่ 16 เปิดไว้ และปิด Part III: ทุกอย่างตั้งแต่บทที่ 14 ถึงตรงนี้ว่าด้วย หนึ่ง call — ทำอย่างไร ใส่อะไรเข้าไป sample อย่างไร return อะไร cost เท่าไร
บทที่ 22 เปลี่ยน unit of analysis และการเปลี่ยนนั้นแพง agent ไม่ใช่หนึ่ง call; มันคือ loop ที่ตัดสินใจเองว่าจะทำกี่ call และเลขคณิตของสองบทล่าสุดคือสิ่งที่แปลงมันจาก architecture diagram เป็น budget บทนั้นเปิดด้วยการถามคำถามเดียวกันกับโมเดลเดียวกันสองครั้ง โดยเพิ่ม tool หนึ่งตัวเข้า catalogue ในครั้งที่สอง แล้ววัดว่า tool หนึ่งตัวนั้นทำอะไร: หนึ่ง call กลายเป็นสอง, input tokens สามสิบเก้ากลายเป็น 420
สิ่งนั้นจะทำให้มันเป็น agent หรือไม่ ขึ้นกับว่าคุณเปิดนิยามที่เผยแพร่ไว้ชุดใดในสองชุด และสองชุดนั้นไม่เห็นตรงกัน ชุดหนึ่งยังไม่เห็นตรงกับตัวเองด้วยซ้ำ
แหล่งที่มาและวิธีการ
ลิงก์ไปยังส่วน: แหล่งที่มาและวิธีการราคา สูตร และ conversion rate ทุกตัวในบทนี้อ่านจากหน้าของ provider เองเมื่อ 7 กันยายน 2026 และ quote พร้อมวันที่นั้น เพราะทั้งหมดจะขยับ token counts, costs และ comparisons คำนวณจากข้อมูลนั้นด้วย code ที่พิมพ์ด้านบน บนเครื่องเดียว โดยไม่ได้เรียก paid API เลย — ซึ่งเป็นเหตุผลที่ซื่อสัตย์เช่นกันว่าทำไมบทนี้จึงไม่มี latency claim แม้แต่รายการเดียว
image-token functions, cost tables, voice-call breakdown และ empty-usage results ผลิตโดย TypeScript ที่พิมพ์ในบทนี้ รันบน Node 22 dialogue ที่ใช้สำหรับ voice comparison มี 149 คำ และถูก tokenize ด้วย tiktoken ภายใต้ encoding o200k_base ที่ 188 tokens; duration ของมันมาจาก declared rate 150 words per minute ซึ่งเป็น parameter ของ comparison ไม่ใช่ measurement ตัวเลข provider ทุกตัวมี footnote ที่ระบุหน้าแหล่งที่มา
รายการอ้างอิง
ลิงก์ไปยังส่วน: รายการอ้างอิง-
Dosovitskiy, A. et al. An Image Is Worth 16x16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929 (2020). Patches, linear projection เข้า embedding dimension, และ position embeddings ที่ทำให้ grid อ่านได้สำหรับ sequence model ↩
-
Radford, A. et al. Learning Transferable Visual Models From Natural Language Supervision. arXiv:2103.00020 (2021). contrastive training ของ image encoder และ text encoder บน 400 ล้านคู่ และ shared space ที่ทุกอย่าง downstream assume ↩
-
Alayrac, J.-B. et al. Flamingo: a Visual Language Model for Few-Shot Learning. arXiv:2204.14198 (2022). Frozen vision encoder, frozen language model, bridging layers ที่ฝึกแล้ว — architecture ที่เปลี่ยน image understanding ให้เป็นความสามารถใน chat ↩
-
Liu, H., Li, C., Wu, Q. and Lee, Y. J. Visual Instruction Tuning. arXiv:2304.08485 (2023). linear projection ชั้นเดียวในฐานะ bridge และ generated instruction data ในฐานะ training set; เหตุผลที่ open vision-language models converge ไปยัง shape เดียว ↩
-
Anthropic, Vision,
platform.claude.com/docs/en/build-with-claude/vision, เข้าถึง 2026-09-07 "Claude views images in patches instead of pixels. Each patch is a 28×28-pixel block of the image, referred to as a visual token. An image, therefore, costs ⌈width / 28⌉ × ⌈height / 28⌉ visual tokens." รวมถึง resolution tiers สองระดับ (standard: ด้านยาว 1568-pixel, 1568 visual tokens; high-resolution บน Claude 4.7 และหลังจากนั้น: 2576 pixels และ 4784 tokens), downsizing rule, และตารางหกแถวของขนาดและ token counts ที่ทำซ้ำด้านบน Model rates จาก Anthropic, Pricing,platform.claude.com/docs/en/about-claude/pricing, วันที่เดียวกัน: Claude Haiku 4.5 ที่ $1 และ $5 ต่อหนึ่งล้าน input และ output tokens ↩ -
Google, Image understanding,
ai.google.dev/gemini-api/docs/image-understanding, เข้าถึง 2026-09-07 "258 tokens if both dimensions <= 384 pixels. Larger images are tiled into 768x768 pixel tiles, each costing 258 tokens" พร้อม crop-unit formula —floor(min(width, height) / 1.5), dimensions หารด้วยมันแล้วคูณกัน — และ worked example ของ 960 × 540 ที่ให้ 3 × 2 = 6 tiles Google เรียกมันว่า "a rough formula"; scale-invariance ที่ derive ด้านบนเป็น property ของ formula ตามที่เผยแพร่ Audio input บน family เดียวกันคือ 32 tokens ต่อวินาทีของ audio (ai.google.dev/gemini-api/docs/audio, วันที่เดียวกัน) ↩ -
OpenAI, Images and vision,
developers.openai.com/api/docs/guides/images-vision, เข้าถึง 2026-09-07 แหล่งที่มาของกฎแบบ patch-based (patch 32 × 32,patch_count = ceil(width/32)×ceil(height/32), สูตรshrink_factorและการปรับ integer ของมัน, rejection limit 30,000 patches); model sizing table รวมถึงว่าlowบนgpt-5.4ใช้ 2048-pixel limit และ 6,144-patch budget "so it can use more tokens thanhigh" เทียบกับ 2,500-patch budget ของhigh; multiplier table (1.2 สำหรับ GPT-5.x families, 1.62 สำหรับgpt-4.1-mini, 2.46 สำหรับgpt-4.1-nano); worked examples สองรายการที่ทำซ้ำด้านบน (1024 × 1024 → 1229 tokens, 2048 × 2048 → 3000 tokens); กฎแบบ tile-based สำหรับโมเดลรุ่นเก่า (base plus 512-pixel tiles, 85 + 170 บนgpt-4o); และรายการ limitations ที่ quote ในกล่อง vision ↩ ↩2 -
Ho, J., Jain, A. and Abbeel, P. Denoising Diffusion Probabilistic Models. arXiv:2006.11239 (2020). forward noising schedule, reparameterisation ที่เปลี่ยน objective เป็นการทำนาย noise ที่เติมเข้าไป, และ sampling loop ↩
-
Rombach, R., Blattmann, A., Lorenz, D., Esser, P. and Ommer, B. High-Resolution Image Synthesis with Latent Diffusion Models. arXiv:2112.10752 (2022). การรัน diffusion process ใน compressed latent space ซึ่งเป็นสิ่งที่ทำให้ fixed step count ราคาถูกพอจะขายต่อภาพได้ ↩
-
Prince, S. J. D. Understanding Deep Learning (MIT Press, 2023), chapter 18. delegation ที่ประกาศไว้สำหรับทุกอย่างเกี่ยวกับ diffusion ที่บทนี้ข้าม — variational bound, noise schedules, classifier-free guidance และ sampler families Hu, E. et al., LoRA: Low-Rank Adaptation of Large Language Models, arXiv:2106.09685 (2021), คือ adapter เอง ซึ่งแนะนำในบทที่ 11 บน language model และใช้ที่นี่บน image model โดยคณิตศาสตร์ไม่เปลี่ยน Radford, A. et al., Robust Speech Recognition via Large-Scale Weak Supervision (Whisper), arXiv:2212.04356 (2022), คือ transcription model ที่มีราคาต่อนาทีปรากฏด้านบน ↩
-
OpenAI, Image generation,
developers.openai.com/api/docs/guides/image-generation, Pricing,developers.openai.com/api/docs/pricing, และ model page สำหรับgpt-image-1, ทั้งหมดเข้าถึง 2026-09-07 model page สำหรับgpt-image-2ไม่มี pricing section; rates ของมันมาจาก pricing page ด้านบน หน้า GPT Image 1 เผยแพร่ text input ที่ $5.00, image input ที่ $10.00 และ image output ที่ $40.00 ต่อหนึ่งล้าน tokens ข้าง per-image table ที่ใช้ในการ derivation ด้านบน รวมถึง: output-token table สำหรับโมเดลก่อน gpt-image-2 (272 / 408 / 400 low, 1056 / 1584 / 1568 medium, 4160 / 6240 / 6208 high, สำหรับ square, portrait และ landscape); per-image price tables สำหรับ GPT Image 2, 1.5, 1 และ 1 Mini ที่ใช้ในการ derivations ด้านบน; ประโยค "a larger non-square resolution can sometimes produce fewer output tokens than a smaller or square resolution at the same quality setting"; note ว่า streamed partial image แต่ละภาพ cost image output tokens เพิ่ม 100; และ rates ของ gpt-image-2 ที่ $8.00 image input, $2.00 cached image input, $30.00 image output และ $5.00 text input ต่อหนึ่งล้าน tokens Text model rates ที่ใช้สำหรับ comparisons:gpt-5.6-terraที่ $2.00 input, $0.20 cached input และ $12.00 output,gpt-5.6-lunaที่ $0.20 และ $1.20, standard tier, short context Video:sora-2ที่ $0.10 ต่อวินาทีที่ 720p และsora-2-proที่ $0.30, $0.50 และ $0.70 ที่ 720p, 1024p และ 1080p Transcription: $0.006, $0.0045, $0.003 และ $0.017 ต่อนาทีสำหรับgpt-4o-transcribe,gpt-transcribe,gpt-4o-mini-transcribeและgpt-live-transcribe↩ ↩2 -
Google, Gemini Developer API pricing,
ai.google.dev/gemini-api/docs/pricing, เข้าถึง 2026-09-07 Gemini 3.1 Flash-Lite ที่ $0.25 ต่อหนึ่งล้าน input tokens (text, image และ video) และ $1.50 output Gemini 3.1 Flash Image: image output ที่ $60 ต่อหนึ่งล้าน tokens พร้อม equivalences ที่เผยแพร่ของ 747, 1120, 1680 และ 2520 tokens สำหรับภาพ 0.5K, 1K, 2K และ 4K และ per-image prices ของ $0.045, $0.067, $0.101 และ $0.151 Gemini 3.1 Flash TTS: $1.00 text input, $20.00 audio output, "audio tokens correspond to 25 tokens per second of audio" Gemini 3.1 Flash Live Preview: $0.75 text และ "$3.00 or $0.005/min" audio input, "$4.50 (text) $12.00 or $0.018/min (audio)" output Veo 3.1 ต่อวินาทีพร้อม audio: $0.40 ที่ 720p และ 1080p และ $0.60 ที่ 4K standard; $0.10, $0.12 และ $0.30 fast Gemini Omni Flash bill video output "at a rate of 5,792 tokens per second of 720p video" ซึ่ง footnote เดียวกันแปลงเป็นประมาณ $0.10 ต่อวินาที — statement ที่ชัดที่สุดที่เผยแพร่ที่ไหนก็ตามว่า media price ต่อวินาทีคือ token price ↩ ↩2 -
OpenAI model pages สำหรับ
tts-1,tts-1-hdและgpt-4o-mini-tts,developers.openai.com/api/docs/models, เข้าถึง 2026-09-07tts-1ที่ $15.00 และtts-1-hdที่ $30.00 ต่อหนึ่งล้าน characters;gpt-4o-mini-ttsที่ $0.60 ต่อหนึ่งล้าน text input tokens และ $12.00 ต่อหนึ่งล้าน audio output tokens — vendor เดียวกัน operation เดียวกัน สองหน่วย ↩ -
OpenAI, Managing costs (Realtime API),
developers.openai.com/api/docs/guides/realtime-costs, เข้าถึง 2026-09-07 "Audio tokens in user messages are 1 token per 100 ms of audio, while audio tokens in assistant messages are 1 token per 50ms of audio." รวมถึง: "The entire conversation is sent to the model for each Response... thus turns later in the session will be more expensive"; costs accrue เมื่อ Response ถูกสร้าง; worked two-turn example ที่ตารางด้านบน reproduce การสะสม; และ usage payloadresponse.doneพร้อม splitsinput_token_detailsและoutput_token_detailsRates จาก pricing page วันที่เดียวกัน: audiogpt-realtime-2.1ที่ $32.00 input, $0.40 cached input และ $64.00 output ต่อหนึ่งล้าน tokens, text ที่ $4.00, $0.40 และ $24.00, image input ที่ $5.00 ↩ ↩2 -
Replicate, Pricing,
replicate.com/pricing, เข้าถึง 2026-09-07 Nvidia A100 (80GB) ที่ $0.001400 ต่อวินาทีและ $5.04 ต่อชั่วโมง; Nvidia H100 ที่ $0.001525 ต่อวินาทีและ $5.49 ต่อชั่วโมง ↩