
ภาพน้อยก็เทรน LoRA ได้ด้วย Alpha Mask
Disclaimer!
- บทความนี้ใช้เพื่อศึกษาการเทรน LoRA ด้วย Dataset ที่จำกัดมาก ๆ เพื่อให้พิสูจน์ว่าการที่มี dataset น้อยมากก็สามารถทำได้เช่นกันโดยไม่ต้องมีการทำ Synthetic Dataset เลย ถึงอาจจะไม่ได้ออกมาดีที่สุดแต่ก็สามารถใช้ได้ในระดับหนึ่ง
Dataset ที่เตรียมต้องเป็นอย่างไร
- ภาพเดิมๆ ที่มีเลย เอา background ออกให้หมดแล้ว save ออกมาเป็น png
Sample Dataset

Caption
โดยโมเดลที่จะใช้เทรน LoRA คือ IllustriousXL ซึ่งเป็นโมเดลที่เก่ง Anime 2D เป็นหลักซึ่งต้องใช้โปรแกรมที่ caption ที่ได้ output เป็น tags ออกมา
โมเดลที่ใช้ caption คือ Florence 2 Promptgen ใช้ผ่าน ComfyUI
Example Caption
somgirlsd, 1girl, solo, long hair, breasts, blush, shirt, skirt, closed mouth, brown eyes,
standing, full body, orange hair, green hairband, boots, puffy sleeves, orange skirt, crossed arms, looking to the side
Training Parameters
--alpha_mask
<-- ต้องมี

- โดยใน kohya-ss GUI จะอยู่ที่ Additional Parameters ที่ Advanced
- จำนวน steps อาจต้องลดลงไปมากๆ จากปกติ 2000-3000 เหลือสัก 600-1000 steps (ขึ้นอยู่กับ learning rate, scheduler, optimizer)
- อื่นๆ ต้องลองเช่นผมใช้ Prodigy
Sample Image ที่ได้จากการเทรน

สรุป
- Dataset น้อยก็สามารถเทรนได้แต่ต้องหา parameters ที่ตั้งแตกต่างจากเดิม เพื่อให้ได้โมเดล LoRA ที่ดีที่สุด
- ความยืดหยุ่นอาจสู้ไม่ได้กับการทำ Synthetic Dataset เพราะว่าเป็นการใช้ข้อมูลจริงทั้งหมด ไม่ได้มีการสังเคราะห์ใดๆ
- สามารถแก้ปัญหาเรื่อง LoRA จำ background ไปด้วยหากมีแค่ background แบบเดียว และกัน overfitting ระดับหนึ่ง
วิธีนี้ทำกับโมเดลใดได้บ้าง
- SDXL, Pony, Illustrious, Flux ได้แน่นอน
- SD1.5 ยากระดับหนึ่ง
เกร็ดความรู้เกี่ยวกับ alpha
- ปกติรูปภาพจะมี rgb แต่ png มี a เข้ามาจะเป็น rgba
- a คือ alpha ง่าย ๆ คือค่าความโปร่งใสของภาพโดยมีค่าเป็น 0 ถึง 1 (0 คือไม่เห็นเลย 1 คือเห็นเต็ม ๆ)
- alpha_mask คือเป็นการทำให้การเทรนมองว่าโฟกัสแค่จุดไหนของภาพโดยมองตาม alpha เป็นหลัก 0 คือไม่โฟกัส 1 คือโฟกัสเต็มๆ
ถ้าใครมี Dataset ที่ไม่มี background เลยหรือว่าภาพน้อยมากก็ลองวิธีนี้ได้นะครับ
เรียบเรียงโดย vjumpkung