ملحق WebUI لـ ControlNet وعناصر تحكم SD الأخرى المستندة إلى الحقن.
هذا الامتداد مخصص لواجهة مستخدم ويب Stable Diffusion الخاصة بـ AUTOMATIC1111، ويسمح لواجهة مستخدم الويب بإضافة ControlNet إلى نموذج Stable Diffusion الأصلي لإنشاء الصور. تتم الإضافة بشكل فوري، ولا يلزم الدمج.
https://github.com/Mikubill/sd-webui-controlnet.git
إلى "عنوان URL لمستودع git الخاص بالامتداد".يمكنك العثور على جميع روابط التنزيل هنا: https://github.com/Mikubill/sd-webui-controlnet/wiki/Model-download.
الآن لدينا دعم مثالي لجميع الطرز والمعالجات المسبقة المتاحة، بما في ذلك الدعم المثالي لمحول نمط T2I وControlNet 1.1 Shuffle. (تأكد من أن أسماء ملفات YAML وأسماء ملفات النماذج متطابقة، راجع أيضًا ملفات YAML في "stable-diffusion-webuiextensionssd-webui-controlnetmodels".)
الآن، إذا قمت بتشغيل High-Res Fix في A1111، ستخرج كل شبكة تحكم صورتين تحكم مختلفتين: صورة صغيرة وصورة كبيرة. الصغير مخصص للتوليد الأساسي، والكبير مخصص لتوليد الإصلاح عالي الدقة. يتم حساب صورتي التحكم بواسطة خوارزمية ذكية تسمى "إعادة تشكيل صورة التحكم فائقة الجودة". يتم تشغيل هذا بشكل افتراضي، ولا تحتاج إلى تغيير أي إعداد.
يتم الآن اختبار ControlNet على نطاق واسع باستخدام أنواع مختلفة من الأقنعة الخاصة بـ A1111، بما في ذلك "Inpaint Masked"/"Inpaint not Masked"، و"Whole image"/"Only Masked"، و"Only Masked Paded" و"Mask Blush". يتطابق تغيير الحجم تمامًا مع "مجرد تغيير الحجم"/"الاقتصاص وتغيير الحجم"/"تغيير الحجم والتعبئة" الخاص بـ A1111. وهذا يعني أنه يمكنك استخدام ControlNet في كل مكان تقريبًا في واجهة المستخدم A1111 الخاصة بك دون صعوبة!
الآن، إذا قمت بتشغيل الوضع المثالي للبيكسل، فلن تحتاج إلى تعيين دقة المعالج المسبق (المعلق) يدويًا. ستقوم ControlNet تلقائيًا بحساب أفضل دقة للتعليق التوضيحي بالنسبة لك بحيث يتطابق كل بكسل تمامًا مع Stable Diffusion.
لقد قمنا بإعادة تنظيم بعض واجهات المستخدم المربكة سابقًا مثل "عرض/ارتفاع اللوحة القماشية للوحة القماشية الجديدة" وهي موجودة في الزر الآن. يتم الآن التحكم في واجهة المستخدم الرسومية للمعاينة من خلال خيار "السماح بالمعاينة" وزر التشغيل؟. أصبح حجم صورة المعاينة أفضل من ذي قبل، ولا تحتاج إلى التمرير لأعلى ولأسفل - لن يتم العبث بواجهة المستخدم الرسومية a1111 الخاصة بك بعد الآن!
الآن يمكن لـ ControlNet 1.1 دعم جميع أساليب الترقية/البلاط تقريبًا. يدعم ControlNet 1.1 البرنامج النصي "Ultimate SD upscale" وجميع الملحقات الأخرى المستندة إلى البلاط تقريبًا. من فضلك لا تخلط بين "Ultimate SD upscale" و"SD upscale" - فهي نصوص مختلفة. لاحظ أن أكثر طرق الترقية الموصى بها هي "Tiled VAE/Diffusion" لكننا نختبر أكبر عدد ممكن من الأساليب/الامتدادات. لاحظ أن "SD upscale" مدعوم منذ 1.1.117، وإذا كنت تستخدمه، فستحتاج إلى ترك جميع صور ControlNet فارغة (لا نوصي بـ "SD upscale" لأنه به بعض الأخطاء ولا يمكن صيانته - استخدم " Ultimate SD الراقي" بدلاً من ذلك).
لقد أصلحنا العديد من الأخطاء في وضع التخمين للإصدار 1.0 السابق ويسمى الآن وضع التحكم
يمكنك الآن التحكم في الجانب الأكثر أهمية (الموجه الخاص بك أو ControlNet الخاص بك):
"متوازن": ControlNet على جانبي مقياس CFG، مثل إيقاف تشغيل "وضع التخمين" في ControlNet 1.0
"موجهتي أكثر أهمية": ControlNet على جانبي مقياس CFG، مع تقليل حقن SD U-Net تدريجيًا (layer_weight*=0.825**I، حيث 0<=I <13، والرقم 13 يعني حقن ControlNet SD 13 مرة ). بهذه الطريقة، يمكنك التأكد من عرض مطالباتك بشكل مثالي في الصور التي تم إنشاؤها.
"ControlNet أكثر أهمية": ControlNet فقط على الجانب الشرطي من مقياس CFG (الشرط في A1111's Batch-cond-uncond). وهذا يعني أن ControlNet سيكون أقوى بـ X مرة إذا كان مقياس cfg الخاص بك هو X. على سبيل المثال، إذا كان مقياس cfg الخاص بك هو 7، فإن ControlNet أقوى 7 مرات. لاحظ أن X مرات الأقوى هنا تختلف عن "أوزان التحكم" حيث أن أوزانك لا يتم تعديلها. عادةً ما يكون هذا التأثير "الأقوى" أقل تأثيرًا ويمنح ControlNet مساحة أكبر لتخمين ما هو مفقود من المطالبات (وفي الإصدار 1.0 السابق، يُطلق عليه "وضع التخمين").
الإدخال (العمق + الحاذق + الحد) | "متوازن" | "مطالبتي أكثر أهمية" | ""ControlNet أكثر أهمية"" |
الآن لدينا معالج مسبق reference-only
ولا يتطلب أي نماذج تحكم. ويمكنه توجيه النشر مباشرة باستخدام الصور كمراجع.
(مطالبة "كلب يركض في الأراضي العشبية، أفضل جودة، ...")
تشبه هذه الطريقة المرجع القائم على inpaint ولكنها لا تجعل صورتك مضطربة.
يعرف العديد من مستخدمي A1111 المحترفين خدعة لنشر الصورة مع المراجع عن طريق inpaint. على سبيل المثال، إذا كان لديك صورة كلب بحجم 512 × 512، وتريد إنشاء صورة أخرى بحجم 512 × 512 مع نفس الكلب، فسيقوم بعض المستخدمين بربط صورة الكلب مقاس 512 × 512 وصورة فارغة مقاس 512 × 512 في صورة بحجم 1024 × 512، وإرسالها إلى inpaint، وإخفائها الجزء الفارغ 512 × 512 لنشر كلب بمظهر مماثل. ومع ذلك، فإن هذه الطريقة عادة لا تكون مرضية للغاية نظرًا لأن الصور متصلة ببعضها البعض وستظهر العديد من التشوهات.
يمكن لشبكة ControlNet reference-only
ربط طبقات الانتباه الخاصة ببطاقة SD الخاصة بك مباشرةً بأي صور مستقلة، بحيث تقرأ بطاقة SD الخاصة بك الصور العشوائية كمرجع. تحتاج إلى ControlNet 1.1.153 على الأقل لاستخدامه.
للاستخدام، ما عليك سوى تحديد reference-only
كمعالج مسبق ووضع صورة. ستستخدم بطاقة SD الخاصة بك الصورة كمرجع فقط.
لاحظ أن هذه الطريقة هي "بدون رأي" قدر الإمكان. إنه يحتوي فقط على رموز اتصال أساسية جدًا، دون أي تفضيلات شخصية، لربط طبقات الانتباه بصورك المرجعية. ومع ذلك، حتى لو بذلنا قصارى جهدنا لعدم تضمين أي رموز ذات رأي، ما زلنا بحاجة إلى كتابة بعض التطبيقات الذاتية للتعامل مع الترجيح، ومقياس cfg، وما إلى ذلك - التقرير الفني في الطريق.
المزيد من الأمثلة هنا.
راجع أيضًا وثائق ControlNet 1.1:
https://github.com/lllyasviel/ControlNet-v1-1-nightly#model-specation
هذا هو الإعداد الخاص بي. إذا واجهت أي مشكلة، يمكنك استخدام هذا الإعداد كفحص سلامة
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
لا يزال بإمكانك استخدام كافة النماذج السابقة في ControlNet 1.0 السابق. الآن، "العمق" السابق يسمى الآن "deep_midas"، "العادي" السابق يسمى "normal_midas"، "hed" السابق يسمى "softedge_hed". وبدءًا من الإصدار 1.1، ستكون جميع الخرائط الخطية وخرائط الحافة والخرائط الخطية وخرائط الحدود ذات خلفية سوداء وخطوط بيضاء.
(من محول TencentARC/T2I)
لاستخدام نماذج T2I-Adapter:
لاحظ أن "CoAdapter" لم يتم تنفيذه بعد.
النتائج أدناه مأخوذة من ControlNet 1.0.
مصدر | مدخل | الإخراج |
---|---|---|
(لا يوجد معالج مسبق) | ||
(لا يوجد معالج مسبق) | ||
الأمثلة أدناه مأخوذة من T2I-Adapter.
من t2iadapter_color_sd14v1.pth
:
مصدر | مدخل | الإخراج |
---|---|---|
من t2iadapter_style_sd14v1.pth
:
مصدر | مدخل | الإخراج |
---|---|---|
(مقطع وليس صورة) |
--xformers
، ووضع علامة Low VRAM
في واجهة المستخدم، يصل إلى 768x832 يسمح هذا الخيار بإدخالات ControlNet متعددة لجيل واحد. لتمكين هذا الخيار، قم بتغيير Multi ControlNet: Max models amount (requires restart)
في الإعدادات. لاحظ أنك ستحتاج إلى إعادة تشغيل WebUI حتى تدخل التغييرات حيز التنفيذ.
المصدر أ | المصدر ب | الإخراج |
الوزن هو وزن شبكة التحكم "التأثير". إنه مشابه لجذب الانتباه/التأكيد. على سبيل المثال (مطالبتي: 1.2). ومن الناحية الفنية، فهو العامل الذي يتم من خلاله مضاعفة مخرجات ControlNet قبل دمجها مع SD Unet الأصلية.
بداية/نهاية التوجيه هي النسبة المئوية لإجمالي الخطوات التي تطبقها شبكة التحكم (قوة التوجيه = نهاية التوجيه). إنه مشابه للتحرير/التحويل الفوري. على سبيل المثال [myprompt::0.8] (ينطبق من البداية حتى 80% من إجمالي الخطوات)
ضع أي وحدة في الوضع الدفعي لتنشيط الوضع الدفعي لجميع الوحدات. حدد دليل الدفعة لكل وحدة، أو استخدم مربع النص الجديد في علامة تبويب الدفعة img2img كبديل. على الرغم من أن مربع النص موجود في علامة التبويب الدفعية img2img، إلا أنه يمكنك استخدامه لإنشاء صور في علامة التبويب txt2img أيضًا.
لاحظ أن هذه الميزة متاحة فقط في واجهة مستخدم Gradio. اتصل بواجهات برمجة التطبيقات عدة مرات كما تريد لجدولة الدُفعات المخصصة.
يمكن أن يقبل هذا الامتداد مهام txt2img أو img2img عبر واجهة برمجة التطبيقات (API) أو استدعاء الامتداد الخارجي. لاحظ أنك قد تحتاج إلى تمكين Allow other scripts to control this extension
في إعدادات المكالمات الخارجية.
لاستخدام واجهة برمجة التطبيقات: ابدأ تشغيل WebUI باستخدام الوسيطة --api
وانتقل إلى http://webui-address/docs
للحصول على المستندات أو أمثلة الدفع.
لاستخدام المكالمة الخارجية: Checkout Wiki
يضيف هذا الملحق وسيطات سطر الأوامر هذه إلى webui:
--controlnet-dir ADD a controlnet models directory
--controlnet-annotator-models-path SET the directory for annotator models
--no-half-controlnet load controlnet models in full precision
--controlnet-preprocessor-cache-size Cache size for controlnet preprocessor results
--controlnet-loglevel Log level for the controlnet extension
--controlnet-tracemalloc Enable malloc memory tracing
تم اختباره باستخدام pytorch ليلاً: #143 (تعليق)
لاستخدام هذا الامتداد مع mps وpytorch العادي، قد تحتاج حاليًا إلى تشغيل WebUI باستخدام --no-half
.
تمت أرشفة الإصدار السابق (sd-webui-controlnet 1.0) في
https://github.com/lllyasviel/webui-controlnet-v1-archived
لا يعد استخدام هذا الإصدار بمثابة توقف مؤقت للتحديثات. سوف تقوم بإيقاف كافة التحديثات إلى الأبد.
يرجى أخذ هذا الإصدار بعين الاعتبار إذا كنت تعمل مع استوديوهات احترافية تتطلب إعادة إنتاج جميع النتائج السابقة بنسبة 100% بكسلًا تلو الآخر.
هذا التطبيق مستوحى من شبكات kohya-ss/sd-webui-additional-networks