การใช้งาน ControlNet ใน Stable Diffusion เพื่อควบคุมการเจนภาพอย่างละเอียด

ControlNet เป็นเครื่องมือทรงพลังสำหรับการสร้างภาพด้วย AI บน Stable Diffusion เราสามารถควบคุมการสร้างภาพได้อย่างละเอียด กำหนดโครงสร้างของภาพได้ดั่งใจ โดยไม่ต้องพึ่งแค่ Prompt เพียงอย่างเดียว

ControlNet คืออะไร?

ControlNet คือโมดูลเสริมใน Stable Diffusion ที่ช่วยให้เราสามารถใช้ภาพที่เตรียมไว้มากำหนดโครงสร้างของภาพที่ต้องการเจน เช่นภาพ Logo ,ภาพผู้หญิงมีปีก ,ภาพคนถือดาบในท่าทางที่ต้องการ ภาพเหล่านั้นจะเป็นการกำหนดโครงสร้างพื้นฐานของภาพ หรือควบคุมการจัดวางองค์ประกอบต่างๆ

การใช้งาน ControlNet

การใช้งาน ControlNet จะเริ่มต้นที่เราเตรียมภาพต้นแบบ (guidance image) เพื่อที่จะใช้กำหนดโครงสร้างและรายละเอียดที่ต้องการในภาพที่สร้างขึ้นใหม่ โดยมีการตั้งค่าหลักๆ ดังนี้

1. Input Image (Guidance Image)

เตรียมภาพต้นฉบับที่ต้องการเช่น ภาพแมวบิดขี้เกียจ ตัว ControlNet จะใช้ภาพนั้นเป็นพื้นฐาน และสร้างภาพแมวบิดขี้เกียจขึ้นมาอีกใบโดยอาศัยโครงสร้างของภาพต้นฉบับ และเติมรายละเอียดอื่นๆ ตาม Prompt ที่เราให้

2. Preprocessors

Preprocessors คือกระบวนการที่ใช้ในการประมวลผลภาพต้นฉบับ ก่อนที่มันจะถูกนำไปใช้ในการสร้างภาพใหม่ เช่น การใช้ Canny เพื่อดึงเส้นขอบของภาพ, การใช้ Depth Maps เพื่อสร้างมิติความลึกของภาพ, หรือการใช้ OpenPose เพื่อกำหนดตำแหน่งและท่าทางของคนในภาพ Preprocessors จะทำงานร่วมกับ Model ถ้าเราเลือกเป็น Canny โมเดลก็ต้องเลือกเป็น Canny เช่นกัน

ภาพต้นฉบับ
ตัวอย่างการใช้ Preprocessors Canny

3. Model

Model ใน ControlNet เป็นโมเดลที่ถูกฝึกฝนมาเพื่อทำงานเฉพาะด้าน เช่น การประมวลผลเส้นขอบ, การตรวจจับโครงร่างของวัตถุหรือ การสร้างภาพจากรายละเอียดที่ซับซ้อน การเลือกโมเดลต้องเลือกให้ตรงกับ Preprocessors เช่น Preprocessors คือ Canny โมเดลก็ต้องเลือกเป็น Canny เช่นกัน

Preprocessors ,Model

4. Control Weight (น้ำหนัก)

Control Weight นั้นมีช่วงค่าระหว่าง 0 ถึง 2 หากตั้งค่าใกล้ 2 ภาพที่สร้างขึ้นจะใกล้เคียงกับภาพต้นฉบับมากที่สุด แต่หากตั้งค่าใกล้ 0 ตัว AI จะมีความอิสระในการสร้างภาพมากขึ้น หรือก็คือค่า Weight ช่วยในการควบคุมน้ำหนักของการสร้างภาพให้เหมือนต้นฉบับมากหรือน้อยนั้นเอง

Control Weight

เกล็ดเล็กน้อย

  • เราสามารถใช้ ControlNet หลายตัวผสมกันได้เพื่อผลลัพธ์ที่ตรงตามความต้องการมากที่สุด แต่ก็ต้องใช้ทรัพยากรณ์เครื่องมากขึ้นเช่นกัน
  • เราสามารถประยุกต์ใช้ ControlNet ใน Inpaint เพื่อปรับปรุงภาพเฉพาะจุดได้ เช่น การปรับใส่โลโก้ลงในผลิตภัณฑ์

ยกตัวอย่างการใช้งาน Canny

Canny เป็นหนึ่งใน Preprocessors ที่นิยมใช้ใน ControlNet สำหรับการดึงเส้นขอบหรือโครงร่างของภาพ เพื่อให้ AI สามารถสร้างภาพใหม่ได้อย่างแม่นยำตามเส้นขอบที่กำหนด

  • ขั้นตอนการใช้งาน: ใส่ภาพถ่ายหรือภาพสเก็ตช์เข้าไปใน ControlNet แล้วใช้ Canny ในการประมวลผลเส้นขอบของภาพนั้น เส้นขอบเหล่านี้จะถูกนำมาใช้เป็นโครงสร้างพื้นฐานในการสร้างภาพใหม่
  • ผลลัพธ์ที่ได้: หลังจากที่ AI ประมวลผลเส้นขอบด้วย Canny แล้ว ตัว AI จะสร้างภาพใหม่ที่มีรายละเอียดสูง โดยอิงจากเส้นขอบที่ได้จากการประมวลผล เช่น ภาพแมวบิดขี้เกียจในแบบต่างๆ
ใส่ภาพแมวบิดขี้เกียจเข้าไป และใช้งาน Preprosessor เป็น Canny

ตัวอย่างภาพที่เจนได้จาก Text 2 Image

ตัวอย่างที่เจนออกมา 6 รูป จะเห็นว่าบางรูปก็ไม่ได้เป็นไปตาม Canny ที่กำหนด นั้นเป็นเพราะ Seed ที่สุ่มได้

Prompt : lazy, cat, in, garden, during, afternoon, bright, colorful, flowers, sunlit, scene, relaxed, feline, lounging, among, vibrant, petals, dappled, sunlight, greenery, cozy, atmosphere

สรุป

ControlNet เป็นเครื่องมือที่ทำให้การสร้างภาพด้วย AI ใน Stable Diffusion ก้าวไปอีกขั้น ด้วยความสามารถในการควบคุมและกำหนดรายละเอียดของภาพที่คุณต้องการสร้าง การใช้งาน ControlNet จะช่วยให้เราสามารถสร้างภาพที่ซับซ้อนและมีคุณภาพสูงได้อย่างง่ายดาย ในบทต่อไปจะยกตัวอย่าง ControlNet Model ต่างๆ เพื่อควบคุมภาพนางแบบถือผลิตภัณฑ์

Related Posts