توليد الصور عبر OpenRouter في Open WebUI وSillyTavern: ما الذي يعمل فعليًا
تضم OpenRouter نماذج صور من OpenAI وGoogle وByteDance وBlack Forest Labs، لكن Open WebUI وSillyTavern يتصلان بها بطرق مختلفة. اطّلع على الإعدادات الدقيقة، والحل البديل عبر البوابة مع Open WebUI، وخيارات المصدر والبادئات في SillyTavern، ومصائد التكلفة، وقائمة قصيرة للأخطاء الشائعة.
أنت تدفع بالفعل مقابل نماذج الدردشة عبر OpenRouter، لذلك يبدو إرسال طلبات الصور عبر الحساب نفسه خيارًا سهلًا. لا اشتراك ثانٍ، ولا لوحة تحكم إضافية، ورصيد واحد تراقبه. لكن المشكلة أن Open WebUI وSillyTavern يصلان إلى OpenRouter بطرق مختلفة جدًا. يتحدث Open WebUI بمسار صور على نمط OpenAI، ولم تذكر الوثائق التي راجعتها OpenRouter ولو مرة كخيار. أما SillyTavern فيدرج OpenRouter كمصدر صور جاهز، لكنه لا يقول الكثير عن طريقة الإعداد. يعرض هذا المقال المسارين، ويحدد المواضع التي تصمت فيها الوثائق، ويقدم لك قائمة قصيرة لحظة ظهور صورة فارغة بعد التوليد.
ما الذي تقدمه OpenRouter للصور
تعمل OpenRouter كواجهة موحّدة لمزودين كثيرين، ويضم كتالوجها الآن نماذج صور من Google وOpenAI وBlack Forest Labs وxAI وByteDance وMicrosoft وRecraft وKrea وSourceful. تشحن رصيدًا واحدًا بدلًا من فتح حساب لدى كل مختبر، وتبدّل النماذج بتغيير سلسلة نصية واحدة.
كيف تعمل نقطة نهاية الصور
تصف وثائق OpenRouter الحالية مسارًا مخصصًا للصور. ترسل طلب POST إلى /api/v1/images مع رمز الحامل (bearer token) الخاص بك، ويحمل الجسم الحقول الموضحة أدناه.
يضع الرد كل صورة في مصفوفة data كنص base64 داخل b64_json، بجانب media_type مثل image/png وكتلة usage تتضمن عدد التوكنات والتكلفة. لا تحصل على رابط مستضاف. أي طبقة تقع بين OpenRouter والواجهة الأمامية يجب أن تفك ترميز هذا النص أو تحفظه كملف، وهذه التفصيلة تفسر عددًا من الأخطاء لاحقًا في هذا المقال.
في أعمال تحويل الصورة إلى صورة، يقبل المسار نفسه input_references، وقد تكون عناوين HTTP(S) أو روابط بيانات base64.
💡 نصيحة: تصف الدروس القديمة توليد الصور عبر مسار الدردشة مع معامل modalities، مستخدمةً ["image", "text"] للنماذج التي تكتب نصًا أيضًا، و["image"] للنماذج التي تنتج صورًا فقط. إذا تعارضت الدروس مع الوثائق الحالية، فثق بالوثائق وبصفحة النموذج الذي تستدعيه فعليًا.
نماذج تستحق التجربة
ابدأ بقائمة مختصرة بدلًا من تصفح الكتالوج كله. تظهر المعرّفات أدناه في وثائق OpenRouter أو في أمثلة البوابات التي يشاركها المجتمع، ويشير العمود الأخير إلى عائلة النموذج نفسها على PicassoIA حتى تختبر الأوامر النصية أولًا.
يتغير الكتالوج كثيرًا. قبل أن تنسخ أي معرّف، فلتر صفحة النماذج في OpenRouter حسب مخرجات الصور، وتأكد من السلسلة حرفًا بحرف.
قبل أن تربط أي شيء
عشر دقائق من التحضير توفر مساءً كاملًا من الأخطاء المربكة. تحتاج الواجهتان الأماميتان إلى الشيئين نفسيهما: رمز يمكنك التخلص منه، وصورة واضحة لتكلفة كل صورة.
أنشئ رمزًا منفصلًا
أنشئ بيانات اعتماد جديدة في OpenRouter تُستخدم لأعمال الصور فقط. إذا سجّلتها واجهة أمامية، أو دارت دردشة لعب أدوار في حلقة، أو لصقته في لقطة شاشة بالخطأ، فأنت تلغي رمزًا واحدًا فقط ويستمر إعداد الدردشة العادي في العمل. سمِّه باسم الواجهة الأمامية، مثلًا رمز لـ Open WebUI وآخر لـ SillyTavern، حتى يخبرك سجل النشاط بما أنفقه كل تطبيق.
راجع الرصيد والفوترة
تذكر OpenRouter أن فوترة الصور تتم بالكامل أو لا تتم. إما أن يكتمل التوليد فتُحتسب تكلفته كاملة، أو يفشل فلا يُحتسب شيء. الصور الجزئية للمعاينة التي تصل أثناء الطلب المتدفق لا تنشئ رسومًا جزئية. هذا خبر جيد للمحاولات الفاشلة، لكنه يعني أيضًا أن حلقة من عمليات التوليد الناجحة تستنزف الرصيد بالسعر الكامل، لذا احتفظ برصيد صغير أثناء الاختبار.
إعداد Open WebUI
Open WebUI هو الأصعب بين الاثنين، والسبب ليس إعداداتك. الأمر يتعلق بشكل الطلب الذي تتوقعه كل جهة.
أين توجد الإعدادات
افتح Admin Settings وابحث عن قسم Images. تعطي الوثائق المسار Settings، Admin، Experience، Images، وتتغير أسماء القوائم بين الإصدارات، لذا ابحث عن "Images" إذا اختلف عندك. اضبط Image Generation Engine على Default (Open AI). سترى هذه الحقول:
API Base URL، العنوان الذي تُرسل إليه الطلبات
API credential، وهنا يوضع رمزك
Model، قائمة منسدلة أو اسم تكتبه يدويًا
Image Size، ومحدود بما يسمح به المحرك
قوائم الأحجام الموثقة لمحرك OpenAI هي 256x256، و512x512، و1024x1024 لنموذج DALL·E 2، ثم 1024x1024، و1792x1024، و1024x1792 لـ DALL·E 3، وauto، و1024x1024، و1536x1024، و1024x1536 لنماذج GPT-Image.
مشكلة عدم تطابق المسار
هنا تتعثر الإعدادات. يرسل محرك OpenAI في Open WebUI طلبًا على نمط OpenAI يحوي حقولًا مثل prompt، وmodel، وn، وsize، وquality وصيغة للرد. أما مسار الصور الموثق في OpenRouter فهو /api/v1/images الخاص بها، بحقول مختلفة مثل aspect_ratio وresolution. صفحات Open WebUI التي راجعتها تصف OpenAI نفسها، وAzure OpenAI، وخادم وسيط LiteLLM، وخدمة من نوع Image Router. لا تذكر أيٌّ منها OpenRouter.
⚠️ تنبيه: لم أتمكن من التأكد من أن توجيه محرك OpenAI مباشرةً إلى OpenRouter يعمل في كل الإصدارات. اعتبر المسار المباشر تجربة. أرسل صورة اختبار واحدة، واقرأ الخطأ بدقة، ثم قرر بعدها إن كنت تحتاج إلى طبقة ترجمة.
أمامك ثلاثة خيارات واقعية:
جرّب المسار المباشر. أدخل https://openrouter.ai/api/v1 كعنوان أساسي للـ API، والصق رمزك، واكتب معرّف النموذج يدويًا، ثم وَلِّد صورة واحدة.
شغّل بوابة ترجمة. خدمة صغيرة تقبل طلبات الصور على نمط OpenAI وتعيد توجيهها إلى OpenRouter. يعرض القسم التالي مثالًا عليها.
استخدم موجّه صور آخر متوافقًا مع OpenAI. توثّق Open WebUI هذا النمط للخدمات التي تنسخ صيغة OpenAI.
استخدام بوابة في Docker
يوجد مشروع مجتمعي على Docker Hub باسم OpenRouter Image Gateway وُجد لسد هذه الفجوة تحديدًا. بحسب وصفه، يكشف POST /v1/images/generations، وGET /v1/models، وGET /health. يقبل معاملات على نمط OpenAI (prompt، وmodel، وn، وsize، وquality، وresponse_format)، ويمرر رمز الحامل الخاص بك إلى OpenRouter، ويحوّل أحجام البكسل إلى نسب عرض إلى ارتفاع في OpenRouter، ويعيد الصور كـ b64_json أو كرابط.
مع تشغيل البوابة، تبدو حقول Open WebUI هكذا:
Image Generation Engine: Default (Open AI)
API Base URL: http://openrouter-image-gateway:8000/v1
API credential: <your OpenRouter token>
Model: google/gemini-2.5-flash-image
استخدم http://openrouter-image-gateway:8000/v1 عندما تشترك الحاويتان في شبكة Docker، واستخدم http://localhost:8000/v1 لاختبار محلي على الجهاز نفسه.
⚠️ تنبيه: هذا برنامج من طرف ثالث، وسيرى رمزك. اقرأ شيفرته المصدرية أو شغّله على جهاز تتحكم فيه قبل أن تأتمنه على بيانات اعتماد لها رصيد حقيقي. يذكر الوصف أيضًا توليد الصور من النص فقط، فلا تتوقع أن يعمل تعديل الصور عبره.
اختيار الأحجام والنماذج
اكتب اسم النموذج بنفسك بدلًا من استخدام القائمة المنسدلة. تقول تعليمات Image Router الخاصة بـ Open WebUI أن تفعل ذلك تحديدًا للمزودين غير OpenAI، لأن القائمة المنسدلة تعرض أسماء OpenAI ولن تظهر أبدًا google/gemini-2.5-flash-image.
أما الحجم، فاختر خيار الوضع الأفقي الأقرب للشكل الذي تريده، وتحقق من الناتج. عندما تقع بوابة في الوسط، فهي تربط اختيارك بالبكسلات بأقرب نسبة عرض إلى ارتفاع، لذلك قد يعود طلب 1536x1024 بصورة نظيفة بنسبة 3:2 بدلًا من تلك البكسلات بالضبط. هذا مقبول للدردشة، لكن تحقق قبل أن تبني سير عمل يعتمد على أبعاد دقيقة.
إعداد SillyTavern
يتخذ SillyTavern نهجًا معاكسًا. توليد الصور امتداد مدمج فيه، وOpenRouter أحد الخيارات في قائمة مصادره.
اختر OpenRouter كمصدر
تدرج الوثائق الرسمية OpenRouter كمصدر سحابي إلى جانب OpenAI وBlack Forest Labs وFAL.AI وGoogle وx.AI وStability AI وغيرها. افتح لوحة Extensions، ووسّع Image Generation، واختر OpenRouter كمصدر، وأدخل رمزك، وحدّد نموذج صور.
انتبه إلى أن الوثائق لا تخصص لمصدر OpenRouter قسم إعداد مستقلًا، على عكس مصادر مثل Stability AI. قد تختلف التسميات وترتيب الحقول بين الإصدارات، فاعتبر الخطوات أعلاه خريطة إرشادية لا نصًا تنفذه حرفيًا.
أوضاع التوليد التي ستستخدمها
يبني SillyTavern الأمر النصي من الدردشة نيابةً عنك، والوضع الذي تختاره يحدد ما يصفه.
الوضع
أمر الشرطة المائلة
ما تحصل عليه
Yourself
you
بورتريه كامل الجسم للشخصية الحالية
Your Face
face
بورتريه قريب للشخصية الحالية
Me
me
بورتريه لشخصية المستخدم الخاصة بك
The Whole Story
scene
ملخص بصري لأحداث الدردشة
The Last Message
last
ملخص بصري لآخر رسالة
Raw Last Message
raw_last
آخر رسالة تُرسل حرفيًا كأمر نصي
Background
background
خلفية للدردشة مبنية على سياق القصة
تصل إلى هذه الأوضاع بثلاث طرق: عنصر Image Generation في قائمة العصا السحرية، والأمر /sd متبوعًا بوضع أو بنص حر تكتبه، أو أيقونة الفرشاة على رسالة واحدة للوضع الخام. يقبل الأمر أيضًا وسائط مسماة، مثل negative="blurry, extra fingers".
يناسب وضعا scene وlast الدردشات الغنية بالأحداث، حيث تلخص صورة واحدة ما جرى للتو على الطاولة.
بادئات تحافظ على ثبات الشخصيات
ثلاثة مربعات نص تحدد مدى ثبات صورك من توليد إلى آخر:
Common Prompt Prefix يُضاف قبل كل أمر نصي ويحدد الأسلوب العام.
Character-Specific Prompt Prefix يصف مظهر شخصية واحدة. يعمل فقط في الدردشات الفردية، لا في المجموعات.
Negative Prompt يسرد ما لا تريد رؤيته.
زوج بداية مفيد يبدو هكذا. بادئة عامة: candid 35mm photograph, natural window light, fine film grain. بادئة الشخصية: woman in her thirties, freckles, loose auburn braid, denim jacket. اجعل بادئة الشخصية قصيرة وجسدية، ودع بادئة الأسلوب تحمل لغة الإضاءة والعدسة.
💡 نصيحة: قائمة حقول OpenRouter التي راجعتها لا تتضمن حقل أمر نصي سلبي، لذا قد لا يفعل هذا المربع شيئًا على هذا المصدر. صف ما تريده بعبارات إيجابية داخل الأمر النصي الرئيسي بدلًا من ذلك.
أوامر نصية تعمل في الاثنين
أيًّا كانت الواجهة التي تستخدمها، فالنموذج في الطرف الآخر يقرأ أمرًا نصيًا واحدًا. يحسّن قليلٌ من البنية النتائج في التطبيقين.
اكتب أوامر تصويرية
ابنِ كل أمر من خمسة أجزاء: الشخص، والمكان، والضوء، والعدسة، والملمس. تميل الأوامر المستخلصة من دردشات SillyTavern إلى أن تكون ملخصات قصصية، وهي ما تتعامل معه النماذج بضعف، لذا أعد كتابتها كوصف للكاميرا حين تكون الصورة مهمة.
أمر ضعيف
أمر أقوى
a girl in a tavern
woman in a wool cloak at a candlelit tavern table, 35mm f/1.8, warm side light, wood grain and pewter cups in sharp focus
my room
small attic bedroom at dusk, low-angle shot, soft window light from the right, linen sheets, visible dust in the air
a battle scene
two riders on a muddy road at dawn, 70mm lens, overcast light, wet leather and mud splashes, shallow depth of field
إذا بدت كتابة هذه الأوامر يدويًا بطيئة، فاطلب من نموذج دردشة إعادة الكتابة. يحوّل كل من Claude Sonnet 5 وGemini 3.5 Flash ملخصًا خشنًا لمشهد إلى سطر جاهز للكاميرا في ثوانٍ.
طابق نسبة العرض إلى الارتفاع مع الغرض
اختر الشكل قبل اختيار النموذج. النسبة الخاطئة تهدر توليدًا كاملًا.
الغرض
النسبة المقترحة
السبب
بورتريه شخصية
2:3 أو 3:4
يناسب إطارًا طويلًا وقصًّا يشمل الوجه والكتفين
ملخص مشهد
3:2 أو 16:9
مساحة كافية للمكان كاملًا
خلفية الدردشة
16:9
يتناسب مع شاشة عريضة
اختبار سريع لـ Open WebUI
1:1
أرخص طريقة لتأكيد أن المسار يعمل
التكاليف والحدود التي تفاجئ الناس
معظم الفواتير المفاجئة تأتي من الإعدادات لا من الأسعار. يسرد الجدول المتهمين المعتادين.
الوضع
لماذا يكلف أكثر
ما الذي تفعله
الوضع التفاعلي في SillyTavern
الرسائل التي تحوي فعلًا مثل draw أو send متبوعًا باسم مثل photo أو picture تُطلق توليدًا
أوقفه للدردشات العابرة
n أعلى من 1
طلب واحد قد يعيد حتى 10 صور
أبقه على 1 أثناء الاختبار
فئات الدقة العالية
حقل resolution يصل إلى 4K
ابدأ بفئة أقل وارفعها للنتائج النهائية
حلقات إعادة المحاولة
المحاولات الفاشلة لا تُحتسب، لكن النجاحات المتكررة تُحتسب
توقف بعد محاولتين أو ثلاث وعدّل الأمر النصي
يستحق الوضع التفاعلي في SillyTavern نظرة ثانية. يراقب أفعالًا مثل send وmake وdraw وpaint وrender وimagine وcreate وmail، متبوعةً خلال بضعة أحرف بكلمات مثل pic وpicture وimage وdrawing وpainting وphoto أو photograph. يمكن لسطر لعب أدوار يحوي عبارة "draw a picture" أن ينفق رصيدًا دون أن تضغط أي شيء.
💡 نصيحة: راجع صفحة نشاط OpenRouter بعد أول عشرة توليدات. قارن التكلفة لكل صورة بما توقعته، ثم عدّل النموذج والدقة قبل جلسة طويلة.
إصلاح الأخطاء الشائعة
حين تفشل صورة، يكون السبب غالبًا واحدًا من أربعة: المسار، أو الرمز، أو معرّف النموذج، أو معالجة base64.
صورة فارغة أو رسالة خطأ منبثقة
نفّذ هذه القائمة بالترتيب:
خطأ 404 أو 405. الواجهة الأمامية تستدعي مسارًا لا يملكه الخادم. تحقق من عنوان القاعدة وما إذا كنت تحتاج إلى البوابة.
خطأ 401. الرمز خاطئ، أو أُلغي، أو أن البوابة لا تمرر ترويسة الحامل (bearer header).
Model not found. في معرّف النموذج خطأ مطبعي أو بادئة ناقصة. انسخه من OpenRouter بدلًا من كتابته من الذاكرة.
يُحفظ الملف لكنه لا يُفتح. خُزّن نص base64 دون فك ترميز. وبما أن OpenRouter تعيد b64_json، فعلى الطبقة الوسيطة أن تحوّله إلى ملف صورة أو رابط.
لا يحدث شيء على الإطلاق. افتح وحدة التحكم في المتصفح أو سجل الخادم واقرأ أول سطر أحمر قبل تغيير أي إعداد.
حجم أو نسبة خاطئة في الناتج
تفكر OpenRouter بنسب العرض إلى الارتفاع وفئات الدقة، بينما تفكر Open WebUI بالبكسلات. تترجم البوابة بينهما، والترجمة تقريبية. إن احتجت إلى شكل دقيق، فاستدعِ OpenRouter مباشرةً مع aspect_ratio وresolution، أو اقتطع الصورة لاحقًا. وإذا بدت الصورة ممطوطة، فتحقق مما إذا كانت الواجهة تفرض صندوق عرض ثابتًا قبل أن تلوم النموذج.
اختبر الأوامر قبل أن تنفق الرصيد
كل توليد مهدر يكلفك مالًا حقيقيًا، لذا اضبط أوامرك حيث تكون التجربة رخيصة. تضع PicassoIA GPT Image 2 وSeedream 4.5 وFLUX.2 Pro وGemini 2.5 Flash Image في مكان واحد، فتقارن الأمر نفسه بين الجهات المطوّرة قبل أن تثبّت واحدًا منها في بادئة SillyTavern أو في إعداد Open WebUI الافتراضي.
إليك روتينًا سريعًا يعمل:
افتح صفحة نموذج على PicassoIA والصق أمرك التصويري الأقوى.
اضبط نسبة العرض إلى الارتفاع التي تنوي استخدامها في الدردشة، مثل 2:3 للبورتريهات أو 16:9 للخلفيات.
وَلِّد صورتين أو ثلاث صور متنوعة، ولاحظ العبارات التي غيّرت النتيجة أكثر من غيرها.
شغّل الأمر نفسه على نموذج ثانٍ، واحتفظ بالنموذج الذي يطابق شخصيتك أكثر.
انسخ الصياغة الفائزة إلى Common Prompt Prefix أو إلى أمر Open WebUI الخاص بك، ثم انتقل إلى OpenRouter للجلسة الطويلة.
هل أنت مستعد للتجربة؟ افتح PicassoIA، ومرّر أوامرك المفضلة الثلاثة عبر نموذجين، وشاهد أيها يستحق مكانًا في إعدادك.