يوفر هذا المستودع في المقام الأول واجهة المستخدم الرسومية Gradio لمدربي Kohya's Stable Diffusion. ومع ذلك، يتم تقديم الدعم لنظام التشغيل Linux أيضًا من خلال مساهمات المجتمع. دعم macOS ليس الأمثل في الوقت الحالي ولكنه قد يعمل إذا كانت الظروف مواتية.
تسمح لك واجهة المستخدم الرسومية بتعيين معلمات التدريب وإنشاء وتشغيل أوامر CLI المطلوبة لتدريب النموذج.
واجهة المستخدم الرسومية لكوهيا
حد ملف الصفحة
لا توجد وحدة تسمى tkinter
تدريب LORA على TESLA V100 - مشكلة استخدام وحدة معالجة الرسومات
ملخص المشكلة
الحلول المحتملة
إطلاق واجهة المستخدم الرسومية على نظام التشغيل Windows
إطلاق واجهة المستخدم الرسومية على Linux وmacOS
ترقية ويندوز
ترقية Linux وmacOS
ويندوز
لينكس وماك
Runpod
عامل ميناء
المتطلبات المسبقة لنظام التشغيل Windows
إعداد ويندوز
اختياري: CUDNN 8.9.6.50
المتطلبات المسبقة لنظام التشغيل Linux
إعداد لينكس
تثبيت الموقع
التثبيت اليدوي
قالب Runpod المبني مسبقًا
ويندوز
لينكس، أو إس إكس
قم بتجهيز Docker الخاص بك لدعم GPU
تصميم ملف Dockerfile الخاص بنا
استخدم صورة Docker المعدة مسبقًا
بناء عامل ميناء محلي
يبني Ashleykleynhans runpod docker
جدول المحتويات
؟ كولاب
تثبيت
الترقية
بدء تشغيل خدمة واجهة المستخدم الرسومية
افتراضيات المسار المخصص
لورا
عينة من توليد الصور أثناء التدريب
استكشاف الأخطاء وإصلاحها
تدريب اس دي اكس ال
خسارة مقنعة
تغيير التاريخ
لم يتم إنشاء دفتر Colab هذا أو صيانته بواسطتي؛ ومع ذلك، يبدو أنه يعمل بفعالية. يمكن العثور على المصدر على: https://github.com/camenduru/kohya_ss-colab.
وأود أن أعرب عن امتناني لcamendutu لمساهمتهم القيمة. إذا واجهت أية مشكلات مع دفتر ملاحظات Colab، فيرجى الإبلاغ عنها في مستودعهم.
كولاب | معلومات |
---|---|
kohya_ss_gui_colab |
لتثبيت التبعيات الضرورية على نظام Windows، اتبع الخطوات التالية:
تثبيت بايثون 3.10.11.
أثناء عملية التثبيت، تأكد من تحديد خيار إضافة Python إلى متغير البيئة "PATH".
قم بتثبيت مجموعة أدوات CUDA 11.8.
قم بتثبيت جيت.
قم بتثبيت Visual Studio 2015 و2017 و2019 و2022 القابل لإعادة التوزيع.
لإعداد المشروع، اتبع الخطوات التالية:
افتح المحطة وانتقل إلى دليل التثبيت المطلوب.
قم باستنساخ المستودع عن طريق تشغيل الأمر التالي:
استنساخ بوابة - العودية https://github.com/bmaltais/kohya_ss.git
قم بالتغيير إلى دليل kohya_ss
:
مؤتمر نزع السلاح kohya_ss
قم بتشغيل أحد برامج الإعداد التالية عن طريق تنفيذ الأمر التالي:
بالنسبة للأنظمة المثبت عليها python 3.10.11 فقط:
.setup.bat
بالنسبة للأنظمة التي تم تثبيت أكثر من إصدار واحد فقط من python فيها:
.الإعداد-3.10.bat
أثناء خطوة تكوين التسريع، استخدم القيم الافتراضية كما هو مقترح أثناء التكوين إلا إذا كنت تعلم أن جهازك يتطلب خلاف ذلك. لا يؤثر مقدار VRAM الموجود على وحدة معالجة الرسومات لديك على القيم المستخدمة.
الخطوات التالية اختيارية ولكنها ستعمل على تحسين سرعة التعلم لأصحاب وحدات معالجة الرسومات NVIDIA 30X0/40X0. تعمل هذه الخطوات على تمكين أحجام دفعات تدريب أكبر وسرعات تدريب أسرع.
قم بتشغيل .setup.bat
وحدد 2. (Optional) Install cudnn files (if you want to use the latest supported cudnn version)
.
لتثبيت التبعيات الضرورية على نظام Linux، تأكد من استيفاء المتطلبات التالية:
تأكد من تثبيت دعم venv
مسبقًا. يمكنك تثبيته على Ubuntu 22.04 باستخدام الأمر:
ملائمة تثبيت python3.10-venv
قم بتثبيت مجموعة أدوات CUDA 11.8 باتباع الإرشادات الواردة في هذا الرابط.
تأكد من تثبيت إصدار Python 3.10.9 أو أعلى (ولكن أقل من 3.11.0) على نظامك.
لإعداد المشروع على Linux أو macOS، قم بالخطوات التالية:
افتح المحطة وانتقل إلى دليل التثبيت المطلوب.
قم باستنساخ المستودع عن طريق تشغيل الأمر التالي:
استنساخ بوابة - العودية https://github.com/bmaltais/kohya_ss.git
قم بالتغيير إلى دليل kohya_ss
:
مؤتمر نزع السلاح kohya_ss
إذا واجهت مشكلات تتعلق بالأذونات، فاجعل البرنامج النصي setup.sh
قابلاً للتنفيذ عن طريق تشغيل الأمر التالي:
chmod +x ./setup.sh
قم بتشغيل البرنامج النصي للإعداد عن طريق تنفيذ الأمر التالي:
./setup.sh
ملاحظة: إذا كنت بحاجة إلى خيارات أو معلومات إضافية حول بيئة runpod، فيمكنك استخدام setup.sh -h
أو setup.sh --help
لعرض رسالة المساعدة.
موقع التثبيت الافتراضي على Linux هو الدليل الذي يوجد به البرنامج النصي. إذا تم اكتشاف تثبيت سابق في هذا الموقع، فستتم متابعة الإعداد هناك. وإلا فإن التثبيت سيعود إلى /opt/kohya_ss
. إذا لم يكن /opt
قابلاً للكتابة، فسيكون الموقع الاحتياطي هو $HOME/kohya_ss
. وأخيرًا، إذا لم يكن أي من الخيارات السابقة قابلاً للتطبيق، فسيتم إجراء التثبيت في الدليل الحالي.
بالنسبة لنظام التشغيل macOS والأنظمة الأخرى غير Linux، ستحاول عملية التثبيت اكتشاف دليل التثبيت السابق بناءً على مكان تشغيل البرنامج النصي. إذا لم يتم العثور على التثبيت السابق، فسيكون الموقع الافتراضي هو $HOME/kohya_ss
. يمكنك تجاوز هذا السلوك عن طريق تحديد دليل تثبيت مخصص باستخدام الخيار -d
أو --dir
عند تشغيل البرنامج النصي للإعداد.
إذا اخترت استخدام الوضع التفاعلي، فستكون القيم الافتراضية لشاشة تكوين التسريع هي "هذا الجهاز" و"لا شيء" و"لا" للأسئلة المتبقية. هذه الإجابات الافتراضية هي نفس إجابات تثبيت Windows.
لتثبيت المكونات الضرورية لبرنامج Runpod وتشغيل kohya_ss، اتبع الخطوات التالية:
حدد قالب Runpod pytorch 2.0.1. هذا مهم. قد لا تعمل القوالب الأخرى.
SSH في Runpod.
قم باستنساخ المستودع عن طريق تشغيل الأمر التالي:
مؤتمر نزع السلاح / مساحة العمل استنساخ بوابة - العودية https://github.com/bmaltais/kohya_ss.git
قم بتشغيل البرنامج النصي للإعداد:
مؤتمر نزع السلاح kohya_ss ./setup-runpod.sh
قم بتشغيل واجهة المستخدم الرسومية باستخدام:
./gui.sh --share --headless
أو بهذا إذا قمت بكشف 7860 مباشرة عبر تكوين runpod:
./gui.sh --listen=0.0.0.0 --headless
اتصل بعنوان URL العام المعروض بعد اكتمال عملية التثبيت.
للتشغيل من قالب Runpod المبني مسبقًا، يمكنك:
افتح قالب Runpod بالنقر فوق https://runpod.io/gsc?template=ya6013lj5a&ref=w18gds2n.
انشر القالب على المضيف المطلوب.
بمجرد النشر، اتصل بـ Runpod على HTTP 3010 للوصول إلى واجهة المستخدم الرسومية kohya_ss. يمكنك أيضًا الاتصال بـ auto1111 على HTTP 3000.
بمجرد تثبيت Docker Desktop و CUDA Toolkit و NVIDIA Windows Driver والتأكد من تشغيل Docker مع WSL2 ، فأنت جاهز للبدء.
هنا الوثائق الرسمية لمزيد من المرجع.
https://docs.nvidia.com/cuda/wsl-user-guide/index.html#nvidia-compute-software-support-on-wsl-2 https://docs.docker.com/desktop/wsl/use -wsl/#gpu-support
قم بتثبيت برنامج تشغيل NVIDIA GPU إذا لم يكن لديك برنامج مثبت بالفعل.
https://docs.nvidia.com/datacenter/tesla/tesla-installation-notes/index.html
قم بتثبيت مجموعة أدوات حاوية NVIDIA باستخدام هذا الدليل.
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
من الضروري أن يتم تخزين جميع بيانات التدريب في الدليل الفرعي dataset
، والذي تم تركيبه في الحاوية في /dataset
.
يرجى ملاحظة أن وظيفة منتقي الملفات غير متوفرة. بدلاً من ذلك، ستحتاج إلى إدخال مسار المجلد ومسار ملف التكوين يدويًا.
تم فصل TensorBoard عن المشروع.
لم يتم تضمين TensorBoard في صورة Docker.
تم إخفاء زر "بدء TensorBoard".
يتم تشغيل TensorBoard من حاوية مميزة كما هو موضح هنا.
لن يتم تشغيل المتصفح تلقائيًا. ستحتاج إلى فتح المتصفح يدويًا والانتقال إلى http://localhost:7860/ وhttp://localhost:6006/
تم تصميم ملف Dockerfile هذا بحيث يمكن التخلص منه بسهولة. يمكنك التخلص من الحاوية في أي وقت وإعادة تشغيلها باستخدام إصدار التعليمات البرمجية الجديد.
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss عامل ميناء يؤلف -d
لتحديث النظام، قم بعمل docker compose down && docker compose up -d --pull always
مهم
استنساخ مستودع Git بشكل متكرر ليشمل الوحدات الفرعية:
git clone --recursive https://github.com/bmaltais/kohya_ss.git
git clone --recursive https://github.com/bmaltais/kohya_ss.gitcd kohya_ss عامل الإرساء يؤلف -d --build
ملحوظة
قد يستغرق إنشاء الصورة ما يصل إلى 20 دقيقة حتى يكتمل.
لتحديث النظام، قم بالخروج إلى إصدار التعليمات البرمجية الجديد وإعادة البناء باستخدام docker compose down && docker compose up -d --build --pull always
إذا كنت تعمل على Linux، يتوفر هنا منفذ حاوية Docker بديل مع قيود أقل.
قد ترغب في استخدام المستودعات التالية عند التشغيل على runpod:
قالب Kohya_ss المستقل: https://github.com/ashleykleynhans/kohya-docker
قالب واجهة المستخدم الرسومية Auto1111 + Kohya_ss: https://github.com/ashleykleynhans/stable-diffusion-docker
لترقية التثبيت إلى إصدار جديد، اتبع الإرشادات أدناه.
في حالة توفر إصدار جديد، يمكنك ترقية المستودع الخاص بك عن طريق تشغيل الأوامر التالية من الدليل الجذر للمشروع:
سحب أحدث التغييرات من المستودع:
بوابة سحب
قم بتشغيل البرنامج النصي للإعداد:
.setup.bat
لترقية التثبيت على Linux أو macOS، اتبع الخطوات التالية:
افتح محطة وانتقل إلى الدليل الجذر للمشروع.
سحب أحدث التغييرات من المستودع:
بوابة سحب
تحديث وتحديث كل شيء:
./setup.sh
لبدء تشغيل خدمة واجهة المستخدم الرسومية، يمكنك استخدام البرامج النصية المتوفرة أو تشغيل البرنامج النصي kohya_gui.py
مباشرة. استخدم وسيطات سطر الأوامر المدرجة أدناه لتكوين الخدمة الأساسية.
--listen: Specify the IP address to listen on for connections to Gradio.
--username: Set a username for authentication.
--password: Set a password for authentication.
--server_port: Define the port to run the server listener on.
--inbrowser: Open the Gradio UI in a web browser.
--share: Share the Gradio UI.
--language: Set custom language
في نظام التشغيل Windows، يمكنك استخدام البرنامج النصي gui.ps1
أو gui.bat
الموجود في الدليل الجذر. اختر البرنامج النصي الذي يناسب تفضيلاتك وقم بتشغيله في محطة، مع توفير وسائط سطر الأوامر المطلوبة. هنا مثال:
gui.ps1 --استمع 127.0.0.1 --server_port 7860 --inbrowser --share
أو
gui.bat --استمع 127.0.0.1 --server_port 7860 --inbrowser --share
لتشغيل واجهة المستخدم الرسومية على Linux أو macOS، قم بتشغيل البرنامج النصي gui.sh
الموجود في الدليل الجذر. قم بتوفير وسيطات سطر الأوامر المطلوبة كما يلي:
gui.sh --استمع 127.0.0.1 --server_port 7860 --inbrowser --share
يوفر المستودع الآن ملف تكوين افتراضي يسمى config.toml
. هذا الملف عبارة عن قالب يمكنك تخصيصه ليناسب احتياجاتك.
لاستخدام ملف التكوين الافتراضي، اتبع الخطوات التالية:
انسخ ملف config example.toml
من الدليل الجذر للمستودع إلى config.toml
.
افتح الملف config.toml
في محرر النصوص.
قم بتعديل المسارات والإعدادات حسب متطلباتك.
يسمح لك هذا الأسلوب بضبط التكوين بسهولة ليناسب احتياجاتك الخاصة لفتح المجلدات الافتراضية المطلوبة لكل نوع من أنواع إدخالات المجلدات/الملفات المدعومة في واجهة المستخدم الرسومية.
يمكنك تحديد المسار إلى config.toml (أو أي اسم آخر تريده) عند تشغيل واجهة المستخدم الرسومية. على سبيل المثال: ./gui.bat --config c:my_config.toml
لتدريب LoRA، يمكنك حاليًا استخدام رمز train_network.py
. يمكنك إنشاء شبكة LoRA باستخدام واجهة المستخدم الرسومية الكل في واحد.
بمجرد إنشاء شبكة LoRA، يمكنك إنشاء صور باستخدام auto1111 عن طريق تثبيت هذا الامتداد.
قد يبدو ملف المطالبة بهذا الشكل، على سبيل المثال:
# موجه 1 تحفة فنية، أفضل جودة، (فتاة واحدة)، بقمصان بيضاء، الجزء العلوي من الجسم، تنظر إلى المشاهد، خلفية بسيطة --n جودة منخفضة، أسوأ جودة، تشريح سيء، تكوين سيء، ضعيف، جهد منخفض --w 768 --h 768 --d 1 --l 7.5 --s 28# موجه 2 تحفة، أفضل جودة، 1boy، يرتدي بدلة عمل، يقف في الشارع، ينظر إلى الوراء --n (جودة منخفضة، أسوأ جودة)، تشريح سيء، تكوين سيء، ضعيف، جهد منخفض --ث 576 --ح 832 --د 2 --ل 5.5 --س 40
الأسطر التي تبدأ بـ #
هي تعليقات. يمكنك تحديد خيارات للصورة التي تم إنشاؤها باستخدام خيارات مثل --n
بعد المطالبة. يمكن استخدام الخيارات التالية:
--n
: موجه سلبي حتى الخيار التالي.
--w
: يحدد عرض الصورة التي تم إنشاؤها.
--h
: يحدد ارتفاع الصورة التي تم إنشاؤها.
--d
: يحدد بذرة الصورة التي تم إنشاؤها.
--l
: يحدد مقياس CFG للصورة التي تم إنشاؤها.
--s
: يحدد عدد خطوات التوليد.
الترجيح السريع مثل ( )
و [ ]
يعمل.
إذا واجهت أية مشكلات، فارجع إلى خطوات استكشاف الأخطاء وإصلاحها أدناه.
إذا واجهت خطأ X يتعلق بملف الصفحة، فقد تحتاج إلى زيادة الحد الأقصى لحجم ملف الصفحة في نظام التشغيل Windows.
إذا واجهت خطأ يشير إلى عدم العثور على الوحدة النمطية tkinter
، فحاول إعادة تثبيت Python 3.10 على نظامك.
عند تدريب LORA على TESLA V100، أبلغ المستخدمون عن انخفاض استخدام وحدة معالجة الرسومات. بالإضافة إلى ذلك، كانت هناك صعوبة في تحديد وحدات معالجة الرسومات غير الافتراضية للتدريب.
اختيار GPU: يمكن للمستخدمين تحديد معرفات GPU في تكوين الإعداد لتحديد وحدات معالجة الرسومات المطلوبة للتدريب.
تحسين تحميل وحدة معالجة الرسومات: يمكن أن يساعد استخدام مُحسِّن adamW8bit
وزيادة حجم الدفعة في تحقيق استخدام وحدة معالجة الرسومات بنسبة 70-80% دون تجاوز حدود ذاكرة وحدة معالجة الرسومات.
سيتم نقل الوثائق الموجودة في هذا القسم إلى مستند منفصل لاحقًا.
يتم دعم الخسارة المقنعة في كل برنامج نصي تدريبي. لتمكين الخسارة المقنعة، حدد خيار --masked_loss
.
لم يتم اختبار الميزة بشكل كامل، لذلك قد تكون هناك أخطاء. إذا وجدت أي مشاكل، يرجى فتح قضية.
يتم استخدام مجموعة بيانات ControlNet لتحديد القناع. يجب أن تكون صور القناع هي صور RGB. يتم التعامل مع قيمة البكسل 255 في قناة R على أنها قناع (يتم حساب الخسارة فقط للبكسلات ذات القناع)، ويتم التعامل مع 0 على أنها غير قناع. يتم تحويل قيم البكسل 0-255 إلى 0-1 (أي يتم التعامل مع قيمة البكسل 128 على أنها نصف وزن الخسارة). راجع تفاصيل مواصفات مجموعة البيانات في وثائق LLLite.
انظر معلومات الإصدار.