توليد الصور عبر OpenRouter في Open WebUI وSillyTavern: ما الذي يعمل فعليًا

تضم OpenRouter نماذج صور من OpenAI وGoogle وByteDance وBlack Forest Labs، لكن Open WebUI وSillyTavern يتصلان بها بطرق مختلفة. اطّلع على الإعدادات الدقيقة، والحل البديل عبر البوابة مع Open WebUI، وخيارات المصدر والبادئات في SillyTavern، ومصائد التكلفة، وقائمة قصيرة للأخطاء الشائعة.

توليد الصور عبر OpenRouter في Open WebUI وSillyTavern: ما الذي يعمل فعليًا
Cristian Da Conceicao
مؤسس Picasso IA

أنت تدفع بالفعل مقابل نماذج الدردشة عبر 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) الخاص بك، ويحمل الجسم الحقول الموضحة أدناه.

الحقلوظيفته
modelمعرّف النموذج، مثل bytedance-seed/seedream-4.5
promptالوصف النصي للصورة
aspect_ratioنسبة موحّدة، أو auto للسماح للمزود بالاختيار
resolutionفئة من 512 حتى 4K
sizeاختصار للبكسلات الصريحة، مثل 2048x2048
qualityauto، أو low، أو medium، أو high
output_formatpng، أو jpeg، أو webp، أو svg
nعدد الصور، من 1 إلى 10
streamيرسل المعاينات الجزئية كأحداث يرسلها الخادم (server-sent events)

يضع الرد كل صورة في مصفوفة data كنص base64 داخل b64_json، بجانب media_type مثل image/png وكتلة usage تتضمن عدد التوكنات والتكلفة. لا تحصل على رابط مستضاف. أي طبقة تقع بين OpenRouter والواجهة الأمامية يجب أن تفك ترميز هذا النص أو تحفظه كملف، وهذه التفصيلة تفسر عددًا من الأخطاء لاحقًا في هذا المقال.

في أعمال تحويل الصورة إلى صورة، يقبل المسار نفسه input_references، وقد تكون عناوين HTTP(S) أو روابط بيانات base64.

💡 نصيحة: تصف الدروس القديمة توليد الصور عبر مسار الدردشة مع معامل modalities، مستخدمةً ["image", "text"] للنماذج التي تكتب نصًا أيضًا، و["image"] للنماذج التي تنتج صورًا فقط. إذا تعارضت الدروس مع الوثائق الحالية، فثق بالوثائق وبصفحة النموذج الذي تستدعيه فعليًا.

نماذج تستحق التجربة

ابدأ بقائمة مختصرة بدلًا من تصفح الكتالوج كله. تظهر المعرّفات أدناه في وثائق OpenRouter أو في أمثلة البوابات التي يشاركها المجتمع، ويشير العمود الأخير إلى عائلة النموذج نفسها على PicassoIA حتى تختبر الأوامر النصية أولًا.

معرّف النموذج في OpenRouterالجهة المطوّرةالعائلة نفسها على PicassoIA
openai/gpt-image-2OpenAIGPT Image 2
bytedance-seed/seedream-4.5ByteDanceSeedream 4.5
black-forest-labs/flux.2-proBlack Forest LabsFLUX.2 Pro
google/gemini-2.5-flash-imageGoogleGemini 2.5 Flash Image

يتغير الكتالوج كثيرًا. قبل أن تنسخ أي معرّف، فلتر صفحة النماذج في OpenRouter حسب مخرجات الصور، وتأكد من السلسلة حرفًا بحرف.

قبل أن تربط أي شيء

عشر دقائق من التحضير توفر مساءً كاملًا من الأخطاء المربكة. تحتاج الواجهتان الأماميتان إلى الشيئين نفسيهما: رمز يمكنك التخلص منه، وصورة واضحة لتكلفة كل صورة.

أنشئ رمزًا منفصلًا

أنشئ بيانات اعتماد جديدة في OpenRouter تُستخدم لأعمال الصور فقط. إذا سجّلتها واجهة أمامية، أو دارت دردشة لعب أدوار في حلقة، أو لصقته في لقطة شاشة بالخطأ، فأنت تلغي رمزًا واحدًا فقط ويستمر إعداد الدردشة العادي في العمل. سمِّه باسم الواجهة الأمامية، مثلًا رمز لـ Open WebUI وآخر لـ SillyTavern، حتى يخبرك سجل النشاط بما أنفقه كل تطبيق.

يدان تكتبان على حاسوب محمول بجانب بطاقة ورق بسيطة وجهاز أمان USB فوق مكتب خشبي

راجع الرصيد والفوترة

تذكر 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 يعمل في كل الإصدارات. اعتبر المسار المباشر تجربة. أرسل صورة اختبار واحدة، واقرأ الخطأ بدقة، ثم قرر بعدها إن كنت تحتاج إلى طبقة ترجمة.

أمامك ثلاثة خيارات واقعية:

  1. جرّب المسار المباشر. أدخل https://openrouter.ai/api/v1 كعنوان أساسي للـ API، والصق رمزك، واكتب معرّف النموذج يدويًا، ثم وَلِّد صورة واحدة.
  2. شغّل بوابة ترجمة. خدمة صغيرة تقبل طلبات الصور على نمط OpenAI وتعيد توجيهها إلى OpenRouter. يعرض القسم التالي مثالًا عليها.
  3. استخدم موجّه صور آخر متوافقًا مع 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 لاختبار محلي على الجهاز نفسه.

⚠️ تنبيه: هذا برنامج من طرف ثالث، وسيرى رمزك. اقرأ شيفرته المصدرية أو شغّله على جهاز تتحكم فيه قبل أن تأتمنه على بيانات اعتماد لها رصيد حقيقي. يذكر الوصف أيضًا توليد الصور من النص فقط، فلا تتوقع أن يعمل تعديل الصور عبره.

حاسوب صغير مدمج على رف من خشب الصنوبر بجانب موجّه وكابلات Ethernet ملفوفة، من الأعلى

اختيار الأحجام والنماذج

اكتب اسم النموذج بنفسك بدلًا من استخدام القائمة المنسدلة. تقول تعليمات 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 الأمر النصي من الدردشة نيابةً عنك، والوضع الذي تختاره يحدد ما يصفه.

الوضعأمر الشرطة المائلةما تحصل عليه
Yourselfyouبورتريه كامل الجسم للشخصية الحالية
Your Facefaceبورتريه قريب للشخصية الحالية
Memeبورتريه لشخصية المستخدم الخاصة بك
The Whole Storysceneملخص بصري لأحداث الدردشة
The Last Messagelastملخص بصري لآخر رسالة
Raw Last Messageraw_lastآخر رسالة تُرسل حرفيًا كأمر نصي
Backgroundbackgroundخلفية للدردشة مبنية على سياق القصة

تصل إلى هذه الأوضاع بثلاث طرق: عنصر 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 tavernwoman 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 roomsmall attic bedroom at dusk, low-angle shot, soft window light from the right, linen sheets, visible dust in the air
a battle scenetwo 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 WebUI1: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.

صورة فارغة أو رسالة خطأ منبثقة

نفّذ هذه القائمة بالترتيب:

  1. خطأ 404 أو 405. الواجهة الأمامية تستدعي مسارًا لا يملكه الخادم. تحقق من عنوان القاعدة وما إذا كنت تحتاج إلى البوابة.
  2. خطأ 401. الرمز خاطئ، أو أُلغي، أو أن البوابة لا تمرر ترويسة الحامل (bearer header).
  3. Model not found. في معرّف النموذج خطأ مطبعي أو بادئة ناقصة. انسخه من OpenRouter بدلًا من كتابته من الذاكرة.
  4. يُحفظ الملف لكنه لا يُفتح. خُزّن نص base64 دون فك ترميز. وبما أن OpenRouter تعيد b64_json، فعلى الطبقة الوسيطة أن تحوّله إلى ملف صورة أو رابط.
  5. لا يحدث شيء على الإطلاق. افتح وحدة التحكم في المتصفح أو سجل الخادم واقرأ أول سطر أحمر قبل تغيير أي إعداد.

كابل Ethernet أزرق موصول بمنفذ موجّه رمادي مع أضواء مؤشرات غير واضحة خلفه

حجم أو نسبة خاطئة في الناتج

تفكر 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 الافتراضي.

إليك روتينًا سريعًا يعمل:

  1. افتح صفحة نموذج على PicassoIA والصق أمرك التصويري الأقوى.
  2. اضبط نسبة العرض إلى الارتفاع التي تنوي استخدامها في الدردشة، مثل 2:3 للبورتريهات أو 16:9 للخلفيات.
  3. وَلِّد صورتين أو ثلاث صور متنوعة، ولاحظ العبارات التي غيّرت النتيجة أكثر من غيرها.
  4. شغّل الأمر نفسه على نموذج ثانٍ، واحتفظ بالنموذج الذي يطابق شخصيتك أكثر.
  5. انسخ الصياغة الفائزة إلى Common Prompt Prefix أو إلى أمر Open WebUI الخاص بك، ثم انتقل إلى OpenRouter للجلسة الطويلة.

هل أنت مستعد للتجربة؟ افتح PicassoIA، ومرّر أوامرك المفضلة الثلاثة عبر نموذجين، وشاهد أيها يستحق مكانًا في إعدادك.

شارك هذا المقال

اختر لغتك

مقالات ذات صلة