พื้นที่เก็บข้อมูลนี้มี Gradio GUI สำหรับผู้ฝึกสอน Stable Diffusion ของ Kohya เป็นหลัก อย่างไรก็ตาม มีการเสนอการสนับสนุนสำหรับ Linux OS ผ่านทางการสนับสนุนของชุมชนด้วย การรองรับ macOS ยังไม่เหมาะสมในขณะนี้ แต่อาจใช้งานได้หากเงื่อนไขเอื้ออำนวย
GUI ช่วยให้คุณตั้งค่าพารามิเตอร์การฝึกและสร้างและรันคำสั่ง CLI ที่จำเป็นเพื่อฝึกโมเดล
GUI ของ Kohya
ขีดจำกัดไฟล์เพจ
ไม่มีโมดูลที่เรียกว่า tkinter
การฝึกอบรม LORA บน TESLA V100 - ปัญหาการใช้งาน GPU
สรุปประเด็น
โซลูชั่นที่มีศักยภาพ
การเปิดตัว GUI บน Windows
การเปิดตัว GUI บน Linux และ macOS
อัพเกรดวินโดวส์
อัปเกรด Linux และ macOS
หน้าต่าง
ลินุกซ์และ macOS
รันพอด
นักเทียบท่า
ข้อกำหนดเบื้องต้นของ Windows
ติดตั้งวินโดวส์
ทางเลือก: CUDNN 8.9.6.50
ข้อกำหนดเบื้องต้นของ Linux
ติดตั้งลินุกซ์
ติดตั้งตำแหน่ง
การติดตั้งด้วยตนเอง
เทมเพลต Runpod ที่สร้างไว้ล่วงหน้า
หน้าต่าง
ลินุกซ์, โอเอสเอ็กซ์
เตรียม Docker ของคุณให้พร้อมสำหรับการรองรับ GPU
การออกแบบ Dockerfile ของเรา
ใช้อิมเมจ Docker ที่สร้างไว้ล่วงหน้า
สร้างนักเทียบท่าท้องถิ่น
ashleykleynhans runpod docker builds
สารบัญ
- โคลาบ
การติดตั้ง
กำลังอัปเกรด
การเริ่มบริการ GUI
ค่าเริ่มต้นของเส้นทางที่กำหนดเอง
โลรา
ตัวอย่างการสร้างภาพระหว่างการฝึก
การแก้ไขปัญหา
การฝึกอบรม SDXL
การสูญเสียที่สวมหน้ากาก
ประวัติการเปลี่ยนแปลง
สมุดบันทึก Colab นี้ไม่ได้สร้างหรือดูแลโดยฉัน อย่างไรก็ตามดูเหมือนว่าจะทำงานได้อย่างมีประสิทธิภาพ สามารถดูแหล่งที่มาได้ที่: https://github.com/camenduru/kohya_ss-colab
ฉันอยากจะแสดงความขอบคุณต่อ Camendutu สำหรับการสนับสนุนอันมีค่าของพวกเขา หากคุณพบปัญหาใดๆ กับสมุดบันทึก Colab โปรดรายงานปัญหาเหล่านั้นในพื้นที่เก็บข้อมูล
โคลาบ | ข้อมูล |
---|---|
kohya_ss_gui_colab |
เมื่อต้องการติดตั้งการขึ้นต่อกันที่จำเป็นบนระบบ Windows ให้ทำตามขั้นตอนเหล่านี้:
ติดตั้งไพธอน 3.10.11
ในระหว่างกระบวนการติดตั้ง ตรวจสอบให้แน่ใจว่าคุณได้เลือกตัวเลือกในการเพิ่ม Python ให้กับตัวแปรสภาพแวดล้อม 'PATH'
ติดตั้งชุดเครื่องมือ CUDA 11.8
ติดตั้ง Git
ติดตั้ง Visual Studio 2015, 2017, 2019 และ 2022 ที่แจกจ่ายต่อได้
หากต้องการตั้งค่าโครงการ ให้ทำตามขั้นตอนเหล่านี้:
เปิดเทอร์มินัลแล้วไปที่ไดเร็กทอรีการติดตั้งที่ต้องการ
โคลนที่เก็บโดยการรันคำสั่งต่อไปนี้:
git clone -- เรียกซ้ำ https://github.com/bmaltais/kohya_ss.git
เปลี่ยนเป็นไดเร็กทอรี kohya_ss
:
ซีดี kohya_ss
เรียกใช้สคริปต์การตั้งค่าอย่างใดอย่างหนึ่งต่อไปนี้โดยดำเนินการคำสั่งต่อไปนี้:
สำหรับระบบที่ติดตั้ง python 3.10.11 เท่านั้น:
.setup.bat
สำหรับระบบที่ติดตั้ง python มากกว่าหนึ่งรุ่นเท่านั้น:
.setup-3.10.bat
ในระหว่างขั้นตอนการกำหนดค่าการเร่งความเร็ว ให้ใช้ค่าเริ่มต้นตามที่เสนอในระหว่างการกำหนดค่า เว้นแต่คุณจะรู้ว่าฮาร์ดแวร์ของคุณต้องการอย่างอื่น จำนวน VRAM บน GPU ของคุณไม่ส่งผลต่อค่าที่ใช้
ขั้นตอนต่อไปนี้เป็นทางเลือก แต่จะปรับปรุงความเร็วในการเรียนรู้สำหรับเจ้าของ GPU 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 Toolkit โดยทำตามคำแนะนำที่ให้ไว้ในลิงค์นี้
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Python เวอร์ชัน 3.10.9 หรือสูงกว่า (แต่ต่ำกว่า 3.11.0) บนระบบของคุณ
หากต้องการตั้งค่าโปรเจ็กต์บน Linux หรือ macOS ให้ทำตามขั้นตอนต่อไปนี้:
เปิดเทอร์มินัลแล้วไปที่ไดเร็กทอรีการติดตั้งที่ต้องการ
โคลนที่เก็บโดยการรันคำสั่งต่อไปนี้:
git clone -- เรียกซ้ำ 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
โคลนที่เก็บโดยการรันคำสั่งต่อไปนี้:
ซีดี/พื้นที่ทำงาน git clone -- เรียกซ้ำ https://github.com/bmaltais/kohya_ss.git
เรียกใช้สคริปต์การตั้งค่า:
ซีดี kohya_ss ./setup-runpod.sh
รัน GUI ด้วย:
./gui.sh --share --หัวขาด
หรือสิ่งนี้หากคุณเปิดเผย 7860 โดยตรงผ่านการกำหนดค่า runpod:
./gui.sh --listen=0.0.0.0 --หัวขาด
เชื่อมต่อกับ URL สาธารณะที่แสดงหลังจากกระบวนการติดตั้งเสร็จสิ้น
หากต้องการเรียกใช้จากเทมเพลต Runpod ที่สร้างไว้ล่วงหน้า คุณสามารถ:
เปิดเทมเพลต Runpod โดยคลิกที่ https://runpod.io/gsc?template=ya6013lj5a&ref=w18gds2n
ปรับใช้เทมเพลตบนโฮสต์ที่ต้องการ
เมื่อปรับใช้แล้ว ให้เชื่อมต่อกับ Runpod บน HTTP 3010 เพื่อเข้าถึง kohya_ss GUI คุณยังสามารถเชื่อมต่อกับ 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 Container Toolkit พร้อมกับคำแนะนำนี้
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 -- เรียกซ้ำ 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 -- เรียกซ้ำ 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/ashleyklynhans/kohya-docker
เทมเพลต Auto1111 + Kohya_ss GUI: https://github.com/ashleykleynhans/stable-diffusion-docker
หากต้องการอัปเกรดการติดตั้งของคุณเป็นเวอร์ชันใหม่ ให้ทำตามคำแนะนำด้านล่าง
หากมีรีลีสใหม่ให้ใช้งาน คุณสามารถอัพเกรดพื้นที่เก็บข้อมูลของคุณได้โดยการรันคำสั่งต่อไปนี้จากไดเร็กทอรีรากของโปรเจ็กต์:
ดึงการเปลี่ยนแปลงล่าสุดจากที่เก็บ:
คอมไพล์ดึง
เรียกใช้สคริปต์การตั้งค่า:
.setup.bat
หากต้องการอัพเกรดการติดตั้งของคุณบน Linux หรือ macOS ให้ทำตามขั้นตอนเหล่านี้:
เปิดเทอร์มินัลแล้วไปที่ไดเร็กทอรีรากของโปรเจ็กต์
ดึงการเปลี่ยนแปลงล่าสุดจากที่เก็บ:
คอมไพล์ดึง
รีเฟรชและอัปเดตทุกอย่าง:
./setup.sh
หากต้องการเปิดบริการ GUI คุณสามารถใช้สคริปต์ที่ให้มาหรือเรียกใช้สคริปต์ 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 --listen 127.0.0.1 --server_port 7860 --inbrowser --share
หากต้องการเปิดใช้ GUI บน Linux หรือ macOS ให้เรียกใช้สคริปต์ gui.sh
ที่อยู่ในไดเร็กทอรีราก ระบุอาร์กิวเมนต์บรรทัดคำสั่งที่ต้องการดังนี้:
gui.sh --listen 127.0.0.1 --server_port 7860 --inbrowser --share
ขณะนี้พื้นที่เก็บข้อมูลจัดเตรียมไฟล์คอนฟิกูเรชันดีฟอลต์ชื่อ config.toml
ไฟล์นี้เป็นเทมเพลตที่คุณสามารถปรับแต่งให้เหมาะกับความต้องการของคุณได้
หากต้องการใช้ไฟล์การกำหนดค่าเริ่มต้น ให้ทำตามขั้นตอนเหล่านี้:
คัดลอกไฟล์ config example.toml
จากไดเร็กทอรีรากของที่เก็บไปยัง config.toml
เปิดไฟล์ config.toml
ในโปรแกรมแก้ไขข้อความ
ปรับเปลี่ยนเส้นทางและการตั้งค่าตามความต้องการของคุณ
วิธีการนี้ช่วยให้คุณสามารถปรับการกำหนดค่าให้เหมาะกับความต้องการเฉพาะของคุณได้อย่างง่ายดายเพื่อเปิดโฟลเดอร์เริ่มต้นที่ต้องการสำหรับอินพุตโฟลเดอร์/ไฟล์แต่ละประเภทที่รองรับใน GUI
คุณสามารถระบุเส้นทางไปยัง config.toml ของคุณ (หรือชื่ออื่น ๆ ที่คุณต้องการ) เมื่อเรียกใช้ GUI ตัวอย่างเช่น: ./gui.bat --config c:my_config.toml
หากต้องการฝึก LoRA คุณสามารถใช้โค้ด train_network.py
ได้ในขณะนี้ คุณสามารถสร้างเครือข่าย LoRA ได้โดยใช้ GUI แบบออลอินวัน
เมื่อคุณสร้างเครือข่าย LoRA แล้ว คุณสามารถสร้างอิมเมจโดยใช้ auto1111 ได้โดยการติดตั้งส่วนขยายนี้
ไฟล์พร้อมท์อาจมีลักษณะเช่นนี้ เช่น:
# แจ้งผลงานชิ้นเอก 1 ชิ้น คุณภาพดีที่สุด (1 สาว) สวมเสื้อเชิ้ตสีขาว ร่างกายส่วนบน มองดูผู้ดู พื้นหลังเรียบง่าย --คุณภาพต่ำ คุณภาพแย่ที่สุด กายวิภาคศาสตร์แย่ องค์ประกอบไม่ดี แย่ ความพยายามต่ำ --w 768 --h 768 --d 1 --l 7.5 --s 28# prompt 2ผลงานชิ้นเอก คุณภาพดีที่สุด เด็กชาย 1 คน ในชุดสูทธุรกิจ ยืนอยู่ที่ถนน มองย้อนกลับไป --n (คุณภาพต่ำ คุณภาพแย่ที่สุด) โครงสร้างทางกายวิภาคไม่ดี องค์ประกอบไม่ดี แย่ , ความพยายามต่ำ --w 576 --h 832 --d 2 --l 5.5 --s 40
บรรทัดที่ขึ้นต้นด้วย #
คือความคิดเห็น คุณสามารถระบุตัวเลือกสำหรับรูปภาพที่สร้างขึ้นด้วยตัวเลือกเช่น --n
หลังข้อความแจ้ง สามารถใช้ตัวเลือกต่อไปนี้:
--n
: เชิงลบแสดงตัวเลือกถัดไป
--w
: ระบุความกว้างของรูปภาพที่สร้างขึ้น
--h
: ระบุความสูงของภาพที่สร้างขึ้น
--d
: ระบุเมล็ดพันธุ์ของรูปภาพที่สร้างขึ้น
--l
: ระบุขนาด CFG ของรูปภาพที่สร้างขึ้น
--s
: ระบุจำนวนขั้นตอนในการสร้าง
การถ่วงน้ำหนักทันที เช่น ( )
และ [ ]
กำลังทำงานอยู่
หากคุณพบปัญหาใดๆ โปรดดูขั้นตอนการแก้ปัญหาด้านล่าง
หากคุณพบข้อผิดพลาด X ที่เกี่ยวข้องกับไฟล์เพจ คุณอาจต้องเพิ่มขีดจำกัดขนาดไฟล์เพจใน Windows
หากคุณพบข้อผิดพลาดที่ระบุว่าไม่พบโมดูล tkinter
ให้ลองติดตั้ง Python 3.10 ใหม่บนระบบของคุณ
เมื่อฝึก LORA บน TESLA V100 ผู้ใช้รายงานว่ามีการใช้งาน GPU ต่ำ นอกจากนี้ ยังมีปัญหาในการระบุ GPU นอกเหนือจากค่าเริ่มต้นสำหรับการฝึก
การเลือก GPU: ผู้ใช้สามารถระบุ GPU ID ในการกำหนดค่าการตั้งค่าเพื่อเลือก GPU ที่ต้องการสำหรับการฝึกอบรม
การปรับปรุงโหลด GPU: การใช้เครื่องมือเพิ่มประสิทธิภาพ adamW8bit
และการเพิ่มขนาดแบตช์สามารถช่วยให้บรรลุการใช้งาน GPU 70-80% โดยไม่เกินขีดจำกัดหน่วยความจำ GPU
เอกสารประกอบในส่วนนี้จะถูกย้ายไปยังเอกสารอื่นในภายหลัง
สคริปต์การฝึกอบรมแต่ละสคริปต์รองรับการสูญเสียที่ปกปิดไว้ หากต้องการเปิดใช้งานการสูญเสียที่ปกปิด ให้ระบุตัวเลือก --masked_loss
คุณสมบัตินี้ยังไม่ได้รับการทดสอบอย่างสมบูรณ์ ดังนั้นอาจมีข้อบกพร่อง หากคุณพบปัญหาใด ๆ โปรดเปิดปัญหา
ชุดข้อมูล ControlNet ใช้เพื่อระบุมาสก์ ภาพมาส์กควรเป็นภาพ RGB ค่าพิกเซล 255 ในช่อง R จะถือเป็นมาสก์ (การสูญเสียจะคำนวณเฉพาะพิกเซลที่มีมาสก์) และ 0 จะถือเป็นไม่ใช่มาสก์ ค่าพิกเซล 0-255 จะถูกแปลงเป็น 0-1 (เช่น ค่าพิกเซล 128 จะถือเป็นน้ำหนักครึ่งหนึ่งของการสูญเสีย) ดูรายละเอียดข้อกำหนดชุดข้อมูลในเอกสารประกอบของ LLLite
ดูข้อมูลการเปิดตัว