ในโลกของ AI ที่กำลังเติบโตอย่างรวดเร็ว FLUX เป็นชุดโมเดลการสังเคราะห์ภาพล่าสุดที่น่าตื่นเต้น พัฒนาโดย Black Forest Labs ซึ่งเพิ่งเปิดตัวเมื่อวันที่ 1 สิงหาคม 2024
FLUX นำเสนอความก้าวหน้าที่สำคัญในด้านคุณภาพของภาพ การตอบสนองต่อคำสั่ง และความหลากหลายของสไตล์ โดยเฉพาะเรื่องของตัวหนังสือกับสรีระร่างกายรวมถึงนิ้วและมือทำได้ดีขึ้นมากๆ กว่าโมเดล Stable Diffusion ปกติมาก
ในบทความนี้ เราจะแนะนำวิธีการใช้งาน FLUX ใน ComfyUI ซึ่งเป็นเครื่องมือยอดนิยมสำหรับการสร้างภาพด้วย AI ซึ่งผมสอนมาหลายตอนแล้วเนอะ
ปกติแล้ว จะใช้ FLUX ได้เครื่องต้องแรงพอสมควรเลย แต่คราวนี้ ผมจะใช้ในเครื่อง Laptop ตัวประจำของผม ซึ่งมีการ์ดจอ Nvidia RTX3060 ที่มี VRAM แค่ 6GB!! ลองดูว่าจะไหวหรือไม่ 555
หมายเหตุ : เครื่องผมตอนแรกมี Ram ของเครื่อง 16 GB รันยังไงก็ไม่ผ่าน มันขึ้น restarting ตลอดเลย หลังจากลองค้นใน Net มีคนบอกว่า เหมือนว่า Ram เครื่องไม่พอ ผมก็เลยใส่ Ram เพิ่ม เป็น 32GB สุดท้ายก็รันได้ครับ
….จากคำแนะนำของคุณหนึ่ง HotFreshMilk และคุณ เจ Salmon RK…
FLUX ใช้ความจำ Unet+Clip+VAE รวมประมาณ 20-30 GB
ซึ่งของผม VRAM แค่ 6 GB แปลว่า ต้องมี Ram ช่วยอีก 14-24 GB
ซึ่งถ้า RAM 16 GB ก็จะไม่พอ (เพราะว่า ตัว Windows และโปรแกรมอื่นก็จะกิน Ram ไปแล้วส่วนนึง เช่น ประมาณ 10 GB+)
ดังนั้นถ้ามี Ram 32 GB ถึงจะรันในเครื่องผมได้ แต่ถ้า Ram หมดมันจะไปใช้ HDD ต่อ แล้วอาจจะอันตรายกับ HDD ได้ ถ้าใช้บ่อยๆ
ดังนั้นเพื่อความปลอดภัยสุดๆ ตอนหลังผมเลยเพิ่ม Ram เป็น 64 GB ไปเลย (สั่ง Ram Notebook 64 GB เสียไป 6 พันกว่าบาท T_T) คราวนี้ก็สบายใจละ
สารบัญ
FLUX มีหลายรุ่นย่อย
ตอนนี้ FLUX version 1 หรือ FLUX.1 มีด้วยกัน 3 รุ่น:
- FLUX.1 [pro]: รุ่นที่เก่งที่สุด เหมาะสำหรับการใช้งานระดับมืออาชีพ สามารถใช้งานผ่าน API แบบมีค่าใช้จ่าย หรือใช้ผ่าน Replicate หรือ fal.ai
- FLUX.1 [dev]: รุ่นที่สามารถ Gen ภาพได้สวยมาก เป็นแบบ open-weight สำหรับการใช้งานที่ไม่ใช่เชิงพาณิชย์ เหมาะกับนักวิจัยนักพัฒนาที่จะเอาไปพัฒนาต่อ
- FLUX.1 [schnell]: รุ่นที่เน้น Gen ภาพได้เร็วที่สุด ทำงานแค่ 4 Step ก็เพียงพอ เหมาะสำหรับการพัฒนาในเครื่องตัวเองและการใช้งานส่วนตัว ผ่าน Apache 2 Licensed (ตามหลักแล้ว แปลว่า สามารถใช้ได้ฟรี ปรับเปลี่ยนได้ และใช้เชิงพาณิชย์ได้)
ในบทความนี้เราจะลอง 2 ตัวหลัง แต่ผมจะเน้นที่ตัวสุดท้ายนะ เพราะ Gen ไวดี
การเตรียมพร้อมสำหรับการใช้งาน FLUX ใน ComfyUI
ก่อนที่คุณจะเริ่มใช้งาน FLUX ใน ComfyUI คุณจำเป็นต้องดาวน์โหลดไฟล์ที่จำเป็นต่างๆ โปรดทราบว่าคุณจะต้องมีพื้นที่ว่างอย่างน้อยประมาณ 20-30 GB สำหรับไฟล์ทั้งหมด
การดาวน์โหลดไฟล์ที่จำเป็น
- ดาวน์โหลดโมเดล FLUX
- ไฟล์ตัวเต็ม ถ้าใคร HDD เยอะ ใช้อันนี้ก็ได้ แต่คอมพ์ผมไม่ไหว 555 :
- flux1-dev.sft (23.8 GB) จาก https://huggingface.co/black-forest-labs/FLUX.1-dev/tree/main
- flux1-schnell.sft (23.8 GB) จาก https://huggingface.co/black-forest-labs/FLUX.1-schnell/tree/main
- ไฟล์แบบตัวเล็ก (ผมใช้ตัวนี้) จาก https://huggingface.co/Kijai/flux-fp8/tree/main
- flux1-dev-fp8.safetensors (11.9 GB) หรือ
- flux1-schnell-fp8.safetensors (11.9 GB)
- มีไฟล์เล็กลงอีก คือ นามสกุล GGUF จาก https://github.com/city96/ComfyUI-GGUF
- ตำแหน่งที่ต้องวาง: ComfyUI/models/unet/
- ไฟล์ตัวเต็ม ถ้าใคร HDD เยอะ ใช้อันนี้ก็ได้ แต่คอมพ์ผมไม่ไหว 555 :
- ดาวน์โหลด CLIP
- ไฟล์:
- t5xxl_fp8_e4m3fn.safetensors (4.89 GB)
- clip_l.safetensors (246 MB)
- ลิงก์: https://huggingface.co/comfyanonymous/flux_text_encoders/tree/main
- ตำแหน่งที่ต้องวาง: ComfyUI/models/clip/
- ไฟล์:
- ดาวน์โหลด VAE
- ไฟล์: ae.safetensors (335 MB)
- ลิงก์: https://huggingface.co/black-forest-labs/FLUX.1-schnell/blob/main/ae.safetensors
- ตำแหน่งที่ต้องวาง: ComfyUI/models/vae/
หลังจากดาวน์โหลดไฟล์ทั้งหมดแล้ว ให้วางไฟล์ในโฟลเดอร์ที่กำหนดภายในโครงสร้างโฟลเดอร์ของ ComfyUI ตามที่ผมได้อธิบายไป
วิธีต่อ Node เพื่อใช้ FLUX ใน ComfyUI
ก่อนอื่นให้กด Update All ใน ComfyUI Manager ให้เรียบร้อยนะ สำคัญมาก
จากนั้นลาก Workflow ของรูปผู้หญิงทำมือรูปหัวใจที่ผมทำอันนี้เข้าไปได้เลย
(หรือจากนี่ก็ได้ https://comfyanonymous.github.io/ComfyUI_examples/flux/ )
ถ้าโหลดสำเร็จจะขึ้น Workflow แบบนี้
แต่ตรง Load Diffusion Model ต้องระวังเรื่องชื่อ model นิดนึงนะ ซึ่งจะต้องตรงกับชื่อไฟล์ที่เราโหลดมา ของผมเลือก unet เป็น “flux1-schnell-fp8.safetensors”
นอกนั้นก็แก้ prompt และระบุ size ตามขนาดของ SDXL ปกติ ได้เลย เช่น 1024×1024 หรือ 768×1152 หรือ ratio อื่นๆ เช่น 896×1152 ก็ได้ครับ
การตั้งค่าที่แนะนำ
Sampler และ Scheduler
เท่าที่ลองดู การเปลี่ยน Sampler และ Scheduler ไม่ค่อยส่งผลมากนัก
ผมแนะนำให้ใช้ตามค่ามาตรฐานได้เลย คือ
- Sampler เป็น Euler
- Scheduler เป็น Simple
Steps
สิ่งที่ต่างกันและสำคัญ คือ Steps
- flux1-schnell ผมแนะนำ 4-8 Steps
- flux1-dev ผมแนะนำ 20-30 Steps
FluxGuidance (ตัวนี้ไม่ใช่ CFG นะ)
- แบบ schnell จะปรับค่า Guidance ไม่ได้ (ปรับแล้วไม่ส่งผล)
- แบบ flux1-dev จะปรับได้ ซึ่งถ้าอยากได้ภาพสมจริงมากขึ้นแนะนำ Guidance ประมาณ 1.8-3.5 ครับ
ถ้าใครคิดว่าเครื่องน่าจะรันไม่ผ่าน…
เครื่องผมตอนแรกมี Ram ของเครื่อง 16 GB รันยังไงก็ไม่ผ่าน มันขึ้น restarting ตลอดเลย หลังจากลองค้นใน Net มีคนบอกว่าเหมือนว่า Ram เครื่องไม่พอ
ผมก็เลยใส่ Ram เพิ่ม เป็น 32GB สุดท้ายก็รันได้ครับ (สั่ง Ram Notebook 32 GB แบบส่งด่วนเลย อยากลองมาก เสียไป 3 พันกว่าบาท T_T)
ถ้ายังรันไม่ได้ ลองใส้คำว่า –lowvram ใน run_nvidia_gpu.bat ของ ComfyUI ดูนะครับ
หรือสุดท้ายแล้วถ้าลองในเครื่องตัวเองไม่ได้จริงๆ ผมขอแนะนำ 2 ทางเลือกนี้ครับ
1. ลองไปใช้ ComfyUI บน Google Colab ก็ได้ครับ มีของคุณ Prompt Alchemist ทำไว้ รองรับ FLUX แล้วด้วย (อย่าลืมติ๊กถูกในช่อง Flux ก่อนรันโปรแกรมนะครับ)
2. ใช้จาก Service ที่มีบริการ เช่น ของคนไทยเราก็มีที่นี่ ดีมากๆ https://varoriya.com/en/service/flux/
ความเร็วในการ Gen
บอกก่อนว่า การ์ดจอผม 3060 vram 6gb เอง ดังนั้นมันอาจจะช้ากว่าคนที่ GPU แรงๆ นะ
ถ้านับจากการกด Queue Prompt ครั้งแรกเลย โดยไม่ยังไม่ได้โหลด Model อะไรไว้ก่อน เครื่องของผมใช้เวลาเกือบ 300 วิ…
แต่ถ้า Gen Prompt เดิมซ้ำกับภาพใหม่
- ถแบบ dev 20 steps ผมใช้เวลา 90 วิ
- แบบ schnell 4 steps ใช้เวลาเหลือแค่ 20 กว่าวิ!
แต่ถ้ามีการเปลี่ยน Prompt ผมใช้เวลา 140 วิได้… ซึ่ง Gen ซ้ำ 20 วิเช่นเคย
ถ้าใคร Gen ในเครื่องตัวเองผ่าน แต่ใช้เวลานานจัดๆ จนหงุดหงิด ลองพิจารณาแนวทางอื่น เช่น ใช้ช่องทางที่ผมแนะนำไปก็ได้ครับ
ผลลัพธ์ภาพที่ได้จาก FLUX
ทุกภาพไม่ได้มีการ edit ใดๆ แต่มีการคัดเลือกภาพที่สวยหน่อยมาให้ดู (80% สวยอยู่)
ภาพเขียนข้อความ
realistic editorial photo of beautiful sexy white skin thai woman net idol 18 yrs old in white short sleeve shirt and black short fit mini skirt, writing text "Ai Angel Gallery" on blackboard in the classroom, soft light
Edit : ตอนแรกคิดว่า จาก flux1-dev ไปใช้ flux1-schnell คุณภาพไม่ต่างกันมาก
ไปๆ มาๆ ลองเล่นเยอะๆ ตัว flux1-dev เก่งกว่าเยอะเลย โดยเฉพาะถ้า Prompt ละเอียดๆ ตัว flux1-dev ทำได้ดีกว่าพอสมควรเลยครับ 😉
flux1-dev
flux1-schnell
ภาพนางฟ้าแสดงมือ hi-five
realistic photo of A beautiful Asian woman cosplay as angel with glowing white wings, flowing black hair, and a radiant face. smile and showing hi-five hand. standing in a celestial heaven with soft clouds
flux1-dev
flux1-schnell
ภาพสาวไหว้พระ
A beautiful young Asian woman 20 yrs old with black hair, kneeling in prayer inside a serene Thai temple. her hands gently clasped, surrounded by golden Buddha statues, ornate temple decor, and soft, ambient light streaming through the windows, creating a peaceful and sacred atmosphere
flux1-dev
flux1-schnell
ภาพสาวทำมือรูปหัวใจ
A beautiful Thai girl 20 yrs, wearing a traditional Thai dress in in front of thai temple making heart shape hand
flux1-dev
flux1-schnell
ภาพการ์ตูน
An anime-style illustration beautiful Thai girl 20 yrs, wearing a traditional Thai dress in vibrant colors in front of thai temple
flux1-dev
flux1-schnell
ภาพกลุ่ม
A group of beautiful white skin sexy Thai korean women 20 yrs old in sexy shorts, happily taking a group photo together
flux1-dev
flux1-schnell
ภาพสาววันตรุษจีน
instagram profile picture of very very beautiful Thai girl, Chinese New Year style very deep spaghetti strap,
analog film photo, faded film, desaturated, (35mm photo, grainy:1.3), vignette, vintage, Kodachrome, Lomography, stained, highly detailed, found footage. sharp background details. 8K, best quality, (very detailed face:1.15)
flux1-dev
flux1-schnell
ภาพ sexy
beautiful white skin sexy Thai korean women 20 yrs nude on the bed in bed room
flux1-dev
flux1-schnell
ภาพอื่นๆ ที่ทำเล่น
flux1-dev
flux1-schnell
ลองเล่นกับ Steps ที่เพิ่มขึ้น
ผมลองใช้ FLUX.1 Dev เมื่อใช้ Steps น้อยๆ ในการ Gen ภาพ Prompt นี้
A beautiful Thai girl 20 yrs, wearing a traditional Thai dress in in front of thai temple making heart shape hand
ผลลัพธ์ที่ออกมากลับกลายเป็นเด็กน้อยหรือภาพการ์ตูนซะงั้น! แต่พอเพิ่ม Steps มากขึ้น ภาพก็เริ่มโตตาม Prompt ได้ดีขึ้นเรื่อยๆ เหมือนกำลังเติบโตขึ้นมาต่อหน้าต่อตาเลยล่ะ 🤣
ผมเข้าใจเองว่า เหตุการณ์นี้เกิดขึ้นเพราะพอ Steps เยอะ AI มันมีเวลาลงรายละเอียดตาม Prompt ได้ดีกว่า มันก็เลยโตขึ้นตาม Prompt ที่บอกว่า ผู้หญิงอายุ 20 (มั๊ง…)
นี่ครับ “A beautiful Thai grandma” ถ้า Prompt เราระบุให้แก่เลย Steps น้อยมันก็ดูแก่อยู่นะ
หรือถ้า Prompt เราตั้งใจให้เด็ก “A beautiful Thai little girl” Step เยอะ ก็ยังเด็กนะครับ
สรุปก็น่าจะเป็นเพราะมันทำตาม Prompt ดีขึ้นแหละ
Image 2 Image
นอกจากจะ Gen ภาพใหม่แล้ว เราเอามา FLUX ใช้ทำ Img2Img จากภาพเดิมที่มีอยู่แล้วก็ได้นะ แค่เปลี่ยน Empty Latent ออก แล้วแทนด้วย Load image + VAE Encode ตามปกติเลย แต่อย่าลืมเปลี่ยน Denoise ให้เหมาะสมล่ะ เช่น 0.4-0.5
สรุปความเห็นจากการทดลองใช้ FLUX
ส่วนตัวคิดว่า คุณภาพที่ได้นั้นดีกว่าสมัย SDXL เยอะมาก ขึ้นมาสูสีกับ MJ แล้ว (ถ้าใช้ Flux Pro หรือ Dev นะ) แต่ถ้าเป็นแบบ flux1-schnell ยังห่างชั้นจาก MJ มาก
อย่างไรก็ตามผมคิดว่าตัว FLUX ทุก Model สามารถทำข้อความได้ดี ได้เป๊ะกว่า MJ นะครับ
ส่วนพวกสรีระ สัดส่วน และมือดีขึ้นมาก มีผิดเพี้ยนบ้างนิดหน่อย น่าจะถูกต้องประมาณ 80%++ แล้วล่ะ
และที่ดีมากๆ อีกอย่างคือทำตาม prompt ได้ดี เราระบุรายละเอียดเยอะๆ ยาวๆ ได้เลย และเหมือนว่า ยิ่งบรรยายบรรยากาศกับสไตล์ที่ต้องการเยอะๆ ภาพก็จะทำได้ตามนั้นยิ่งสวยด้วยครับ
ป.ล. ตัว flux1-dev ถ้าเราใช้คำว่า girl มันจะออกเป็นเด็กผู้หญิงซะส่วนใหญ่ ถ้าอยากให้โตหน่อยใช้คำว่า woman ดีกว่าครับ (ตัว flux1-schnell ใช้ girl ก็ยังโตได้)
ใช้ ControlNet ได้หรือยัง?
เท่าที่ทดลองไป ControlNet ยังไม่ได้นะครับ มันขึ้น Error น่าจะยังต้องมีการปรับปรุงอีกทีในอนาคต
สรุป = ยังใช้ไม่ได้นะ
ใช้ LoRA ได้หรือยัง?
ผมลองใช้ LoRA ของ SDXL ปรากฏว่าสามารถรันผ่าน ไม่มี Error!
แต่ผลลัพธ์มันไม่ Work เหมือนว่าการเข้าใจ Weight มันไม่ตรงกัน มันก็เลยไม่สามารถส่งผลของ LoRA ออกมาได้ถูกต้องครับ
สรุป = ยังใช้ไม่ได้นะ
และถ้าใครสงสัยว่าเจ้า FLUX สามารถ Gen ภาพโป๊ได้ไหม?…
คำตอบก็คือ ท่อนบนพอได้ครับ (ต้องระบุเจาะจงกว่าคำว่า Nude) แต่ยังไม่ค่อยสมจริง ส่วนท่อนล่างแทบ Gen ไม่ออกเลย เหมือนมีอะไรดำๆ มืดๆ บังตลอด (เหมือนตัว based นี้ไม่ได้เทรนมา)
บางทีใส่คำว่า Nude ใน Prompt แท้ๆ แต่ก็ออกมาไม่โป๊ก็มี เช่น รูปที่ผมเอามาให้ดู มีคำว่า Nude แต่เค้าใส่ชุดชั้นในให้เฉยเลย
แต่คิดว่า ถ้ามีคนอาไปพัฒนาเพิ่ม ก็จะเหมือน SD1.5 กับ SDXL ที่ Gen ได้ทุกแบบ แบบไร้ขีดจำกัดเช่นกันครับ 555
สรุปของสรุป
สรุปแล้ว การมี Based Model ที่เทพขนาดนี้เป็นจุดเริ่มต้นที่ดีครับ หากมีคนเอาพัฒนา LoRA / ControlNet และเครื่องมือเสริมอื่นๆ มาอีก น่าจะทำให้เจ้า FLUX นี่น่าจะกินส่วนแบ่งของการ Gen AI มาได้พอสมควรเลย อย่างไรก็ตามมันก็กิน Spec คอมพ์เยอะด้วย ตรงนี้คือจุดอ่อน (ณ ตอนนี้)