تسعير Multimodal: ما الذي تُحاسَب عليه الصور والصوت والفيديو فعلاً
ثلاثة نماذج تعطي تكلفة تختلف 5.5× للصور الـ500 نفسها، والأرخص يتبدّل بمجرد تغيير الحجم.
في هذه الصفحة
إليك مهمة واحدة، بثلاث طرق تسعير: وصف خمسمئة صورة منتجات، بتعليق قصير واحد لكل صورة. الصور نفسها، والتعليمة نفسها، وطول الإجابة نفسه. الشيء الوحيد الذي يتغير هو النموذج الذي يقرأها.
| الصورة | 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 |
هناك ثلاثة أمور في هذا الجدول تستحق التوقف عندها.
النموذج الأرخص يتغير بين الصف الثالث والرابع، في المهمة نفسها، لأن شخصاً ما غيّر حجم الصور. اطلب فقرة بدلاً من تعليق، فتتحرك نقطة التقاطع من جديد: عند 1280 × 960 يكون الفائز Gemini لتعليق من أربعين token، وOpenAI لفقرة من أربعمئة token.
عمود Gemini لا يتحرك إطلاقاً في أي صف: صورة 4000 \u00d7 3000 تكلّفه بالضبط ما تكلّفه صورة 640 \u00d7 480. صورة 4000 × 3000 تكلّفه بالضبط ما تكلّفه صورة 640 × 480. هذا ليس سقفاً. إنه نتيجة لطريقة العد، ويعني أن أكثر تحسين تكلفة شيوعاً في هذا المجال — تصغير الصورة قبل رفعها — يعطي العائد التالي:
| 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 % |
لا يوجد رقم من هذه الأرقام كسعر ينشره المورّد. كان لا بد من حساب الثلاثة جميعاً، من ثلاث قواعد مختلفة، لأن الصورة ليست وحدة قابلة للفوترة في أي مكان: تُحوَّل أولاً إلى tokens، وفق حساب مكتوب في ثلاثة مواضع غير متوافقة.
بنى الفصل 16 فاتورة النص وتوقف حيث يتوقف النص. هذا الفصل هو بقية الفاتورة: الصور، والكلام، والتفريغ، والفيديو، والحوسبة الخام، وهي مجتمعة تُفوَّتر بثماني وحدات مختلفة، مع طريقة لمقارنة أشياء لا تُباع بالمقياس نفسه.
عرض التفاصيل
ما يحتاجه هذا الفصل من الفصول السابقة.
- بنى الفصل 7 الـtokenizer والوحدة. كل ما هنا محاولة لتحويل شيء ليس نصاً إلى تلك الوحدة.
- أثبت الفصل 8 ما يستهلكه النموذج: ليس رموزاً، بل متجهات في فضاء embedding. لهذا يمكن تسعير صورة بـtokens أصلاً.
- بنى الفصل 16 الدالة
computeCost، وشرائح أسعارها، وخمس سلال token الخاصة بها. هذا الفصل يوسّع تلك الدالة بدلاً من استبدالها. - قدّم الفصل 11 LoRA كتقنية fine-tuning، وسعّره الفصل 20 كقرار ميزانية. هنا يظهر على نموذج ليس نموذج لغة.
لا tensors، وفق قاعدة الفصل 14: هذا فصل تعرفة وتحويلات ومحاسبة، لذا فهو TypeScript.
لماذا للصورة سعر token
رابط إلى القسم: لماذا للصورة سعر tokenيتلقى transformer تسلسلاً من المتجهات. لا رأي له في مصدرها. في الفصل 8 أطعمناه embeddings مستخرجة من معرّف token؛ لا شيء في البنية يفرض عملية lookup هذه.
إذن: اقطع الصورة إلى مربعات ثابتة، وافرد كل مربع إلى قائمة أرقام، ومرّر كل قائمة عبر طبقة خطية متعلّمة واحدة للحصول على متجه بعرض النموذج. رقعة 32 × 32 من بكسلات اللون هي أرقام؛ والإسقاط يحوّلها إلى متجه ذي أبعاد، بالشكل نفسه تماماً الذي يصل به text token. هذا كل شيء، وهو ما تقوله الورقة في عنوانها: الصورة تساوي 16 × 16 كلمة.1 أضف ترميزاً موضعياً حتى يعرف النموذج أي مربع كان في أي مكان، وامزج النتائج مع text embeddings، فيصبح التسلسل الذي يقرأه النموذج جزءاً صورة وجزءاً جملة.
حوّلت ثلاث أوراق ذلك إلى منتج. درّب CLIP مُرمِّز صور ومُرمِّز نصوص على الاتفاق، باستخدام أربعمئة مليون زوج مجروف من الويب، وهناك توقفت فكرة أن البكسلات والكلمات يمكنها مشاركة فضاء عن كونها فرضية.2 ثبّت Flamingo مُرمِّز رؤية مجمّداً على نموذج لغة مجمّد مع بضع طبقات وصل مدرّبة.3 وأظهر LLaVA أن الجسر يمكن أن يكون إسقاطاً خطياً واحداً، وأن اتباع التعليمات يمكن تعليمه ببيانات مولّدة، وهذا سبب أن كل نموذج رؤية-لغة مفتوح منذ ذلك الحين يبدو تقريباً بالشكل نفسه.4
الأثر على فاتورتك مباشر وغير مبهر: الرقع مواقع في التسلسل، إذن هي input tokens، إذن تدفع ثمنها بسعر الإدخال. كم عددها؟ هذا حساب، وكل مزوّد ينفذه بطريقة مختلفة.
ثلاث قواعد، كلها منشورة، ولا واحدة مثل الأخرى
رابط إلى القسم: ثلاث قواعد، كلها منشورة، ولا واحدة مثل الأخرىكل قاعدة أدناه منفذة من وثائق المزوّد نفسه ومراجَعة مقابل الأمثلة المحلولة في الوثائق نفسها.
يغطي OpenAI الصورة برقع 32 × 32 ويضرب العدد في عامل خاص بكل نموذج. إذا تجاوز عدد الرقع الميزانية المخصصة لذلك النموذج ومستوى التفاصيل، تُصغَّر الصورة حتى تلائمها:
يغطي Anthropic الصورة برقع 28 × 28، token بصري واحد لكل رقعة، ويضع سقفاً للحافة الطويلة وعدد الـtokens معاً — 1,568 بكسل و1,568 token في نماذج الفئة القياسية، و2,576 و4,784 في فئة الدقة العالية. الصور الضخمة تُصغَّر إلى أكبر حجم يلائم القيدين.5
لا يعدّ Google البكسلات إطلاقاً. الصورة التي لا يتجاوز كلا ضلعيها 384 بكسل تكلّف 258 token ثابتة. أي شيء أكبر يُقطع إلى tiles من 258 token لكل tile، وتأتي شبكة الـtile من وحدة قص .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;
}شغّل كل قاعدة على الأرقام التي يطبعها مورّدها:
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 يعطي الفئتين لكل الأحجام الستة. أصبحت القواعد الآن لديك لتشغيلها على أي صورة تمتلكها، وهذا هو المقصود: هذه هي الدوال الثلاث الوحيدة في هذا الفصل التي لا يمكنك الحصول عليها من صفحة أسعار.
ماذا تعني «أكبر»، ثلاث مرات
رابط إلى القسم: ماذا تعني «أكبر»، ثلاث مراتمرّر صورة 4:3 نفسها عبر الثلاثة بستة أحجام:
| الحجم | OpenAI، high | Anthropic، قياسي | Anthropic، دقة عالية | 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 بكسل لا يتغير الرقم مرة أخرى، وهذا ليس مصادفة ولا سقفاً. أعد إدخال وحدة القص في معادلة الـtile، لصورة عرضها لا يقل عن ارتفاعها:
يلغي الحجم نفسه. image tokens في Google تعتمد على نسبة العرض إلى الارتفاع ولا شيء غيرها. صورة 4:3 تساوي أربعة tiles سواء كانت مصغّرة أو ملصقاً كبيراً. هذه الحقيقة الجبرية الواحدة هي التفسير الكامل للصفر في جدول التوفير أعلاه، ولا تذكرها أي صفحة أسعار في أي مكان.
أما العمودان الآخران فيقفان عند سقف، لكن عند ارتفاعات مختلفة ولأسباب مختلفة — Anthropic عند سقف token معلن، وOpenAI عند ميزانية رقع بعد حد بكسلات — ولهذا تتقاطع المنحنيات الثلاثة عند أحجام مختلفة.
والآن اكسرها. الطريقة البديهية لإنفاق أقل على نموذج رؤية هي طلب تفاصيل أقل، لذا أرسل detail: "low":
1600x1200 low = 2280 high = 2280 ratio 1.00
3200x2400 low = 3687 high = 2942 ratio 1.25طلب تفاصيل أقل كلّف 25 % أكثر. هذه ليست علة، وOpenAI يقول ذلك في سطر واحد من جدول التحجيم: في عائلة النماذج تلك، يستخدم low حد 2048 بكسل مع ميزانية 6,144 رقعة، بينما يستخدم high حد البكسلات نفسه مع ميزانية 2,500 رقعة، «لذا يمكنه استخدام tokens أكثر من high».7 الكلمة low تسمّي إعداد دقة، لا سعراً: في اثنتين من عائلات النماذج الخمس الموثقة لا تشتري أي توفير إطلاقاً، وفي واحدة من هاتين الاثنتين تكلّف أكثر.
توليد صورة آلة مختلفة
رابط إلى القسم: توليد صورة آلة مختلفةكل ما سبق كان عن نموذج يقرأ صورة. صنع صورة يعمل بآلية لا تحتوي tokens إطلاقاً، ولهذا السبب يُباع بالصورة لا بالكلمة.
صنع صورة: السعر لكل صورة هو سعر لكل token
رابط إلى القسم: صنع صورة: السعر لكل صورة هو سعر لكل tokenينشر المورّدون توليد الصور كسعر لكل صورة. لكنه ليس كذلك. تصدر نماذج GPT Image image tokens متخصصة يعتمد عددها على الحجم والجودة المطلوبين؛ اضرب الأعداد المنشورة في معدل image output المنشور لـGPT Image 1، وهو $40 لكل مليون، وقارنها بأسعار كل صورة في الصفحة نفسها:
| الجودة | 1024 × 1024 | 1024 × 1536 | 1536 × 1024 |
|---|---|---|---|
| منخفضة | 272 tok → $0.0109 ($0.011) | 408 tok → $0.0163 ($0.016) | 400 tok → $0.0160 ($0.016) |
| متوسطة | 1,056 tok → $0.0422 ($0.042) | 1,584 tok → $0.0634 ($0.063) | 1,568 tok → $0.0627 ($0.063) |
| عالية | 4,160 tok → $0.1664 ($0.167) | 6,240 tok → $0.2496 ($0.25) | 6,208 tok → $0.2483 ($0.25) |
تسعة أرقام مشتقة مقابل تسعة منشورة، وكل زوج يتفق ضمن $0.002.11 وGoogle أكثر صراحة حتى من ذلك، إذ يجري التحويل لك على صفحة الأسعار نفسها: image output بسعر $60 لكل مليون tokens، و«الصور الناتجة عند 1K (1024x1024px) تستهلك 1120 token وتكافئ $0.067 لكل صورة».12
إذن سعر كل صورة هو سعر كل token بعد طي العدد داخله. وهذا مقبول، لكنه يخفي شيئاً. خذ جدول الجيل الحالي واقسم عكسياً:
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الصورة الأكبر هي الأرخص في كل جودة. لوحة 1024 × 1536 فيها بكسلات أكثر بنسبة 50 % من 1024 × 1024، وتكلّف tokens أقل بنسبة 23 % عند الجودة المتوسطة. تنبّه OpenAI إلى ذلك في جملة قد تتجاوزها — «الدقة غير المربعة الأكبر قد تنتج أحياناً output tokens أقل من دقة أصغر أو مربعة عند إعداد الجودة نفسه» — وفي جيل النموذج السابق كان الأمر بالعكس، إذ كان العمودي يكلّف 50 % أكثر من المربع.11 كل قيمة افتراضية لـ1024x1024 كُتبت قبل ذلك التغيير أصبحت الآن الخيار المكلف.
الصوت، مفوتر بالثانية والحرف والـtoken
رابط إلى القسم: الصوت، مفوتر بالثانية والحرف والـtokenاطلب من ثلاثة منتجات نطق الأحرف الـ519 نفسها — نحو 38 ثانية من الصوت — فتحصل على ثلاثة أنظمة وحدات من مورّدين اثنين:
| النموذج | الوحدة | السعر |
|---|---|---|
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 |
المورّد نفسه يبيع الوحدتين: tts-1 من OpenAI مسعّر لكل مليون حرف، بينما gpt-4o-mini-tts مسعّر لكل مليون tokens، $0.60 داخلاً و$12.00 خارجاً.13 لذا فإن «أرخص text-to-speech» ليس سؤالاً له إجابة حتى تقول ما الذي ستنطقه.
والوحدتان عمياءان عن أشياء متعاكسة. السعر لكل حرف لا يرى المدة: اختر صوتاً بطيئاً ومتأنياً، أو أضف وقفات، ولا تتحرك الفاتورة بينما يصبح الصوت أطول. السعر لكل ثانية لا يرى المحتوى: ثلاثون ثانية تكلف الشيء نفسه سواء كانت فقرة تقنية كثيفة أو شخصاً يعد إلى عشرة. غيّر الصوت، وسيعيد واحد فقط من مورّديك التسعير.
التفريغ يسير بالعكس وهو أبسط سطر في الفاتورة كلها — لكل دقيقة صوت، بشكل ثابت:
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)لاحظ الصف الأخير مقابل الثالث: فعل ذلك مباشرة، بينما تصل الكلمات، يكلّف 5.7 مرات أكثر من فعله على ملف منتهٍ. تلك الفجوة هي ثمن عدم القدرة على batch، وهي ما يجعل القسم التالي مكلفاً.
دقيقة واحدة من الصوت، مفصلة
رابط إلى القسم: دقيقة واحدة من الصوت، مفصلةالآن الرقم الذي يقرر هل الصوت ميزة أم منتج.
المكالمة: محادثة دعم من عشر جولات، 149 كلمة، وهو ما يساوي عند 150 كلمة في الدقيقة معلنة 59.6 ثانية من الكلام — 21.2 نطقها المتصل، و38.4 نُطقت رداً عليه. تحويلات token هي تحويلات المزوّدين أنفسهم. OpenAI: «audio tokens في رسائل المستخدم تساوي 1 token لكل 100 ms من الصوت، بينما audio tokens في رسائل assistant تساوي 1 token لكل 50 ms».14 Google: 25 token في الثانية، في الاتجاهين، وهو ما تؤكده صفحة الأسعار بنشر $12.00 لكل مليون و$0.018 لكل دقيقة في السطر نفسه.12
تتراكم المحادثة تماماً كما قال الفصل 16، لأنها الآلية نفسها: «تُرسل المحادثة كاملة إلى النموذج لكل Response... ولذلك ستصبح الجولات اللاحقة في الجلسة أكثر تكلفة».14 لكن التاريخ الآن يُقاس بـaudio tokens.
| الجولة | المستخدم | assistant | صوت جديد داخل | صوت cached داخل | صوت خارج | التكلفة |
|---|---|---|---|---|---|---|
| 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 |
والآن المقارنة التي تقرر المنتج، وكل الأربعة مطبّعة إلى دقيقة:
| لكل دقيقة | مقارنة بالنص | |
|---|---|---|
gpt-realtime-2.1، بلا caching | $0.131259 | 37.9× |
gpt-realtime-2.1، history cached | $0.057425 | 16.6× |
gemini-3.1-flash-live، بلا caching | $0.023965 | 6.9× |
الكلمات نفسها مكتوبة، gpt-5.6-terra | $0.003461 | — |
ثمانٍ وثلاثون مرة. ليست ثمانية وثلاثين في المئة. التبادل نفسه تماماً، عند إجرائه بالصوت بدلاً من النص، أغلى بما يقارب رتبتين عشريتين، ولا يأتي أي من تلك الفجوة من هامش اختاره أحد — بل من معدل التحويل. ثانية واحدة من صوت assistant تساوي عشرين token. تلك الثانية نفسها تحمل 2.5 كلمة بالمعدل المعلن، والنص المقاس يجري عند 1.26 token لكل كلمة، لذا فهي كنص 3.15 tokens. الصوت حزمة أضخم 6.3 مرات للمعنى نفسه، وكل token صوتي يُفوَّتر بـ5.3 مرات سعر text output وبـ16 مرة سعر text input. اضرب نسبة الحجم في نسبة السعر، وستظهر رتبة المقدار قبل أن تبدأ أي محاسبة.
تخرج نتيجتان تشغيليتان مباشرة من الجدول.
Audio caching ليس تحسيناً، بل نموذج العمل. cached audio input بسعر $0.40 لكل مليون مقابل $32.00 للجديد — خصم 98.75 % يخفض المكالمة إلى النصف. القاعدة هي قاعدة الفصل 16 من دون تغيير: cache يطابق prefix، لذا فإن أي شيء يُدرج في مقدمة المحادثة أثناء المكالمة يدمّره، والمكان الطبيعي لوضع «تم الآن التحقق من المتصل» هو هناك بالضبط.
ولا شيء تفعله في العميل يلغي فوترة صوت. يتحدث المستخدم فوق assistant، يوقف كودك التشغيل، ويصمت مكبر الصوت. كل ما كان قد تولد فُوتر بالفعل، لأن الفوترة تتراكم عندما تُنشأ الاستجابة؛ وبقاعدة الفصل 16 كل ما يبقى في المحادثة يُعاد إرساله، كصوت إدخال، في كل جولة لاحقة. أوضح الفصل 14 هذه النقطة عن إيقاف بث نصي. في الصوت تكلف ثلاثين مرة أكثر.
الفيديو، GPU-seconds، وسعر ليس سعراً
رابط إلى القسم: الفيديو، GPU-seconds، وسعر ليس سعراًيُباع الفيديو بالثانية لدى بعض المورّدين وبالمقطع لدى آخرين، مع شرائح للدقة وأحياناً للمدة. هذان الشكلان لا يختلفان في الراحة فقط؛ إنهما يتقاطعان.
| النموذج | 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، لكل مقطع، 1080p | $0.480 | $0.480 | $0.480 | $0.480 | $0.480 |
mochi، لكل GPU-second | $0.018 | $0.037 | $0.092 | $0.183 | $0.366 |
المورّد الذي يسعّر بالمقطع أغلى من المسعّر بالثانية تحت 1.2 ثانية، وأرخص 16.7 مرة عند عشرين ثانية. لا يبقى أي ترتيب بين هذين النموذجين بعد تغيير طول المقطع، لذا فإن «أي نموذج فيديو هو الأرخص» ليس سؤالاً عن النماذج.
الصف الأخير أسوأ، وهو القلب الصادق لهذا الفصل. mochi يُفوَّتر مقابل ثواني GPU حقيقية — زمن التنبؤ المقاس للمهمة — بسعر $0.001400 في الثانية على A100 و$0.001525 على H100، وهي أسعار الآلة المؤجرة ولا شيء غيرها.15 هذه تعرفة دقيقة تماماً، لكنها ليست سعراً، لأن الكمية التي تضربها غير معروفة إلا بعد أن تكون قد التزمت بالدفع. الصف أعلاه يفترض اثنتي عشرة GPU-seconds لكل ثانية مخرجات؛ ضاعف ذلك الافتراض أربع مرات فيغادر الشريحة الأرخص، ولا يصل إلى وسط الجدول إلا عند ست مرات. إنها التعرفة الوحيدة في هذه الصفحة التي لا يمكنك وضعها في عرض سعر.
أداة التطبيع
رابط إلى القسم: أداة التطبيعإذن: tokens، وimage tokens، وأحرف، ودقائق، وثواني فيديو، ومقاطع كاملة، وGPU seconds، ووحدات ثابتة. ثماني كميات، والطريقة الوحيدة لوضعها على محور واحد هي إعلان workload وتسعيرها.
هذا هو امتداد computeCost من الفصل 16 — آلية الشرائح نفسها، لكن الآن مع معايير ليست طول prompt:
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;
}السطران المعلّمان هما موضع الانكسار. تعرفة مقتبسة لكل وحدة تضرب u.images ?? 1؛ وتعرفة مقتبسة لكل token تضرب شيئاً قيمته الافتراضية صفر. أعطِ كليهما استخداماً فارغاً — الشكل الذي تحصل عليه عند فشل القياس — وشاهد:
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لم يحدث شيء ست مرات، وكلّف ثلاثة دولارات مرة واحدة ولا شيء خمس مرات. هذا ليس فرق تقريب؛ إنه قرار بشأن معنى الرقم الغائب، اتُّخذ على حدة لكل وحدة ولم يُكتب قط. القاعدة السليمة هي أن الحقل الذي لم يقسه أحد يبقى غائباً، لأن «غير مقاس» و«قيس وخرج صفراً» شيئان مختلفان. هذه الدالة تخالف ذلك بهدوء.
الفشل الثاني هو المدة. التعرفة المسعّرة بالمقطع تختار شريحتها باستخدام maxDurationSeconds مقابل u.videoSeconds ?? 0، لذا فإن استخداماً لم يسجل مدة قط يطابق أقصر شريحة:
duration recorded -> $0.45
duration missing -> $0.27خصم أربعين في المئة لأننا لا نعرف كم كان طول الفيديو. العلتان لهما الجذر نفسه: قيمة افتراضية اختيرت للراحة داخل دالة مهمتها كلها أن تكون دقيقة.
جعل الرقم قابلاً للمقارنة
رابط إلى القسم: جعل الرقم قابلاً للمقارنةمع قابلية حساب التكاليف، تحتاج المقارنة إلى نصفها الآخر — workload تمثيلية معلنة، واحدة لكل محرك، تُذكر علناً حتى يستطيع القارئ مخالفتها:
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 },
};كل سطر من هذه السطور حجة. النص يمزج ربع إدخال وثلاثة أرباع إخراج لأن الاستخدام الحقيقي يميل إلى الإخراج؛ مزج 50/50 يرتب النماذج بشكل مختلف. workload الصورة تفترض 1,500 output tokens، بين 1,056 من OpenAI لمربع متوسط و1,584 لعمودي متوسط. الفيديو يفترض خمس ثوانٍ عند 1080p، وقد رأينا للتو مورّدين يتبادلان المكان عند 1.2 ثانية. ومدخل الحوسبة يفترض ستين GPU-seconds لأنه لا يوجد شيء آخر نفترضه.
وهذه هي الطريقة، وهي الوحيدة الصادقة المتاحة: لا يمكنك مقارنة أسعار بوحدات مختلفة؛ لا يمكنك إلا مقارنة تكلفة workload كتبتها. أي جدول يرتب نماذج multimodal من دون طباعة workload الخاصة به إنما يرتب افتراضاته هو.
إلى أين يتجه هذا بعد ذلك
رابط إلى القسم: إلى أين يتجه هذا بعد ذلكيمكنك الآن تسعير أي شيء يمكن لنموذج إنتاجه، بأي وحدة يُباع بها، وأن تقول بصوت عالٍ أي workload افترضتها المقارنة. هذا يغلق الفاتورة التي فتحها الفصل 16، ويغلق الجزء الثالث: كل شيء من الفصل 14 إلى هنا كان عن استدعاء واحد — كيف تصنعه، وماذا تضع فيه، وكيف تعمل sampling له، وماذا يعيد، وماذا يكلّف.
يغيّر الفصل 22 وحدة التحليل، والتغيير مكلف. agent ليس استدعاءً واحداً؛ إنه حلقة تقرر بنفسها كم استدعاء ستجري، وحساب الفصلين الأخيرين هو ما يحول ذلك من مخطط معماري إلى ميزانية. يبدأ بطرح السؤال نفسه على النموذج نفسه مرتين، مع إضافة أداة واحدة إلى الكتالوج في المرة الثانية، وقياس ما فعلته تلك الأداة الواحدة: صار الاستدعاء الواحد اثنين، وصارت تسعة وثلاثون input tokens تساوي 420.
هل يجعل ذلك منه agent؟ يعتمد على أي تعريف منشور تفتح، وهما لا يتفقان. أحدهما لا يتفق مع نفسه.
المصادر والمنهج
رابط إلى القسم: المصادر والمنهجقُرئ كل سعر ومعادلة ومعدل تحويل في هذا الفصل من صفحة المزوّد نفسه في 7 سبتمبر 2026 ويُقتبس مع ذلك التاريخ، لأنها كلها ستتحرك. حُسبت أعداد token والتكاليف والمقارنات على تلك البيانات بواسطة الكود المطبوع أعلاه، على آلة واحدة، من دون إجراء أي API call مدفوع — وهذا أيضاً هو السبب الصادق لعدم وجود أي ادعاء latency في هذا الفصل.
أُنتجت دوال image-token، وجداول التكلفة، وتفصيل مكالمة الصوت، ونتائج الاستخدام الفارغ بواسطة TypeScript المطبوع في هذا الفصل، وشُغّلت على Node 22. الحوار المستخدم في مقارنة الصوت كان 149 كلمة، وجرى tokenizer له باستخدام tiktoken ضمن ترميز o200k_base عند 188 tokens؛ ومدته مستنتجة من معدل معلن قدره 150 كلمة في الدقيقة، وهو معامل في المقارنة وليس قياساً. كل رقم من المزوّدين يحمل الحاشية التي تسمّي الصفحة التي جاء منها.
المراجع
رابط إلى القسم: المراجع-
Dosovitskiy, A. et al. An Image Is Worth 16x16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929 (2020). الرقع، والإسقاط الخطي إلى بُعد embedding، وposition embeddings التي تجعل الشبكة مقروءة لنموذج تسلسلي. ↩
-
Radford, A. et al. Learning Transferable Visual Models From Natural Language Supervision. arXiv:2103.00020 (2021). تدريب contrastive لمُرمِّز صور ومُرمِّز نصوص على 400 مليون زوج، والفضاء المشترك الذي يفترضه كل ما يأتي بعده. ↩
-
Alayrac, J.-B. et al. Flamingo: a Visual Language Model for Few-Shot Learning. arXiv:2204.14198 (2022). مُرمِّز رؤية مجمّد، ونموذج لغة مجمّد، وطبقات وصل مدرّبة — البنية التي حوّلت فهم الصور إلى قدرة محادثة. ↩
-
Liu, H., Li, C., Wu, Q. and Lee, Y. J. Visual Instruction Tuning. arXiv:2304.08485 (2023). إسقاط خطي واحد كجسر وبيانات تعليمات مولّدة كمجموعة تدريب؛ السبب في تقارب نماذج الرؤية-اللغة المفتوحة على شكل واحد. ↩
-
Anthropic، Vision،
platform.claude.com/docs/en/build-with-claude/vision، تم الوصول إليه في 2026-09-07. «يرى Claude الصور في رقع بدلاً من البكسلات. كل رقعة هي كتلة 28×28 بكسل من الصورة، ويُشار إليها كـvisual token. لذلك تكلّف الصورة ⌈width / 28⌉ × ⌈height / 28⌉ visual tokens.» وكذلك فئتا الدقة (القياسية: حافة طويلة 1568 بكسل، و1568 visual tokens؛ والدقة العالية، على Claude 4.7 وما بعده: 2576 بكسل و4784 tokens)، وقاعدة التصغير، وجدول الأحجام وعدد tokens ذي الصفوف الستة المعاد إنتاجه أعلاه. أسعار النماذج من 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 إذا كان كلا البعدين <= 384 بكسل. الصور الأكبر تُقسّم إلى tiles بحجم 768x768 بكسل، وكل واحدة تكلف 258 tokens»، مع صيغة وحدة القص —floor(min(width, height) / 1.5)، وقسمة الأبعاد عليها وضربها معاً — والمثال المحلول لصورة 960 × 540 التي تعطي 3 × 2 = 6 tiles. تسميها Google «صيغة تقريبية»؛ وثبات المقياس المشتق أعلاه خاصية للصيغة كما نُشرت. audio input على العائلة نفسها هو 32 tokens لكل ثانية صوت (ai.google.dev/gemini-api/docs/audio، التاريخ نفسه). ↩ -
OpenAI، Images and vision،
developers.openai.com/api/docs/guides/images-vision، تم الوصول إليه في 2026-09-07. مصدر القاعدة القائمة على الرقع (رقع 32 × 32،patch_count = ceil(width/32)×ceil(height/32)، صيغةshrink_factorوتعديلها الصحيح، حد رفض 30,000 رقعة)؛ وجدول تحجيم النماذج، بما في ذلك أنlowعلىgpt-5.4يستخدم حد 2048 بكسل وميزانية 6,144 رقعة «لذا يمكنه استخدام tokens أكثر منhigh»، مقابل ميزانية 2,500 رقعة فيhigh؛ وجدول المضاعفات (1.2 لعائلات GPT-5.x، و1.62 لـgpt-4.1-mini، و2.46 لـgpt-4.1-nano)؛ والمثالان المحلولان المعاد إنتاجهما أعلاه (1024 × 1024 → 1229 tokens، و2048 × 2048 → 3000 tokens)؛ والقواعد القائمة على tile للنماذج الأقدم (أساس زائد tiles من 512 بكسل، 85 + 170 علىgpt-4o)؛ وقائمة القيود المقتبسة في صندوق الرؤية. ↩ ↩2 -
Ho, J., Jain, A. and Abbeel, P. Denoising Diffusion Probabilistic Models. arXiv:2006.11239 (2020). جدول إضافة الضجيج الأمامي، وإعادة الصياغة التي تحول الهدف إلى التنبؤ بالضجيج المضاف، وحلقة sampling. ↩
-
Rombach, R., Blattmann, A., Lorenz, D., Esser, P. and Ommer, B. High-Resolution Image Synthesis with Latent Diffusion Models. arXiv:2112.10752 (2022). تشغيل عملية diffusion في فضاء latent مضغوط، وهو ما جعل عدد الخطوات الثابت ميسور التكلفة بما يكفي لبيعه لكل صورة. ↩
-
Prince, S. J. D. Understanding Deep Learning (MIT Press, 2023)، الفصل 18. التفويض المعلن لكل ما تخطاه هذا الفصل عن diffusion — الحد التبايني، وجداول الضجيج، وclassifier-free guidance، وعائلات sampler. Hu, E. et al., LoRA: Low-Rank Adaptation of Large Language Models, arXiv:2106.09685 (2021)، هو adapter نفسه، الذي قُدم في الفصل 11 على نموذج لغة واستُخدم هنا على نموذج صورة من دون تغيير في الرياضيات. Radford, A. et al., Robust Speech Recognition via Large-Scale Weak Supervision (Whisper), arXiv:2212.04356 (2022)، هو نموذج التفريغ الذي يظهر سعره لكل دقيقة أعلاه. ↩
-
OpenAI، Image generation،
developers.openai.com/api/docs/guides/image-generation، وPricing،developers.openai.com/api/docs/pricing، وصفحة النموذجgpt-image-1، كلها تم الوصول إليها في 2026-09-07. صفحة النموذجgpt-image-2لا تحمل قسماً للأسعار؛ أسعاره تأتي من صفحة الأسعار أعلاه. تنشر صفحة GPT Image 1 text input بسعر $5.00، وimage input بسعر $10.00، وimage output بسعر $40.00 لكل مليون tokens بجانب جدول كل صورة المستخدم في الاشتقاق أعلاه. كذلك: جدول output-token للنماذج السابقة لـgpt-image-2 (272 / 408 / 400 منخفض، 1056 / 1584 / 1568 متوسط، 4160 / 6240 / 6208 عالٍ، للمربع والعمودي والأفقي)؛ وجداول أسعار كل صورة لـGPT Image 2 و1.5 و1 و1 Mini المستخدمة في الاشتقاقات أعلاه؛ والجملة «الدقة غير المربعة الأكبر قد تنتج أحياناً output tokens أقل من دقة أصغر أو مربعة عند إعداد الجودة نفسه»؛ والملاحظة أن كل صورة جزئية مبثوثة تكلف 100 image output tokens إضافية؛ وأسعار gpt-image-2: $8.00 image input، و$2.00 cached image input، و$30.00 image output، و$5.00 text input لكل مليون tokens. أسعار نماذج النص المستخدمة في المقارنات:gpt-5.6-terraبسعر $2.00 إدخال، و$0.20 cached input، و$12.00 إخراج، وgpt-5.6-lunaبسعر $0.20 و$1.20، الفئة القياسية، short context. الفيديو:sora-2بسعر $0.10 لكل ثانية عند 720p وsora-2-proبسعر $0.30 و$0.50 و$0.70 عند 720p و1024p و1080p. التفريغ: $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 (نص وصورة وفيديو) و$1.50 للإخراج. Gemini 3.1 Flash Image: image output بسعر $60 لكل مليون tokens، مع المعادلات المنشورة لـ747 و1120 و1680 و2520 tokens لصور 0.5K و1K و2K و4K وأسعارها لكل صورة $0.045 و$0.067 و$0.101 و$0.151. Gemini 3.1 Flash TTS: $1.00 text input، و$20.00 audio output، و«audio tokens تقابل 25 tokens لكل ثانية صوت». Gemini 3.1 Flash Live Preview: $0.75 نص و«$3.00 أو $0.005/min» audio input، و«$4.50 (نص) $12.00 أو $0.018/min (صوت)» للإخراج. Veo 3.1 لكل ثانية مع صوت: $0.40 عند 720p و1080p و$0.60 عند 4K standard؛ و$0.10 و$0.12 و$0.30 fast. يفوتر Gemini Omni Flash video output «بمعدل 5,792 tokens لكل ثانية من فيديو 720p»، وهي حاشية الصفحة نفسها التي تحول ذلك إلى نحو $0.10 في الثانية — أوضح تصريح منشور في أي مكان بأن سعر الوسائط لكل ثانية هو سعر token. ↩ ↩2 -
صفحات نماذج OpenAI لـ
tts-1وtts-1-hdوgpt-4o-mini-tts،developers.openai.com/api/docs/models، تم الوصول إليها في 2026-09-07.tts-1بسعر $15.00 وtts-1-hdبسعر $30.00 لكل مليون حرف؛ وgpt-4o-mini-ttsبسعر $0.60 لكل مليون text input tokens و$12.00 لكل مليون audio output tokens — المورّد نفسه، والعملية نفسها، ووحدتان. ↩ -
OpenAI، Managing costs (Realtime API)،
developers.openai.com/api/docs/guides/realtime-costs، تم الوصول إليه في 2026-09-07. «Audio tokens في رسائل المستخدم تساوي 1 token لكل 100 ms من الصوت، بينما audio tokens في رسائل assistant تساوي 1 token لكل 50ms من الصوت.» وكذلك: «تُرسل المحادثة كاملة إلى النموذج لكل Response... ولذلك ستصبح الجولات اللاحقة في الجلسة أكثر تكلفة»؛ وتتراكم التكاليف عند إنشاء Response؛ والمثال المحلول من جولتين الذي يعيد الجدول أعلاه إنتاج تراكمه؛ وحمولة استخدامresponse.doneمع تقسيماتinput_token_detailsوoutput_token_details. الأسعار من صفحة الأسعار، التاريخ نفسه: صوتgpt-realtime-2.1بسعر $32.00 إدخال، و$0.40 cached input، و$64.00 إخراج لكل مليون tokens، والنص بسعر $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 في الساعة. ↩