وصف المشكلة/الخطأ/السؤال
الغرض الخاص بي هو توليد صور Gemini. لدي صورة إدخال و6 طلبات إدخال وأحصل على صورة. أود توليد 6 صور متغيرة باستخدام طلباتي. بالنسبة لصورة الإدخال الأولى لا توجد مشكلة لكن بالنسبة لصورة الإدخال الثانية الأتمتة لا تعمل.
العملية:
- إنشاء مجلد
- الحصول على صورة الإدخال الأولى والطلب الأول
- توليد صورة ذكية واحفظها في المجلد المُنشأ.
- التكرار لـ 6 طلبات مختلفة لصورة الإدخال الأولى.
- التكرار لجميع السيناريوهات الخاصة بصورة الإدخال الثانية.
المشكلة: الأتمتة تنشئ فقط المجلد لصورة الثانية ولا توليد صورة ذكية.
ما هي رسالة الخطأ (إن وجدت)؟
يرجى مشاركة سير العمل الخاص بك
(حدد العقد على القماش واستخدم اختصارات لوحة المفاتيح CMD+C/CTRL+C و CMD+V/CTRL+V لنسخ ولصق سير العمل.)
شارك الإخراج الذي تم إرجاعه بواسطة العقدة الأخيرة

معلومات عن إعداد n8n الخاص بك
- إصدار n8n:
- قاعدة البيانات (الافتراضي: SQLite):
- إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):
- تشغيل n8n عبر (Docker, npm, n8n cloud, تطبيق سطح المكتب):
- نظام التشغيل:
الأعراض التي تظهرها (يعمل للصورة 1، والصورة 2 تحصل على مجلد فقط بدون إنشاء) هي مشكلة حلقة العناصر المتداخلة الكلاسيكية. وهي تقريباً لا تكون أبداً مشكلة في عقدة Gemini.
لماذا يحدث هذا
Loop Over Items (SplitInBatches) في n8n يحتفظ بعداد الدفعة داخل العقدة. حلقتك الداخلية على 6 موجهات تنتهي من كل 6 موجهات للصورة 1 وتبقى في حالة "اكتملت". في التكرار الخارجي الثاني، حلقة الصورة الخاصة بك توصل لها الصورة 2، لكن الحلقة الداخلية تعتقد أنها انتهت بالفعل، لذا تطلق مخرجها اكتملت فوراً وتتخطى عقد Gemini والتحميل. كل شيء في المنطقة الأعلى من الحلقة الداخلية لا يزال يعمل، وهذا بالضبط السبب في أن الصورة 2 تحصل على خطوة إنشاء مجلد المفهوم وشيء آخر فقط.
إصلاح بعقدة واحدة
افتح عقدة حلقة الموجهات الداخلية، وانتقل إلى الخيارات، وفعّل إعادة تعيين. هذا يفرض على الحلقة الداخلية أن تعيد التهيئة في كل مرة تصل صورة جديدة من الحلقة الخارجية بدلاً من البقاء في حالة "اكتملت". هذا هو الحل لغالبية تقارير "الحلقة المتداخلة تعمل مرة واحدة فقط".
هناك شيئان يستحقان فحصاً سريعاً أثناء وجودك هناك:
- تأكد من أن بناء الموجهات فعلاً ينبث 6 عناصر لكل صورة. إذا كان المسار يظهر "إجمالي عناصر" أقل مما تتوقع، فإن الحلقة لديها عدد أقل من الأشياء للتكرار عليها مما تعتقد.
- فرع اكتملت في الحلقة الداخلية يجب أن يعود إلى حلقة الصورة الخارجية، وهو يفعل ذلك في لقطتك، لذا الأسلاك نفسها بخير. إعادة التعيين هي القطعة المفقودة.
يستحق التفكير فيه: أسقط الحلقة الداخلية تماماً
حلقات SplitInBatches المتداخلة هي النمط الأكثر هشاشة في n8n، واستدعاءات Gemini الخاصة بك تعمل بشكل صارم واحداً في كل مرة، لذا صورتان في 6 موجهات لكل واحدة = 12 إنشاء متسلسل. بما أنك على nano-banana (Gemini 3.1 Flash Image)، يمكنك نشر 6 موجهات كـ 6 عناصر وتشغيلها بالتوازي مع واجهة برمجية صورة غير متزامنة. أستخدم KIE.AI، التي تعرض nano-banana كوظيفة إرسال ثم استقصاء:
- بناء 6 موجهات (عقدة Code) تنبث 6 عناصر.
- إرسال المهمة هي عقدة HTTP واحدة بدون حلقة حولها. لأن عقدة HTTP تعمل مرة واحدة لكل عنصر إدخال، كل 6 وظائف تطلق بالتقارب وكل واحدة ترجع
taskId.
- خطوة قصيرة انتظر ثم استقصِ تجمع كل نتيجة. العناصر تتجه بمفردها: واحد منتهي يحمّل ويحفظ فوراً، واحد معلق ينتظر ويعيد الاستقصاء، لذا الوظائف السريعة لا تنتظر على الوظائف البطيئة.
لا توجد حلقة Loop Over Items داخلية أينما كانت، لذا لا توجد حالة إعادة تعيين تحصل بشكل خاطئ، وكل 6 تُرسم مرة واحدة بدلاً من واحد في كل مرة.
وضعت سير عمل مرجعي معقم أدناه (انقر على </> في المؤلف وينستورد مباشرة). حلقة الصورة الخارجية تبقى؛ حلقة الموجهات الداخلية اختفت. استبدل عقد Google Drive بأينما تعيش صورك، أسقط بيانات اعتماد حاملك KIE.AI على عقد HTTP الاثنتين، وعدّل ستة خيوط السيناريو في بناء 6 موجهات. هناك أيضاً ملاحظة لاصقة توضح التغيير بسطر واحد لتشغيل صورة-إلى-صورة (اختلافات الصورة المصدر) بدلاً من نص-إلى-صورة.
أي مسار يصلحك: إعادة التعيين إذا كنت تريد الاحتفاظ بتصميمك الحالي، أو المروحة غير المتزامنة إذا كنت تريدها أسرع وأصعب كسراً أثناء إضافة المزيد من الصور الإدخال.
آمل أن يساعد هذا،
Michael
مرحباً @Trilogy_Elektronik
ضع جانب الموجه (prompt) من هذا في سير عمل فرعي: حلقة الصور تبقى في سير العمل الرئيسي، والموجهات الـ 6 والعقدة Gemini وتحميل Drive ينتقلون خلف عقدة Execute Sub-workflow التي تعمل مرة واحدة لكل صورة. كل استدعاء هو تنفيذ منفصل، لذا يبدأ حلقة الموجه بشكل نظيف للصورة 2 وكل صورة بعدها، وتُحرر البيانات الخاصة بكل صورة بعد كل استدعاء بدلاً من تراكمها في تشغيل واحد طويل.
حدد تلك العقد على الكانفاس، انقر بزر الماوس الأيمن على الخلفية واختر “Convert to sub-workflow” (n8n 1.97.0+)، سيتم إعادة توصيل التعبيرات لك تلقائياً.
شاهد هذا: