Synthetic Dataset for LoRA Training

Synthetic Dataset  for LoRA Training

เรียนรู้วิธีการสร้าง synthetic dataset สำหรับการเทรน LoRA เมื่อมีรูปต้นแบบจำกัด เพิ่มความหลากหลายของท่าทางและมุมมอง

เคยไหม อยากเทรน LoRA ตัวละคร แต่มีรูปต้นแบบแค่ไม่กี่ภาพ ทำให้ LoRA เรียนรู้ได้ไม่เต็มที่ และไม่สามารถสร้างท่าทางที่หลากหลายได้ บทความนี้จะมาแชร์เทคนิค

การสร้าง synthetic dataset ด้วยวิธีต่างๆ ให้เรามีภาพในการเทรน LoRA มากขึ้น

แต่ก่อนอื่น เรามาทำความรู้จัก LoRA กันก่อน

LoRA (Low-Rank Adaptation) เป็นเทคนิคการ fine-tune โมเดล AI สร้างภาพที่มีประสิทธิภาพสูง โดยใช้ทรัพยากรน้อยกว่าการ fine-tune แบบเต็มรูปแบบ เรียนรู้ได้เร็วกว่า และให้ไฟล์ผลลัพธ์ขนาดเล็ก

ส่วนที่ LoRA เข้าไปแก้ไข

วิธีการของ LoRA คือการ เลือกปรับเฉพาะส่วนสำคัญของโมเดล แทนที่จะปรับทั้งหมด เหมือนกับการแก้ไขเฉพาะจุดที่ต้องการ ทำให้ประหยัดเวลาและทรัพยากรได้มาก

เราสามารถใช้ LoRA เพื่อสอนให้AI วาดภาพใน คอนเซ็ปต์ หรือตัวละคร ที่โมเดลหลักไม่รู้จัก

สิ่งที่ต้องระวังคือ การเทรนที่มากเกินไป (overfitting) เนื่องจากใช้ข้อมูล Dataset น้อย ทำให้ตัวละครที่เราเทรนไม่สามารถทำท่าทางได้หลากหลายตามที่เราต้องการ

Dataset มีจำกัด

ในตัวอย่างที่ผมใช้ในวันนี้ มีจำนวนรูปภาพตั้งต้นที่ใช้ในการเทรนเพียง 5 ภาพข้างบนนี้ ซึ่งในการเทรนรอบแรก มีข้อจำกัดในการสร้างภาพท่าทางและพื้นหลังพอสมควร

3 วิธีง่ายๆในการเพิ่มจำนวน Synthetic Dataset เพื่อให้มีข้อมูลสำหรับเทรน LoRA ให้หลากหลายขึ้น

1. เทรน LoRA เวอร์ชั่นแรกจาก Dataset ที่มีจำกัด จากนั้นใช้ Text2image สร้างภาพเพิ่มเท่าที่ทำได้

ภาพจาก LoRA เวอร์ชั่นแรก สามารถเพิ่มภาพท่าทางต่างๆได้

ถึงแม้ว่าการสร้างภาพด้วย LoRA ที่มีข้อมูลน้อยจะทำให้การใช้งานไม่ยืดหยุ่นและไม่หลากหลาย แต่ก็เพียงพอสำหรับการสร้างภาพท่าทางง่ายๆ พื้นหลังธรรมดาๆ เพื่อมาเพิ่มจำนวน Dataset ให้มีมากขึ้นได้

2. ใช้การตัดต่อด้วย Photoshop หรือใช้ Ai เพื่อเปลี่ยนภาพเฉพาะจุดเช่น เพิ่มวัตถุ หรือเปลี่ยนพื้นหลัง

ใช้ Generative fill ใน Adobe Firefly เพิ่มวัตถุเข้าไปในภาพ

การแก้ไขภาพด้วยการเพิ่มวัตถุหรือเปลี่ยนพื้นหลังให้ภาพ ที่เราสร้างมาก่อนหน้านี้ จะทำให้โมเดลที่จะเทรนในอนาคตมีความหลากหลายยิ่งขึ้นไปอีก และจะมีความยืดหยุ่นในการสร้างภาพให้ตัวละครของเราไปอยู่ในสถานที่และสภาพแวดล้อมต่างๆได้ดีขึ้น

ใช้ Generative fill ใน Adobe Firefly (หรือ Inpaint ใน Stable diffusion) เปลี่ยนพื้นหลังให้ภาพ

3. ใช้ IC-light V2 ทำให้ Dataset มีภาพที่แสงเงาสมจริงขึ้น

การใช้ IC-light V2 จะเน้นสร้าง dataset ที่มีแสงเงาสมจริง ทำให้ LoRA ตัวละคร 2D ของเราสามารถทำภาพแนว realistic ที่มีแสงและเงาที่ซับซ้อนได้

(อยู่ที่ความต้องการ ถ้าต้องการให้โมเดลเน้นทำภาพ 2D ตามต้นแบบ(ให้ข้ามขั้นตอนนี้) เข้าไปลองใช้งานได้ที่ huggingface.co/spaces/lllyasviel/iclight-v2

จากนั้นเราก็นำภาพ Dataset เริ่มต้น 5 ภาพไปรวมกับ synthetic dataset ที่เราสร้างขึ้นมาตามสามข้อข้างบน เราก็จะมี dataset มากพอที่จะทำให้โมเดล LoRA ตัวใหม่มีความยืดหยุ่นและทำท่าทางได้หลายหลายมากขึ้น รวมทั้งสามารถใส่ สไตล์ แสงและเงา สภาพแวดล้อมต่างๆให้กับตัวละครของเอาได้อีกด้วย

พอนำข้อมูลเก่าและใหม่ทั้งหมดมาเทรน ก็จะได้โมเดลที่ทำอะไรได้หลากหลายขึ้นเยอะ

สามารถนำไปใช้งานต่อได้ทั้งใน SD-WebUI และ ComfyUI

วิธีเข้าใช้งาน ComfyUI บน Google Colab คอมไม่แรงก็ใช้ได้
วิธีเข้าใช้งาน ComfyUI บน Google Colab คอมไม่แรงก็ใช้ได้
วิธีเข้าใช้งาน WebUI Forge บน Google Colab คอมไม่แรงก็ใช้ได้
วิธีเข้าใช้งาน ComfyUI บน Google Colab คอมไม่แรงก็ใช้ได้