โมเดลสร้างภาพ FLUX เร็วและเป็นโอเพนซอร์ส
(replicate.com)- ความเร็วในการรัน FLUX บน Replicate เร็วขึ้นอย่างมาก และยังเปิดเผยโค้ดสำหรับการปรับแต่ง ทำให้ตรวจสอบการติดตั้งใช้งานและขยายต่อแบบคัสตอมได้
- เมื่อวัดแบบ end-to-end, FLUX.1 [schnell] ลดเวลาลงเหลือ 0.29 วินาทีที่ 512x512·4 steps และ 0.72 วินาทีที่ 1024x1024·4 steps
- การเพิ่มความเร็วเป็นผลจากการผสานการปรับแต่งบนพื้นฐาน
flux-fp8-api,torch.compile, CuDNN attention kernel ที่เร็วขึ้นใน Torch รุ่น nightly และ HTTP API แบบ synchronous ตัวใหม่ - Quantization ของ
flux-fp8-apiทำให้ผลลัพธ์เปลี่ยนไปเล็กน้อย แต่มีผลต่อคุณภาพน้อยมาก และหากต้องการสามารถปิดได้ด้วยgo_fast=false - Replicate เปิดเผยการปรับปรุงของ FLUX และกำลังร่วมมือกับ AI Compiler Study Group และนักวิจัยเพื่อสร้าง FLUX แบบโอเพนซอร์สที่รวดเร็ว
ความเร็วในการรัน FLUX และเดโมสาธารณะ
- การรันโมเดล FLUX บน Replicate เร็วขึ้น และการติดตั้งใช้งานสำหรับการปรับแต่งถูกเผยแพร่เป็น โอเพนซอร์ส
- ความเร็วแบบ end-to-end ที่วัดจากฝั่งตะวันตกของสหรัฐฯ โดยใช้ไคลเอนต์ Python มีดังนี้
- FLUX.1 [schnell], 512x512, 4 steps: 0.29 วินาที, P90 0.49 วินาที
- FLUX.1 [schnell], 1024x1024, 4 steps: 0.72 วินาที, P90 0.95 วินาที
- FLUX.1 [dev], 1024x1024, 28 steps: 3.03 วินาที, P90 3.90 วินาที
- เดโมของ FLUX.1 [schnell] เปิดให้ใช้งานแบบป้อนข้อมูลเรียลไทม์ และสามารถดูได้ที่ แอปเต็มและซอร์สโค้ด
วิธีการปรับแต่งและการควบคุมคุณภาพ
- โมเดลจำนวนมากบน Replicate มาจากการมีส่วนร่วมของคอมมูนิตี้ แต่โมเดล FLUX ได้รับการดูแลร่วมกับ Black Forest Labs
- มีการใช้แนวทาง 2 อย่างเพื่อเพิ่มความเร็ว
- เริ่มต้นจาก flux-fp8-api ของ Alex Redden และใช้
torch.compileกับ CuDNN attention kernel ที่เร็วขึ้นจาก Torch nightly build - เพิ่ม HTTP API แบบ synchronous ตัวใหม่ของ Replicate เพื่อให้โมเดลภาพทั้งหมดทำงานได้เร็วขึ้น
- เริ่มต้นจาก flux-fp8-api ของ Alex Redden และใช้
- Quantization ของ
flux-fp8-apiทำให้ผลลัพธ์ของโมเดลเปลี่ยนไปเล็กน้อย แต่มีผลต่อคุณภาพน้อยมาก- มีเครื่องมือสำหรับเปรียบเทียบผลลัพธ์จากพรอมป์ต์หลายพันรายการของ FLUX.1 [schnell] และ FLUX.1 [dev] และสามารถดู ผลการเปรียบเทียบ ได้โดยตรง
- สามารถปิดการปรับแต่งนี้ได้โดยตั้งค่าอินพุต
go_fastเป็นfalse
- เนื่องจากมักไม่ชัดเจนว่าผู้ให้บริการโมเดลใช้การปรับแต่งที่ส่งผลต่อคุณภาพหรือไม่ Replicate จึงเปิดเผยวิธีการปรับแต่งและเปิดให้ผู้ใช้ปิดได้เอง
โค้ดโอเพนซอร์สและแนวทางการใช้งาน
- โค้ดการปรับแต่ง FLUX ถูกเผยแพร่ที่ github.com/replicate/cog-flux
- Replicate เปิดซอร์สการปรับปรุง FLUX และกำลังร่วมมือกับ AI Compiler Study Group และนักวิจัย AI เพื่อสร้าง FLUX เวอร์ชันโอเพนซอร์สที่รวดเร็ว
- สิ่งที่ทำได้ด้วย FLUX มีดังนี้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
โมเดล text-to-image รู้สึกว่าไม่มีประสิทธิภาพเท่าไร สงสัยว่าเป็นไปได้ไหมและจะดีกว่าไหมถ้าแบ่งเป็นขั้น ๆ เช่น ข้อความ→scene graph→ภาพที่แบ่งส่วนเชิงความหมาย→ภาพสุดท้าย
แต่ละขั้นสามารถฝึกแยกกันและทำให้เป็นโมดูลได้ และน่าจะทำให้แก้ไขภาพได้ง่ายขึ้น แทนที่จะต้องทิ้งทั้งหมดแล้วสร้างใหม่ด้วยพรอมป์ต์ใหม่ แบบนั้นการสร้างภาพอย่าง “วัตถุ x อยู่ข้างวัตถุ y และมีคำว่า foo อยู่ด้านบน” น่าจะง่ายขึ้นมาก ส่วนสไตล์ศิลปะหรือระดับความสมจริงก็ให้โมเดลเรนเดอร์ขั้นสุดท้ายที่แยกจากการทำตามพรอมป์ต์รับผิดชอบไป
ให้ความรู้สึกคล้าย video2video หรือโมเดล img2img รายเฟรมที่ช่วยปรับปรุงเอาต์พุตของวิดีโอเกม
https://www.theverge.com/2021/5/12/22432945/intel-gta-v-real...
https://www.reddit.com/r/aivideo/comments/1fx6zdr/gta_iv_wit...
ถ้าฝึกโครงข่ายประสาทเทียมจาก a→b และอีกตัวจาก b→c ได้ ปกติแล้วมักแทนการประกอบกันนั้นด้วยโครงข่ายประสาทเทียมที่ง่ายกว่าซึ่งไปจาก a→c โดยตรงได้ เรื่องนี้สมเหตุสมผล เพราะระหว่างแปลง a เป็น b อาจมีข้อมูลบางอย่างสูญหายไป โครงข่ายเดียวจะรับประกันได้ว่าข้อมูลที่เกี่ยวข้องของ a ซึ่งจำเป็นต่อการสร้าง c ถูกส่งต่อขึ้นไปยังชั้นบน ๆ
วิธีสกัดคุณลักษณะแล้วให้เหตุผลแบบมนุษย์ฟังดูสมเหตุสมผล แต่สุดท้ายดูเหมือนว่าการขยาย pattern matching แบบล้วน ๆ ที่คอมพิวเตอร์ทำจะง่ายกว่า
การอธิบายทุกอย่างในคราวเดียวแล้วหวังว่าผลลัพธ์จะถูกใจนั้นไม่สมเหตุสมผลเลย
มันเริ่มจาก noise แล้วค่อย ๆ เพิ่มรายละเอียดมากขึ้นเรื่อย ๆ
ผมอยากได้ภาพถ่ายของ ขนฟูบนผิวลูกพีชสีเขียวน้ำเงินที่ถูกแช่แข็ง
ไลเซนส์ที่ไม่ให้ใช้เชิงพาณิชย์ไม่ใช่โอเพนซอร์ส เพราะถ้าเจ้าของลิขสิทธิ์เดิมหยุดดูแล คนอื่นก็สานต่อไม่ได้ หรือไม่ก็ต้องทำงานเหมือนทาสฟรี
หัวใจของโอเพนซอร์สอยู่ที่ว่าเมื่อผู้เขียนเดิมหยุดทำงานแล้ว อะไรยังเป็นไปได้บ้าง โอเพนซอร์สให้ไลเซนส์แก่ทุกคนในการพัฒนาต่อ และแน่นอนว่านั่นรวมถึงความสามารถในการรับเงินด้วย ถ้าขาดแง่มุมนี้ก็ไม่ควรเรียกว่าโอเพนซอร์ส
มีแค่ FLUX.1 [schnell] เท่านั้นที่เป็นโอเพนซอร์ส (Apache2) ส่วน FLUX.1 [dev] เป็นไลเซนส์ไม่ให้ใช้เชิงพาณิชย์
https://huggingface.co/ostris/OpenFLUX.1/
ถ้าอยากลองใช้ FLUX.schnell แบบง่าย ๆ ก็ใส่พรอมป์ต์ลงใน Pollinations URL ได้เลย
https://pollinations.ai/p/a_donkey_holding_a_sign_with_flux_...
https://pollinations.ai/p/a_donkey_holding_a_sign_with_flux_...
https://pollinations.ai/p/Minimalist%20and%20conceptual%20ar...
ความเร็วน่าทึ่งจริง ๆ ใช้แค่ GPU L40S สามใบก็สร้างภาพสำหรับผู้ใช้ได้ 8,000 ภาพทุก 30 นาที อนึ่ง ผมเป็นคนจากฝั่ง Pollinations
งานที่ชอบที่สุดที่ทำด้วย Flux คือการสร้าง ภาพพื้นหลังสีขาว สำหรับ Substack ข้อความที่ตามมาดูยอดเยี่ยม และยังสามารถสื่อบางอย่างทางสายตาผ่านงานศิลป์ได้ด้วย
[1]https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_...
ผมไม่รู้ว่าตัวเองมีจุดยืนที่ชัดเจนต่อเรื่องนี้ไหม เพราะเทคโนโลยีก็เดินหน้าต่อไปเรื่อย ๆ แต่ถึงอย่างนั้นก็น่าสนใจอยู่ดี
Flux เป็นหนึ่งในตัวเต็งในด้าน การทำตามพรอมป์ต์ ในบรรดาระบบสร้างภาพที่โฮสต์ในเครื่อง แต่ depth of field ตื้น ๆ ที่โผล่มาทุกที่นั้นเอาออกได้ยากจนน่าหงุดหงิด
เพิ่งยกเลิกสมาชิก Midjourney ไป สำหรับงานที่ผมอยากทำ มันรู้สึกล้าหลังเกินไป
ผมก็ลังเลอยู่นานเหมือนกันว่าจะใช้ Replicate กับ Ideogram ดีไหม
ยังไม่ถึงปีนับตั้งแต่ Emad ล่มสลาย แต่กลับมีโมเดลโอเพนซอร์สที่รันในเครื่องและดีกว่าออกมาแล้ว นี่มันบ้ามาก แสดงให้เห็นว่าคูเมืองของบริษัทพวกนี้ตื้นแค่ไหน และเพราะพวกเขาเผาเงินมหาศาล เราก็เลยได้ประโยชน์ไปด้วย
มีใครรู้ไหมว่า FLUX 1.1 ถูกฝึกด้วยอะไร? ผมลองสร้างเกือบ 100 ภาพด้วยพรอมป์ต์สองคำแบบ "ชื่อไฟล์กล้อง + คำง่าย ๆ" ในโมเดล pro แล้วทั้งหมดดูเหมือนรูปถ่ายจากมือถือของใครสักคน
ถ้าไม่มีข้อความอยู่ในภาพ ผมคงไม่ทันคิดด้วยซ้ำว่าเป็นภาพ AI บางครั้งก็ดูเหมือนรูปที่ถูกครอป มีรูปอาหาร โต๊ะกินข้าวรก ๆ และอพาร์ตเมนต์ออกมาเยอะมาก
เขาไป scrape โพสต์ Facebook สาธารณะ, Snapchat, Vkontakte มาหรือเปล่า? หรือซื้อภาพส่วนตัวจาก OneDrive หรือ Dropbox? ถ้าใส่ชื่อผู้หญิงเป็นคำที่สอง ฟิลเตอร์ NSFW แทบจะทำงานเสมอ ผมเลยเดาว่าในชุดฝึกน่าจะมีภาพที่ค่อนข้างเป็นส่วนตัวอยู่
อยากให้ลองดูเอง ระวังเพลงเล่นอัตโนมัติ
people: https://vm.tiktok.com/ZGdeXEhMg/
food and stuff: https://vm.tiktok.com/ZGdeXEBDK/
signs: https://vm.tiktok.com/ZGdeXoAgy/
[edit] เวลาดูภาพพวกนี้แล้วรู้สึกไม่สบายใจเหมือนกำลังดู รูปส่วนตัว ของใครสักคน พรอมป์ต์อย่าง "IMG00012.JPG forbid" ไม่มีข้อมูลชี้นำมากพอที่จะอธิบายภาพพวกนี้ได้ ดังนั้นทั้งหมดจึงน่าจะมาจากข้อมูลฝึกเท่านั้น
ผมไม่เชื่อว่า FLUX 1.1 pro ใช้ชุดฝึกที่แตกต่างโดยพื้นฐานจากโมเดลสาธารณะรุ่นก่อน ๆ เพียงแต่อาจอ่อนไหวต่อการสร้างภาพแบบนี้มากกว่า
ความรู้สึกมันแปลกจริง ๆ ดังนั้นขอถามอีกครั้งว่า มีข้อมูลเกี่ยวกับข้อมูลฝึกที่ใช้กับโมเดลเหล่านี้ไหม?
โพสต์ Reddit สองอันด้านล่างพูดถึงรูปแบบการตั้งชื่อไฟล์นี้อยู่บ้าง
DSC_0001-9999.JPG - ค่าเริ่มต้นของ Nikon
DSCF0001-9999.JPG - ค่าเริ่มต้นของ Fujifilm
IMG_0001-9999.JPG - ภาพทั่วไป
P0001-9999.JPG - ค่าเริ่มต้นของ Panasonic
CIMG0001-9999.JPG - ค่าเริ่มต้นของ Casio
PICT0001-9999.JPG - ค่าเริ่มต้นของ Sony
Photo_0001-9999.JPG - รูปภาพจาก Android
VID_0001-9999.mp4 - วิดีโอทั่วไป
นอกจากนี้ยังทำเวอร์ชัน ชื่อไฟล์ซอฟต์แวร์ 3D ไว้ด้วย ทดสอบทั้งหมดแล้ว และมีแค่บางส่วนที่ได้ผล
Autodesk Filmbox (FBX): my_model0001-9999.fbx
Stereolithography (STL): Model0001-9999.stl
3ds Max: 3ds_Scene0001-9999.max
Cinema 4D: Project0001-9999.c4d
Maya (ASCII): Animation0001-9999.ma
SketchUp: SketchUp0001-9999.skp
[1]: https://www.reddit.com/r/StableDiffusion/comments/1fxkt3p/co...
[2]: https://www.reddit.com/r/StableDiffusion/comments/1fxdm1n/i_...
น่าจะมีการปรับแต่งจำนวนมากที่ทำให้โมเดลชอบ ภาพสไตล์ flux พร้อมกับการชดเชยด้านข้อความอย่างแรง
ไม่ว่ากระบวนการที่ทำจะเป็นแบบไหน ก็ทำให้โมเดลไวเกินไปจนแค่มีคำเฉพาะบางคำเข้ามา ก็ส่งผลแรงกว่า LoRA แล้ว
รูปที่คุณให้ดูไม่ได้โดดเด่นเป็นพิเศษเมื่อมองในบริบททั้งหมด การออกนอกฟอร์แมตภาพเริ่มต้นเพื่อให้ได้ผลลัพธ์แบบสมจริงมาก ๆ ไม่ได้ต้องใช้ความพยายามมากนัก ส่วนตัวผมคิดว่าไม่ใช่ว่าพวกเขาพยายามซ่อนความสมจริงสุดขีด แต่ใกล้เคียงกับการตั้งค่าเริ่มต้นให้เป็นภาพแบบที่ผู้คนต้องการมากกว่า
ไม่รู้ว่าทำไมคอมเมนต์ที่วิจารณ์ Flux ถึงโดน downvote หรือ flag กันหมด มันค่อนข้างแปลก
เขาชี้ไปที่หน้าที่เปรียบเทียบแล้วอ้างว่าคุณภาพใกล้เคียงกัน แต่ก่อนอื่นเห็นได้ชัดมากว่ารายละเอียดน้อยกว่ามาก ที่แย่กว่านั้นคือ ตัวอย่าง "มุมมองด้านหน้า 3/4 ของ Corvette ปี 2017 สีเหลืองที่กำลังเข้าโค้งบนถนนบนภูเขา มองลงไปเห็นหุบเขาสีเขียว ในวันที่มีเมฆมาก"
โมเดลต้นฉบับแสดง ด้านหน้า แต่เวอร์ชันเร็วแสดง ด้านหลัง ของ Corvette เป็นภาพคนละแบบกันโดยสิ้นเชิง ไม่ใช่แค่คล้ายกัน แต่แตกต่างอย่างชัดเจน
https://flux-quality-comparison.vercel.app/
ทุกครั้งที่มีเธรดเกี่ยวกับโมเดลของ Meta ก็จะมีคนเข้ามาแก้กันเต็มไปหมดว่าไม่ใช่โอเพนซอร์สจริง ๆ
ถ้าอย่างนั้น FLUX ก็ควรทำให้ชัดเจนเหมือนกัน ในบรรดาโมเดลที่เผยแพร่ออกมา มีเพียง FLUX schnell ตัวเดียวที่เป็นโอเพนซอร์ส และเพราะมันถูก distill มาจากโมเดลกรรมสิทธิ์ จึงจัดการได้ยากกว่ามาก
น่าขันที่โมเดล Llama ของ Meta มีไลเซนส์ที่ผ่อนปรนกว่ามากในเชิงใช้งานจริง และยัง fine-tune ได้ง่ายมากด้วยเฟรมเวิร์กโอเพนซอร์สของ Meta เองหรือเครื่องมือ third-party หลายตัว ขณะที่ FLUX schnell ไม่ได้เป็นแบบนั้น
ผมคิดว่าคอมมูนิตี้โอเพนซอร์สควรรวมพลังกันรอบ OpenFLUX หรือโปรเจกต์คล้าย ๆ กันที่พยายามแก้ข้อจำกัดเทียมของ Schnell: https://huggingface.co/ostris/OpenFLUX.1
บอกว่า “เราเพิ่ม synchronous HTTP API ใหม่ที่ทำให้โมเดลภาพทั้งหมดของ Replicate เร็วขึ้นมาก” แล้วทำไมแค่เป็น synchronous ถึงเร็วขึ้นล่ะ? เลยกดเข้าไปดู
https://replicate.com/changelog/2024-10-09-synchronous-api
“ตอนนี้ client library และ API ทำให้การรันโมเดลเร็วขึ้นมาก โดยเฉพาะเมื่อมีไฟล์ถูกส่งกลับมา”
…ก็ขอบคุณนะ?
แค่แชร์ความอึดอัดในฐานะนักพัฒนา ถ้าอยากให้จำได้และอยากให้เราเป็นผู้สนับสนุน ก็อยากให้ อธิบายให้ดีกว่านี้อีกนิด