คู่มือการแพร่กระจายแบบครบวงจรที่เสถียร - จาก Noob ไปจนถึงผู้เชี่ยวชาญ
ฉันเริ่มสนใจการใช้ SD เพื่อสร้างภาพสำหรับการใช้งานทางทหาร ทรัพยากรส่วนใหญ่นำมาจากบอร์ด NSFW ของ 4chan เนื่องจากอานนท์ใช้ SD เพื่อสร้างเฮ็นไท สิ่งที่น่าสนใจคือ Canonical SD WebUI มีฟังก์ชันการทำงานในตัวพร้อมบอร์ดรูปภาพอนิเมะ/เฮ็นไท... หนึ่งในกรณีการใช้งาน SD แรกๆ หลังจากที่ DALL-E สร้างอนิเมะสาว ๆ ดังนั้นการข้ามไปยังเฮ็นไทจึงไม่น่าแปลกใจ
อย่างไรก็ตาม เทคนิคจากสิ่งแปลกประหลาดเหล่านี้สามารถนำไปใช้กับแอพพลิเคชั่นที่หลากหลาย โดยเฉพาะอย่างยิ่ง LoRA ซึ่งเหมือนกับเครื่องปรับจูนโมเดล แนวคิดคือการทำงานร่วมกับ LoRA เฉพาะ (เช่น ยานพาหนะทางทหาร เครื่องบิน อาวุธ ฯลฯ) เพื่อสร้างข้อมูลภาพสังเคราะห์สำหรับการฝึกโมเดลการมองเห็น การฝึกอบรม LoRA ใหม่ที่มีประโยชน์ก็น่าสนใจเช่นกัน ต่อมาอาจรวมถึงการทาสีเพื่อก่อกวน
ข้อสงวนสิทธิ์และแหล่งที่มา
Every link here may contain NSFW content, as most of the cutting-edge work on SD and LoRAs is with porn or hentai. So, please be wary when you are working with these resources. ALSO, Rentry.org pages are the main resources linked to in this guide. If any of the rentry pages do not work, change the .org to .co and the link should work. Otherwise, use the Wayback machine.
-ทีพี
เล่นกับมัน!
คุณสามารถทำอะไรกับ SD ได้จริง? Huggingface และคนอื่นๆ มีแอปในเบราว์เซอร์สำหรับคุณ เล่นกับพวกเขาเพื่อดูพลัง! สิ่งที่เราจะทำในคู่มือนี้คือรับ WebUI แบบเต็มและขยายได้เพื่อให้เราทำอะไรก็ได้ที่เราต้องการ
- สนามเด็กเล่น SD ข้อความ Huggingface เป็นรูปภาพ
- แอพ Dreamstudio แปลงข้อความเป็นรูปภาพ SD
- แอพ Dezgo ข้อความเป็นรูปภาพ SD
- เปลี่ยนรูปภาพ Huggingface เป็น Image SD Playground
- สนามเด็กเล่นในการวาดภาพ Huggingface
สารบัญ
- ข้อมูลพื้นฐานเกี่ยวกับ WebUI
- ตั้งค่าการใช้งาน GPU ภายใน
- การตั้งค่าลินุกซ์
- เจาะลึกยิ่งขึ้น
- พร้อมท์
- โมเดล NovelAI
- โลรา
- เล่นกับนางแบบ
- VAE
- ใส่มันทั้งหมดเข้าด้วยกัน
- กระบวนการ SD ทั่วไป
- กำลังบันทึกคำแนะนำ
- การตั้งค่า txt2img
- การสร้างรูปภาพที่สร้างไว้ก่อนหน้านี้ใหม่
- การแก้ไขปัญหาข้อผิดพลาด
- ได้รับความสะดวกสบาย
- การทดสอบ
- WebUI ขั้นสูง
- แก้ไขด่วน
- เอ็กซ์ฟอร์เมอร์
- Img2Img
- การวาดภาพ
- บริการพิเศษ
- คอนโทรลเน็ตส์
- การสร้างสิ่งใหม่ (WIP)
- การควบรวมกิจการด่านตรวจ
- การฝึกอบรม LoRA
- การฝึกอบรมโมเดลใหม่
- การตั้งค่า Google Colab (WIP)
- กลางการเดินทาง
- พารามิเตอร์ MJ
- พรอมต์ขั้นสูงของ MJ
- ดรีมสตูดิโอ (WIP)
- ฝูงชนที่มีเสถียรภาพ (WIP)
- ดรีมบูธ (WIP)
- การแพร่กระจายวิดีโอ (WIP)
ข้อมูลพื้นฐานเกี่ยวกับ WebUI
มันค่อนข้างจะยากลำบากในการเข้าถึงสิ่งนี้... แต่ 4channers ทำได้ดีมากในการทำให้สิ่งนี้เข้าถึงได้ ด้านล่างนี้เป็นขั้นตอนที่ฉันดำเนินการในแง่ที่ง่ายที่สุด ความตั้งใจของคุณคือให้ Stable Diffusion WebUI (สร้างด้วย Gradio) ทำงานภายในเครื่อง เพื่อให้คุณสามารถเริ่มพร้อมท์และสร้างรูปภาพได้
ตั้งค่าการใช้งาน GPU ภายในเครื่อง
เราจะทำการตั้งค่า Google Colab Pro ในภายหลัง เพื่อให้เราสามารถเรียกใช้ SD บนอุปกรณ์ใดก็ได้ทุกที่ที่เราต้องการ แต่ก่อนอื่น เรามาตั้งค่า WebUI บนพีซีกันดีกว่า คุณต้องมี RAM 16GB, GPU ที่มี VRAM 2GB, Windows 7+ และพื้นที่ดิสก์ 20+GB
- ทำตามคำแนะนำการตั้งค่าเริ่มต้นให้เสร็จสิ้น
- ฉันทำตามขั้นตอนนี้จนถึงขั้นตอนที่ 7 หลังจากนั้นมันก็เข้าสู่เนื้อหาเฮ็นไท
- ขั้นตอนที่ 3 ใช้เวลา 15-45 นาทีสำหรับความเร็วอินเทอร์เน็ตโดยเฉลี่ย เนื่องจากแต่ละรุ่นมีขนาด 5+ GB
- ขั้นตอนที่ 7 อาจใช้เวลานานกว่าครึ่งชั่วโมงและอาจดูเหมือน "ค้าง" ใน CLI
- ในขั้นตอนที่ 3 ฉันดาวน์โหลด SD1.5 ไม่ใช่เวอร์ชัน 2.x เนื่องจาก 1.5 ให้ผลลัพธ์ที่ดีกว่ามาก
- CivitAI มี SD รุ่นทั้งหมด; มันเหมือนกับ HuggingFace แต่สำหรับ SD โดยเฉพาะ
- ตรวจสอบว่า WebUI ใช้งานได้
- คัดลอก URL ที่เอาต์พุต CLI เมื่อเสร็จแล้ว เช่น
127.0.0.1:7860
( อย่า ใช้ Ctrl + C เพราะคำสั่งนี้สามารถปิด CLI ได้) - วางลงในเบราว์เซอร์และ voila; ลองใช้พรอมต์แล้วคุณก็จะเข้าสู่การแข่งขัน
- รูปภาพจะถูกบันทึกโดยอัตโนมัติเมื่อสร้างไปที่
stable-diffusion-webuioutputstxt2img-images
- โปรดจำไว้ว่า หากต้องการอัปเดต เพียงเปิด CLI ในโฟลเดอร์ stable-diffusion-webui แล้วป้อนคำสั่ง
git pull
การตั้งค่าลินุกซ์
ไม่ต้องสนใจสิ่งนี้เลยหากคุณมี Windows ฉันจัดการเพื่อให้มันทำงานบน Linux ได้เช่นกัน แม้ว่ามันจะซับซ้อนกว่าเล็กน้อยก็ตาม ฉันเริ่มต้นด้วยการทำตามคำแนะนำนี้ แต่เขียนได้ค่อนข้างไม่ดี ดังนั้นด้านล่างนี้คือขั้นตอนที่ฉันดำเนินการเพื่อให้มันรันใน Linux ฉันใช้ Linux Mint 20 ซึ่งเป็นการแจกจ่าย Ubuntu 20
- เริ่มต้นด้วยการโคลน repo ของ webui:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
- รับโมเดล SD (เช่น SD 1.5 เหมือนในส่วนก่อนหน้า)
- วางไฟล์ model ckpt ลงใน
stable-diffusion-webui/models/Stable-diffusion
- ดาวน์โหลด Python (หากคุณยังไม่มี):
sudo apt install python3 python3-pip python3-virtualenv wget git
- และ WebUI นั้นมีความเฉพาะเจาะจงมาก ดังนั้นเราจึงจำเป็นต้องติดตั้ง Conda ซึ่งเป็นผู้จัดการสภาพแวดล้อมเสมือน เพื่อทำงานภายใน:
wget https://repo.anaconda.com/miniconda/Minconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
- ตอนนี้สร้างสภาพแวดล้อม:
conda create --name sdwebui python=3.10.6
- เปิดใช้งานสภาพแวดล้อม:
conda activate sdwebui
- นำทางไปยังโฟลเดอร์ WebUI ของคุณแล้วพิมพ์
./webui.sh
- ควรดำเนินการสักครู่จนกว่าคุณจะได้รับข้อผิดพลาดเกี่ยวกับการไม่สามารถเข้าถึง CUDA/GPU ของคุณได้... ไม่เป็นไร เพราะเป็นขั้นตอนต่อไปของเรา
- เริ่มต้นด้วยการล้างไดรเวอร์ Nvidia ที่มีอยู่:
sudo apt update
sudo apt purge *nvidia*
- ตอนนี้ ต่อไปนี้เป็นบางส่วนจากคู่มือนี้ ดูว่าเครื่อง Linux ของคุณมี GPU ใดบ้าง (วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการเปิดแอป Driver Manager และ GPU ของคุณจะแสดงอยู่ในรายการ แต่มีหลายวิธี เพียงแค่ Google เท่านั้น)
- ไปที่หน้านี้แล้วคลิก "สาขาฟีเจอร์ใหม่ล่าสุด" ใต้ Linux x86_64 (สำหรับฉันคือ 530.xx.xx)
- คลิกแท็บ "ผลิตภัณฑ์ที่รองรับ" และ Ctrl + F เพื่อค้นหา GPU ของคุณ หากมีอยู่ในรายการ ให้ดำเนินการต่อ หรือถอยออกไปแล้วลองใช้ "เวอร์ชันสาขาการผลิตล่าสุด"; สังเกตตัวเลข เช่น 530
- ในเทอร์มินัล ให้พิมพ์:
sudo add-apt-repository ppa:graphics-drivers/ppa
- อัปเดตด้วยการ
sudo apt-get update
- เปิดแอป Driver Manager แล้วคุณควรเห็นรายการเหล่านั้น อย่าเลือกอันที่แนะนำ (เช่น nvidia-driver-530-open) เลือกอันที่แน่นอนจากรุ่นก่อนหน้า (เช่น nvidia-driver-530) และใช้การเปลี่ยนแปลง หรือติดตั้งในเทอร์มินัลด้วย
sudo apt-get install nvidia-driver-530
- ณ จุดนี้ คุณควรได้รับป๊อปอัปผ่าน CLI ของคุณเกี่ยวกับ Secure Boot โดยขอรหัสผ่าน 8 หลัก: ตั้งค่าและจดบันทึกไว้
- รีบูทพีซีของคุณและก่อนที่จะเข้ารหัส/เข้าสู่ระบบผู้ใช้ คุณจะเห็นหน้าจอเหมือน BIOS (ฉันกำลังเขียนสิ่งนี้จากหน่วยความจำ) พร้อมตัวเลือกในการป้อนรหัส MOK คลิกและป้อนรหัสผ่านของคุณ จากนั้นส่งและบูต ข้อมูลบางอย่างที่นี่
- เข้าสู่ระบบตามปกติแล้วพิมพ์คำสั่ง
nvidia-smi
; หากสำเร็จควรพิมพ์ตาราง ถ้าไม่เช่นนั้น จะมีข้อความประมาณว่า "ไม่สามารถเชื่อมต่อกับ GPU ได้ โปรดตรวจสอบให้แน่ใจว่าได้ติดตั้งไดรเวอร์ล่าสุดแล้ว" - ตอนนี้เพื่อติดตั้ง CUDA (คำสั่งสุดท้ายที่นี่ควรพิมพ์ข้อมูลบางอย่างเกี่ยวกับการติดตั้ง CUDA ใหม่ของคุณ) จากคู่มือนี้:
sudo apt update
sudo apt install apt-transport-https ca-certificates gnupg
sudo apt install nvidia-cuda-toolkit
nvcc-version
- ย้อนกลับไปทำตามขั้นตอนที่ 7-9; หากคุณได้รับข้อความ "ข้อผิดพลาด: ไม่สามารถเปิดใช้งาน python venv, aborting..." ให้ไปที่ขั้นตอนถัดไป (ไม่เช่นนั้น คุณจะออกจากการแข่งขันและจะคัดลอกที่อยู่ IP จาก CLI เหมือนปกติและสามารถเริ่มเล่นกับ SD ได้)
- ปัญหา Github นี้มีการแก้ไขปัญหาบางอย่างสำหรับปัญหา venv นี้... สำหรับฉัน สิ่งที่ได้ผลกำลังทำงานอยู่
python3 -c 'import venv'
python3 -m venv venv/
จากนั้นไปที่โฟลเดอร์ /stable-diffusion-webui
และเรียกใช้:
rm -rf venv/
python3 -m venv venv/
หลังจากนั้นมันก็ได้ผลสำหรับฉัน
เจาะลึกยิ่งขึ้น
- อ่านเทคนิคการกระตุ้นเตือน เนื่องจากมีสิ่งต่างๆ มากมายที่ต้องรู้ (เช่น การแจ้งเตือนเชิงบวกและการแจ้งเตือนเชิงลบ ขั้นตอนการสุ่มตัวอย่าง วิธีการสุ่มตัวอย่าง เป็นต้น)
- คู่มือพร้อมท์บุ๊ค OpenArt
- คู่มือการแจ้ง SD ขั้นสุดท้าย
- คู่มือการกระตุ้นเตือนแบบรวบรัด
- เคล็ดลับการแจ้ง 4chan (NSFW)
- รวบรวมข้อความและรูปภาพ
- คู่มือแนะนำสาวอนิเมะทีละขั้นตอน
- อ่านความรู้ SD โดยทั่วไป:
- สิ่งพิมพ์เผยแพร่การแพร่กระจายเสถียรภาพน้ำเชื้อ
- CompVis / Stability AI Github (บ้านของรุ่น SD ดั้งเดิม)
- บทสรุปการแพร่กระจายที่เสถียร (ทรัพยากรภายนอกที่ดี)
- ศูนย์กลางลิงก์การแพร่กระจายที่เสถียร (ทรัพยากร 4chan ที่น่าทึ่ง)
- เหมืองทองการแพร่กระจายที่เสถียร
- SD Goldmine แบบง่าย
- สุ่ม/เบ็ดเตล็ด ลิงค์ SD
- คำถามที่พบบ่อย (NSFW)
- คำถามที่พบบ่อยอื่น
- เข้าร่วม Discord การแพร่กระจายที่เสถียร
- ติดตามข่าวสาร Stable Diffsion อยู่เสมอ
- คุณรู้ไหมว่า ณ เดือนมีนาคม 2023 โมเดลการแพร่กระจายข้อความเป็นวิดีโอพารามิเตอร์ 1.7B พร้อมใช้งานแล้ว
- ใช้งาน WebUI เล่นกับรุ่นต่างๆ การตั้งค่า ฯลฯ
พร้อมท์
ลำดับของคำในพรอมต์มีผล: คำก่อนหน้าจะมีความสำคัญกว่า โครงสร้างทั่วไปของพรอมต์ที่ดี จากที่นี่:
และคำแนะนำที่ดีอีกข้อหนึ่งบอกว่าพรอมต์ควรเป็นไปตามโครงสร้างนี้: