इमेज जनरेशन मॉडल FLUX तेज़ और open source है
(replicate.com)- Replicate पर FLUX चलाने की गति काफी तेज़ हो गई है, और optimization code भी公開 कर दिया गया है, जिससे implementation की जांच और custom extensions संभव हो गए हैं
- end-to-end measurement के आधार पर FLUX.1 [schnell] 512x512·4 steps में 0.29 सेकंड, और 1024x1024·4 steps में 0.72 सेकंड तक पहुंच गया
- speed improvement
flux-fp8-apiआधारित optimization,torch.compile, nightly Torch के तेज़ CuDNN attention kernel, और नए synchronous HTTP API के combination का परिणाम है flux-fp8-apiकी quantization output को थोड़ा बदलती है, लेकिन quality पर असर छोटा था; जरूरत होने पर इसेgo_fast=falseसे बंद किया जा सकता है- Replicate ने FLUX improvements को सार्वजनिक किया है, और AI Compiler Study Group व researchers के साथ मिलकर तेज़ open source FLUX बनाने की दिशा में सहयोग कर रहा है
FLUX चलाने की गति और public demo
- Replicate पर FLUX model execution और तेज़ हो गया है, और optimization implementation open source के रूप में जारी किया गया है
- US West से Python client का उपयोग करके मापी गई end-to-end speed इस प्रकार है
- 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] demo real-time input mode में उपलब्ध है, और पूरा app और source code भी देखा जा सकता है
Optimization तरीके और quality control
- Replicate के कई models community द्वारा contribute किए जाते हैं, लेकिन FLUX models को Black Forest Labs के साथ मिलकर maintain किया जाता है
- speed improvement के लिए दो काम लागू किए गए
- Alex Redden के flux-fp8-api को starting point बनाया गया, और
torch.compileव nightly Torch build के तेज़ CuDNN attention kernel का उपयोग किया गया - Replicate का नया synchronous HTTP API जोड़ा गया ताकि सभी image models और तेज़ चलें
- Alex Redden के flux-fp8-api को starting point बनाया गया, और
flux-fp8-apiकी quantization model output को थोड़ा बदलती है, लेकिन quality पर असर छोटा था- FLUX.1 [schnell] और FLUX.1 [dev] में हजारों prompt outputs की तुलना करने वाला tool है, और comparison results खुद देखे जा सकते हैं
go_fastinput कोfalseपर set करने से यह optimization disable किया जा सकता है
- अक्सर यह स्पष्ट नहीं होता कि model providers quality को प्रभावित करने वाले optimizations लागू करते हैं या नहीं, इसलिए Replicate optimization method को public करता है और users को इसे बंद करने की सुविधा देता है
Open source code और उपयोग के रास्ते
- FLUX optimization code github.com/replicate/cog-flux पर公開 किया गया है
- Replicate FLUX improvements को open source के रूप में public कर रहा है, और AI Compiler Study Group व AI researchers के साथ मिलकर तेज़ open source FLUX version बना रहा है
- FLUX से किए जा सकने वाले काम इस प्रकार हैं
1 टिप्पणियां
Hacker News की राय
टेक्स्ट-टू-इमेज मॉडल अक्षम लगते हैं। सोचता हूं कि टेक्स्ट→scene graph→semantically segmented image→अंतिम इमेज जैसे चरणों में बांटना संभव और बेहतर होगा या नहीं
हर चरण को अलग से train और modularize किया जा सकता है, और नए prompt output से पूरी चीज़ बदलने के बजाय इमेज को ज्यादा आसानी से edit किया जा सकेगा। तब "object x, object y के बगल में है, और उसके ऊपर foo लिखा है" जैसी generation कहीं आसान हो जाएगी, और art style या realism level को prompt adherence से अलग अंतिम rendering model पर छोड़ा जा सकेगा
यह वीडियो गेम output को बेहतर करने वाले video2video या frame-by-frame img2img model जैसा लगता है
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 जाने वाला neural network और b→c जाने वाला neural network train किया जा सकता है, तो आम तौर पर उस combination को a→c सीधे जाने वाले एक सरल neural network से replace किया जा सकता है। यह समझ में आता है, क्योंकि a को b में बदलते समय कुछ information खो सकती है। एक single neural network यह सुनिश्चित करता है कि c बनाने के लिए जरूरी a की relevant information higher layers तक पहुंचे
features extract करके इंसानों की तरह reasoning करना plausible लगता है, लेकिन अंत में कंप्यूटर द्वारा purely की जाने वाली pattern matching को scale करना आसान निकला
हर चीज़ को एक साथ describe करना और उम्मीद करना कि result पसंद आ जाए, यह समझ में नहीं आता
वे noise से शुरू करते हैं और धीरे-धीरे ज्यादा details जोड़ते हैं
मुझे जमी हुई teal-colored peach fuzz की photo चाहिए
non-commercial license open source नहीं है। क्योंकि अगर original copyright holder maintenance बंद कर दे, तो कोई और उसे आगे नहीं बढ़ा सकता, या उसे मुफ्त के गुलाम की तरह काम करना पड़ेगा
open source का core इस बात में है कि original author के काम बंद करने पर क्या संभव है। open source किसी को भी development जारी रखने का license देता है, और इसमें स्वाभाविक रूप से पैसे लेने की क्षमता भी शामिल है। अगर यह पहलू नहीं है, तो उसे open source नहीं कहना चाहिए
सिर्फ FLUX.1 [schnell] open source (Apache2) है, और FLUX.1 [dev] non-commercial license है
https://huggingface.co/ostris/OpenFLUX.1/
अगर FLUX.schnell को आसानी से try करना चाहते हैं, तो prompt को 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...
speed सच में हैरान करने वाली है। सिर्फ तीन L40S GPU से users के लिए हर 30 मिनट में 8000 images generate करते हैं। संदर्भ के लिए, मैं Pollinations की तरफ से हूं
Flux के साथ मेरा सबसे पसंदीदा काम Substack के लिए सफेद बैकग्राउंड वाली इमेज बनाना है। उसके बाद आने वाला टेक्स्ट शानदार होता है, और artwork के जरिए visually भी कुछ convey किया जा सकता है
[1]https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_...
इस पर मेरी कोई साफ़ राय है या नहीं, पता नहीं। तकनीक तो आगे बढ़ती ही रहेगी। फिर भी यह दिलचस्प है
Flux local hosting generation systems में prompt adherence के लिहाज़ से सबसे आगे के दावेदारों में है, लेकिन हर जगह दिखने वाली shallow depth of field को हटाना चिढ़ पैदा करने जितना मुश्किल है
मैंने अभी Midjourney subscription cancel कर दिया। जो काम मैं करना चाहता हूँ, उसके हिसाब से यह बहुत पीछे लगता है
Replicate और Ideogram इस्तेमाल करने पर भी काफी देर तक सोचा
Emad के पतन को अभी एक साल भी नहीं हुआ, और local open-source होते हुए भी बेहतर model आ गया—यह पागलपन है। इससे दिखता है कि इन कंपनियों की moat कितनी उथली है, और उनके भारी cash burn की वजह से फायदा हमें ही मिल रहा है
FLUX 1.1 को किस चीज़ पर train किया गया था, किसी को पता है? pro मॉडल में "कैमरा फ़ाइलनाम + छोटा-सा शब्द" वाले दो-शब्द prompt से लगभग 100 images generate किए, और सभी किसी के फोन की photos जैसी दिखीं
अगर text न होता तो मैं सोचता भी नहीं कि ये AI images हैं। कभी-कभी ये cropped photos जैसी लगती हैं, और food photos, बिखरी हुई dining table और apartments बहुत दिखते हैं
क्या इन्होंने public Facebook posts, Snapchat, Vkontakte scrape किए हैं? या OneDrive या Dropbox की private images खरीदी हैं? दूसरे शब्द के रूप में किसी महिला का नाम डालने पर लगभग हमेशा NSFW filter trigger हो जाता है। इसलिए मेरा अनुमान है कि training set में काफी private images शामिल हैं
खुद देखकर देखें। autoplay music से सावधान
people: https://vm.tiktok.com/ZGdeXEhMg/
food and stuff: https://vm.tiktok.com/ZGdeXEBDK/
signs: https://vm.tiktok.com/ZGdeXoAgy/
[edit] इन images को देखते हुए ऐसा असहज लगता है जैसे किसी की private photos देख रहे हों। "IMG00012.JPG forbid" जैसे prompt में ऐसी images को explain करने लायक पर्याप्त guiding information नहीं है, इसलिए ये सब training data से ही आया होगा
मुझे नहीं लगता कि FLUX 1.1 pro ने पिछले public models से fundamentally अलग training set इस्तेमाल किया है। बस यह ऐसी generations के लिए ज़्यादा vulnerable हो सकता है
एहसास सच में बहुत अजीब है। तो फिर से पूछता हूं, इन models में इस्तेमाल training data के बारे में कोई जानकारी है?
नीचे की दो Reddit posts इस filename convention पर थोड़ा चर्चा करती हैं
DSC_0001-9999.JPG - Nikon default
DSCF0001-9999.JPG - Fujifilm default
IMG_0001-9999.JPG - सामान्य image
P0001-9999.JPG - Panasonic default
CIMG0001-9999.JPG - Casio default
PICT0001-9999.JPG - Sony default
Photo_0001-9999.JPG - Android photo
VID_0001-9999.mp4 - सामान्य video
इसके अलावा मैंने 3D software filenames वाला version भी बनाया। सब test किए, और सिर्फ कुछ पर असर हुआ
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_...
text के लिए strong correction के साथ, संभव है कि उन्होंने मॉडल को flux-style images पसंद करवाने के लिए काफी tuning की हो
उन्होंने जो भी process अपनाया हो, उसका नतीजा यह है कि model कुछ खास terms आते ही LoRA से भी ज़्यादा strong असर दिखाने जितना hypersensitive हो गया है
आपने जो photos दिखाईं, वे पूरे context में खास तौर पर उल्लेखनीय नहीं हैं। default image format से हटकर hyper-realistic results पाने में बहुत मेहनत नहीं लगती। मेरी निजी राय में वे hyper-realism छिपाने की कोशिश नहीं कर रहे, बल्कि defaults को उन images के हिसाब से set कर रहे हैं जो लोग चाहते हैं
समझ नहीं आता कि Flux पर critical comments सारे downvote या flag क्यों हो रहे हैं, और यह काफी अजीब है
समान quality होने का दावा करते हुए comparison page की ओर इशारा किया गया है, लेकिन सबसे पहले यह बहुत साफ है कि details काफी कम हैं। उससे भी खराब example है: "बादलों भरे दिन में, हरी घाटी की ओर दिखते पहाड़ी रास्ते के मोड़ पर मुड़ती पीली 2017 Corvette का 3/4 front view"
original model front दिखाता है, जबकि speed version Corvette का rear दिखाता है। यह पूरी तरह अलग picture है। similar नहीं, बल्कि साफ तौर पर अलग है
https://flux-quality-comparison.vercel.app/
हर बार Meta model thread आते ही corrections की बाढ़ आ जाती है कि यह सचमुच open source नहीं है
तो FLUX को लेकर भी साफ करना चाहिए। public models में open source सिर्फ FLUX schnell है, और क्योंकि यह proprietary model से distilled है, इसे handle करना कहीं ज्यादा मुश्किल है
विडंबना यह है कि practical नज़रिए से Meta के Llama models की license काफी ज्यादा permissive है, और Meta के अपने open source framework या कई third-party tools से fine-tune करना भी बहुत आसान है। जबकि FLUX schnell के साथ ऐसा नहीं है
मेरा मानना है कि open source community को Schnell की artificial restrictions ठीक करने के लिए OpenFLUX या ऐसे ही projects के आसपास ताकत जुटानी चाहिए: https://huggingface.co/ostris/OpenFLUX.1
कहा गया है कि “Replicate ने एक नया synchronous HTTP API जोड़ा है, जो उसके सभी image models को काफी तेज़ बना देता है,” लेकिन synchronous होने से यह तेज़ कैसे हो जाता है? क्लिक करके देखा
https://replicate.com/changelog/2024-10-09-synchronous-api
“अब client libraries और API model runs को काफी तेज़ बनाते हैं, खासकर जब files return होती हैं”
…धन्यवाद तो है, लेकिन?
एक developer के तौर पर अपनी झुंझलाहट साझा कर रहा हूँ। अगर आप चाहते हैं कि यह याद रहे और हम supporters बनें, तो थोड़ा बेहतर समझाएँ