{
  "aboutHtml": "<p>Microsoft AI MAI-Image-2.5 إصدار التوليد العام والتحرير المنضبط في عائلة الصور 2.5. تصف بطاقة النموذج نموذج انتشار يستخدم مطابقة التدفق، ب20 مليار معلمة غير خاصة بالتضمين ومدخلات نص وصورة وسياق 32K توكن. وينتج صورًا للمفاهيم والصور الشخصية وصور المنتجات والرسوم التوضيحية ومراجعات التصاميم الموجودة. ويكون القرار الأول المفيد هو هل تحتاج المهمة تكوينًا جديدًا أم تغييرًا محدّدًا لصورة تحتوي بالفعل على العنصر المقصود.</p><p>للتوليد، صِف العنصر الرئيسي والأسلوب البصري والضوء وزاوية الرؤية والترتيب. تبرز الجهة المطوّرة الصور التفصيلية المترابطة ورسم النص وصور المنتجات والالتزام بالتوجيه. ويمكن لتوجيه عملي لرسم توضيحي في عرض تقديمي تحديد دور العنصر والتركيز البصري المقصود وكمية المساحة المحيطة. ويمكن لمفهوم منتج تضمين المادة والمقياس وتشطيب السطح. أبقِ الوصف مترابطًا كي تشترك الأجسام في مشهد وخطة إضاءة واحدة، بدلًا من جمع عدة معالجات بصرية غير متوافقة.</p><p>يتعلّق الاستدلال البصري في هذا الإصدار ببنية المشهد والإضاءة والمقياس والعلاقات المكانية. وتقدّم الجهة المصنّعة إضافة جسم بمنظور وظلال مناسبين كاستخدام للتحرير. ولتعديل ورشة، ضع مقعدًا صغيرًا بجوار منضدة عمل مع الحفاظ على زاوية الرؤية والضوء الموجودين. وينبغي للمراجعة مقارنة حجم المقعد وموضع ملامسته للأرض وما إذا كان ظله يتبع الأجسام الأخرى. فحتى الجسم المقنع محليًا يحتاج إلى التوافق مع هندسة الصورة المصدرية كاملة.</p><p>تشمل التعديلات الموجّهة إزالة الأجسام أو استبدالها وتغيير الصفات والترميم داخل المناطق وتكييف التخطيط وتحديث النص والتنظيف مثل تقليل عيوب ضبابية الحركة. قدّم الصورة المصدرية واذكر التصحيح والتفاصيل المطلوب إبقاؤها معًا. ويمكن لتعديل فوتوغرافي مركّز إزالة جسم مشتّت من الخلفية مع الحفاظ على الشخص والاقتصاص وترتيب المقدمة. ويمكن لمراجعة تصميم تحديث سطر قصير مع إبقاء التكوين. قارن النتيجة كاملة بالمصدر بدلًا من تقييم المنطقة المعدّلة فقط.</p><p>تركّز Microsoft أيضًا على اتساق الهوية الوجهية عبر التعديلات، بما فيها تغيّر الوضعية أو التعبير أو زاوية الرؤية. استخدم مرجعًا واضحًا للشبه وحدّد التغيير المقصود بطريقة تحافظ على السمات المعرِّفة. يقبل دليل التحرير الحالي لدى الجهة المصنّعة ما يصل إلى خمس صور JPEG أو PNG، بما يتيح لمراجع مختلفة تعريف الشخص أو الجسم أو المشهد أو الأسلوب. سمِّ هذه الأدوار في التوجيه. وفي مراجعة صورة شخصية، افحص الوجه والملابس أو الخلفية المعدّلة معًا قبل اعتبار الصورة مكتملة.</p><p>تحدّ بطاقة النموذج المحدّدة المخرجات عند 1,048,576 بكسل إجمالًا، بما يعادل مربعًا 1024×1024، وتسمح لضلع واحد بتجاوز 1024 إذا بقي الإجمالي ضمن تلك المساحة. ويشترط دليل الخدمة أيضًا ألّا يقل أي من البعدين عن 768 بكسل. ويبلغ هدف مستطيل مثل 1344×768 عدد 1,032,192 بكسل، ويستوفي قواعد المساحة والحد الأدنى للأبعاد الموثّقة. الحد المفيد هو حاصل ضرب العرض في الارتفاع، لذا جهّز شكل الوجهة قبل طلب تكوين أفقي أو رأسي.</p><p>يعيد التوليد والتحرير بيانات صور PNG في واجهة الخدمة لدى الجهة المصنّعة. وتذكر بطاقة النموذج الأصلية سياق 32K توكن، بينما تحدّد تلك الواجهة حدًا أقصى لسياق التوجيه قدره 32,000 توكن. ورقم 4,096 توكن للمخرجات المنفصل في الكتالوج سعة توكن، وليس بُعدًا للإخراج. حافظ على نطاق هذه التصريحات عند تنظيم توجيه تفصيلي والصورة المكتملة. وتشكل الصور المصدرية والسمات المحتفَظ بها والتعديلات المطلوبة والحجم المستهدف سجل مراجعة مفيدًا إلى جانب PNG.</p><p>يمتد المجال الإبداعي للنموذج إلى الصور الواقعية والسينمائية والصور الشخصية ومفاهيم المنتجات أو العلامات التجارية والتصاميم الحاملة للنص وأساليب بصرية أخرى. ولملصق أو لافتة، قدّم النص الدقيق وافحص إملاءه بحجم العرض النهائي. وقد يحتوي سطح فوتوغرافي مألوف على تفصيل مختلق أو انعكاس غير متّسق أو حروف غير دقيقة. يتبع الفحص العملي متطلبات التصميم: هوية الجسم والمقروئية والعلاقات المكانية والمشهد المحتفَظ به كلها مهمة. أبقِ التصحيح المحدّد منفصلًا عن التغييرات التي نجحت بالفعل.</p><p>ضمن عائلة 2.5، يركّز Pro على أمانة بصرية أعلى وعلاقات ثابتة في المشاهد الكثيفة، بينما يخدم Flash إنتاجًا أسرع استجابة. وتضيف عائلة 2.6 سعة موثّقة أكبر لمساحة البكسلات والإسناد الاختياري بالويب واختيار الأبعاد بتوجيه النموذج. يحتفظ 2.5 القياسي بمساره الخاص للتوليد والتحرير من دون تلك العناصر اللاحقة. اختر الإصدار وفق الجزء الصعب من مهمة الصورة الفعلية وراجع النتيجة المكتملة مقابل ذلك التوجيه.</p>",
  "aboutText": "Microsoft AI MAI-Image-2.5 إصدار التوليد العام والتحرير المنضبط في عائلة الصور 2.5. تصف بطاقة النموذج نموذج انتشار يستخدم مطابقة التدفق، ب20 مليار معلمة غير خاصة بالتضمين ومدخلات نص وصورة وسياق 32K توكن. وينتج صورًا للمفاهيم والصور الشخصية وصور المنتجات والرسوم التوضيحية ومراجعات التصاميم الموجودة. ويكون القرار الأول المفيد هو هل تحتاج المهمة تكوينًا جديدًا أم تغييرًا محدّدًا لصورة تحتوي بالفعل على العنصر المقصود.\n\nللتوليد، صِف العنصر الرئيسي والأسلوب البصري والضوء وزاوية الرؤية والترتيب. تبرز الجهة المطوّرة الصور التفصيلية المترابطة ورسم النص وصور المنتجات والالتزام بالتوجيه. ويمكن لتوجيه عملي لرسم توضيحي في عرض تقديمي تحديد دور العنصر والتركيز البصري المقصود وكمية المساحة المحيطة. ويمكن لمفهوم منتج تضمين المادة والمقياس وتشطيب السطح. أبقِ الوصف مترابطًا كي تشترك الأجسام في مشهد وخطة إضاءة واحدة، بدلًا من جمع عدة معالجات بصرية غير متوافقة.\n\nيتعلّق الاستدلال البصري في هذا الإصدار ببنية المشهد والإضاءة والمقياس والعلاقات المكانية. وتقدّم الجهة المصنّعة إضافة جسم بمنظور وظلال مناسبين كاستخدام للتحرير. ولتعديل ورشة، ضع مقعدًا صغيرًا بجوار منضدة عمل مع الحفاظ على زاوية الرؤية والضوء الموجودين. وينبغي للمراجعة مقارنة حجم المقعد وموضع ملامسته للأرض وما إذا كان ظله يتبع الأجسام الأخرى. فحتى الجسم المقنع محليًا يحتاج إلى التوافق مع هندسة الصورة المصدرية كاملة.\n\nتشمل التعديلات الموجّهة إزالة الأجسام أو استبدالها وتغيير الصفات والترميم داخل المناطق وتكييف التخطيط وتحديث النص والتنظيف مثل تقليل عيوب ضبابية الحركة. قدّم الصورة المصدرية واذكر التصحيح والتفاصيل المطلوب إبقاؤها معًا. ويمكن لتعديل فوتوغرافي مركّز إزالة جسم مشتّت من الخلفية مع الحفاظ على الشخص والاقتصاص وترتيب المقدمة. ويمكن لمراجعة تصميم تحديث سطر قصير مع إبقاء التكوين. قارن النتيجة كاملة بالمصدر بدلًا من تقييم المنطقة المعدّلة فقط.\n\nتركّز Microsoft أيضًا على اتساق الهوية الوجهية عبر التعديلات، بما فيها تغيّر الوضعية أو التعبير أو زاوية الرؤية. استخدم مرجعًا واضحًا للشبه وحدّد التغيير المقصود بطريقة تحافظ على السمات المعرِّفة. يقبل دليل التحرير الحالي لدى الجهة المصنّعة ما يصل إلى خمس صور JPEG أو PNG، بما يتيح لمراجع مختلفة تعريف الشخص أو الجسم أو المشهد أو الأسلوب. سمِّ هذه الأدوار في التوجيه. وفي مراجعة صورة شخصية، افحص الوجه والملابس أو الخلفية المعدّلة معًا قبل اعتبار الصورة مكتملة.\n\nتحدّ بطاقة النموذج المحدّدة المخرجات عند 1,048,576 بكسل إجمالًا، بما يعادل مربعًا 1024×1024، وتسمح لضلع واحد بتجاوز 1024 إذا بقي الإجمالي ضمن تلك المساحة. ويشترط دليل الخدمة أيضًا ألّا يقل أي من البعدين عن 768 بكسل. ويبلغ هدف مستطيل مثل 1344×768 عدد 1,032,192 بكسل، ويستوفي قواعد المساحة والحد الأدنى للأبعاد الموثّقة. الحد المفيد هو حاصل ضرب العرض في الارتفاع، لذا جهّز شكل الوجهة قبل طلب تكوين أفقي أو رأسي.\n\nيعيد التوليد والتحرير بيانات صور PNG في واجهة الخدمة لدى الجهة المصنّعة. وتذكر بطاقة النموذج الأصلية سياق 32K توكن، بينما تحدّد تلك الواجهة حدًا أقصى لسياق التوجيه قدره 32,000 توكن. ورقم 4,096 توكن للمخرجات المنفصل في الكتالوج سعة توكن، وليس بُعدًا للإخراج. حافظ على نطاق هذه التصريحات عند تنظيم توجيه تفصيلي والصورة المكتملة. وتشكل الصور المصدرية والسمات المحتفَظ بها والتعديلات المطلوبة والحجم المستهدف سجل مراجعة مفيدًا إلى جانب PNG.\n\nيمتد المجال الإبداعي للنموذج إلى الصور الواقعية والسينمائية والصور الشخصية ومفاهيم المنتجات أو العلامات التجارية والتصاميم الحاملة للنص وأساليب بصرية أخرى. ولملصق أو لافتة، قدّم النص الدقيق وافحص إملاءه بحجم العرض النهائي. وقد يحتوي سطح فوتوغرافي مألوف على تفصيل مختلق أو انعكاس غير متّسق أو حروف غير دقيقة. يتبع الفحص العملي متطلبات التصميم: هوية الجسم والمقروئية والعلاقات المكانية والمشهد المحتفَظ به كلها مهمة. أبقِ التصحيح المحدّد منفصلًا عن التغييرات التي نجحت بالفعل.\n\nضمن عائلة 2.5، يركّز Pro على أمانة بصرية أعلى وعلاقات ثابتة في المشاهد الكثيفة، بينما يخدم Flash إنتاجًا أسرع استجابة. وتضيف عائلة 2.6 سعة موثّقة أكبر لمساحة البكسلات والإسناد الاختياري بالويب واختيار الأبعاد بتوجيه النموذج. يحتفظ 2.5 القياسي بمساره الخاص للتوليد والتحرير من دون تلك العناصر اللاحقة. اختر الإصدار وفق الجزء الصعب من مهمة الصورة الفعلية وراجع النتيجة المكتملة مقابل ذلك التوجيه.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "18766156038f81e24adf7606499ec7e374485b9709a84cb04d828e05d1d85962",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ar",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Microsoft AI: MAI-Image-2.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>Microsoft AI /</span><code>microsoft/mai-image-2.5</code><button type=\"button\" id=\"copy-id\">نسخ ID</button></div><nav class=\"card-jump-nav\" aria-label=\"أقسام بطاقة النموذج\"><button type=\"button\" data-card-jump=\"overview\">البداية</button><button type=\"button\" data-card-jump=\"methods\">المدخلات والطرائق</button><button type=\"button\" data-card-jump=\"pricing\">الباقات</button><button type=\"button\" data-card-jump=\"examples\">أمثلة</button><button type=\"button\" data-card-jump=\"results\">النتائج</button><button type=\"button\" data-card-jump=\"aliases\">الأسماء البديلة</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"طرائق API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|images|/v1/images/generations|microsoft%2Fmai-image-2.5\">الصور</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">البداية</h3><p class=\"mdesc-full\">ينشئ Microsoft AI MAI-Image-2.5 صورًا من النص ويجري تعديلات مستهدفة على صور أو تصاميم مقدَّمة. يدعم تغيير الأجسام والنص وتنظيف العيوب وتعديلات تحافظ على الوجه، مع مخرجات PNG وما يصل إلى خمسة مراجع بصرية. وتحدّد بطاقة نموذجه سياق 32K و1,048,576 بكسل للمخرجات.</p><dl class=\"card-io\" data-card-io><div><dt>المدخلات المقبولة</dt><dd>النص · الصور</dd></div><div><dt>النتائج</dt><dd>الصور</dd></div></dl><details class=\"card-about\"><summary>عن النموذج</summary><p class=\"note-s\" data-model-method-boundary>يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.</p><div class=\"mabout\" id=\"m-about\"><p>Microsoft AI MAI-Image-2.5 إصدار التوليد العام والتحرير المنضبط في عائلة الصور 2.5. تصف بطاقة النموذج نموذج انتشار يستخدم مطابقة التدفق، ب20 مليار معلمة غير خاصة بالتضمين ومدخلات نص وصورة وسياق 32K توكن. وينتج صورًا للمفاهيم والصور الشخصية وصور المنتجات والرسوم التوضيحية ومراجعات التصاميم الموجودة. ويكون القرار الأول المفيد هو هل تحتاج المهمة تكوينًا جديدًا أم تغييرًا محدّدًا لصورة تحتوي بالفعل على العنصر المقصود.</p><p>للتوليد، صِف العنصر الرئيسي والأسلوب البصري والضوء وزاوية الرؤية والترتيب. تبرز الجهة المطوّرة الصور التفصيلية المترابطة ورسم النص وصور المنتجات والالتزام بالتوجيه. ويمكن لتوجيه عملي لرسم توضيحي في عرض تقديمي تحديد دور العنصر والتركيز البصري المقصود وكمية المساحة المحيطة. ويمكن لمفهوم منتج تضمين المادة والمقياس وتشطيب السطح. أبقِ الوصف مترابطًا كي تشترك الأجسام في مشهد وخطة إضاءة واحدة، بدلًا من جمع عدة معالجات بصرية غير متوافقة.</p><p>يتعلّق الاستدلال البصري في هذا الإصدار ببنية المشهد والإضاءة والمقياس والعلاقات المكانية. وتقدّم الجهة المصنّعة إضافة جسم بمنظور وظلال مناسبين كاستخدام للتحرير. ولتعديل ورشة، ضع مقعدًا صغيرًا بجوار منضدة عمل مع الحفاظ على زاوية الرؤية والضوء الموجودين. وينبغي للمراجعة مقارنة حجم المقعد وموضع ملامسته للأرض وما إذا كان ظله يتبع الأجسام الأخرى. فحتى الجسم المقنع محليًا يحتاج إلى التوافق مع هندسة الصورة المصدرية كاملة.</p><p>تشمل التعديلات الموجّهة إزالة الأجسام أو استبدالها وتغيير الصفات والترميم داخل المناطق وتكييف التخطيط وتحديث النص والتنظيف مثل تقليل عيوب ضبابية الحركة. قدّم الصورة المصدرية واذكر التصحيح والتفاصيل المطلوب إبقاؤها معًا. ويمكن لتعديل فوتوغرافي مركّز إزالة جسم مشتّت من الخلفية مع الحفاظ على الشخص والاقتصاص وترتيب المقدمة. ويمكن لمراجعة تصميم تحديث سطر قصير مع إبقاء التكوين. قارن النتيجة كاملة بالمصدر بدلًا من تقييم المنطقة المعدّلة فقط.</p><p>تركّز Microsoft أيضًا على اتساق الهوية الوجهية عبر التعديلات، بما فيها تغيّر الوضعية أو التعبير أو زاوية الرؤية. استخدم مرجعًا واضحًا للشبه وحدّد التغيير المقصود بطريقة تحافظ على السمات المعرِّفة. يقبل دليل التحرير الحالي لدى الجهة المصنّعة ما يصل إلى خمس صور JPEG أو PNG، بما يتيح لمراجع مختلفة تعريف الشخص أو الجسم أو المشهد أو الأسلوب. سمِّ هذه الأدوار في التوجيه. وفي مراجعة صورة شخصية، افحص الوجه والملابس أو الخلفية المعدّلة معًا قبل اعتبار الصورة مكتملة.</p><p>تحدّ بطاقة النموذج المحدّدة المخرجات عند 1,048,576 بكسل إجمالًا، بما يعادل مربعًا 1024×1024، وتسمح لضلع واحد بتجاوز 1024 إذا بقي الإجمالي ضمن تلك المساحة. ويشترط دليل الخدمة أيضًا ألّا يقل أي من البعدين عن 768 بكسل. ويبلغ هدف مستطيل مثل 1344×768 عدد 1,032,192 بكسل، ويستوفي قواعد المساحة والحد الأدنى للأبعاد الموثّقة. الحد المفيد هو حاصل ضرب العرض في الارتفاع، لذا جهّز شكل الوجهة قبل طلب تكوين أفقي أو رأسي.</p><p>يعيد التوليد والتحرير بيانات صور PNG في واجهة الخدمة لدى الجهة المصنّعة. وتذكر بطاقة النموذج الأصلية سياق 32K توكن، بينما تحدّد تلك الواجهة حدًا أقصى لسياق التوجيه قدره 32,000 توكن. ورقم 4,096 توكن للمخرجات المنفصل في الكتالوج سعة توكن، وليس بُعدًا للإخراج. حافظ على نطاق هذه التصريحات عند تنظيم توجيه تفصيلي والصورة المكتملة. وتشكل الصور المصدرية والسمات المحتفَظ بها والتعديلات المطلوبة والحجم المستهدف سجل مراجعة مفيدًا إلى جانب PNG.</p><p>يمتد المجال الإبداعي للنموذج إلى الصور الواقعية والسينمائية والصور الشخصية ومفاهيم المنتجات أو العلامات التجارية والتصاميم الحاملة للنص وأساليب بصرية أخرى. ولملصق أو لافتة، قدّم النص الدقيق وافحص إملاءه بحجم العرض النهائي. وقد يحتوي سطح فوتوغرافي مألوف على تفصيل مختلق أو انعكاس غير متّسق أو حروف غير دقيقة. يتبع الفحص العملي متطلبات التصميم: هوية الجسم والمقروئية والعلاقات المكانية والمشهد المحتفَظ به كلها مهمة. أبقِ التصحيح المحدّد منفصلًا عن التغييرات التي نجحت بالفعل.</p><p>ضمن عائلة 2.5، يركّز Pro على أمانة بصرية أعلى وعلاقات ثابتة في المشاهد الكثيفة، بينما يخدم Flash إنتاجًا أسرع استجابة. وتضيف عائلة 2.6 سعة موثّقة أكبر لمساحة البكسلات والإسناد الاختياري بالويب واختيار الأبعاد بتوجيه النموذج. يحتفظ 2.5 القياسي بمساره الخاص للتوليد والتحرير من دون تلك العناصر اللاحقة. اختر الإصدار وفق الجزء الصعب من مهمة الصورة الفعلية وراجع النتيجة المكتملة مقابل ذلك التوجيه.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">متاح في Ailoot · المدخلات والطرائق</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · الصور</b> <code>POST /v1/images/generations</code></summary><dl class=\"method-capabilities\"><div><dt>الإدخال</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>الإخراج</dt><dd><code>image</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>الحقل</th><th>النوع</th><th>المتطلب</th><th>القيم والحدود</th><th>القيمة الافتراضية</th></tr></thead><tbody><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>microsoft/mai-image-2.5</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى للطول: ⁦1⁩</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, auto</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">n</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>integer</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى: ⁦1⁩</div><div>الحد الأقصى: ⁦1⁩</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>array</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى للعناصر: ⁦0⁩</div><div>الحد الأقصى للعناصر: ⁦1⁩</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>object</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>معلمات الطريقة ودورة حياتها</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>المعلمة</th><th>المواصفات</th></tr></thead><tbody><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>content_type</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>application/json</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>required</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>model, prompt</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>material_types</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>text, image</td></tr></tbody></table></div><p>دورة الحياة: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">الباقات</h3><div class=\"card-result-process\" data-billing-basis><h5>كيفية احتساب الرسوم النهائية</h5><p class=\"note-s\">تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.</p><dl data-price-conditions><dt>الوضع السريع</dt><dd>غير محدد <span class=\"note-s\">عند اختيار الوضع السريع</span></dd><dt>الوضع المرن</dt><dd>غير محدد <span class=\"note-s\">عند اختيار وضع flex</span></dd><dt>أقصى جهد للاستدلال</dt><dd>غير محدد <span class=\"note-s\">عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال</span></dd></dl></div><div data-declared-tariff-pricing><h4>تعرفات تقديرية للمقارنة</h4><h4>الأسعار حسب الإعدادات</h4><p class=\"note-s\">طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>الإعدادات</th><th>جدول التعرفة</th><th>الكمية المتوقعة</th><th>الرسوم</th></tr></thead><tbody><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>التعرفات الأساسية للرموز</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>التعرفة الأساسية</td><td data-cell-label=\"الكمية المتوقعة\"><span class=\"card-cell-label\">الكمية المتوقعة</span>—</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإدخال · رموز الإدخال · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإخراج · رموز الإخراج · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · قراءة ذاكرة التخزين المؤقت · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div></td></tr><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>تكلفة التوليد التقديرية</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>—</td><td data-cell-label=\"الكمية المتوقعة\"><span class=\"card-cell-label\">الكمية المتوقعة</span>تقدير لتوليد واحد</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإخراج · تكلفة التوليد التقديرية · تقدير للمقارنة فقط</span> <b>$0.385024</b> <span class=\"price-unit\">تقدير قبل الإنشاء</span></div><p class=\"note-s\">هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.</p></td></tr></tbody></table></div></div><p class=\"note-s\">تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. <a href=\"/docs/ar/billing/reserve/\">كيفية عمل حجز المبلغ وتسوية الرسوم →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">أمثلة للطلبات</h3><h4>Ailoot Ultra · الصور</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1837-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1837-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1837-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1837-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np={&#39;model&#39;: &#39;microsoft/mai-image-2.5&#39;, &#39;prompt&#39;: &#39;a red panda astronaut floating in space, studio lighting&#39;}\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(&quot;No completed images; retain the full response&quot;)\n    for index, item in enumerate(items):\n        encoded=item.get(&quot;b64_json&quot;)\n        uri=item.get(&quot;url&quot;, &quot;&quot;)\n        if not encoded and uri.startswith(&quot;data:image/&quot;):\n            header, separator, encoded=uri.partition(&quot;,&quot;)\n            if not separator or &quot;;base64&quot; not in header: raise SystemExit(&quot;Unsupported image data URI&quot;)\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(&quot;https://api.ailoot.ai&quot;,uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=&quot;https&quot; or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(&quot;Invalid returned image URL&quot;)\n            owned=parsed.netloc==&quot;api.ailoot.ai&quot; and parsed.path.startswith(&quot;/v1/media/assets/&quot;) and parsed.path.endswith(&quot;/content&quot;)\n            args=[&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,uri]\n            if owned: args += [&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;]]\n            temporary=Path(f&quot;image-{index}.bin&quot;)\n            subprocess.run(args+[&quot;-o&quot;,str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(&quot;Image has neither bytes nor URL&quot;)\n        if not raw: raise SystemExit(&quot;Empty image result&quot;)\n        ext=&quot;png&quot; if raw.startswith(b&quot;\\x89PNG&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4]==b&quot;RIFF&quot; and raw[8:12]==b&quot;WEBP&quot; else &quot;svg&quot; if raw.lstrip().startswith((b&quot;&lt;svg&quot;,b&quot;&lt;?xml&quot;)) else &quot;bin&quot;\n        Path(f&quot;image-{index}.{ext}&quot;).write_bytes(raw)\n    print(&quot;Every returned image saved; complete response metadata retained&quot;)\nsave_images(json.loads(Path(&quot;result.json&quot;).read_text())[&quot;data&quot;])\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">استلام النتائج وحفظها</h3><h4>Ailoot Ultra · الصور</h4><p class=\"note-s\">نزّل كل صورة مُرجعة أو احفظ محتواها بصيغة Base64</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>عمليات أخرى لقراءة المحتوى</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1838-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1838-panel-0\" aria-selected=\"true\" tabindex=\"0\">قراءة الأصول الموجودة المملوكة لك</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1838-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1838-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>الاحتفاظ بكل النتائج المكتملة</h5><p class=\"note-s\">احفظ كل صورة مكتملة؛ نزّلها من كل URL مُرجع، أو فك ترميز محتواها بصيغة Base64.</p><p class=\"note-s\">احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>عند الحاجة إلى التحقق من الاستجابة الأصلية</h5><p class=\"note-s\">احتفظ بقيمة X-Client-Request-ID المُعادة للمطابقة. اقرأ فقط قيم task_id/asset_id الفعلية المُعادة أو مكتبة الوسائط المملوكة لك؛ ولا تنشئ عنوان URL لمهمة من معرّف العملية، ولا تُعِد إرسال طلب الإنشاء مطلقًا.</p></div><details class=\"card-about\" data-output-fields><summary>حقول الاستجابة</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>الحقل</th><th>النوع</th></tr></thead><tbody><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">created</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span></td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">data[].url</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span></td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">data[].b64_json</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span></td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">الأسماء البديلة</h3><h4>الأسماء البديلة للنموذج</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=microsoft%2Fmai-image-2.5&amp;route=Ultra&amp;caller=microsoft%2Fmai-image-2.5&amp;fmt=images\"><code>microsoft/mai-image-2.5</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\"><code>/v1/images</code></p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=microsoft%2Fmai-image-2.5&amp;route=Ultra&amp;caller=microsoft%2Fmai-image-2.5&amp;fmt=images\"><code>microsoft/mai-image-2.5</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "microsoft/mai-image-2.5",
        "fmt": "images",
        "http": "POST",
        "path": "/v1/images/generations",
        "request_model_id": "microsoft/mai-image-2.5",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|images|/v1/images/generations|microsoft%2Fmai-image-2.5",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "احتفظ بقيمة X-Client-Request-ID المُعادة للمطابقة. اقرأ فقط قيم task_id/asset_id الفعلية المُعادة أو مكتبة الوسائط المملوكة لك؛ ولا تنشئ عنوان URL لمهمة من معرّف العملية، ولا تُعِد إرسال طلب الإنشاء مطلقًا."
            },
            "outputs": {
              "all_results": "احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "microsoft/mai-image-2.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "3:2",
                  "2:3",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "3:2",
                    "2:3",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "microsoft/mai-image-2.5"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "microsoft/mai-image-2.5",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "تكلفة التوليد التقديرية",
            "units": [
              {
                "amount": "0.385024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.385024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'microsoft/mai-image-2.5', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        ext=\"png\" if raw.startswith(b\"\\x89PNG\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"svg\" if raw.lstrip().startswith((b\"<svg\",b\"<?xml\")) else \"bin\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "الصور",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.385024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.385024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "microsoft/mai-image-2.5",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.385024",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.385024",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "microsoft/mai-image-2.5",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "c8e0919aa9badc8247746127595bdb48d80b41c7990b8d20fbfb3ddc0d6cfbd3",
    "input_html_sha256": "7a12a07a10aa5ffc7723eb9c1f03caf714c44821aa1621dc013fdda9a78ab4b3",
    "private_audit_sha256": "685573be751c961aa74345c01b56ceb8b0b458fe639307b577162c98a0ebd8ec",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/microsoft-mai-image-2-5/",
    "description": "ينشئ Microsoft AI MAI-Image-2.5 صورًا من النص ويجري تعديلات مستهدفة على صور أو تصاميم مقدَّمة. يدعم تغيير الأجسام والنص وتنظيف العيوب وتعديلات تحافظ على الوجه، مع مخرجات PNG وما يصل إلى خمسة مراجع بصرية. وتحدّد بطاقة نموذجه سياق 32K و1,048,576 بكسل للمخرجات.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/microsoft-mai-image-2-5/index.md",
    "title": "Microsoft AI: MAI-Image-2.5 — Ailoot",
    "url": "https://ailoot.ai/models/ar/microsoft-mai-image-2-5/"
  },
  "rawModel": {
    "about": "Microsoft AI MAI-Image-2.5 إصدار التوليد العام والتحرير المنضبط في عائلة الصور 2.5. تصف بطاقة النموذج نموذج انتشار يستخدم مطابقة التدفق، ب20 مليار معلمة غير خاصة بالتضمين ومدخلات نص وصورة وسياق 32K توكن. وينتج صورًا للمفاهيم والصور الشخصية وصور المنتجات والرسوم التوضيحية ومراجعات التصاميم الموجودة. ويكون القرار الأول المفيد هو هل تحتاج المهمة تكوينًا جديدًا أم تغييرًا محدّدًا لصورة تحتوي بالفعل على العنصر المقصود.\n\nللتوليد، صِف العنصر الرئيسي والأسلوب البصري والضوء وزاوية الرؤية والترتيب. تبرز الجهة المطوّرة الصور التفصيلية المترابطة ورسم النص وصور المنتجات والالتزام بالتوجيه. ويمكن لتوجيه عملي لرسم توضيحي في عرض تقديمي تحديد دور العنصر والتركيز البصري المقصود وكمية المساحة المحيطة. ويمكن لمفهوم منتج تضمين المادة والمقياس وتشطيب السطح. أبقِ الوصف مترابطًا كي تشترك الأجسام في مشهد وخطة إضاءة واحدة، بدلًا من جمع عدة معالجات بصرية غير متوافقة.\n\nيتعلّق الاستدلال البصري في هذا الإصدار ببنية المشهد والإضاءة والمقياس والعلاقات المكانية. وتقدّم الجهة المصنّعة إضافة جسم بمنظور وظلال مناسبين كاستخدام للتحرير. ولتعديل ورشة، ضع مقعدًا صغيرًا بجوار منضدة عمل مع الحفاظ على زاوية الرؤية والضوء الموجودين. وينبغي للمراجعة مقارنة حجم المقعد وموضع ملامسته للأرض وما إذا كان ظله يتبع الأجسام الأخرى. فحتى الجسم المقنع محليًا يحتاج إلى التوافق مع هندسة الصورة المصدرية كاملة.\n\nتشمل التعديلات الموجّهة إزالة الأجسام أو استبدالها وتغيير الصفات والترميم داخل المناطق وتكييف التخطيط وتحديث النص والتنظيف مثل تقليل عيوب ضبابية الحركة. قدّم الصورة المصدرية واذكر التصحيح والتفاصيل المطلوب إبقاؤها معًا. ويمكن لتعديل فوتوغرافي مركّز إزالة جسم مشتّت من الخلفية مع الحفاظ على الشخص والاقتصاص وترتيب المقدمة. ويمكن لمراجعة تصميم تحديث سطر قصير مع إبقاء التكوين. قارن النتيجة كاملة بالمصدر بدلًا من تقييم المنطقة المعدّلة فقط.\n\nتركّز Microsoft أيضًا على اتساق الهوية الوجهية عبر التعديلات، بما فيها تغيّر الوضعية أو التعبير أو زاوية الرؤية. استخدم مرجعًا واضحًا للشبه وحدّد التغيير المقصود بطريقة تحافظ على السمات المعرِّفة. يقبل دليل التحرير الحالي لدى الجهة المصنّعة ما يصل إلى خمس صور JPEG أو PNG، بما يتيح لمراجع مختلفة تعريف الشخص أو الجسم أو المشهد أو الأسلوب. سمِّ هذه الأدوار في التوجيه. وفي مراجعة صورة شخصية، افحص الوجه والملابس أو الخلفية المعدّلة معًا قبل اعتبار الصورة مكتملة.\n\nتحدّ بطاقة النموذج المحدّدة المخرجات عند 1,048,576 بكسل إجمالًا، بما يعادل مربعًا 1024×1024، وتسمح لضلع واحد بتجاوز 1024 إذا بقي الإجمالي ضمن تلك المساحة. ويشترط دليل الخدمة أيضًا ألّا يقل أي من البعدين عن 768 بكسل. ويبلغ هدف مستطيل مثل 1344×768 عدد 1,032,192 بكسل، ويستوفي قواعد المساحة والحد الأدنى للأبعاد الموثّقة. الحد المفيد هو حاصل ضرب العرض في الارتفاع، لذا جهّز شكل الوجهة قبل طلب تكوين أفقي أو رأسي.\n\nيعيد التوليد والتحرير بيانات صور PNG في واجهة الخدمة لدى الجهة المصنّعة. وتذكر بطاقة النموذج الأصلية سياق 32K توكن، بينما تحدّد تلك الواجهة حدًا أقصى لسياق التوجيه قدره 32,000 توكن. ورقم 4,096 توكن للمخرجات المنفصل في الكتالوج سعة توكن، وليس بُعدًا للإخراج. حافظ على نطاق هذه التصريحات عند تنظيم توجيه تفصيلي والصورة المكتملة. وتشكل الصور المصدرية والسمات المحتفَظ بها والتعديلات المطلوبة والحجم المستهدف سجل مراجعة مفيدًا إلى جانب PNG.\n\nيمتد المجال الإبداعي للنموذج إلى الصور الواقعية والسينمائية والصور الشخصية ومفاهيم المنتجات أو العلامات التجارية والتصاميم الحاملة للنص وأساليب بصرية أخرى. ولملصق أو لافتة، قدّم النص الدقيق وافحص إملاءه بحجم العرض النهائي. وقد يحتوي سطح فوتوغرافي مألوف على تفصيل مختلق أو انعكاس غير متّسق أو حروف غير دقيقة. يتبع الفحص العملي متطلبات التصميم: هوية الجسم والمقروئية والعلاقات المكانية والمشهد المحتفَظ به كلها مهمة. أبقِ التصحيح المحدّد منفصلًا عن التغييرات التي نجحت بالفعل.\n\nضمن عائلة 2.5، يركّز Pro على أمانة بصرية أعلى وعلاقات ثابتة في المشاهد الكثيفة، بينما يخدم Flash إنتاجًا أسرع استجابة. وتضيف عائلة 2.6 سعة موثّقة أكبر لمساحة البكسلات والإسناد الاختياري بالويب واختيار الأبعاد بتوجيه النموذج. يحتفظ 2.5 القياسي بمساره الخاص للتوليد والتحرير من دون تلك العناصر اللاحقة. اختر الإصدار وفق الجزء الصعب من مهمة الصورة الفعلية وراجع النتيجة المكتملة مقابل ذلك التوجيه.",
    "alias_of": null,
    "aliases": [],
    "author": "Microsoft AI",
    "capabilities": {
      "context_length": 4096,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "image"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.385024",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.385024",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "التسعير الكامل للتكوين في التفاصيل."
      }
    ],
    "ctx": null,
    "formats": [
      "images"
    ],
    "id": "microsoft/mai-image-2.5",
    "input": [
      "text",
      "image"
    ],
    "kind": "image",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "احتفظ بقيمة X-Client-Request-ID المُعادة للمطابقة. اقرأ فقط قيم task_id/asset_id الفعلية المُعادة أو مكتبة الوسائط المملوكة لك؛ ولا تنشئ عنوان URL لمهمة من معرّف العملية، ولا تُعِد إرسال طلب الإنشاء مطلقًا."
            },
            "outputs": {
              "all_results": "احتفظ بالاستجابة كاملة وبجميع الترويسات، وبكل مخرج فعلي، وبالمعرّفات الأصلية المُعادة، وبجميع حقول الاستخدام. استعد العملية الأصلية دون إرسال طلب الإنشاء مجددًا.",
              "family": "image",
              "fields": [
                {
                  "description": null,
                  "name": "created",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].url",
                  "type": null
                },
                {
                  "description": null,
                  "name": "data[].b64_json",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "microsoft/mai-image-2.5"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              },
              {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:4",
                  "16:9",
                  "9:16",
                  "3:2",
                  "2:3",
                  "auto"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 1,
                "name": "n",
                "required": false,
                "type": "integer"
              },
              {
                "items": {
                  "properties": {
                    "image_url": {
                      "properties": {
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "url"
                      ],
                      "type": "object"
                    },
                    "type": {
                      "const": "image_url"
                    }
                  },
                  "required": [
                    "type",
                    "image_url"
                  ],
                  "type": "object"
                },
                "maximum_items": 1,
                "minimum_items": 0,
                "name": "input_references",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "4:3",
                    "3:4",
                    "16:9",
                    "9:16",
                    "3:2",
                    "2:3",
                    "auto"
                  ],
                  "type": "string"
                },
                "input_references": {
                  "items": {
                    "properties": {
                      "image_url": {
                        "properties": {
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url"
                    ],
                    "type": "object"
                  },
                  "maxItems": 1,
                  "minItems": 0,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "microsoft/mai-image-2.5"
                  ],
                  "type": "string"
                },
                "n": {
                  "maximum": 1,
                  "minimum": 1,
                  "type": "integer"
                },
                "prompt": {
                  "minLength": 1,
                  "type": "string"
                },
                "provider": {
                  "description": "Exact image provider preferences from the documented image request schema.",
                  "type": "object"
                }
              },
              "required": [
                "model",
                "prompt"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "model": "microsoft/mai-image-2.5",
                "prompt": "a red panda astronaut floating in space, studio lighting"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "required": [
              "model",
              "prompt"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/images/generations"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "image",
            "fields": [
              {
                "description": null,
                "name": "created",
                "type": null
              },
              {
                "description": null,
                "name": "data[].url",
                "type": null
              },
              {
                "description": null,
                "name": "data[].b64_json",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "تكلفة التوليد التقديرية",
            "units": [
              {
                "amount": "0.385024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.385024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np={'model': 'microsoft/mai-image-2.5', 'prompt': 'a red panda astronaut floating in space, studio lighting'}\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/images/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport base64, json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urlsplit, urljoin\n\ndef save_images(items):\n    if not items: raise SystemExit(\"No completed images; retain the full response\")\n    for index, item in enumerate(items):\n        encoded=item.get(\"b64_json\")\n        uri=item.get(\"url\", \"\")\n        if not encoded and uri.startswith(\"data:image/\"):\n            header, separator, encoded=uri.partition(\",\")\n            if not separator or \";base64\" not in header: raise SystemExit(\"Unsupported image data URI\")\n        if encoded:\n            raw=base64.b64decode(encoded,validate=True)\n        elif uri:\n            uri=urljoin(\"https://api.ailoot.ai\",uri)\n            parsed=urlsplit(uri)\n            if parsed.scheme!=\"https\" or not parsed.netloc or parsed.username or parsed.password:\n                raise SystemExit(\"Invalid returned image URL\")\n            owned=parsed.netloc==\"api.ailoot.ai\" and parsed.path.startswith(\"/v1/media/assets/\") and parsed.path.endswith(\"/content\")\n            args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",uri]\n            if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n            temporary=Path(f\"image-{index}.bin\")\n            subprocess.run(args+[\"-o\",str(temporary)],check=True)\n            raw=temporary.read_bytes()\n            temporary.unlink()\n        else: raise SystemExit(\"Image has neither bytes nor URL\")\n        if not raw: raise SystemExit(\"Empty image result\")\n        ext=\"png\" if raw.startswith(b\"\\x89PNG\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4]==b\"RIFF\" and raw[8:12]==b\"WEBP\" else \"svg\" if raw.lstrip().startswith((b\"<svg\",b\"<?xml\")) else \"bin\"\n        Path(f\"image-{index}.{ext}\").write_bytes(raw)\n    print(\"Every returned image saved; complete response metadata retained\")\nsave_images(json.loads(Path(\"result.json\").read_text())[\"data\"])\nPY_RESULT\n",
            "label": "curl · exact creation/save all outputs",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "images",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "الصور",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/images"
        ],
        "native_endpoint": "images",
        "out": null,
        "output": [
          "image"
        ],
        "path": "/v1/images/generations",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.385024",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.385024",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "microsoft/mai-image-2.5",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.385024",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.385024",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "microsoft/mai-image-2.5",
        "request_model_id": "microsoft/mai-image-2.5",
        "route_label": "Ultra"
      }
    ],
    "name": "Microsoft AI: MAI-Image-2.5",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.385024,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.385024,
      "varies": false
    },
    "short": "ينشئ Microsoft AI MAI-Image-2.5 صورًا من النص ويجري تعديلات مستهدفة على صور أو تصاميم مقدَّمة. يدعم تغيير الأجسام والنص وتنظيف العيوب وتعديلات تحافظ على الوجه، مع مخرجات PNG وما يصل إلى خمسة مراجع بصرية. وتحدّد بطاقة نموذجه سياق 32K و1,048,576 بكسل للمخرجات."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "ينشئ Microsoft AI MAI-Image-2.5 صورًا من النص ويجري تعديلات مستهدفة على صور أو تصاميم مقدَّمة. يدعم تغيير الأجسام والنص وتنظيف العيوب وتعديلات تحافظ على الوجه، مع مخرجات PNG وما يصل إلى خمسة مراجع بصرية. وتحدّد بطاقة نموذجه سياق 32K و1,048,576 بكسل للمخرجات.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "4c5ad1ee9b4e1bc77901db2ecde78d0961e5761b53c03db6cc036fcfc3aa890b",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "145611ef3874ef5c768eeda4bfded4dc6c8d235cbb3f8ca983d04b571fdaaf0f"
}
