- Stable Diffusion XL 1.0 เป็นโมเดลโอเพนซอร์สที่สามารถสร้างภาพขนาด 1024x1024 ได้เป็นค่าเริ่มต้น และด้วยการรองรับจาก diffusers กับโมเดล refiner ทำให้อุปสรรคในการทดลองส่วนตัวลดลง
- Dreambooth LoRA เป็นวิธีที่ฝึกเพียงอะแดปเตอร์ขนาดเล็กโดยไม่ต้องเทรนโมเดลทั้งก้อนใหม่ ทำให้เพิ่มแนวคิดเฉพาะได้รวดเร็วและแชร์ต่อได้ง่าย
- การทดลองหลักคือฝึกโดยผูกภาพคุณภาพต่ำที่บิดเบี้ยวซึ่ง SDXL สร้างขึ้นเข้ากับ
wrongแล้วเปรียบเทียบว่าผลลัพธ์ดีขึ้นหรือไม่เมื่อใส่สิ่งนี้เป็น negative prompt - LoRA ชื่อ
wrongแสดงให้เห็นว่าในหลายพรอมป์ มันช่วยให้แสง พื้นผิว เลย์เอาต์ การแสดงผลมือและแขน รวมถึงความตรงตามพรอมป์ ดีกว่า SDXL ปกติหรือการใช้wrongเป็น negative prompt แบบธรรมดา - แนวทางนี้ใกล้เคียงกับ negative LoRA และ RLHF ตรงที่คัดภาพแย่มาให้โมเดลเรียนรู้ทิศทางที่ควรหลีกเลี่ยง แม้ยังมีช่องให้ปรับปรุงทั้งเรื่องการสร้างข้อมูลและเวลาเทรน
SDXL 1.0 และสภาพแวดล้อมการทดลอง
- เดือนที่แล้ว Stability AI เปิดตัว Stable Diffusion XL 1.0 และแจกจ่ายแบบ โอเพนซอร์ส
- SDXL เป็นหนึ่งในโมเดลโอเพนซอร์สที่สามารถสร้างภาพความละเอียด 1024x1024 ได้โดยตรงโดยไม่ต้องใช้วิธีอ้อม ทำให้ใส่รายละเอียดได้มากขึ้น
- โมเดลประกอบด้วยสองส่วน
- base model: ทำหน้าที่สร้างภาพหลัก
- refiner model: ช่วยยกระดับรายละเอียดอย่างมาก และแทบไม่มีโอเวอร์เฮดด้านความเร็ว จึงแนะนำให้ใช้ร่วมกันถ้าทำได้
- diffusers ของ Hugging Face รองรับ SDXL และการปรับแต่งประสิทธิภาพ จึงสามารถทดลองได้ด้วยการแก้โค้ดตัวอย่างเพียงเล็กน้อย
- การทดลองทำบน Spot instance ของ Google Cloud Platform โดยใช้ NVIDIA L4 GPU
- ค่าใช้จ่ายรวม $0.24 ต่อชั่วโมง
- สร้างภาพขนาด 1024x1024 1 ภาพใช้เวลาราว 22 วินาที
- บน GPU ระดับกลางจะสร้างได้ครั้งละ 1 ภาพเท่านั้น
- ที่ความละเอียดต่ำกว่าจะเร็วขึ้น แต่ผลลัพธ์แย่ลงมากจึงไม่แนะนำ
การถ่วงน้ำหนักพรอมป์ใน diffusers และ Dreambooth LoRA
- diffusers รองรับสองฟีเจอร์ที่ไม่เคยใช้ในการทดลอง Stable Diffusion ก่อนหน้านี้
- การถ่วงน้ำหนักพรอมป์
- การเทรนและ inference ด้วย Dreambooth LoRA
- การถ่วงน้ำหนักพรอมป์ใช้ compel เพื่อปรับความสำคัญของคำหรือวลีอย่างเป็นคณิตศาสตร์มากขึ้น
- เติม
+หรือ-หลายตัวหลังคำเพื่อเพิ่มหรือลดความสำคัญใน embedding ผลลัพธ์ - ครอบวลีด้วยวงเล็บเพื่อเน้นการแสดงออกบางแบบ เช่น
San Francisco landscape by Salvador Dali, (oil on canvas)+++
- เติม
- ในการทดสอบ วิธีนี้ช่วยบรรเทาปัญหาการจูนพรอมป์ที่ยากขึ้นหลัง Stable Diffusion 2.0 ได้เกือบทั้งหมด
- ค่าเริ่มต้นของ
guidance_scaleคือ 7.5 - Max Woolf ชอบใช้ค่า 13 และตัวอย่าง LoRA ในบทความก็ใช้
guidance_scale13 ทั้งหมด
- ค่าเริ่มต้นของ
- Dreambooth เป็นเทคนิคที่ใช้ภาพต้นฉบับจำนวนไม่มากกับ trigger keyword เพื่อสอน แนวคิด เฉพาะให้กับ Stable Diffusion
- LoRA เทรนเฉพาะอะแดปเตอร์ขนาดเล็กสำหรับโมเดลภาพแทนการเทรนโมเดล Stable Diffusion ทั้งก้อน
- เทรนได้ในเวลาราว 10 นาที บน GPU ราคาประหยัดเพียงตัวเดียว
- คุณภาพของโมเดล+LoRA ที่ได้ใกล้เคียงกับการ fine-tune ทั้งโมเดล
- บันทึกเป็นไฟล์ไบนารีขนาดเล็ก จึงแชร์ได้ง่าย
- งานที่มักถูกเรียกว่า Stable Diffusion fine-tuning จำนวนมาก แท้จริงคือการสร้าง LoRA
- เปิดใช้ LoRA ได้ทีละตัว แม้จะสามารถผสานหลาย LoRA เข้าด้วยกันได้ แต่เป็นงานที่ต้องทำอย่างละเอียด
ตรวจสอบศักยภาพของ SDXL ด้วย Ugly Sonic LoRA
- ก่อนที่ LoRA จะถูกใช้อย่างแพร่หลาย เคยใช้ textual inversion เพื่อสอนแนวคิดให้ text encoder แต่ใช้เวลาเทรนนานและอาจจัดการผลลัพธ์ได้ยาก
- ก่อนหน้านี้เคยสอนมีมคาแรกเตอร์ Ugly Sonic ที่ไม่มีอยู่ในชุดข้อมูลต้นฉบับของ Stable Diffusion ด้วย textual inversion แต่ผลลัพธ์ไม่สม่ำเสมอ
- เพื่อดูศักยภาพของ SDXL จึงนำ Ugly Sonic มาเทรนใหม่ด้วย LoRA
- ใช้ สคริปต์ train_dreambooth_lora_sdxl.py ของ Hugging Face
- มีการปรับพารามิเตอร์บางส่วน แต่โดยรวมใช้งานได้แทบจะทันที
- Ugly Sonic LoRA ที่เทรนแล้วสามารถสร้างภาพที่ดีกว่าเดิมมากและสม่ำเสมอกว่าในพรอมป์หลากหลายแบบ
การออกแบบการทดลอง wrong LoRA
- นำการทดลอง textual inversion เกี่ยวกับ negative prompt ก่อนหน้านี้กลับมาทำใหม่ด้วย SDXL LoRA โดยฝึกจากภาพที่บิดเบี้ยวและคุณภาพต่ำซึ่งผูกเข้ากับพรอมป์
wrong - เป้าหมายคือดูว่าเมื่อใช้
wrongเป็น negative prompt โมเดลจะถอยห่างจากภาพแบบนั้นและสร้างภาพที่บิดเบี้ยน้อยลงได้หรือไม่ - ภาพ synthetic
wrongถูกสร้างขึ้นด้วย SDXL เอง- เขียน wrong image generator Jupyter Notebook
- ใช้การถ่วงน้ำหนักพรอมป์หลายแบบเพื่อทำให้ลักษณะภาพแย่ เช่น
blurry,bad handsแยกออกจากกันชัดขึ้น - จำเป็นต้องใช้ SDXL ซ้ำอีกครั้งเพื่อสร้างภาพคุณภาพต่ำที่ยังมีความละเอียดสูง
- ภาพ
wrongที่สร้างขึ้นมีลักษณะคล้ายปกอัลบั้มพังก์ร็อกยุค 2000 หรือดูเผินๆ ปกติแต่พอมองใกล้ๆ จะมีความน่าขนลุกแบบ uncanny valley - sdxl-wrong-lora ถูกโหลดเข้ากับ SDXL base model
- refiner ไม่ต้องใช้ LoRA
- ยังเผยแพร่ Jupyter Notebook สำหรับใช้เปรียบเทียบด้วย
วิธีเปรียบเทียบและผลลัพธ์เด่น
- มีการเปรียบเทียบ 3 แบบ
- พายป์ไลน์ base + refiner ที่ไม่มี LoRA
- พายป์ไลน์ที่ไม่มี LoRA แต่ใส่
wrongเป็น negative prompt - พายป์ไลน์ที่ใช้
wrongLoRA และใส่wrongเป็น negative prompt
- การสร้างทั้งหมดใช้ seed เดียวกันเพื่อให้คงองค์ประกอบภาพที่ใกล้เคียงกัน และช่วยให้เปรียบเทียบผลของ
wrongnegative prompt กับ LoRA ได้ง่าย A wolf in Yosemite National Park, chilly nature documentary film photography- เมื่อใส่
wrongกับโมเดลพื้นฐาน ภาพป่าจะมีใบไม้และมิติความลึกเพิ่มขึ้นบางส่วน - LoRA ช่วยปรับปรุงแสง เงา และรายละเอียดของใบไม้มากขึ้น อีกทั้งเปลี่ยนท่าให้หมาป่าหันมามองกล้อง
- เมื่อใส่
An extreme close-up of a wolf in Yosemite National Park, chilly nature documentary film photography- ผลลัพธ์จาก LoRA ดีกว่าในด้านพื้นผิว ความมีชีวิตชีวา และความคมชัด
- แค่เพิ่มพรอมป์
wrongอย่างเดียวก็มุมมองภาพเปลี่ยนแล้ว
a large delicious hamburger (in the shape of five-dimensional alien geometry)++++, professional food photography- แม้ลองทำ prompt engineering หลายแบบ ก็ยังจัดการกับ แฮมเบอร์เกอร์เรขาคณิตเอเลียนห้ามิติ ได้ไม่ดีนัก
- SDXL พื้นฐานดูเหมือนจะตีความ
alienแบบตรงตัวมากกว่าที่คาด - LoRA ทำให้ได้แฮมเบอร์เกอร์ “เอเลียน” ที่มนุษย์กินลำบากขึ้นและภาพดูแวววาวมากขึ้น
lossless PDF scan of the front page of the January 2038 issue of the Wall Street Journal featuring a cover story about (evil robot world domination)++- ความอ่านออกของข้อความดีขึ้นจาก Stable Diffusion 2.0 แต่ทั้งสามกรณีใกล้เคียงกัน
- LoRA ปรับปรุงให้เลย์เอาต์หน้าหนังสือพิมพ์ดูทันสมัยขึ้น มีการจัดวางบทความหลากหลายขึ้น และน้ำหนักฟอนต์สัมพัทธ์ของพาดหัวดีขึ้น
- โมเดลพื้นฐานแม้ใส่
wrongnegative prompt แล้วก็ยังดูเรียบและเหมือนกระดาษสีน้ำตาลเก่า
USA President Taylor Swift (signing papers)++++, photo taken by the Associated Press- ใน SDXL พื้นฐาน แขนขวาดูไม่สมจริงมาก และเมื่อเพิ่ม
wrongอย่างเดียวกลับยิ่งแย่ลง - ใน LoRA ปัญหาแขนถูกแก้ และสีแจ็กเก็ตก็ใกล้ขาวชัดเจนมากขึ้น แทนที่จะออกขาวอมเหลือง
- อย่างไรก็ตาม การสร้างคนด้วย SDXL 1.0 ยังยากและไว้ใจได้ไม่มาก พร้อมคำเตือนว่าอย่าจ้องมือใกล้ๆ
- ใน SDXL พื้นฐาน แขนขวาดูไม่สมจริงมาก และเมื่อเพิ่ม
การเปลี่ยนแปลงที่เห็นในตัวอย่างเพิ่มเติม
realistic human Shrek blogging at a computer workstation, hyperrealistic award-winning photo for vanity fair- มือและแสงดีขึ้น รายละเอียดเสื้อผ้าและพื้นหลังน่าสนใจมากขึ้น
pepperoni pizza in the shape of a heart, hyperrealistic award-winning professional food photography- มองเห็นรายละเอียดของเปปเปอโรนีและฟองจากความร้อนได้ดีขึ้น เปปเปอโรนีที่ล้นขอบลดลง และขอบพิซซ่าดูกรอบขึ้น
presidential painting of realistic human Spongebob Squarepants wearing a suit, (oil on canvas)+++++- Spongebob ได้จมูกกลับคืนมา และกระดุมสูทมีมากขึ้น
San Francisco panorama attacked by (one massive kitten)++++, hyperrealistic award-winning photo by the Associated Press- LoRA แสดงให้เห็นจริงๆ ว่าพยายามทำตามพรอมป์
hyperrealistic death metal album cover featuring edgy moody realistic (human Super Mario)++, edgy and moody- สัดส่วนของ Mario ใกล้กับตัวละครในเกมมากขึ้น และแสงบนตัวละครดูคมและหม่นขึ้น
เอกสารที่เปิดเผยและวิธีทำซ้ำ
wrongLoRA เปิดเผยไว้บน Hugging Face- ไม่สามารถรับประกันประสิทธิภาพได้หากใช้ผ่านอินเทอร์เฟซอื่นที่ไม่ใช่ diffusers
- โน้ตบุ๊กที่ใช้สร้างภาพเผยแพร่ไว้ใน GitHub repository
- Colab Notebook สำหรับ SDXL 1.0 + refiner +
wrongLoRA แบบทั่วไป สามารถรันบน T4 GPU ฟรีได้ - เวอร์ชันความละเอียดสูงของภาพที่ใช้ในบทความดูได้จาก post source code
ทำไม wrong LoRA ถึงได้ผล
- เดิมคาดว่า
wrongLoRA จะเพียงช่วยเพิ่มคุณภาพและความคมของภาพ แต่ผลจริงกลับใกล้เคียงกับการทำให้ SDXL ทำตามเจตนาของพรอมป์ได้ดีขึ้น - ในเชิงเทคนิค negative prompt กำหนดบริเวณใน latent space ที่กระบวนการ diffusion จะเริ่มต้น
- กรณีใช้
wrongnegative prompt โดยไม่มี LoRA - กรณีใช้
wrongnegative prompt พร้อม LoRA - จุดเริ่มต้นของทั้งสองกรณีเหมือนกัน
- กรณีใช้
- ในเชิงสัญชาตญาณอาจตีความได้ว่า LoRA ปรับรูปร่างของบริเวณที่ไม่พึงประสงค์ใน latent space มิติสูงให้คล้ายกับบริเวณเริ่มต้นมากขึ้น จึงลดโอกาสที่การสร้างภาพทั่วไปจะไปถึงบริเวณนั้น และช่วยให้ผลลัพธ์ดีขึ้น
- วิธีสอน SDXL ด้วยภาพแย่เพื่อให้ดีขึ้นนั้น ในทางเทคนิคอาจมองได้ว่าเป็นรูปแบบหนึ่งของ RLHF
- OpenAI ปรับปรุงโมเดลผ่านปฏิสัมพันธ์เชิงบวกของผู้ใช้ และลดพฤติกรรมเชิงลบลงโดยนัย
- การทดลองนี้ใช้ภาพที่ผู้ใช้เลือกว่าดีไม่พอ เพื่อเพิ่มพฤติกรรมเชิงบวกโดยนัยในอีกทางหนึ่ง
- Dreambooth LoRA ไม่ต้องใช้ข้อมูลนำเข้าจำนวนมากเท่ากับโมเดลภาษาขนาดใหญ่
พื้นที่พัฒนาที่เหลือและการทดลองถัดไป
- negative LoRA ยังมีจุดให้ปรับปรุงอีกมาก
- สามารถจูนพารามิเตอร์การสร้าง synthetic dataset ได้อีก
- สามารถเทรน LoRA ให้นานขึ้นได้
- ยังต้องทดสอบต่อว่าสามารถเพิ่มประสิทธิภาพได้หรือไม่ด้วยการผสานกับ LoRA อื่น
- โดยเฉพาะการรวม
wrongLoRA กับ Ugly Sonic LoRA ถูกยกมาเป็นตัวอย่าง
- โดยเฉพาะการรวม
- SDXL ยังรองรับ โมเดล diffusers สำหรับ ControlNet
- ControlNet สามารถควบคุมรูปร่างและองค์ประกอบโดยรวมของภาพที่สร้างได้อย่างเข้มงวด
- ControlNet ใช้งานร่วมกับ LoRA ได้เช่นกัน
- เหตุผลที่ทำวิจัยเพื่อปรับปรุงคุณภาพการสร้างภาพ AI คือการย้ำความสำคัญของวารสารศาสตร์ AI ที่โปร่งใส
- มีทั้งการเปิดเผยพรอมป์ที่ทำซ้ำได้และ Jupyter Notebook
- มองว่าในสภาพแวดล้อม venture capital ปัจจุบัน การปรับปรุงใหม่ๆ ในอุตสาหกรรมการสร้างภาพ AI อาจไม่ถูกเปิดเผย
- ผู้เขียนยังระบุด้วยว่าไม่ได้สนับสนุนหรือยอมรับการแทนที่ศิลปินมืออาชีพด้วย AI
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
แนวคิด RLHF แบบปรับให้เข้ากับแต่ละบุคคลน่าสนใจมาก
เมื่อมีการโต้ตอบกับระบบ AI เชิงสร้างสรรค์ระบบใดระบบหนึ่งมากขึ้น น่าจะสะสมข้อมูลการโต้ตอบได้มากพอที่จะปรับเอาต์พุตไปตามรสนิยมส่วนบุคคลได้อย่างมีนัยสำคัญ หวังว่า UI จะดีขึ้นจนทำให้กระบวนการนี้โปร่งใสที่สุดเท่าที่เป็นไปได้
ในมุมการทำเป็นผลิตภัณฑ์ ดูเหมือนทำได้ไม่ยากนัก เช่น ใส่ฟีดแบ็ก “ชอบ/ไม่ชอบ” ให้กับภาพที่สร้างขึ้นทุกภาพ และเพิ่มป้ายกำกับข้อความแบบเลือกได้เพื่อเขียนทับ
wrongเมื่อมีฟีดแบ็กจากมนุษย์สะสมมากพอ หรือรันงานแบบแบตช์ทุกคืน ก็อาจฝึก LoRA ใหม่ให้ตรงกับความชอบส่วนบุคคลได้ยังสามารถเก็บฟีดแบ็กจากมนุษย์ได้จากการค้นหาแบบต้นไม้โดยนัยในพรอมป์ต์ เช่น สร้างภาพตัวเลือก N ภาพแล้วเลือกภาพหนึ่งมาปรับแต่งต่อ หากทำให้ชัดเจนขึ้น อาจมี UI สำหรับจัดอันดับ/ให้คะแนนภาพเป็นชุดอย่างรวดเร็ว หรือมีถังขยะสำหรับทิ้งภาพที่ไม่ชอบในแต่ละรอบของการปรับปรุงซ้ำ แล้วค่อยรวบรวมฟีดแบ็กเชิงลบไปใช้ในการอัปเดต LoRA ระดับโปรเจกต์/ระดับทั่วโลกในภายหลัง
ถ้าสร้างลูปฟีดแบ็กที่สั้นมาก โดยให้ตอบสนองด้วยการกดปุ่มทันทีหลังสร้างภาพ ก็อยากรู้เหมือนกันว่ารอบการวนซ้ำที่สั้นที่สุดจะไปได้ไกลแค่ไหน ถ้าคนถูกผูกติดกับอุปกรณ์เป็นเวลาหลายชั่วโมงและเก็บความชอบได้ราว 10,000 รายการที่อัตรา 1 ภาพต่อวินาที โมเดลจะสร้างภาพที่คนคนนั้นน่าจะชอบได้ดีขึ้นมากหรือไม่? แต่ก็ค่อนข้างเข้มข้นจนให้ความรู้สึกเหมือน Clockwork Orange
ในบทความไม่เห็นจำนวนภาพ
wrongแต่ลองไล่ดูโค้ดแล้วเหมือนจะมีคีย์เวิร์ด 13 คำ คำละประมาณ 6 ภาพ จึงดูไม่มากนัก ถ้าปรับโมเดลได้ถึงขนาดนี้ด้วยฟีดแบ็กแค่ราว 100 รายการ ก็ถือว่าน้อยอย่างน่าทึ่งAI Horde เป็นคลัสเตอร์กระจายศูนย์แบบโอเพนซอร์สที่รันด้วย GPU จากอาสาสมัคร และ Stability.ai ก็ให้ทรัพยากร GPU บางส่วนเพื่อรันการทดสอบ A/B
เมื่อขอสร้างภาพด้วยโมเดล SDXL ผ่าน Lucid Creations ซึ่งเป็น UI ของ AI Horde หรือผ่าน ArtBot ที่ทำขึ้นเอง จะได้ภาพ 2 ภาพ ภาพหนึ่งสร้างด้วย SDXL v1.0 อีกภาพสร้างด้วยโมเดลที่อัปเดตแล้ว แต่ผู้ใช้จะไม่รู้ว่าภาพไหนเป็นภาพไหน
ผู้ใช้เพียงเลือกภาพที่ชอบมากกว่าจากสองภาพนั้น แล้วผลลัพธ์จะถูกส่งกลับไปยัง Stability.ai เพื่อวิเคราะห์และนำไปสะท้อนในโมเดลภาพรุ่นต่อ ๆ ไป
นอกจากนี้ AI Horde และ LAION ก็ร่วมมือกันในลักษณะคล้ายกัน เพื่อนำการประเมินความสวยงามแบบกำหนดเองของผู้ใช้ไปใช้เพื่อจุดประสงค์เดียวกัน
https://aihorde.net/
https://dbzer0.com/blog/stable-diffusion-xl-beta-on-the-ai-h...
https://dbzer0.itch.io/lucid-creations
https://tinybots.net/artbot
https://laion.ai/blog/laion-stable-horde/
อย่างไรก็ตาม บางส่วนก็ไม่ได้มีประโยชน์มากนัก เช่น “random text” บางครั้งเหมือนจะให้ผลลัพธ์คล้ายแอป SMS รุ่นเก่า
LoRA ทำงานได้ดีและใช้ภาพแค่ 4–5 ภาพก็พอ แต่กรณีนั้นเป็นกับ Stable Diffusion รุ่นเก่ากว่าและเล็กกว่า ดังนั้นสำหรับ SDXL จึงใช้ภาพมากขึ้นและฝึก LoRA นานขึ้นอีกเล็กน้อย เมื่อเทียบกันแล้ว Ugly Sonic LoRA ใช้ภาพประมาณ 14 ภาพ และคิดว่าน่าจะ overfit ไปแล้ว
ตอนนี้ยังอยู่ในระยะแรก แต่ข้อสังเกตหลักคือ ไม่ว่าจะเป็นข้อความหรือภาพ โมเดลเดี่ยวหรือเชนของโมเดล เวิร์กโฟลว์ AI เชิงสร้างสรรค์จำนวนมากล้วนต้องถูกปรับให้เข้ากับสัญญาณฟีดแบ็กรูปแบบใดรูปแบบหนึ่ง ดังนั้นการสร้างโครงสร้างพื้นฐานพื้นฐานเพื่อรองรับสิ่งนี้จึงสมเหตุสมผล หนึ่งในเดโมแรก ๆ ก็เป็นเวิร์กโฟลว์แบบนี้ และใช้ การปรับปรุงพรอมป์ต์ เป็นตัวแทนราคาถูกแทนการปรับน้ำหนักโมเดลจริง
โดยคร่าว ๆ เราต้องการสร้างโครงสร้างพื้นฐานแกนกลางระดับ Python ที่ช่วยให้เขียนเวิร์กโฟลว์ได้ง่ายแทบจะเหมือน Python เนทีฟ และติดตามการรันของโฟลว์การสร้างได้ รวมถึงการรันของ “องค์ประกอบมนุษย์” อย่างผู้ประเมินด้วย รองรับการย้อนเวลา/ย้อนกลับ/รันซ้ำ, UI gradio อัตโนมัติ และ FastAPI ด้วย แต่สองอย่างหลังยังอยู่ในขั้นทดลองมาก
ในระยะกลาง เราอยากทำให้สามารถห่อเวิร์กโฟลว์การสร้างใด ๆ ด้วยโฟลว์ “การประเมินโดยมนุษย์” แล้วปรับใช้อัตโนมัติผ่าน API หรือ UI gradio จากนั้นทำให้ปรับแต่งได้ง่ายด้วยเทคนิคต่าง ๆ เช่น RLHF, การ fine-tuning และการทดสอบ A/B ขององค์ประกอบย่อยด้านการสร้าง
ตอนนี้เรามุ่งเน้นไปที่การวาง “โครงกระดูก” ให้ถูกต้อง แต่ถ้าดูเอกสาร quick start https://github.com/agentic-ai/enact/blob/main/examples/quick... และ README https://github.com/agentic-ai/enact/tree/main#why-enact ก็น่าจะเห็นทิศทางได้ค่อนข้างชัด กำลังมองหาคนมาลองใช้หรือช่วยมีส่วนร่วม
ระบบแบบนี้ไม่ได้ถูกฝึกอยู่แล้วหรือว่าให้ให้คะแนนสิ่งที่ดีสูงขึ้นและสิ่งที่แย่ต่ำลงตามฟีดแบ็กจากมนุษย์?
คล้ายกับ Mom test คือถ้าคุณถามให้คนประเมิน ตัวคำถามเองก็ส่งผลต่อการประเมินแล้ว
สามารถใช้โฟลว์อัปสเกลได้ แต่ไม่จำเป็นต้องถูกจำกัดแบบ Midjourney บน Discord ก็ได้ สามารถแสดงภาพขนาดเต็มทั้งหมดและตรวจจับพฤติกรรมได้ด้วย เช่น ผู้ใช้คัดลอก/บันทึก/คลิกขวาหรือไม่
การทำ งานศิลปะ ด้วย Stable Diffusion กลายเป็นงานอดิเรกที่สนุกมากจริง ๆ
ความต่างระหว่าง SD 1.5/2.0 กับ SDXL นั้นมหาศาล และน่าประทับใจที่คุณภาพดีขึ้นได้เร็วขนาดนี้
ผมยังไม่ได้ลอง SDXL แต่ใช้ 1.5 มาเยอะมาก
จนถึงตอนนี้ผมเข้าใจว่าเป็นเรื่องความละเอียดที่สูงขึ้นกับ “คุณภาพ” ที่สูงขึ้นประมาณนั้น แต่ผมใช้ realistic vision 3 มานาน จึงไม่เคยเจอปัญหาเรื่องคุณภาพเลย และถ้าใช้อัปสเกลลิง ก็ไม่จำเป็นต้องมีความละเอียดสูงขึ้นด้วย
เมื่อราว 5 ปีก่อน ในหมู่นักวิทยาศาสตร์ข้อมูลบางคนเคยฮิตการเก็บบันทึก การกดปุ่มทั้งหมด บนพีซี พอตอนนี้เห็นว่าข้อมูลนั้นมีประโยชน์จริง ๆ ไม่น้อย ก็รู้สึกอิจฉานิดหน่อย
ผมมีคอลเลกชันภาพอนิเมะที่ชอบอยู่ 30,000 ภาพ และเมื่อ 5 ปีก่อนยังจัดอันดับแบบแข่งขันด้วยคะแนนด้านความงามไว้ด้วย น่าจะเอามาใช้กับเรื่องแบบนี้ได้ดีทีเดียว
เจ๋งมาก อีกไม่นานผมตั้งใจจะลองรันไอเดียนี้เอง ผมก็เป็นนักวิทยาศาสตร์อยู่บ้างเหมือนกัน :)
เมื่อไม่กี่วันก่อนผมลองทำอะไรที่น่าสนใจ ใช้ SDXL Base Model ผ่าน Diffusers เพื่อสร้างภาพโดยผสมพรอมป์ต์หลายสไตล์ จากนั้นนำภาพเหล่านั้นไปฝึก LoRA แล้วสร้างภาพอีกครั้งด้วย LoRA นี้ร่วมกับพรอมป์ต์ที่ใช้สร้างชุดฝึก
ผลคือเอฟเฟกต์ถูกขยายให้แรงขึ้น ดูกลิตช์มากขึ้น แปลกขึ้น และให้ความรู้สึกความละเอียดสูงขึ้น
ผลลัพธ์อยู่ที่ https://imgur.com/gallery/vUobKPK
แน่นอนว่าผมจะฝึก LoRA อีกตัวจากผลงานที่สร้างเหล่านี้ แล้วทำซ้ำกระบวนการต่อไป
พอมาคิดดูแล้ว นี่เป็นวิธีที่ค่อนข้างดีในการเลี่ยง ข้อจำกัด 77 โทเคน ของ Diffusers และพัฒนาสไตล์ได้มากกว่านั้นมาก
ลองใช้ LoRA ได้ที่ https://replicate.com/galleri5/nammeh ต้องมีบัญชี GitHub
เร็ว ๆ นี้จะอัปขึ้น CivitAI ด้วย
ถ้าอัป LoRa ไปที่ civitai.com และ Stable Diffusion Reddit ด้วยก็คงดี
ผลลัพธ์ดูดีทีเดียว และผมตั้งตารอจะลองใช้ ไม่รู้มาก่อนว่ากระแสภาพสร้างด้วย AI เริ่มซาลงแล้ว เพราะผมยังใช้อยู่สม่ำเสมอ เลยรู้สึกเหมือนยังเป็นประเด็นร้อนตลอด
Civitai นำ LoRA ไปโพสต์ไว้แล้ว: https://civitai.com/models/128708/sdxl-wrong-lora
ถ้าไม่ได้ตื่นเต้นกับ SDXL มากนัก ก็เพราะไม่ได้รู้สึกว่าคุณภาพภาพกระโดดขึ้นอย่างมหาศาล การที่ขนาดเพิ่มเป็นสองเท่านั้นดี แต่ก็เป็นปัญหาด้วย เพราะไม่ได้อยากสร้างภาพ 1024x1024 ตลอดเวลา
ผมยังใช้โมเดล SD 1.5 ที่ฝึกโดยบุคคลที่สามอยู่ ผลลัพธ์ดีมากจริง ๆ และยังมีวิธีอัปสเกลลิงอยู่สัก 5 แบบ ซึ่งอย่างน้อยหนึ่งแบบจะเพิ่มรายละเอียดใหม่ขณะขยายภาพ
เรื่องที่เกี่ยวข้องกันเล็กน้อย แม้ยังไม่ค่อยแน่ใจว่าทำไม แต่ LoRA ที่ผมสร้างสำหรับ Stable Diffusion XL จะทำงานได้ดีเฉพาะเมื่อใส่พรอมป์ต์เชิงลบที่ค่อนข้างทั่วไป
ผม fine-tune ด้วยรูปหน้าตัวเอง 6 รูป ถ้าใช้เฉพาะพรอมป์ต์เชิงบวก ตัวละครที่สร้างออกมาจะไม่ค่อยเหมือนผม แต่พอเพิ่มคำเชิงลบทั่วไปอย่าง “low quality” เข้าไป จู่ ๆ การถ่ายทอดใบหน้าของผมก็เกือบถูกต้องเป๊ะ
ผมลองฝึกหลายโมเดลแล้ว และแม้เปลี่ยน learning rate กับจำนวน epoch ในการฝึกหลายแบบ ก็ยังเป็นเช่นนั้น
สุดท้ายผมรู้สึกว่าปรากฏการณ์นี้น่าจะเชื่อมโยงไม่ทางใดก็ทางหนึ่งกับสาเหตุที่ทำให้เกิดสิ่งที่ minimaxir สังเกตในบทความนี้
ผมไม่เห็นด้วยกับคำกล่าวที่ว่ากระแส AI สร้างภาพซาลงแล้ว ทำให้การเปิดตัว SDXL ผ่านไปอย่างค่อนข้างเงียบ
จากคนที่ผมได้คุยด้วย มีเหตุผลอยู่สองข้อ ข้อแรกคือ ความต้องการ VRAM และพลังประมวลผลที่สูงขึ้น ข้อที่สองคือถูกมองว่าคุณภาพผลลัพธ์ต่ำกว่าโมเดล SD1.5 แบบเฉพาะทาง
ผมมั่นใจว่าถ้าข้อใดข้อหนึ่งต่างออกไป มันคงได้รับความนิยมมากกว่านี้มาก
แต่ท้ายที่สุด คนส่วนใหญ่ก็กำลังรอดูว่าโมเดล SDXL แบบเฉพาะทางจะเอาชนะโมเดล 1.5 แบบเฉพาะทางได้จริงหรือไม่
สำหรับคนส่วนใหญ่ที่แค่ลองเล่นแบบผิวเผิน ผมคิดว่ามันใกล้เคียงกับของเล่นที่แตะเล่นแป๊บเดียว แฟน SD ตัวยงนั้น… ก็คงกำลังสร้างอะไรฮาร์ดคอร์อยู่
XL ไม่เก่งเรื่องโป๊ Stability กลัวสิ่งที่ตัวเองสร้างขึ้น และพยายามเฮดจ์ไปทาง “ความปลอดภัย” เพราะคงไม่ควรให้ภาพโป๊ของ Kate Middleton หรือ Emma Watson ดูสมจริงเกินไป
ผู้คนจะใช้ 1.5 ต่อไปจนกว่าจะมีสิ่งที่ดีกว่าออกมา โดยเฉพาะสิ่งที่ดีกว่าในด้านโป๊
แนวคิดนี้ไม่ใช่ของใหม่ บน civit.ai มี negative embeddings จำนวนมากที่ใส่ในพรอมป์ต์เชิงลบเพื่อแก้มือและกายวิภาคที่แย่
บทความนี้พูดถึง negative LoRA ซึ่งในระดับเทคนิคไม่ได้ทำงานแบบเดียวกัน
อาจเพราะโตมากับสนามความขัดแย้งแบบยุค 90 ที่ว่า “วัฒนธรรมต่อต้าน vs วัฒนธรรมต่อต้านเหมือนกันแต่โผล่ใน MTV” พอเห็นพรอมป์ต์ลงท้ายด้วยการอ้างอิงแท็กอย่าง “award winning photo for vanity fair” ก็เกิดความรู้สึกลึก ๆ ว่าไม่อยากเข้าไปอยู่ในกระแสภาพสร้างนี้
ไม่ว่าคำต่อท้ายแท็กมาตรฐานที่คนเขียนพรอมป์ต์ใช้ในบทความพวกนี้จะเป็นอะไร ก็ให้ความรู้สึกคล้ายกัน
คำพูดที่ว่า “เปิดใช้งาน LoRA ได้ครั้งละหนึ่งตัวเท่านั้น” อย่างน้อยใน auto1111 ก็ไม่จริงเลย