يحتوي هذا المستودع على برامج نصية للتدريب والتوليد والمرافق الخاصة بالنشر المستقر.
يتم نقل سجل التغييرات إلى أسفل الصفحة. شكرا جزيلا.
اقرأ المزيد عن README
نسخة التطوير موجودة في فرع dev
. يرجى مراجعة فرع التطوير لمعرفة آخر التغييرات.
يتم دعم FLUX.1 وSD3/SD3.5 في فرع sd3
. إذا كنت ترغب في تدريبهم، يرجى استخدام فرع sd3.
لتسهيل الاستخدام (واجهة المستخدم الرسومية والنصوص البرمجية PowerShell وما إلى ذلك...)، يرجى زيارة المستودع الذي تحتفظ به bmaltais. شكرا لbmaltais!
يحتوي هذا المستودع على البرامج النصية لـ:
لا يحتوي الملف على متطلبات PyTorch. ونظرًا لأن إصدار PyTorch يعتمد على البيئة، فلن يتم تضمينه في الملف. الرجاء تثبيت PyTorch أولاً وفقًا للبيئة. انظر تعليمات التثبيت أدناه.
يتم اختبار البرامج النصية باستخدام Pytorch 2.1.2. لم يتم اختبار الإصدارين 2.0.1 و1.12.1 ولكن من المفترض أن يعملا.
معظم الوثائق مكتوبة باللغة اليابانية.
الترجمة الإنجليزية بواسطة darkstorm2150 موجودة هنا. بفضل darkstorm2150!
بايثون 3.10.6 وجيت:
امنح وصولاً غير مقيد للبرنامج النصي إلى powershell حتى يتمكن venv من العمل:
Set-ExecutionPolicy Unrestricted
وأجب أافتح محطة Powershell عادية واكتب ما يلي بالداخل:
git clone https: // github.com / kohya - ss / sd - scripts.git
cd sd - scripts
python - m venv venv
.venvScriptsactivate
pip install torch == 2.1 . 2 torchvision == 0.16 . 2 -- index - url https: // download.pytorch.org / whl / cu118
pip install -- upgrade - r requirements.txt
pip install xformers == 0.0 . 23. post1 -- index - url https: // download.pytorch.org / whl / cu118
accelerate config
إذا كان python -m venv
يعرض python
فقط، فقم بتغيير python
إلى py
.
ملاحظة: الآن تم تضمين bitsandbytes==0.43.0
و prodigyopt==1.0
و lion-pytorch==0.0.6
في ملف require.txt. إذا كنت ترغب في استخدام إصدار آخر، يرجى تثبيته يدويًا.
هذا التثبيت مخصص لـ CUDA 11.8. إذا كنت تستخدم إصدارًا مختلفًا من CUDA، فيرجى تثبيت الإصدار المناسب من PyTorch وxformers. على سبيل المثال، إذا كنت تستخدم CUDA 12، فيرجى تثبيت pip install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu121
و pip install xformers==0.0.23.post1 --index-url https://download.pytorch.org/whl/cu121
.
إجابات لتسريع التكوين:
- This machine
- No distributed training
- NO
- NO
- NO
- all
- fp16
إذا كنت ترغب في استخدام bf16، يرجى الإجابة على bf16
على السؤال الأخير.
ملاحظة: أبلغ بعض المستخدمين عن ValueError: fp16 mixed precision requires a GPU
أثناء التدريب. في هذه الحالة، أجب بـ 0
للسؤال السادس: What GPU(s) (by id) should be used for training on this machine as a comma-separated list? [all]:
(سيتم استخدام GPU واحد بالمعرف 0
)
عندما يصدر إصدار جديد، يمكنك ترقية الريبو الخاص بك باستخدام الأمر التالي:
cd sd - scripts
git pull
.venvScriptsactivate
pip install -- use-pep517 -- upgrade - r requirements.txt
بمجرد اكتمال الأوامر بنجاح، يجب أن تكون جاهزًا لاستخدام الإصدار الجديد.
إذا كنت ترغب في ترقية PyTorch، فيمكنك ترقيته باستخدام أمر pip install
في قسم تثبيت Windows. مطلوب أيضًا ترقية xformers
عند ترقية PyTorch.
يعتمد تطبيق LoRA على cloneofsimo's repo. شكرا لك على العمل العظيم!
تم إصدار توسيع LoRA إلى Conv2d 3x3 في البداية بواسطة cloneofsimo وتم إثبات فعاليته في LoCon بواسطة KohakuBlueleaf. شكرا جزيلا لكوهاكو بلوليف!
تم ترخيص غالبية البرامج النصية بموجب ASL 2.0 (بما في ذلك الرموز من Diffusers وcloneofsimo's وLoCon)، إلا أن أجزاء من المشروع متاحة بموجب شروط ترخيص منفصلة:
كفاءة الذاكرة Pytorch: معهد ماساتشوستس للتكنولوجيا
البت ساند بايت: معهد ماساتشوستس للتكنولوجيا
BLIP: بند BSD-3
svd_merge_lora.py
VRAM. ومع ذلك، سيزداد استخدام الذاكرة الرئيسية (32 جيجابايت كافية).svd_merge_lora.py
يستخدم لذاكرة VRAM. هذا يعني أن لديك مساحة تخزينية تبلغ 32 جيجابايت. تم إصلاح الخلل في svd_merge_lora.py
و sdxl_merge_lora.py
و resize_lora.py
حيث لم يتم حساب قيمة التجزئة لبيانات تعريف LoRA بشكل صحيح عندما كانت save_precision
مختلفة عن precision
المستخدمة في الحساب. راجع العدد رقم 1722 لمزيد من التفاصيل. شكرًا لـ JujoHotaru على إثارة هذه القضية.
وسيتم تضمينه في الإصدار القادم.
svd_merge_lora.py
、 sdxl_merge_lora.py
、 resize_lora.py
أورا (ORA) الإصدار رقم 1722
هذا هو السبب وراء ذلك.
يدعم sdxl_merge_lora.py
الآن OFT. شكرًا لـ Maru-mee على PR #1580.
يدعم svd_merge_lora.py
الآن LBW. بفضل تيراكوتاهانيوا. انظر العلاقات العامة رقم 1575 للحصول على التفاصيل.
يدعم sdxl_merge_lora.py
أيضًا LBW.
راجع وزن كتلة LoRA بواسطة hako-mikan للحصول على تفاصيل حول LBW.
وسيتم تضمين هذه في الإصدار القادم.
sdxl_merge_lora.py
متاح الآن في OFT.PR #1580 Maru-mee متاح الآن.
svd_merge_lora.py
موجود في LBW .PR #1575 terracottahaniwa 氏に感謝します.
sdxl_merge_lora.py
で も LBW が サ ポ ー ト さ れ ま し た.
LBW の詳細は hako-mikan 氏の LoRA Block Weight をご覧ください.
هذا هو السبب وراء ذلك.
تم إصلاح عدم عمل التخزين المؤقت cache_latents.py
و cache_text_encoder_outputs.py
. (سيتم تضمينها في الإصدار التالي.)
cache_latents.py
およびcache_text_encoder_outputs.py
يتم تغيير القيمة الافتراضية لـ huber_schedule
في خسارة Huber المجدولة من exponential
إلى snr
، والتي من المتوقع أن تعطي نتائج أفضل.
exponential
snr
huber_schedule
imagesize
بشكل خاص حديثًا، لذا إذا لم تتمكن من تحديث المكتبات على الفور، فيرجى التثبيت باستخدام pip install imagesize==1.4.1
بشكل منفصل.bitsandbytes==0.43.0
و prodigyopt==1.0
و lion-pytorch==0.0.6
في ملف require.txt.bitsandbytes
تتطلب إجراءات معقدة لأنها الآن تدعم Windows رسميًا..toml
). شكرا لبغيرة على إثارة الموضوع.--console_log_simple
في البرنامج النصي للتدريب لتعطيل التسجيل الغني.train_network.py
و sdxl_train_network.py
لتسجيل بعض إعدادات مجموعة البيانات في البيانات التعريفية للنموذج المُدرب ( caption_prefix
، caption_suffix
، keep_tokens_separator
، secondary_separator
، و enable_wildcard
).train_network.py
و sdxl_train_network.py
. يتم حفظ الحالة وتحميلها بشكل أسرع، ويكون حجم الملف أصغر، ويتم تقليل استخدام الذاكرة عند التحميل.--noise_offset_random_strength
و- --ip_noise_gamma_random_strength
إلى كل برنامج نصي للتدريب. يمكن استخدام هذه الخيارات لتغيير إزاحة الضوضاء وغاما ضوضاء IP في النطاق من 0 إلى القيمة المحددة. العلاقات العامة #1177 شكرًا لكوهاكو بلوليف!--save_state_on_train_end
إلى كل برنامج نصي للتدريب. العلاقات العامة رقم 1168 شكرًا لـ gesen2egee!--sample_every_n_epochs
و --sample_every_n_steps
في كل برنامج نصي للتدريب الآن تحذيرًا ويتجاهلانهما عند تحديد رقم أقل من أو يساوي 0
. شكرًا لـ S-Del على إثارة هذه القضية. .toml
الخاص بتكوين مجموعة البيانات بتشفير UTF-8. العلاقات العامة #1167 بفضل Horizon1704!secondary_separator
لتحديد فاصل العلامات الذي لا يكون هدفًا للتبديل أو الإسقاط.secondary_separator=";;;"
. عند تحديد secondary_separator
، لا يتم تبديل الجزء أو إسقاطه.enable_wildcard
. عند التعيين على true
، يمكن استخدام علامة حرف البدل {aaa|bbb|ccc}
. يتم أيضًا تمكين التسمية التوضيحية متعددة الأسطر.keep_tokens_separator
لاستخدامه مرتين في التسمية التوضيحية. عندما تحدد keep_tokens_separator="|||"
، الجزء مقسوم على الثاني |||
لا يتم خلطه أو إسقاطه ويبقى في النهاية.caption_prefix
و caption_suffix
معًا. تتم معالجة caption_prefix
و caption_suffix
أولاً، ثم تتم معالجة enable_wildcard
و keep_tokens_separator
والخلط والإفلات والفاصل secondary_separator
بالترتيب.tag_image_by_wd14_tagger.py
(الخيار --onnx
فقط). العلاقات العامة رقم 1192 شكرًا لـ sdbds!pip install onnx==1.15.0 onnxruntime-gpu==1.17.1
وما إلى ذلك. يرجى أيضًا التحقق من التعليقات في requirements.txt
.--repo_id
في tag_image_by_wd14_tagger.py
. يؤدي هذا إلى تخزين نماذج repo_id متعددة. الرجاء حذف الملفات غير الضرورية ضمن --model_dir
.tag_image_by_wd14_tagger.py
.--use_rating_tags
و- --use_rating_tags_as_last_tag
--character_tags_first
--character_tag_expand
--always_first_tags
--tag_replacement
--beam_search
وقيمة 2 أو أكثر لـ --num_beams
في make_captions.py
. يتم دعم الخسارة المقنعة في كل برنامج نصي تدريبي. لتمكين الخسارة المقنعة، حدد خيار --masked_loss
.
لم يتم اختبار الميزة بشكل كامل، لذلك قد تكون هناك أخطاء. إذا وجدت أي مشاكل، يرجى فتح قضية.
يتم استخدام مجموعة بيانات ControlNet لتحديد القناع. يجب أن تكون صور القناع هي صور RGB. يتم التعامل مع قيمة البكسل 255 في قناة R على أنها قناع (يتم حساب الخسارة فقط للبكسلات ذات القناع)، ويتم التعامل مع 0 على أنها غير قناع. يتم تحويل قيم البكسل 0-255 إلى 0-1 (أي يتم التعامل مع قيمة البكسل 128 على أنها نصف وزن الخسارة). راجع تفاصيل مواصفات مجموعة البيانات في وثائق LLLite.
تم تقديم خسارة Huber المجدولة لكل نصوص التدريب. هذه طريقة لتحسين المتانة ضد القيم المتطرفة أو الحالات الشاذة (فساد البيانات) في بيانات التدريب.
مع وظيفة فقدان MSE (L2) التقليدية، يمكن أن يكون تأثير القيم المتطرفة كبيرًا، مما قد يؤدي إلى تدهور جودة الصور المولدة. من ناحية أخرى، في حين أن وظيفة فقدان Huber يمكن أن تمنع تأثير القيم المتطرفة، فإنها تميل إلى الإضرار بإعادة إنتاج التفاصيل الدقيقة في الصور.
ولمعالجة هذه المشكلة، تستخدم الطريقة المقترحة تطبيقًا ذكيًا لوظيفة خسارة هوبر. من خلال جدولة استخدام فقدان Huber في المراحل الأولى من التدريب (عندما تكون الضوضاء عالية) وMSE في المراحل اللاحقة، فإنه يحقق توازنًا بين القوة الخارجية وإعادة إنتاج التفاصيل الدقيقة.
أكدت النتائج التجريبية أن هذه الطريقة تحقق دقة أعلى في البيانات التي تحتوي على القيم المتطرفة مقارنة بخسارة Huber النقية أو MSE. الزيادة في التكلفة الحسابية ضئيلة.
تسمح الوسيطات المضافة حديثًا Loss_type وhuber_schedule وhuber_c باختيار نوع وظيفة الخسارة (Huber، وL1 السلس، وMSE)، وطريقة الجدولة (الأسي، والثابت، وSNR)، ومعلمة Huber. وهذا يتيح التحسين بناءً على خصائص مجموعة البيانات.
انظر العلاقات العامة رقم 1228 للحصول على التفاصيل.
loss_type
: حدد نوع وظيفة الخسارة. اختر huber
لخسارة Huber، smooth_l1
لخسارة L1 السلسة، و l2
لخسارة MSE. الافتراضي هو l2
، وهو نفسه كما كان من قبل.huber_schedule
: حدد طريقة الجدولة. اختر exponential
أو constant
أو snr
. الافتراضي هو snr
.huber_c
: حدد معلمة Huber. الافتراضي هو 0.1
.يرجى قراءة الإصدارات للحصول على التحديثات الأخيرة.
imagesize
من خلال تثبيت النقطة pip install imagesize==1.4.1
bitsandbytes==0.43.0
、 prodigyopt==1.0
、 lion-pytorch==0.0.6
が require.txt に含まれるようになりました.bitsandbytes
على نظام التشغيل Windows..toml
)) への記載をお勧めします.--console_log_simple
بشأن هذا الأمر. --console_log_simple
オプションを指定し、rich شكرا جزيلا.train_network.py
およびsdxl_train_network.py
で、、 caption_prefix
و caption_suffix
و keep_tokens_separator
و secondary_separator
و enable_wildcard
.train_network.py
およびsdxl_train_network.py
で、state، U-Net، Text Encoder، が含まれる不具合を修正しました.state هذا هو السبب في أن هذا هو السبب وراء ذلك. هذا هو السبب في أن هذا هو السبب وراء ذلك.--noise_offset_random_strength
および--ip_noise_gamma_random_strength
が追加されました. PR #1177 كوهاكو بلوليف 氏に感謝します.--save_state_on_train_end
. العلاقات العامة #1168 gesen2egee 氏に感謝します.--sample_every_n_epochs
および--sample_every_n_steps
لا يوجد أي شيء 0
في هذا المجال. لا داعي للقلق بشأن هذا الأمر. S-Del موجود هنا. .toml
フ ァ イ ル が UTF-8 ترميز で 読 み 込 ま れ る よ う に な り ま し た .PR #1167 Horizon1704 شكرا جزيلا.secondary_separator
. secondary_separator
secondary_separator=";;;"
شكرا جزيلا.enable_wildcard
を追加しました. true
{aaa|bbb|ccc}
هذا هو الحال.keep_tokens_separator
をキャプション内に 2つ使えるようにしました.たとえばkeep_tokens_separator="|||"
と指定したとき、 1girl, hatsune miku, vocaloid ||| stage, mic ||| best quality, rating: general
|||
1girl, hatsune miku, vocaloid ||| stage, mic ||| best quality, rating: general
شكرا جزيلا.caption_prefix
ببادئة caption_suffix
. caption_prefix
とcaption_suffix
は一番最初に処理され、その後、ワイルドカド、 keep_tokens_separator
、シャッフルおよび drop، secondary_separator
.tag_image_by_wd14_tagger.py
で v3 のリポジトリがサポートされました( --onnx
指定時のみ有効). PR #1192 sdbds شكرا جزيلا.pip install onnx==1.15.0 onnxruntime-gpu==1.17.1
等でインストール、アップデトしてください. requirements.txt
.txt.txt.tag_image_by_wd14_tagger.py
で、モデルを--repo_id
のサブشكرا جزيلا لك.よ り 複 数 の モ デ ル フ ァ イ ル が キ ャ ッ シ ュ さ れ ま す. --model_dir
هو نموذج جديد تمامًا.tag_image_by_wd14_tagger.py
にいくつかのオプションを追加しました.--use_rating_tags_as_last_tag
use_ --use_rating_tags
--character_tags_first
--character_tag_expand
--always_first_tags
--tag_replacement
make_captions.py
で--beam_search
を指定し--num_beams
に2 以上の値を指定した時のエラーを修正しました. المزيد من المعلومات " --masked_loss
المقنعة""
لا يوجد مشكلة في هذا الأمر. هذا هو الحال.
تم تصميم ControlNet للتحكم في RGB 0 يمكن أن يكون الأمر كذلك.0-255 、0-1 يمكن أن يحدث هذا في المستقبل 128 لا يوجد أي شيء آخر.をご覧ください.
تم تحديد موعد لتلف البيانات (تلف البيانات) مجدولة خسارة هوبر (が導入されました).
来のMSE(L2)損失関数では、異常値の影響を大لا داعي للقلق بشأن هذا الأمر لقد نفذ هذا الأمر من قبل هوبر. هذا هو السبب في أن هذا هو ما يحدث في المستقبل.
لقد قام هوبر بإيجاد حل للمشكلة اسم المنتج: هوبر هوبر 、、 هذا هو السبب في أن هذا هو ما يحدث في المستقبل.
تم إنشاء شركة Huber في عام 2009، وهي شركة MSE، وهي شركة رائدة في مجال الأعمال التجارية. قم بزيارة موقع الويب الخاص بك حسنًا.
تم تحديد نوع الخسارة من نوع Loss_type وhuber_schedule وhuber_c و損失関数の種類(Huber، Smooth L1، MSE) と ス ケ ジ ュ ー リ ン グ 方法 (أسي، ثابت، SNR) を 選 択 で き ま す.
تم الرد على PR #1228.
loss_type
: نوع الخسارة: 損失関数の種類を指定します. huber
で Huber 失、 smooth_l1
で ناعم L1 損失، l2
で MSE l2
هو السبب في أن هذا هو السبب وراء ذلك.huber_schedule
: أسي exponential
constant
، ثابت. snr
هي snr
الأولى التي يحدث فيها هذا الأمر.huber_c
: هوبر يحمل الرقم 0.1
. تغيير العلاقات العامة إلى الأبد-- --loss_type smooth_l1 --huber_schedule snr --huber_c 0.1
などで試してみるとよいかもしれません.
تم إصدار هذا الإصدار الجديد.
تمت تسمية LoRA المدعوم بواسطة train_network.py
لتجنب الالتباس. تم تحديث الوثائق. فيما يلي أسماء أنواع LoRA في هذا المستودع.
LoRA-LierLa : (LoRA for Li n e a r La yers)
LoRA للطبقات الخطية وطبقات Conv2d مع نواة 1x1
LoRA-C3Lier : (LoRA للطبقات الاختيارية مع طبقات 3x3 Kernel و Li n e a r )
بالإضافة إلى 1.، LoRA لطبقات Conv2d مع نواة 3x3
LoRA-LierLa هو نوع LoRA الافتراضي لـ train_network.py
(بدون وسيطة شبكة conv_dim
).
قد يبدو الملف الفوري بهذا الشكل، على سبيل المثال
# prompt 1
masterpiece, best quality, (1girl), in white shirts, upper body, looking at viewer, simple background --n low quality, worst quality, bad anatomy,bad composition, poor, low effort --w 768 --h 768 --d 1 --l 7.5 --s 28
# prompt 2
masterpiece, best quality, 1boy, in business suit, standing at street, looking back --n (low quality, worst quality), bad anatomy,bad composition, poor, low effort --w 576 --h 832 --d 2 --l 5.5 --s 40
الأسطر التي تبدأ بـ #
هي تعليقات. يمكنك تحديد خيارات للصورة التي تم إنشاؤها باستخدام خيارات مثل --n
بعد المطالبة. يمكن استخدام ما يلي.
--n
موجه سلبي إلى الخيار التالي.--w
يحدد عرض الصورة التي تم إنشاؤها.--h
يحدد ارتفاع الصورة التي تم إنشاؤها.--d
يحدد بذرة الصورة التي تم إنشاؤها.--l
يحدد مقياس CFG للصورة التي تم إنشاؤها.--s
يحدد عدد خطوات التوليد. الترجيح السريع مثل ( )
و [ ]
يعمل.