วันนี้ผมจะพาทุกคนมาดูวิธีการใช้โปรแกรม ComfyUI ในการสร้างภาพ AI ให้มีใบหน้าตามที่เราต้องการกัน เราจะมาลองเปรียบเทียบหลายๆ วิธีดูว่าแบบไหนให้ผลออกมาเจ๋งที่สุด จะเริ่มจากวิธีง่ายๆ แบบพื้นฐานก่อนนะ ค่อยๆ ไต่ระดับความซับซ้อนขึ้นไปเรื่อยๆ จนได้ภาพเหมือนตัวจริงโดยไม่ต้องเสียเวลาเทรน LoRA เลย ถ้าอยากรู้ว่าทำยังไง? ไปดูกันเลย!
ซึ่งแต่ละวิธีนั้นจะต้องผ่านการ Install พวก ReActor กับ IP Adapter จาก EP ก่อนๆ มาแล้วด้วยนะครับ
สารบัญ
วิธีพื้นฐาน 1 : ReActor Fast Face Swap
อันดับแรกเลยคือเอาฟีเจอร์ Face Swap ของ Reactor มาใช้ ซึ่งถ้าภาพต้นแบบเค้ามีลุคเด่นชัดเจนอยู่แล้ว ก็จะทำให้ AI สร้างใบหน้าที่คล้ายๆ ได้ไม่ยาก แต่ถ้าใช้ภาพคนจริงๆ (โดยเฉพาะภาพผู้ชายอะนะ) อาจจะเหมือนไม่เต็มร้อยเท่าไหร่ เพราะมันเปลี่ยนแค่ส่วนหน้า ไม่ยุ่งกับผมหรือส่วนอื่นๆ เลย
ถ้าหน้าของนางแบบมีเอกลักษณ์ชัดเจน ก็จะง่ายเลย เช่น นางแบบ AI ประจำเพจของผม แค่เอาหน้า Swap ไปใส่ ก็ดูค่อนข้างเหมือนละ
แต่ถ้าเป็นหน้าคนจริง แถมเป็นผู้ชายอีก (เช่น หน้าผมเอง) แบบนี้มันอาจจะยังไม่ค่อยเหมือน
ซึ่งจะเห็นว่าวิธี Face Swap ก็จะได้ผลที่หลักๆ คือมีการเปลี่ยนแค่ใบหน้าเท่านั้น ไม่เกี่ยวกับทรงผมหรือส่วนอื่นเลย มันก็อาจทำให้ภาพดูโดดๆ ได้ ถ้าทรงผมมันไม่ใช่อ่ะนะ
วิธีพื้นฐาน 2 : ใช้ IP Adapter PLUS FACE
วิธรนี้จะเอาหน้าต้นแบบใส่เข้าไปตั้งแต่ขั้นตอนสร้างภาพเลย จะได้มีองค์ประกอบรอบๆ หน้ามาด้วย เช่น ผมทรงต่างๆ นู่นนี่นั่น อย่างไรก็ตาม หน้าที่ได้จะค่อนข้างตายตัวเลยล่ะ ไม่ค่อยเปลี่ยนตามโพสหรือตามคำอธิบายที่ใส่ไปซักเท่าไหร่ และหน้าก็ยังไม่ค่อยเหมือนเท่าไหร่ด้วย
วิธีพื้นฐาน 3 : ใช้ IP Adapter FACE ID PLUS V2
วิธีนี้เราจะต้องเปลี่ยน IPAdapter Unified Loader ปกติให้เป็น IPAdapter Unified Loader FACEID และเปลี่ยน IPAdapter Adavanced ให้เป็น IPAdapter FACEID ด้วย จึงจะใช้ได้
อย่าลืมปรับน้ำหนักของ Face ID สูงๆ ไว้ที่ 2.0 เลย จะทำให้ได้หน้าเหมือนขึ้นเยอะ แถมยังเปลี่ยนท่าทางได้ด้วย เหมือนว่ามันจะแยกวิเคราะห์เฉพาะส่วนหน้ามาแล้ว เอามาสร้างใหม่ให้
วิธีพื้นฐาน 4 : ใช้ IP Adapter FACE ID PORTRAIT
Face ID Portrait นี่โดดเด่นตรงที่มันปรับเปลี่ยนรูปไปตามคำบรรยายได้มากกว่าปกติ สามารถทำ Art Style ใส่หน้าที่ต้องการได้ตามใจชอบ โพสท่าก็เปลี่ยนได้หลายแบบขึ้น แต่ก็ควรเสริมน้ำหนักหน้าไว้ที่ 2.0 เหมือนเดิมนะ
อ้อ แล้วถ้าจะเล่นสไตล์แนวหลุดโลกศิลปะหน่อย อย่าลืมเลือก Checkpoint โมเดลที่ไม่ใช่ Realistic ด้วยล่ะ จะออกมาดีกว่า
อันนี้เปลี่ยนเป็นภาพสีน้ำ
อันนี้เปลี่ยนเป็นภาพหมึก
วิธีพื้นฐาน 5 : ใช้ InstantID
วิธีนี้จะยุ่งยากนิดนึง ต้องลงโหนดลงโมเดลเพิ่มหลายอย่างเหมือนกัน แต่รับรองว่าผลลัพธ์ที่ได้คุ้มค่าแน่นอน
คือต้องโหลด Custom Nodes และ Model เพิ่มเติมพอสมควร โดย Install Custom Nodes อันนี้เพิ่มก่อน https://github.com/cubiq/ComfyUI_InstantID (ซึ่งจะต้องใช้ Insight Face เช่นเดียวกับวิธี FACEID)
และยังต้องโหลด Model เพิ่ม คือ
- ip-adapter.bin เอาไว้ใน ComfyUI/models/instantid
- diffusion_pytorch_model.safetensors เอาไว้ใน ComfyUI/models/controlnet
- antelopev2.zip โหลดแล้วแตก zip เอาไว้ใน ComfyUI/models/insightface/models
จากนั้นลองต่อ Node ประมาณนี้ ซึ่งตัวหลักคือ Apply InstantID Advanced (หรือจะปกติก็ได้) ซึ่งมันจะต้องโหลด InstantID Model จาก ip-adapter.bin และโหลด InstantID Face Analysis และ Load ControlNet Model เป็น diffusion_pytorch_model.safetensors
รูปต้นแบบของ Instant ID ควรจะเป็นรูป Portrait ที่ใบหน้าอยู่ภายในพื้นที่ประมาณ 640×640 แต่ทั้งภาพจะต้องใหญ่กว่านั้น
โดยที่ Instant ID จะทำงานคล้ายๆ ControlNet สำหรับใบหน้าของแบบนั่นเอง ดังนั้นถ้าใส่หน้าไปตรงไหนของรูป ก็จะได้ใบหน้าไปโผล่ตรงนั้นด้วย แถมยังปรับสไตล์ ปรับองค์ประกอบอื่นๆ ตามคำอธิบายได้อย่างอิสระไม่มีข้อจำกัดอีกต่างหาก เจ๋งจริงๆ เลย
ตัว Instant ID จะออกแบบมาให้เราสามารถเปลี่ยน Style ให้กับหน้าของเราได้อยู่แล้ว แต่ควรจะใช้ Checkpoint ที่รองรับ Style นั้นๆ ได้ด้วยนะ
แต่ถ้าภาพยังออกมามี Style ไม่ชัด เดี๋ยวเรามีวิธีการทำที่ Advanced มากขึ้นภายหลังครับ
กำหนด Pose คร่าวๆ ได้
ถ้าอยากจะกำหนด Pose ของภาพ สามารถใส่ภาพที่มีท่า pose โดยรวมแบบที่ต้องการไปที่ Image Kps ของ Instant ID ได้เลย (ตำแหน่งของใบหน้าจะเป๊ะตามนั้น ส่วน pose กำหนดได้ด้วย prompt อีกทีนึง)
วิธีการทำให้เหมือนมากขึ้น
จากวิธีพื้นฐานหลายๆ แบบที่ลองทำมา ผมมองว่า Face Swap กับ Instant ID จะเหมือนแบบตรงๆ ที่สุดเลย ส่วนวิธีอื่นๆ ยังไม่ค่อยได้ผลซักเท่าไหร่ เดี๋ยวเรามาดูเทคนิคเสริมขั้นเทพในการทำให้ผลงานเราออกมาดีขึ้นกันอีกหน่อย
ใส่รูปตัวอย่างมากกว่า 1 รูป
แนวทางแรกคือ เราสามารถใส่รูปตัวอย่างมากกว่า 1 รูปกับ IP Adapter ได้ โดยต่อผ่าน Node ที่ชื่อว่า Batch Images นั่นเอง (และต่อเพิ่มไปอีกได้ ถ้าจะใส่มากกว่า 2 รูป)
อันนี้ลองกับ IP Adapter PLUS FACE
โดยรวมภาพที่ได้จะมีความเหมือนมากขึ้นเล็กน้อย แต่ก็ยังไม่ค่อย Work
อันนี้ลองกับ IP Adapter FACE ID PLUS V2
ผลลัพธ์ของ Face ID อันนี้ดีขึ้นกว่า IP Adapter PLUS FACE เฉยๆ นะครับ
อันนี้ลองกับ IP Adapter FACE ID PORTRAIT
อันนี้ก็ดีขึ้นกว่าใช้รูปเดียว แต่ก็ยังไม่ค่อยเหมือน
อันนี้ลองกับ Instant ID
ภาพที่ได้จะดึขึ้นอีกกว่าเดิมอีกเล็กน้อย
ขนาดภาพที่หน้าไกลๆ ก็ยังดีขึ้นได้
ใช้ผสมผสานหลายวิธี
IP Adapter FACE ID PLUS V2 + Face Swap
เอารูปที่ได้จาก IP Adapter FACE ID PLUS V2 ไปทำ Face Swap ต่อ ภาพที่ได้ก็จะเหมือนขึ้นกว่าเดิมพอสมควร
แต่บางทีอาจจะมีร่องรอย Pixel แปลกๆ ติดมาด้วย
IP Adapter FACE ID PLUS V2 + IP Adapter PLUS FACE ทำงานต่อกัน
อันนี้ผมว่าได้ผลลัพธ์ที่ค่อนข้างดีเลย โดยมี tips คือ ให้ปรับ Weight ของ IP Adapter PLUS FACE ให้น้อยๆ หน่อย เช่น 0.3-0.4 นะครับ
IP Adapter FACE ID PORTRAIT + IP Adapter PLUS FACE ทำงานต่อกัน
อันนี้ผมว่าความเหมือนสู้วิธีที่แล้วไม่ได้ แต่ก็ไม่เลวถ้าจะใช้พวก Style Transfer
ใช้ InstantID + IP Adapter PLUS FACE ทำงานต่อกัน
วิธีนี้ผมว่าได้ผลลัพธ์ที่ดีมากที่สุดเลย และจะเป็นวิธีที่ผมเลือกไปทำภาพให้ดูในช่วงท้ายบทความว่ามันทำออกมาได้ประมาณไหนครับ
Tips : ถ้าเรามีการ Control เยอะๆ เช่นจาก IP Adapter + InstantID + Text Prompt ด้วยอะไรแบบนี้ ให้ปรับ CFG ให้น้อยลงกว่าปกติ ผลจะออกมาดีกว่า (เช่น ในกรณีที่ใช้ SXL Lightning ปกติผมใส่ 1.2 คราวนี้ผมอาจลดเหลือ 1.0 พอ)
วิธีที่ Work ที่สุด
ผมอยากแนะนำให้ลองใช้ KSampler Basic สร้างภาพโพสท่าทางโดยรวมให้ได้ตามที่ต้องการก่อน (ขั้นตอนแรก เรา Mute Node ตัว Apply Instant ID ไว้ก่อนจนกว่าจะได้ภาพต้นแบบดั่งใจก็ได้)
แล้วค่อยเอาภาพนั้นไปใส่เข้า Image Kps ของ Instant ID อีกชั้นนึง ใส่คำบรรยายแบบเดิมไปเลย แล้วใช้ IP Adapter จัดการต่อ
กำหนด Pose ตั้งต้น แล้วอาจใช้ IP Adapter กำหนดบริเวณที่จะเน้นความเหมือนของหน้าเข้าไปอีกด้วย Attention Mask เท่านี้ก็จะได้ภาพที่เหมือนต้นฉบับมากๆ เลยล่ะ (หน้าผมเองดูเองยังรู้สึกว่าเหมือนเลย 555)
หรือถ้าอยากเปลี่ยน Style ของรูปด้วย อาจใช้ IP Adapter ทำ Style Transfer ก็ได้ เช่น ทำแนวภาพวาด (ควรใช้ Checkpoint ที่ทำได้นะ) ก็ทำได้
ซึ่งถ้าจะให้ดี เราควรทดสอบด้วยการ Gen ด้วย K-Sampler ปกติก่อนว่ามันออกมาเป็นแนวที่ต้องการพอจะได้ไหม (เอามากำหนด Pose ด้วย) แล้วค่อยใช้ IP Adapter ทำ Style Transfer ย้ำอีกที แบบนี้ก็จะเป๊ะเลย
ด้วยความรู้แบบนี้ ทำให้เราสร้างภาพได้อย่างไม่มีขีดจำกัด แถมยังกำหนดหน้าตาที่ต้องการได้ด้วย อันนี้มันเจ๋งสุดๆ ไปเลย
ทำแนว CyberPunk ก็ได้
ทำแนวการ์ตูน 3D ก็ได้ (ควรใช้ Checkpoint ที่ทำได้นะ)
นำความรู้มาประยุกต์สร้างภาพดั่งใจ
สรุป
วันนี้ผมพาเพื่อนๆ มาดูวิธีสารพัดในการสร้างภาพ AI ที่มีใบหน้าที่เราต้องการ ตั้งแต่วิธีง่ายๆ อย่าง Face Swap เปลี่ยนแค่หน้า ยันถึงวิธีขั้นเทพอย่าง Face ID กับ Instant ID ที่เปลี่ยนทั้งหน้าทั้งท่า แถมยังมีการนำหลายๆ วิธีมาประยุกต์ใช้ร่วมกันอีกด้วย ผมคิดว่าการใช้ Instant ID ร่วมกับ IP Adapter Plus Face แล้วใส่ style transfer เสริม เป็นวิธีที่ยืดหยุ่น และได้ผลออกมาดีที่สุดเลยนะ สนุกแน่นอน อย่าลืมเอาไปลองกันดูล่ะ!