วาดภาพด้วย AI สุดเทพภายใน 5 นาที — Stable Diffusion EP.1

Natthapach Anuwattananon
ChomCHOB
Published in
4 min readOct 3, 2023
prompt: kawaii low poly corgi character, 3d isometric render, in yard background, bokeh, ambient occlusion, unity engine

สวัสดีครับ บทความนี้จะมาแชร์วิธีการใช้ AI ชื่อดังอย่าง Stable Diffusion กันครับ ซึ่งเป็น AI สำหรับสร้าง image ตัวท็อปๆของโลก ณ ตอนนี้ โดยสามารถใช้งานได้ในราคาที่จับต้องได้ครับ (~340 บาท)

บทความนี้เป็นบทความแรกของซีรี่ย์ Stable Diffusion ซึ่งจะเล่า Basic Guideline ในการเริ่มต้นใช้งาน Stable Diffusion กันครับ

What is Stable Diffusion?

Stable Diffusion เป็น Generative AI สำหรับงานสร้างรูปภาพจากข้อความ (text to image) จากค่าย Stability AI ความพิเศษของ AI ตัวนี้ ที่ต่างจากพวก Midjourney, Dall-E คือมันเป็น Open Source นั้นหมายความว่า เค้าปล่อยออกมาให้ทุกคนเอา AI ตัวนี้ไปรันกันเองได้ ฟรี!! (ต้องจ่ายเพียงแค่ค่าประมวลผลเท่านั้น)

Credit to Prompt Alchemist
เนื่องจากเป็น AI ที่มีความสามารถเยอะมาก ดังนั้นการ setup ก่อนจะใช้งานได้ก็ยากเย็นมากเช่นกัน แถมพอลงเสร็จแล้ว spec คอมก็รัน AI ไม่ไหวอีก (เคยลองแล้ว อย่าหาทำครับถ้าคอมไม่แรงพอ)

โชคดีที่ทางเพจ Prompt Alchemist ได้ setup Stable Diffusion มาให้เราได้ใช้แบบออนไลน์กันบน Google Colab

Colab Pro

ในช่วงแรกที่กำลังเขียนบทความนี้นั้น Colab Free Tier ยังสามารถใช้งาน Stable Diffusion ได้อยู่ครับ แต่ช่วงหลังมากนี้ Colab Free Tier ไม่สามารถใช้งานกับ Stable Diffusion ได้แล้ว จึงจำเป็นต้องซื้อในส่วนของตัวประมวลผลเพิ่ม

โดยหลักๆแล้วจะมี 2 แบบครับ Pay As You Go คือเป็นการซื้อโควต้าการใช้ GPU มาเลย อีกแบบคือ Colab Pro หรือ subscriptions เป็นการจ่ายรายเดือน

โดยส่วนตัวแล้วถ้าใครที่สนใจแค่อยากลองเริ่มเล่น แนะนำ Pay As You Go ก่อน ราคาถูกสุดอยู่ที่ ~340 บาท /100 unit มีอายุ 90 วัน ซึ่งถ้าไม่ได้ใช้ทำงานจริงๆจังๆ จะคุ้มมากเลยครับ

Let’s Start

ในเพจ Prompt Alchemist นั้นทำ how to ไว้ดีมากอยู่แล้ว ทำตามนี้ได้เลยครับ ขั้นตอนนี้จะใช้เวลา initial AI ประมาณ 5–10 นาที
อัพเดทตัว Colab… — Prompt Alchemist — เล่นแร่แปรพรอมพ์ | Facebook

หลังจากทำตามวิธีการในเพจ เราจะได้หน้าเว็บสำหรับใช้งาน Stable Diffusion แบบนี้

Stable Diffusion — Web UI (AUTOMATIC1111)

Essential UI

เชื่อว่าทุกคนเข้ามาต้องงงกับ setting ที่มีเยอะไปหมด แถมชื่อแต่ละตัวก็ชวนงงมากๆ ดังนั้นเรามารู้จักเฉพาะเมนูที่จำเป็นๆ กันก่อนครับ

UI explanation
  1. Model / Checkpoint เมนูแรกจะเป็นตัวเลือก AI Model ที่จะใช้สร้าง image ซึ่ง Model แต่ละตัวก็ถนัดสร้างรูปภาพได้ต่างกัน สำหรับบทความนี้ใช้ตัว Default ไปก่อนได้ (บทความหน้าจะพาไปลอง model อื่นๆ ที่มีคนทำแจกไว้) นอกจากเรียกว่า Model แล้ว ในวงการ SD ยังเรียกว่า Checkpoint ได้อีกด้วย
  2. Prompt ส่วนสำคัญที่สุดในการใช้งาน ช่องนี้เป็นช่องใส่ promt หรือคำสั่งในการสร้างรูปภาพ ซึ่งเทคนิคการเขียน promt นั้นมีเยอะมาก เดี๋ยวจะมาเล่าให้ฟังในบทความต่อๆไปครับ
  3. Negative Prompt เป็นข้อความเพื่อบอกว่า อะไรที่ไม่อยากให้อยู่ในรูปภาพ เช่น ถ้าเราอยากได้ภาพภูเขา ก็อาจใส่คำว่า building ไปใน negative เพื่อไม่ให้มีรูปตึกติดออกมาในภาพ
  4. Sampler ตรงนี้เข้าใจยาก แต่ยังไม่ต้องเข้าใจตอนนี้ก็ได้ Sampler คือ algorithm ในการสร้างภาพ ซึ่งมือใหม่เค้าแนะนำให้เปลี่ยนไปใช้ DPM++ 2M Kerras กัน อย่าลืมเปลี่ยนตรงนี้ด้วย
  5. Generate Button ปุ่มสำหรับกดสร้างรูปภาพ
  6. Output Image ภาพที่สร้างเสร็จแล้ว จะแสดงตรงนี้
  7. Image Size เราสร้างสามารถปรับความกว้าง / สูง ของรูปภาพได้ด้วย แต่ว่ายิ่งรูปภาพใหญ่ก็ยิ่งใช้เวลาในการสร้างนานนะ

First Image

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

corgi running in garden

จากนั้นกด Generate ได้เลย

รูปที่เราสร้างจะถูกบันทึกไปที่ Google Drive ของเราโดยอัตโนมัติครับ สามารถเข้าไปที่ Google Drive จะเจอโฟลเดอร์ SD-IMG-OUTถูกสร้างไว้ให้แล้ว

corgi running in garden

ง่ายมากๆเลยใช่ไหมล่ะครับ แถมรูปที่ได้ออกมาน้องก็น่ารักมากๆเลยด้วย 🐶

Randomness of Generative

เบื้องหลังการทำงานของ AI เป็นเรื่องของความน่าจะเป็นและการสุ่มครับ (จะยังไม่อธิบายละเอียดในบทความนี้) ซึ่งทำให้ทุกๆทั้งที่ generate ภาพออกมา แม้การตั้งค่าและ prompt เดียวกัน ภาพที่ได้ก็จะไม่เหมือนกันครับ

ดังนั้นเราสามารถกด generate ภาพได้เรื่อยๆจนกว่าจะได้ภาพที่เราถูกใจได้เช่นกันครับ

Basic Prompt

เอาล่ะ ถึงแม้ว่าจะดูง่าย แต่การสร้างรูปจาก Generative AI ที่ได้อย่างที่เราจินตนาการนั้นก็เป็นทั้งศาสตร์และศิลป์ครับ ซึ่งในเมื่อมันเป็นศาสตร์ด้วยแสดงว่าต้องมีทฤษฎีหรือความรู้ที่จำเป็นต่อการสร้างผลงานให้ได้ดีครับ

หนึ่งในองค์ประกอบที่สำคัญที่สุดของการสร้างงานภาพด้วย Generative AI คือ Prompt หรือสิ่งที่เราอธิบายความต้องการของเราให้ AI ครับ ในหัวข้อนี้จะอธิบายเพิ่มเติมถึงการเขียน Prompt ที่ดีครับ

Prompt Structure

โครงสร้างของ Prompt สำหรับ Stable Diffusion นั้นประกอบด้วย 2 ส่วนครับ

  1. Subject คือองค์ประกอบหลักของภาพที่เราต้องการจะเห็น
  2. Modifier คือส่วนเสริมเพื่อคอนโทรลภาพ เช่น กำหนดแสง, สไตล์

Prompt Subject

การเขียน Subject ที่ดีสามารถเริ่มต้นได้ด้วย Question Guideline ตามลิสต์นี้เลยครับ

  1. Do you want Photo or Painting?
  2. What’s the subject of image?
  3. What detailed do you want to added? (Environment, Background, Point of View, etc.)

เรามาลองดูกัน สมมติว่าอยากได้รูป กระต่ายขาวใส่สูทสีแดงยืนบนถนนกลางเมือง จะได้ว่า

  1. Image type → Painting
  2. Subject → cute white rabbit wearing red suite standup
  3. Detailed: Environment → rush hours road
  4. Detailed: Background → city background

พอได้ตามลิสต์แล้วก็เอามาเรียงเป็น prompt ครับ ถ้าตรงไหนรู้สึกว่าหาคำเชื่อมไม่ได้ ใช้ , เลยก็ได้ครับ (ส่วนตัวรู้สึกว่า grammar มีผลกับ txt2img AI น้อยกว่าพวก chat มากๆ)

painting of cute white rabbit wearing red suite and red pants, standup, rush hours road, city background

… แล้วสูทสีแดงเหลือตัวแค่นี้หรอ

Prompt Modifier

Modifier เป็นส่วนเสริมของ prompt ทำให้เราสามารถคอนโทรลภาพที่จะได้ออกมาได้มากขึ้น ซึ่ง modifier นั้นมีหลายประเภท ขอเก็บไว้เล่าใน EP ถัดไปนะครับ

ระหว่างนี้สามารถนำ Prompt นี้ไปลองเล่นกันดูก่อนได้ครับ

kawaii low poly corgi character, 3d isometric render, white background, ambient occlusion, unity engine
Sampler: Euler a prompt: 1girl, fit shirt, pony tail hair, black hair, light ray, warm colors negative: (worst quality:2),(low quality:2),(normal quality:2),lowres,watermark,badhandv4,ng_deepnegative_v1_75t,

ใครลองแล้วได้ตัวอะไรบ้าง ลองมาแชร์กันดูได้นะครับ เชื่อว่าได้รูปแปลกๆเยอะแน่นอน

สำหรับบทความในตอนแรกนี้ก็ขอจบลงเท่านี้ก่อนครับ บทความหน้าจะเล่าเทคนิคที่น่าสนใจอื่นๆสำหรับ Stable Diffusion กันครับ

What’s next?

Reference

--

--