จากเนื้อหาตอน 1 ที่ได้พูดถึงวิธีลงโปรแกรม และ ตอน 2 วิธีโหลดและเรียกใช้ model ไปแล้ว เราจะพบปัญหาว่า ถึงจะใช้ Model ที่สวย แต่ถ้าหากสั่ง Prompt และตั้งค่าไม่ถูกต้อง ภาพก็จะออกมาไม่สวยอยู่ดี ดังนั้นในบทความนี้ผมจะมาสอนเทคนิคที่จะทำให้ภาพที่ออกมามันสวยขึ้นกันครับ
ก่อนอื่นเรามาทำความเข้าใจเรื่องของ Prompt ก่อน ว่าหลักการสำคัญมีอะไรบ้าง?
ในบทความนี้ผมจะใช้ Model หลัก (Checkpoint) คือ Chilloutmix-Ni-pruned-fp32-fix และ LoRA ชุดนวดไทย (ที่ผมทำขึ้นมาเอง) นะครับ (แต่ตอนแรกจะยังไม่ได้เรียกใช้งาน LoRA)
วิธีการสั่ง Prompt
เราต้องบรรยายรูปที่เราต้องการเข้าไป บรรยายอะไรก็จะเห็นสิ่งนั้น (แต่ขึ้นกับว่า Model ที่เราเลือกมา ได้ train สิ่งที่เราต้องการมารึเปล่าด้วย)
ซึ่งหลักการคือใส่เป็น Keyword สำคัญก็พอครับ เพราะถึงใส่เป็นประโยคไป AI มันจะตีความหมายที่แท้จริงจาก Prompt ของเราอีกทีอยู่ดี (ใช่ มันตีความได้นะ…) และยิ่งใส่เยอะยิ่งควบคุมยาก ให้ค่อยๆ ใส่ทีละขึ้นจะได้เข้าใจมากขึ้น
ก่อนอื่นผมจะขอ fix เลข seed เป็นค่านึงก่อน ทุกคนจะได้ออกมาเหมือนกัน ในที่นี้ผมขอให้ seed เป็นเลข 999 แล้วกัน
จากนั้นใส่ Prompt ว่า beautiful girl แล้ว Gen ออกมาเลย โดยไม่แก้ค่าอื่นแล้ว (นอกจาก seed กับ model) ผลจะออกมาแบบนี้


สิ่งแรกที่ควรกำหนด คือ สัดส่วนภาพ
เราควรจะคิดแต่แรกเลย ว่าภาพที่เราต้องการจะเป็นสี่เหลี่ยมจตุรัส หรือจะเป็นภาพแนวตั้ง แนวนอน ซึ่ทั้งหมดก็ขึ้นอยู่กับว่าเราจะทำภาพอะไรด้วย ถ้าเป็นภาพ Portrait บุคคล ภาพแนวตั้งก็น่าจะดีกว่าแนวนอนเป็นต้น แต่ถ้าภาพวิวแนวนอนอาจดีกว่า (แต่ถ้าเป็นคนในท่านอนอาจจะภาพแนวนอนดีกว่าก็ได้)
ดังนั้นผมจะสร้างภาพแนวตั้งขึ้นมา ซึ่งสมมติผมจะใช้สัดส่วน 2:3 ซึ่งเพื่อไม่ให้มัน Gen ช้าเกินไป ผมจะทำให้ด้านที่ยาวสุด (แนวตั้ง) ยังคงเป็น 512 px อยู่ ดังนั้นแนวนอนก็ควรจะเป็น 2/3*512 = 341.33 ซึ่งถ้าเลื่อน slider ก็จะลงล๊อคเลขที่ละ 8 ก็จะเป็นเลข 344 x 512 นั่นเอง (คร่าวๆ ไม่ต้องเป๊ะก็ได้) ถ้ากด Generate จะได้แบบนี้

อย่างไรก็ตามถ้าเราอยากจะ Gen รูปที่มีความหมายอย่างที่เราต้องการ เช่น เราต้องการสาวหูแมว เราก็อาจใส่ไปเลยว่า
beautiful girl, cat ear
ซึ่งผลจะออกมาแบบนี้

สมมติว่าหน้าออกมาเหมือนภาพวาดเกินไป เราอยากให้มันเป็นรูปสมจริง เราก็ใส่ Keyword เช่นคำว่า photorealistic เพิ่มเข้าไป หรือถ้าอยากให้ภาพละเอียดขึ้นก็ใส่ ultra highres เข้าไป เช่น
beautiful girl, cat ear, photorealistic, ultra highres
ออกมาได้แบบนี้

สมมติว่ามันดูโป๊เกินไป เราก็แาจจะระบุเสื้อผ้าให้น้องเค้าหน่อย เช่น จะใส่ชุดชมพู เลย เขียนว่า pink shirt ได้ออกมาแบบนี้

แต่ผมดันออกมาชมพูด้วย สมมจิเราอยากได้ผมสีน้ำตาล ก็ใส่ brown hair ไป

หมายเหตุ : การสลับที่ keyword อาจจะให้ผลต่างกันได้นะ (แม้จะใช้ seed เดิม)
ทีนี้มีอีกเรื่องนึงที่จะแนะนำคือ การลองเปลี่ยน Sampling Method ดูก่อน เผื่อผลลัพธ์จะดีขึ้นอีก
ลองเปลี่ยน Sampling Method
เจ้า Sampling Method นั้นขึ้นอยู่กับ Model ที่เลือกใช้ด้วย ว่าตัวไหนเหมาะกับ Model ของเรา
วิธีที่จะทดสอบ Sampling Method หลายๆ ตัวพร้อมกัน โดยไม่ต้องไล่เปลี่ยนเองได้ คือ ใช้เครื่องมือ x/y/z plot ด้านล่าง ตามรูป (ผมใส่ในแกน y มันจะได้ทำในแนวตั้ง) แล้วกด Generate (ตรงนี้เพื่อนๆ ไม่ต้องทำก็ได้ เพราะผมทำให้ดูแล้ว)

สิ่งที่มันทำคือลองสร้างรูปตาม Sampler แต่ละตัว ซึ่งผลออกมาดังนี้ (ทุกอันยัง seed เดียวกันนะ คือ 999)

และถ้าให้เจ๋งขึ้นไปอีกลองใส่ Negative Prompt ดู
อะไรคือ Negative Prompt?
มันก็คือสิ่งที่เราไม่อยากได้ในรูป เช่น ถ้าเราอยากให้มันดูไม่ใช่รูปวาด รูปการ์ตูน งั้นเราใส่คำนี้ลงไปใน Negative Prompt เลย (เป็นกล่องอยู่ใต้ Prompt ปกติ)
paintings, sketches, 3d, cartoon, anime
และถ้าผมลอง x/y/z plot ใหม่ จะได้ผลแบบนี้ ซึ่งจะเห็นว่าหลายอันค่อนข้างสมจริงขึ้นมามากๆ แล้ว

สมมติว่าผม ok กับ DPM++SDE ผมก็เอาอันนี้มาทำงานต่อ
ถ้าอยากได้ผลลัพธ์ที่ Perfect ที่สุดจาก Sampling Method ที่เลือก อาจจะลองแก้ค่า CFG Scales และ Steps ให้ค่าเปลี่ยนแปลงไปด้วย คราวนี้ผมจะ plot ทั้งแกน x และ y เลย
โดยผมจะลอง x/y/z plot โดยแก้
- CFG Scales : อยู่ที่ประมาณ 6-8 โดยซอยเพิ่มเลขทีละ 0.5
- กำหนดแบบนี้ 6-8(+0.5)
- Steps : ให้สร้าง 10 ภาพระหว่างเลข 15-30
- กำหนดแบบนี้ 15-30[10]

ลอง Gen ดู ถ้าไม่ไหว ให้ลดการเปลี่ยนแต่ละตัวแปรให้จำนวนน้อยลง หรือค่อยๆ ทำทีละแกนนะ

ที่นี้ชอบอันไหน เลือกอันนั้นได้เลย
ทีนี้ผมจะไม่ plot xyz แล้ว (เลือก Script เป็น None) แต่จะใช้เลข Step 26, CFG 7 แล้วกัน
Gen ทีเดียวหลายๆ รูป ด้วย Batch Size, Batch Count
แล้วจะให้มัน Gen ออกมาหลายๆ รูป โดยเปลี่ยน Batch Size, Batch Count
- Batch Count : จำนวน Batch ที่จะ Gen (ถ้ามีหลาย Batch ก็จะรันต่อๆ คิวกัน)
- Batch Size : จำนวนรูปที่จะ Gen พร้อมๆ กันในแต่ละ Batch
ตามหลักแล้ว เพิ่ม Batch Size จะ Gen เร็วกว่า แต่จะกิน Memory หนักกว่า อันนี้ต้องลอง
สมมติผมตั้ง Batch Count เป็น 3 และ Batch Size เป็น 1 (แปลว่า Gen ทีละรูป แต่ทำ 3 รอบ) จะได้ 3 รูป โดย seed เริ่มที่ 999 ไล่ไปเรื่อยๆ



แต่ถ้าผมตั้ง Batch Count เป็น 3 และ Batch Size เป็น 2 (แปลว่า Gen ทีละ 2 รูป แต่ทำ 3 รอบ) จะได้แบบนี้ ซึ่งจะพบว่าภาพที่ได้มันต่างไปโดยสิ้นเชิงเลย! ทั้งๆ ที่ seed ไล่ตั้งแต่ 999






วิธีดูข้อมูลจากรูปที่ Gen ออกมา
ถามมว่าผมรู้ได้ไงว่าแต่ละอัน seed อะไร? นั่นก็เป็นเพราะ
วิธี 1 : คลิ๊กที่รูปที่ Output ออกมาสดๆ แล้วดูข้อมูลseed ได้

วิธี 2 : ลากรูปไปในแถบ PNG Info
นอกเหนือจากวิธีคลิ๊กที่รูปเพื่อดู seed แล้ว จริงๆ เรายังมีอีกวิธีที่สามารถดึงการตั้งค่าทั้งหมดจากรูปที่เรา Gen ออกมาได้ด้วยนะ
โดยเอารูปไปในแถบ PNG Info (Browse ไฟล์ หรือ ลากลงก็ได้)
เช่น ผมลากอันนี้มาได้

จากนั้นมันจะขึ้นข้อมูลของรูปนั้นๆ มา ซึ่งเราสามารถกด send to txt2img ได้เลย

มันก็จะเอาข้อมูล prompt และ setting ทั้งหมดของรูปนั้นไปใช้ได้ ซึ่งจะ gen ออกมาใหม่ โดย gen หลายๆ รูปด้วย seed ถัดๆ ไปก็ได้

วิธี 3 : เอาจาก Generated Data
ส่วนวิธีที่เด็ดอีกอัน คือ การ Copy Generated Data จากคนอื่น เช่น Civitai
สมมติเราเข้าไปใน LoRA Thai Massage Dress (ชุดนวดไทย) แล้วเจอรูปที่ชอบ ที่มีตัว i อยู่ (นั่นคือ รูปนั้นยังฝัง Generated Data ไว้)

มันจะขึ้นข้อมูลว่ารูปนั้น Gen มาด้วยวิธีไหน ให้เรากดที่ Copy Generation Data ปุ่มฟ้าๆ ข้างล่าง
ซึ่งจะได้ข้อมูลนี้มา
(best quality:1.4), (ultra highres:1.2), (photorealistic:1.4), (8k, RAW photo:1.2),(full head:1.4), (southeast asian girl), (black hair),(red Thai Massage uniform :1.5),<lora:thaiMassageDress_v2:0.7>
Negative prompt: paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)),((text:2)),((head band)),,((head accessory))
Size: 344x512, Seed: 2980161819, Model: chilloutmix_NiPrunedFp32Fix, Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Model hash: fc2511737a, Hires upscale: 2, Hires upscaler: Latent, Denoising strength: 0.5
ให้เราเอาไป paste ใน Prompt ของเรา แต่ให้ลบของเดิมออกให้หมดก่อน โดยกดปุ่มถังขยะ

แล้ว Paste Generation Data ลงไปใน Prompt เดียวยาวๆ เลย แล้วค่อยกดลูกศรฟ้า ข้างๆ ถังขยะ

มันจะโปรย Data กระจายไปจุดต่างๆ รวมถึงการเลือก Sampler, Step, Seed ทุกอย่างเลย
ว้าววว สบายสุดๆ ถูกใจสาย Copy Paste อ่ะสิ อิอิ
วงเล็บ และตัวเลขคืออะไร?
วงเล็บ และตัวเลข มันเอาไว้กำกับน้ำหนักของ Keyword ซึ่งมีความหมายดังนี้
เราระบุน้ำหนักได้ในรูปแบบ (keyword:น้ำหนัก)
- ถ้า keyword ไม่ระบุอะไรเพิ่มเลย และไม่มีวงเล็บด้วย คือน้ำหนัก 1
- (keyword:1.5) แปลว่า ให้น้ำหนัก 1.5 เท่าของปกติ
- (keyword:0.5) แปลว่า ให้น้ำหนักครึ่งนึงของปกติ (ลดน้ำหนักลงไป 2 เท่า)
- การใส่ (keyword) มีค่าเท่ากับน้ำหนัก 1.1 หรือ (keyword:1.1)
- การใส่ ((keyword)) มีค่าเท่ากับ (keyword:1.21) ซึ่งเกิดจาก 1.1*1.1
- การใส่ [keyword] คือ ลดน้ำหนักลงไป 1.1 เท่าของปกติ = (keyword:0.909)
- รายละเอียดอ่านได้ในนี้
ลอง Gen ดูสิ
พอเรา Gen อีกทีก็จะได้แบบที่ผมทำนี้เลย (ถ้าใครทำแล้วไม่ได้ผลแบบนี้ แสดงว่าขาด Model หรือ LoRA ที่ Prompt นั้นใช้ ก็ต้องไปหาโหลดมาก่อนนะ ใครโหลดไม่เป็นกลับไปอ่านตอน2)

เช่น ใน Prompt จะเห็นว่ามีเขียน LoRA ไว้ดังนี้
- <lora:thaiMassageDress_v2:0.7>
แปลว่า คุณต้องมี LoRA ชื่อ ThaiMassageDress โดยชื่อไฟล์ที่ save มาก็ต้องเป็น thaiMassageDress_v2 และ Gen โดนใช้ Model หลักคือ chilloutmix_NiPrunedFp32Fix ถึงจะได้ผลแบบเดียวกับผมนะ
ศึกษา พัฒนา ปรับปรุง
Copy Paste งานสวยๆ ที่ชอบแล้วอย่าลืมเอามาศึกษา พัฒนา ปรับปรุง
อย่างถ้าคุณชอบผลงานรูปสาวใส่ชุดนวดไทยที่ผมทำ คุณก็ลองดูว่าผมระบุอะไรบ้าง? เช่น สีชุด สีผม สีหน้า และบางรูปผมก็ระบุสถานที่ด้วย รวมถึง effect ของแสงต่างๆ ก็สามารถระบุได้มากมาย
คุณลองหาสไตล์ที่ตัวเองชอบ แล้วสร้างผลงานให้โลกนี้ได้เห็นกันครับ ว่าใครๆ ก็ทำได้ (ถ้าพยายามพอ! ผมเองหัดแค่ 2 อาทิตย์ก็ทำได้แล้ว)
ไม่เชื่อคุณลองไปส่องเพจ AI ใน Section ท้ายสุดดูสิ เค้าสร้างผลงานได้สวยๆ ทั้งนั้น
ตอนต่อไป
ในตอนต่อไป เราจะมาเรียนรู้วิธีปรับแต่งรวมถึงควบคุมรูปให้ได้ผลลัพธ์ดั่งใจมากขึ้น เช่น การควบคุมท่าทางของแบบเป็นต้น ใครสนใจพลาดไม่ได้เด็ดขาด!
เพจ/เว็บ AI Artist ที่น่าสนใจ
(จะมาเพิ่มให้เรื่อยๆ นะ)
- Facebook Group : Stable Diffusion Thailand
- Ai Angel Gallery (เพจผมเอง 55)
- Ai and Girls
- Prompt Play คนเล่นพร้อมท์
- Aof Acoustic
- Gasia
- JomPaint-GenPrompt
- VirtualCulture
- Daroonwan Art
- AI Shiteru
- ประดิษฐ์มาก
- Eyes On Me
- Heed my prompt
- MZX Ai Creator
- Yuna Sheila
- DigiGirls
- AI ขอลองวาดกับเขาบ้าง
- Watinto
- Aggrezzor diffusion
- AI WAIFU