3 पॉइंट द्वारा GN⁺ 2024-10-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 और तेज़ चलें
  • flux-fp8-api की quantization model output को थोड़ा बदलती है, लेकिन quality पर असर छोटा था
    • FLUX.1 [schnell] और FLUX.1 [dev] में हजारों prompt outputs की तुलना करने वाला tool है, और comparison results खुद देखे जा सकते हैं
    • go_fast input को false पर set करने से यह optimization disable किया जा सकता है
  • अक्सर यह स्पष्ट नहीं होता कि model providers quality को प्रभावित करने वाले optimizations लागू करते हैं या नहीं, इसलिए Replicate optimization method को public करता है और users को इसे बंद करने की सुविधा देता है

Open source code और उपयोग के रास्ते

1 टिप्पणियां

 
GN⁺ 2024-10-15
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...

    • आम तौर पर कई बार दिख चुका है कि यह approach neural network-based models में लगातार fail होती है
      अगर 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 तक पहुंचे
    • लगता है कि यह मूल रूप से वही approach है जो image recognition जैसे क्षेत्रों में लंबे समय तक fail होती रही, और आखिर में बड़े, गहरे matrices से brute-force करके हल हुई
      features extract करके इंसानों की तरह reasoning करना plausible लगता है, लेकिन अंत में कंप्यूटर द्वारा purely की जाने वाली pattern matching को scale करना आसान निकला
    • अच्छा होगा अगर AI art modular approach की ओर जाए। जैसे characters, background, style, camera movement को अलग-अलग चरणों में generate करना
      हर चीज़ को एक साथ describe करना और उम्मीद करना कि result पसंद आ जाए, यह समझ में नहीं आता
    • diffusion models मूल रूप से यही करते हैं। बस "scene graph" और "पूरी image" के बीच कोई साफ boundary नहीं होती
      वे noise से शुरू करते हैं और धीरे-धीरे ज्यादा details जोड़ते हैं
    • इसमें यह गलत assumption है कि image objects का collection होती है। image जरूरी नहीं कि ऐसी हो
      मुझे जमी हुई 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 है

    • FLUX.1-schnell model को fine-tune करके और distillation हटाकर बनाया गया OpenFLUX.1 है। OpenFLUX.1 Apache 2.0 license के तहत है
      https://huggingface.co/ostris/OpenFLUX.1/
    • क्या open source का मतलब यह नहीं कि source दिखता है और inspect किया जा सकता है? source देखने देने वाले closed source apps के बारे में मुझे जानकारी नहीं है
  • अगर 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_...

    • मुझे लगता है यह उदाहरण अच्छी तरह दिखाता है कि कलाकार क्यों नाराज़ हैं। LLM साफ़ तौर पर किसी खास कलाकार की unique style की नकल कर रहा है, और नतीजा यह है कि उस कलाकार के paid काम छिन जाते हैं
      इस पर मेरी कोई साफ़ राय है या नहीं, पता नहीं। तकनीक तो आगे बढ़ती ही रहेगी। फिर भी यह दिलचस्प है
    • क्या आप prompt शेयर कर सकते हैं?
  • Flux local hosting generation systems में prompt adherence के लिहाज़ से सबसे आगे के दावेदारों में है, लेकिन हर जगह दिखने वाली shallow depth of field को हटाना चिढ़ पैदा करने जितना मुश्किल है

    • शायद यह artistic images के लिए optimized है?
  • मैंने अभी Midjourney subscription cancel कर दिया। जो काम मैं करना चाहता हूँ, उसके हिसाब से यह बहुत पीछे लगता है
    Replicate और Ideogram इस्तेमाल करने पर भी काफी देर तक सोचा

    • हाल में मुझे भी शक होने लगा है कि novelty से आगे इसमें value है या नहीं। जानना चाहूँगा कि आप किसी दूसरे tool पर शिफ्ट हुए हैं, या ऐसे tools में अब value महसूस नहीं होती
    • Midjourney का अपना एक खास look है, और यह हाथों, पैरों और अक्षरों में कमजोर है, इसलिए मैंने इसे कभी इस्तेमाल नहीं किया
      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 के बारे में कोई जानकारी है?

    • यह सिर्फ flux तक सीमित नहीं है; Stable Diffusion समेत दूसरे models में भी आप यही कर सकते हैं
      नीचे की दो 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_...
    • मुझे लगता है कि इसकी वजह raw training dataset होना बहुत कम संभावना है। मैंने उलटी समस्या देखी। "background" token prompt में कैसे भी इस्तेमाल हो, लगभग पूरी image में strong blur introduce कर देता था, लेकिन दिलचस्प बात यह थी कि prompt interpretation कहीं बेहतर हो गई थी
      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 कर रहे हैं जो लोग चाहते हैं
    • मेरे साथ भी यही हुआ और यह सच में अजीब था। शुरुआत में अच्छे results मिले, फिर बाद में खराब हो गया
      समझ नहीं आता कि 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 बनें, तो थोड़ा बेहतर समझाएँ

    • दूसरे paragraph में सचमुच वजह समझाई गई है। file data पाने के लिए दूसरा request करने वाली URL return करने के बजाय, response के अंदर असली file data return होता है
    • सही है। यह हिस्सा स्पष्ट नहीं था। पहले क्या करना पड़ता था, यह समझाने वाला एक और paragraph जोड़ दिया गया है