画像生成モデル FLUX は高速でオープンソース
(replicate.com)- Replicateで FLUX の実行速度 が大幅に向上し、最適化コードまで公開されたことで、実装の確認やカスタム拡張が可能になった
- エンドツーエンド測定基準で FLUX.1 [schnell] は 512x512・4 steps で 0.29秒、1024x1024・4 steps で 0.72秒まで短縮された
- 速度改善は
flux-fp8-apiベースの最適化、torch.compile、nightly Torch の高速な CuDNN attention カーネル、新しい同期 HTTP API を組み合わせた結果 flux-fp8-apiの 量子化 は出力をわずかに変えるが、品質への影響は小さく、必要ならgo_fast=falseで無効化できる- Replicate は FLUX の改善内容を公開し、AI Compiler Study Group や研究者たちとともに 高速なオープンソース FLUX を作る方向で協力している
FLUX の実行速度と公開デモ
- Replicate で FLUX モデルの実行がさらに高速化され、最適化実装は オープンソース として公開された
- 米国西部で 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 つの取り組みが適用された
- Alex Redden の flux-fp8-api を出発点とし、
torch.compileと nightly Torch ビルドの高速な CuDNN attention カーネル を使用 - Replicate の新しい 同期 HTTP API を追加し、すべての画像モデルがより高速に動作するようにした
- Alex Redden の flux-fp8-api を出発点とし、
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 のコメント
テキストから画像へのモデルは非効率に感じる。テキスト→シーングラフ→意味的にセグメント化された画像→最終画像のように段階を分けることは可能で、そのほうが良いのではないかと思う
各段階を別々に学習してモジュール化できるし、新しいプロンプトの出力で丸ごと作り直す代わりに、画像をもっと簡単に編集できそうだ。そうすれば「オブジェクト 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 に変換する過程で失われる情報があり得るので筋が通る。単一のニューラルネットなら、c を作るのに必要な a の関連情報が上位層へ渡ることを保証できる
特徴を抽出して人間のように推論するやり方はもっともらしいが、結局のところ、コンピュータが純粋に行うパターンマッチングを拡張するほうが簡単だったように見える
すべてを一度に説明して、結果が気に入ることを願うやり方は筋が通らない
ノイズから始めて、徐々により多くのディテールを追加していく
私は凍りついた青緑色の桃の産毛の写真が欲しい
非商用ライセンスはオープンソースではない。元の著作権者がメンテナンスをやめた場合、他の人が引き継げないか、ただ働きの奴隷のように働かなければならないからだ
オープンソースの核心は、元の作者が作業をやめたときに何が可能かにある。オープンソースは誰にでも開発を続けるライセンスを与え、それには当然、対価を得られる能力も含まれる。この側面が抜けているなら、オープンソースと呼ぶべきではない
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...
速度は本当に驚異的だ。L40S GPU 3枚だけで、ユーザー向け画像を30分ごとに8000枚生成している。ちなみに私は Pollinations 側の人間だ
Fluxで一番気に入っている作業は、Substack用の白背景画像を作ること。後に続くテキストが優れていて、アートワークを通じて視覚的にも何かを伝えられる
[1]https://substackcdn.com/image/fetch/w_1456,c_limit,f_webp,q_...
これについて明確な立場が自分にあるのかは分からない。技術は進み続けるから。それでも興味深くはある
Fluxはローカルホスティングの生成システムの中では、プロンプト遵守の面で最有力候補だが、どこにでも現れる浅い被写界深度が、いら立つほど取り除きにくい
たった今Midjourneyのサブスクリプションを解約した。自分がやろうとしている作業の基準では、かなり遅れを取っている感じがする
ReplicateとIdeogramを使うこともかなり悩んだ
Emadが失脚してからまだ1年も経っていないのに、ローカルのオープンソースで、より優れたモデルが出てきたのはすごいことだ。こうした企業の堀がどれほど浅いかを示しているし、彼らが莫大な現金を燃やしてくれるおかげで、こちらは恩恵を受けているわけだ
FLUX 1.1 が何で学習されたのか知っている人はいる? pro モデルで「カメラのファイル名 + 簡単な単語」という2語のプロンプトでほぼ100枚生成したところ、全部が誰かのスマホ写真のように見えた。
テキストがなければ、AI画像だとは考えもしなかったレベル。時々、切り取られた写真のように見えたり、食べ物の写真、散らかった食卓やアパートが多く出てきたりする。
公開 Facebook 投稿、Snapchat、Vkontakte をスクレイピングしたのか? OneDrive や Dropbox の個人画像を買ったのか? 2つ目の単語に女性名を入れると、ほぼ必ず 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 投稿2つが、このファイル名の慣例について少し扱っている。
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 への批判的なコメントが全部ダウンボートされたりフラグを付けられたりするのか分からないし、かなり変だ。
同程度の品質だと主張して比較ページを示しているが、まずディテールがはるかに少ないのは非常に明らか。さらに悪いのは「曇りの日、緑の谷を見下ろす山道のカーブを曲がる黄色の2017年式 Corvette の3/4前面ビュー」の例だ。
元のモデルは前面を見せているのに、速度版は Corvette の後面を見せている。まったく別の絵だ。似ているのではなく、際立って違う。
https://flux-quality-comparison.vercel.app/
Meta モデルのスレッドが上がるたびに、本物のオープンソースではないという訂正が大量に来る。
それなら FLUX についても明確にすべきだ。公開されているモデルのうちオープンソースなのは FLUX schnell だけで、しかもプロプライエタリモデルから蒸留されたものなので、扱いがはるかに難しい。
皮肉なことに、Meta の Llama モデルは実用上の観点でははるかに許容的なライセンスで、Meta 自身のオープンソースフレームワークや多数のサードパーティツールでファインチューニングするのも非常に簡単だ。一方で FLUX schnell はそうではない。
オープンソースコミュニティは、Schnell の人為的な制約を修正しようとする OpenFLUX や類似プロジェクトを中心に力を結集すべきだと思う: https://huggingface.co/ostris/OpenFLUX.1
「Replicateのすべての画像モデルをずっと高速にする新しい同期HTTP APIを追加した」とありますが、なぜ同期だと速いのでしょう?クリックして見に行きました
https://replicate.com/changelog/2024-10-09-synchronous-api
「クライアントライブラリとAPIがモデル実行をずっと高速にするようになりました。特にファイルが返される場合にそうです」
…ありがたいのですが?
開発者としてのもどかしさを共有しているだけです。記憶に残り、私たちが支持者になることを望むなら、もう少しうまく説明してほしいです