أحب هذه العقدة؟ اشتري لي القهوة!
ابدء؟ قم بتنزيل سير عمل الاختبار أدناه وشاهد كيف يعمل.
مشاكل؟ انتقل لأسفل إلى التسجيل وتصحيح الأخطاء
أفكار حول كيفية تحسين العقد (أو تقارير الأخطاء) - تثير مشكلة
المكونات المخزية للعقد الأخرى -> تحقق من Image Picker للحصول على طريقة أخرى لجعل بعض سير العمل أكثر سلاسة. واترك نجمة إذا أعجبك شيء!
يستخدم سير العمل هذا جميع العقد الخمس، ويمكن استخدامه لاختبار (وفهم!) العقد. لن تستطيع بناءه بهذه الطريقة، إنه مجرد مثال. | وهنا صورة مع سير العمل في |
---|---|
أو سير العمل كـ json
هناك بعض المواقف التي لا تستطيع عقد UE التعامل معها في الوقت الحالي. فيما يلي بعض ما أعرفه والحلول الممكنة.
تعد العقد المخصصة لـ pythonsssss رائعة، ولكن هناك بعض القيود في استخدامها مع عقد UE. على وجه الخصوص، لا يمكنك تغذية مخرجات العقدة النصية المعدة مسبقًا مباشرة إلى عقدة UE (انظر #154).
تعمل عقد UE في الغالب مع العقد الجماعية. ولكن هناك بعض الأشياء المهمة التي يجب ملاحظتها:
5.0 (6 أغسطس 2024)
4.9 (2 مايو 2024)
4.8 (18 مارس 2024)
send to unmatched
4.7 (1 مارس 2024)
Anything Everywhere?
العقد4.6
Anything Everywhere?
العقدة4.5
convert to real links
4.4
Anything Everywhere?
العقدة ذات المدخلات (تعمل فقط إذا كان الرابط من عقدة تمثل مصدر سلسلة بسيط)4.3
4.2
4.1.2
4.1.1
4.1
تمت إزالة العقد v1 بالكامل. إذا كنت تستخدم واحدة، فيمكنك فقط استبدالها بعقدة Anything Everywhere
.
استخدم مدير مريح. إذا كنت تريد حقًا القيام بذلك يدويًا، فما عليك سوى استنساخ هذا المستودع في دليل custom_nodes الخاص بك.
تحتوي عقدة Anything Everywhere
على إدخال واحد، يُسمى في البداية "أي شيء". قم بتوصيل أي شيء به (مباشرة - وليس عبر إعادة التوجيه)، ويتغير اسم الإدخال ليطابق نوع الإدخال. قطع الاتصال ويعود إلى "أي شيء".
عند تشغيل الموجه، فإن أي إدخال غير متصل، في أي مكان في سير العمل، والذي يطابق هذا النوع، سوف يعمل كما لو كان متصلاً بنفس الإدخال.
لتصور ما يتم الاتصال به، انقر بزر الماوس الأيمن على لوحة الخلفية وحدد Toggle UE Link Visibility
.
تضيف هذه العقدة أداتين - title_regex و input_regex. سيتم إرساله فقط إلى المدخلات المطابقة. لذلك في المثال، title_regex هو "معاينة" لذا يتم إرسال الصورة إلى عقدة معاينة الصورة وليس إلى عقدة حفظ الصورة. لاحظ أنه يمكنك إعادة تسمية العقدة وعناوين الإدخال، مما قد يساعدك!
(من الإصدار 4.6، يمكنك أيضًا تحديد تعبير عادي للمجموعة لمطابقة المدخلات الموجودة على العقد الموجودة في المجموعات التي تتطابق مع التعبير العادي فقط.)
المطابقات هي تعبيرات عادية، وليست مطابقات سلسلة. ستعمل معظم السلاسل البسيطة (مطابقة أي جزء من العنوان أو اسم الإدخال)، ولكن بعض الأحرف لها معاني خاصة (بما في ذلك أنواع مختلفة من الأقواس، ^ و$ و/ و. على وجه الخصوص) لذا تجنبها إذا لم تكن كذلك يميل إلى التعبير العادي.
استخدام التعبير العادي يعني أنه يمكنك استخدام ^prompt
لمطابقة prompt
في بداية العنوان فقط، لتجنب مطابقة negative_prompt
.
Regex 101 - ^
يعني "البداية"، $
يعني "النهاية"، .
يطابق أي حرف مفرد، ويطابق .*
أي شيء بأي طول (بما في ذلك الصفر). لأكثر من ذلك، قم بزيارة regex101 (النكهة التي تريدها هي ECMAScript، على الرغم من أن هذا ربما لن يهم).
نوع من.
نظرًا لأن التعبير العادي يجب أن يكون معروفًا قبل إرسال سير العمل (من أجل حساب الروابط)، فلا يمكنك تمرير سلسلة إلى Anything Everywhere?
العقدة ونتوقع أن تعمل. الشيء الوحيد الذي يتم دعمه هو إذا كان الإدخال يأتي مباشرة من العقدة التي تقوم بتعيينه باستخدام عنصر واجهة مستخدم سلسلة. ستعمل عقدة Simple String
المضمنة في هذه الحزمة.
هذا يعمل | هذا لا. ولن تفعل ذلك أبدًا. |
---|---|
يتصل Seed Everywhere بأي مدخل INT غير متصل مع seed
في اسم الإدخال (seed، Noise_seed، إلخ)، ويحتوي على ميزة control_after_generate. لذا، إذا قمت بتحويل عناصر واجهة المستخدم الأولية إلى مدخلات، فيمكنك استخدام نفس البذرة في كل مكان.
في الواقع، تم تجميع ثلاث عقد Anything Everywhere
معًا. مصممة لمخرجات Checkpoint Loader.
يحتوي "المطالبة في كل مكان" على مدخلين. سيتم إرسالها مع قواعد مطابقة regex لـ (^prompt|^positive)
و neg
على التوالي. يجب أن تتطابق هذه مع الإصدارات المختلفة من الأسماء التي يتم استخدامها للمطالبات والمطالبات أو الشروط السلبية.
سلاسل | تكييفات |
---|---|
لا تعمل عقد UE مع العناصر الأولية ومجموعات COMBO (نوع البيانات المستخدم للقوائم المنسدلة، والتي تعد أيضًا نوعًا من العناصر الأولية داخل Comfy). من غير المرجح أن يفعلوا ذلك على الإطلاق.
إذا كنت تريد استخدام UE للتحكم في جهاز أخذ العينات أو سيجما، فيمكنك القيام بذلك باستخدام عقد SamplerCustom
المضمنة:
للمزيد حول هذا، راجع هذه المناقشة
انقر بزر الماوس الأيمن على العقدة ويمكنك ضبطها لرفض روابط UE
إذا كنت تريد رؤية روابط UE، فيمكنك تشغيلها وإيقاف تشغيلها عن طريق النقر بزر الماوس الأيمن على اللوحة القماشية. للتحكم بشكل أفضل، تحتوي قائمة الإعدادات الرئيسية على خيارات لإظهار الروابط عندما يتحرك الماوس فوق العقدة في أي من الطرفين، أو عند تحديد إحدى تلك العقد.
يمكن تحريك الروابط لتمييزها عن الروابط العادية - يمكن أن تأخذ هذه الرسوم المتحركة شكل نقاط متحركة أو توهج نابض أو كليهما. قد يؤثر هذا على الأداء في بعض الحالات - لاحظ أن الرسوم المتحركة النبضية تتطلب معالجة أقل من النقاط المتحركة. التحكم في هذا في قائمة الإعدادات الرئيسية.
افتراضيًا، يتم إيقاف الرسوم المتحركة عند تشغيل سير العمل لتقليل التأثير على وحدة المعالجة المركزية/وحدة معالجة الرسومات - يمكنك تغيير ذلك في الإعدادات أيضًا.
إذا كنت تريد مشاركة سير عمل دون الحاجة إلى عقد UE، أو لحفظ إصدار API لسير العمل، فيمكنك استبدال الروابط الافتراضية التي أنشأتها عقد UE بروابط حقيقية (وإزالة عقد UE).
يمكن القيام بذلك لعقدة واحدة عن طريق النقر بزر الماوس الأيمن عليها وتحديد Convert to real links
، أو لجميع عقد UE في سير العمل عن طريق النقر بزر الماوس الأيمن على الخلفية وتحديد Convert all UEs to real links
.
انقر مع الضغط على مفتاح Shift على عقدة الإخراج واسحب ثم حرر للحصول على قائمة الإنشاء التلقائي. يستبدل هذا السلوك الافتراضي (الذي يمنحك مربع بحث)، بحيث يمكنك تعطيله باستخدام إعداد Anything Everywhere replace search
.
يمكن تقييد عقد UE للإرسال فقط إلى العقد من نفس اللون، أو فقط إلى العقد التي ليست من نفس اللون.
ويمكن أيضًا تقييد إرسالها فقط إلى العقد الموجودة في نفس المجموعة (أي مجموعة مشتركة)، أو فقط إلى العقد غير الموجودة في نفس المجموعة.
انقر بزر الماوس الأيمن على العقدة وحدد Group restrictions
أو Color restrictions
. تحتوي عقد UE المقيدة (في إحدى الطريقتين أو كلتيهما) على دائرة خضراء في الزاوية العلوية اليسرى.
تعد عقد الطريق السريع Trung 0246 طريقة رائعة جدًا لتوصيل البيانات عبر الأنابيب. يمكنك استهدافهم بـ " Anything Everywhere?
عقدة باستخدام input_regex
الذي يطابق اسم الإدخال غير المتصل مع "+"، مثل هذا:
هذا جديد، لذا يرجى الإبلاغ عن أي مشاكل!
بشكل افتراضي، يتم التحقق من سير العمل بحثًا عن الحلقات قبل إرسالها (لأن UE يمكن أن يقدمها، وتؤدي الحلقة إلى نتيجة سيئة في بايثون). إذا تم اكتشاف حلقة، فستتلقى تحذير JavaScript يوضح لك معرفات العقدة المعنية. ومع ذلك، خاصة إذا كانت هناك عقد مخصصة أخرى معنية، فمن المحتمل أن يفتقد التحقق حلقة، أو يضع إشارة على حلقة غير حقيقية.
إذا تلقيت تحذيرًا ولا تعتقد أن هناك حلقة متكررة (بعد التحقق من معرفات العقدة المدرجة!) يمكنك إيقاف تشغيل التحقق من الحلقة في قائمة الإعدادات الرئيسية. إذا كان هناك شيء تم وضع علامة عليه كحلقة يعمل بشكل جيد، فيرجى إثارة مشكلة وتضمين سير العمل في التقرير (احفظ ملف json واضغطه، لأن GitHub لا يقبل ملفات .json). وبالمثل إذا لم يتم القبض على حلقة.
لقد كتبت رمزًا للواجهة الخلفية Comfy الأساسية لالتقاط الحلقات، ربما سيتم تضمينها - PR لـ ComfyUI - أو ربما لديهم خطة أخرى.
إذا كان هناك أكثر من عقدة إرسال تتطابق مع أحد الإدخالات، فإن القواعد الأساسية هي أن العقدة الأكثر تحديدًا هي التي تفوز. ترتيب الأولويات هو:
Anything Everywhere?
Seed Everywhere
Prompts Everywhere
Anything Everywhere
Anything Everywhere3
بالنسبة للعقد في نفس الوقت، يتم إعطاء الأولوية للعقد ذات قيود اللون وقيود المجموعة (اللون + المجموعة > اللون > المجموعة > لا شيء).
إذا تطابقت عقدتان لهما نفس الأولوية فلن يتم الاتصال - فمن الأفضل أن تفشل بسرعة بدلاً من أن تكون النتيجة غامضة. إذا كانت هناك تطابقات غامضة، فيمكنك عرضها باستخدام Show UE broadcast clashes
(انقر بزر الماوس الأيمن على الخلفية - يظهر الخيار فقط في حالة وجود اشتباكات).
يمكن أيضًا للعقد التي تحتوي على مخرج واحد فقط الحصول على مربع نص يوضح بالضبط ما تم تمريره عبر العقدة. تحتاج إلى تشغيل هذا إذا كنت تريد ذلك - فهو موجود في الإعدادات الرئيسية، "تفاصيل عقدة أي شيء في كل مكان".
تحتوي وحدة تحكم JavaScript (اضغط على f12 في بعض المتصفحات) على معلومات تسجيل حول ما يتم توصيله. يمكنك تغيير مستوى التفاصيل من خلال العثور على الملف [comfy_install]/custom_nodes/cg-use-everywhere/js/use_everywhre_utilities.js
وبالقرب من الجزء العلوي ابحث عن هذا الجزء:
static ERROR = 0 ; // actual errors
static PROBLEM = 1 ; // things that stop the workflow working
static INFORMATION = 2 ; // record of good things
static DETAIL = 3 ; // details
static LEVEL = Logger . PROBLEM ;
static TRACE = false ; // most of the method calls
قم بتغيير LEVEL
إلى Logger.INFORMATION
للمزيد، أو Logger.DETAIL
للمزيد؛ قم بتعيين TRACE
على true
لبعض معلومات التصحيح الأخرى.
إذا كانت لديك مشكلة، فإن الضغط على f12 لرؤية وحدة تحكم JavaScript يمكن أن يساعدك غالبًا. الخطوات التالية مفيدة حقًا في إعداد تقرير جيد عن الأخطاء:
الشيء الآخر الذي يستحق المحاولة هو مسح كافة عقدة جافا سكريبت المخصصة من حيث يتم نسخها عند بدء تشغيل ComfyUI:
core
. اترك core
(إنها عناصر ComfyUI)إذا وجدت خطأ، يرجى إثارة مشكلة - إذا كان بإمكانك تضمين سير العمل، فهذه مساعدة كبيرة (ستحتاج إلى حفظه بتنسيق .txt، أو ضغط ملف .json، لأن GitHub لا يقبل .json) .
يعمل تجاوز العقد وتعطيلها، ولكن بميزة واحدة. إذا كان لديك عقد UE تتطابق مع ( Anything Everywhere?
و Prompt Everywhere
) وقمت بتجاوز العقدة المطابقة لها، فلن يتم إنشاء الارتباط. لذا
إذا كنت تستخدم ؟ عقدة للإرسال إلى عقدة... | ...وتجاوز المستلم، ولا يتم الاتصال به |
---|---|
من غير المرجح أن يتم إصلاح هذا الأمر، ولكن يجب أن يكون من السهل تجنبه إلى حد ما!