AIツール 101

Flux by Black Forest Labs:テキストから画像を生成する次世代モデルの登場。Midjourneyより優れているのか?

mm
Unite.AI を Google の優先ソースに追加
Black Forest Labs Open-Source FLUX.1: A 12 Billion Parameter Transformer Capable of Generating Images

Black Forest Labsは、革新的なStable Diffusionモデルを開発したチームであり、Fluxをリリースしました。Fluxは、AI生成画像の能力を再定義することを約束する最先端のモデルです。しかし、Fluxは本当にこの分野で飛躍を遂げているのでしょうか。業界を牽引するMidjourneyと比べてどうなのでしょうか。Fluxの世界に深く潜り、AI生成アートとメディアの未来を形作る可能性を探りましょう。

Black Forest Labsの誕生

Black Forest Labsは、ただのAIスタートアップではありません。基礎的な生成的なAIモデルを開発した才能の宝庫です。チームには、VQGAN、Latent Diffusion、Stable Diffusionモデルファミリーのクリエイターが含まれています。これらのモデルは、AIアートの世界を席捲しました。

Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

Andreessen Horowitzが主導する3100万ドルのシリーズシード資金調達と、著名なエンジェル投資家の支援を受け、Black Forest Labsは、生成的なAI研究の最前線に立っています。彼らの使命は明確です。画像や動画などのメディア用に、最先端の生成的なディープラーニングモデルを開発し、進化させ、創造性、効率性、多様性の境界を拡大することです。

Fluxモデルファミリーの紹介

Black Forest Labsは、FLUX.1というテキストから画像を生成するモデルを導入しました。FLUX.1は、画像の詳細、プロンプトの従順性、スタイルの多様性、シーンの複雑性で新しい基準を設定することを目指しています。Fluxファミリーには、3つのバリアントがあり、それぞれが異なるユースケースとアクセシビリティレベルに合わせて調整されています。

  1. FLUX.1 [pro]:フラグシップモデルで、画像生成のトップレベルパフォーマンスを提供します。プロンプトの従順性、視覚的な品質、画像の詳細、出力の多様性が優れています。APIを通じて提供され、プロフェッショナルおよびエンタープライズユースのためのプレミアムオプションとして位置付けられています。
  2. FLUX.1 [dev]:非商用アプリケーション用のオープンウェイト、ガイダンス抽出モデルです。プロバージョンと同等の品質とプロンプトの従順性を実現しながら、より効率的です。
  3. FLUX.1 [schnell]:スイートの中で最も速いモデルで、ローカル開発とパーソナルユースに最適化されています。Apache 2.0ライセンスの下でオープンに提供されており、幅広いアプリケーションと実験に利用可能です。

FLUX.1の機能を示すために、いくつかのユニークでクリエイティブなプロンプト例を提供します。これらのプロンプトは、テキストのレンダリング、複雑なシーンの構成、詳細なオブジェクトの作成におけるFLUX.1の強みを強調します。

  • アーティスティックスタイルブレンドとテキスト:「ビンセント・ヴァン・ゴッホの肖像を彼のスタイルで作成し、ひげを『星空』の文字で 書かれたカursiveで 書かれた文字に置き換えてください。」
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • ダイナミックアクションシーンとテキスト統合:「コミックブックのページを破り抜けて飛び出すスーパーヒーロー。アクションラインと音響効果は、ヒーローの名前『FLUX FORCE』をボールドでダイナミックなタイポグラフィーで形成する必要があります。」
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

  • サレンダルコンセプトと精密なオブジェクト配置:「窓の日光の下で、茶色と白の猫。目と色のテクスチャにシャープな焦点を当て、自然な照明で本物的な目に光りを与えます。」
Black Forest Labs Open-Source FLUX.1

Black Forest Labs Open-Source FLUX.1

これらのプロンプトは、FLUX.1のテキストレンダリング、複雑なシーンの構成、詳細なオブジェクト作成における強みを示すために設計されています。また、クリエイティブでユニークな画像生成の可能性も示しています。

Fluxの背後にある技術革新

Fluxの印象的な機能の背後には、先駆的な技術革新が存在します。これらは、Fluxをその前身や同時代のモデルと区別するものです。

トランスフォーマー駆動のフロー モデルをスケールアップ

すべての公開FLUX.1モデルは、12億パラメータに及ぶハイブリッドアーキテクチャを備えています。これは、多くの既存のテキストから画像を生成するモデルと比べて、モデルサイズと複雑性が大幅に増加したことを示しています。

Fluxモデルは、フローマッチングを取り入れることで、以前の最先端の拡散モデルを改良しています。フローマッチングは、生成モデルをトレーニングするためのより柔軟で概念的に単純な方法を提供し、拡散モデルはこのアプローチの中で特別なケースとして位置付けられます。

Black Forest Labsは、ロータリーポジショナルエンベッディングと並列アテンションレイヤーを統合することで、モデルパフォーマンスとハードウェア効率を向上させました。これらのテクニックにより、画像内の空間関係をより適切に処理し、大規模なデータをより効率的に処理できます。

アーキテクチャの革新

Fluxのパフォーマンスに貢献する主要なアーキテクチャ要素を詳しく見てみましょう。

  1. ハイブリッドアーキテクチャ:マルチモーダルと並列拡散トランスフォーマーブロックを組み合わせることで、Fluxはテキストと視覚情報の両方を効果的に処理でき、プロンプトと生成された画像の間の整合性が向上します。
  2. フローマッチング:このアプローチにより、生成モデルをトレーニングするためのより柔軟で効率的なフレームワークが提供され、拡散モデルと他の生成技術を包含する統一されたフレームワークとなり、より強固で多様な画像生成につながります。
  3. ロータリーポジショナルエンベッディング:これらのエンベッディングにより、モデルは画像内の空間関係をより適切に理解し、より一貫性のある視覚的なコンテンツを生成できます。
  4. 並列アテンションレイヤー:このテクニックにより、アテンションメカニズムの処理がより効率化され、テキストプロンプトと生成された画像の両方で重要な要素間の関係を理解することができます。
  5. 12Bパラメータへのスケーリング:モデルの規模は、より複雑なパターンと関係性を捉え、より高品質で多様な出力を生成する可能性を高めます。

Fluxのベンチマーク:画像合成の新しい基準

https://blackforestlabs.ai/announcing-black-forest-labs/

https://blackforestlabs.ai/announcing-black-forest-labs/

Black Forest Labsは、FLUX.1が画像合成の新しい基準を設定することを主張しています。Midjourney v6.0、DALL·E 3 (HD)、SD3-Ultraを超える多くの重要な側面で優れています。

  1. 視覚的な品質:Fluxは、より高品質の画像を生成することを目指しています。よりリアルな詳細、より美しい全体的な美しさが特徴です。
  2. プロンプトの従順性:モデルは、与えられたテキストプロンプトに従順性を高めることを目指しています。生成された画像は、ユーザーの意図をより正確に反映するようになります。
  3. サイズ/アスペクト比の多様性:Fluxは、0.1から2.0メガピクセルまでの幅広いアスペクト比と解像度をサポートし、さまざまなユースケースに柔軟に対応できます。
  4. タイポグラフィー:モデルは、画像内のテキストの生成とレンダリングを改良しています。これは、多くのテキストから画像を生成するモデルで共通の課題です。
  5. 出力の多様性:Fluxは、事前トレーニングからの全出力の多様性を保存するように特にファインチューンされています。より幅広い創造的可能性を提供します。

Flux vs. Midjourney:比較分析

https://blackforestlabs.ai/announcing-black-forest-labs/

さて、燃える疑問に答えましょう。Fluxは本当にMidjourneyより優れているのでしょうか?これを判断するには、複数の要素を考慮する必要があります。

画像の品質と美しさ

FluxとMidjourneyは両方とも、高品質で視覚的に美しい画像を生成することで知られています。Midjourneyは、芸術的な才能と、独自の美しさを持つ画像を生成する能力で賞賛されてきました。Fluxは、先進的なアーキテクチャと大きなパラメータ数を活かし、同じレベルの品質を達成または超えることを目指しています。

Fluxからの初期の例は、印象的な詳細、リアルなテクスチャ、強い照明と構成の把握を示しています。しかし、芸術は主観的なものであるため、この分野で明確な優位性を主張することは難しいです。ユーザーは、各モデルが異なるスタイルや画像の種類で強みを持っていることを発見するかもしれません。

プロンプトの従順性

FluxがMidjourneyを上回る可能性のあるもう一つの分野は、プロンプトの従順性です。Black Forest Labsは、プロンプトの解釈と実行の精度を高めることに重点を置いています。これにより、生成された画像はユーザーの意図をより正確に反映することになります。特に複雑または繊細なリクエストの場合に効果的です。

Midjourneyは、プロンプトに創造的な自由度を取ることがあるため、美しいが予期せぬ結果になることがあります。Fluxのアプローチは、生成された出力に対するより正確な制御を提供する可能性があります。

速度と効率

FLUX.1 [schnell]の導入により、Black Forest LabsはMidjourneyの重要な利点である速度に挑戦しています。Midjourneyは、迅速な生成時間で知られており、イテラティブな創造的なプロセスで人気があります。Fluxが品質を維持しながらこの速度に匹敵または超えることができれば、重要な売り文句となるでしょう。

アクセシビリティと使いやすさ

Midjourneyは、ユーザーフレンドリーなインターフェースとDiscordとの統合により人気を博しています。Fluxは新しいモデルであるため、同等のアクセシブルなインターフェースを開発する時間が必要かもしれません。しかし、FLUX.1 [schnell]と[dev]モデルのオープンソース性により、コミュニティによって開発された幅広いツールと統合が可能になり、カスタマイズと柔軟性の面でMidjourneyを上回る可能性があります。

技術的能力

Fluxの先進的なアーキテクチャと大きなパラメータ数は、複雑なプロンプトを理解し、複雑な詳細を生成する能力が高まっていることを示唆しています。フローマッチングアプローチとハイブリッドアーキテクチャにより、Fluxはより幅広いタスクを処理し、より多様な出力を生成できる可能性があります。

倫理的配慮とバイアス軽減

FluxとMidjourneyは、AI生成画像の課題に直面しています。バイアス、誤情報、著作権問題などです。Black Forest Labsの透明性への重点と、モデルを広くアクセス可能にする取り組みにより、コミュニティの監視とこれらの分野での改善が速まる可能性があります。

コードの実装とデプロイ

Diffusersを使用したFlux

Fluxモデルは、Hugging Face Diffusersライブラリを使用して既存のワークフローに簡単に統合できます。ここでは、FLUX.1 [dev]またはFLUX.1 [schnell]をDiffusersで使用するためのステップバイステップガイドを示します。

  1. まず、Diffusersライブラリをインストールまたはアップグレードします。
!pip install git+https://github.com/huggingface/diffusers.git
  1. 次に、FluxPipelineを使用してモデルを実行できます。
import torch
from diffusers import FluxPipeline

<p># モデルをロード
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16)</p>

<p># CPUオフロードを有効にしてVRAMを節約する(オプション)
pipe.enable_model_cpu_offload()</p>

<p># 画像を生成
prompt = "猫が『ハローワールド』と書かれたサインを掲げている"
image = pipe(
prompt,
height=1024,
width=1024,
guidance_scale=3.5,
output_type="pil",
num_inference_steps=50,
max_sequence_length=512,
generator=torch.Generator("cpu").manual_seed(0)
).images[0]</p>

<p># 生成された画像を保存
image.save("flux-dev.png")

このコードスニペットは、FLUX.1 [dev]モデルをロードし、テキストプロンプトから画像を生成し、結果を保存する方法を示しています。

LitServeを使用したFluxのデプロイ

FluxをスケーラブルなAPIサービスとしてデプロイしたい場合は、Black Forest LabsはLitServeを使用した例を提供しています。ここでは、デプロイプロセスを詳しく説明します。

モデルサーバーの定義:

from io import BytesIO
from fastapi import Response
import torch
import time
import litserve as ls
from optimum.quanto import freeze, qfloat8, quantize
from diffusers import FlowMatchEulerDiscreteScheduler, AutoencoderKL
from diffusers.models.transformers.transformer_flux import FluxTransformer2DModel
from diffusers.pipelines.flux.pipeline_flux import FluxPipeline
from transformers import CLIPTextModel, CLIPTokenizer, T5EncoderModel, T5TokenizerFast

<p>class FluxLitAPI(ls.LitAPI):
def setup(self, device):
# モデルコンポーネントのロード
scheduler = FlowMatchEulerDiscreteScheduler.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="scheduler")
text_encoder = CLIPTextModel.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14", torch_dtype=torch.bfloat16)
text_encoder_2 = T5EncoderModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="text_encoder_2", torch_dtype=torch.bfloat16)
tokenizer_2 = T5TokenizerFast.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="tokenizer_2", torch_dtype=torch.bfloat16)
vae = AutoencoderKL.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="vae", torch_dtype=torch.bfloat16)
transformer = FluxTransformer2DModel.from_pretrained("black-forest-labs/FLUX.1-schnell", subfolder="transformer", torch_dtype=torch.bfloat16)</p>

<p># 8ビット精度への量子化
quantize(transformer, weights=qfloat8)
freeze(transformer)
quantize(text_encoder_2, weights=qfloat8)
freeze(text_encoder_2)</p>

<p># Fluxパイプラインの初期化
self.pipe = FluxPipeline(
scheduler=scheduler,
text_encoder=text_encoder,
tokenizer=tokenizer,
text_encoder_2=None,
tokenizer_2=tokenizer_2,
vae=vae,
transformer=None,
)
self.pipe.text_encoder_2 = text_encoder_2
self.pipe.transformer = transformer
self.pipe.enable_model_cpu_offload()</p>

<p>def decode_request(self, request):
return request["prompt"]</p>

<p>def predict(self, prompt):
image = self.pipe(
prompt=prompt,
width=1024,
height=1024,
num_inference_steps=4,
generator=torch.Generator().manual_seed(int(time.time())),
guidance_scale=3.5,
).images[0]
return image</p>

<p>def encode_response(self, image):
buffered = BytesIO()
image.save(buffered, format="PNG")
return Response(content=buffered.getvalue(), headers={"Content-Type": "image/png"})</p>

<p># サーバーの起動
if __name__ == "__main__":
api = FluxLitAPI()
server = ls.LitServer(api, timeout=False)
server.run(port=8000)</p>

このコードは、LitServeを使用したFluxのAPIサーバーの設定、リクエストの処理、画像の生成、レスポンスのエンコードを示しています。

サーバーの起動:

&lt;/pre&gt;
python server.py
&lt;pre&gt;

モデルAPIの使用:

クライアントスクリプトを使用してAPIをテストできます。

import requests
import json

<p>url = "http://localhost:8000/predict"
prompt = "ロボットが椅子に座って絵を描いている、ポップアートの未来的な都市風景、絵のタイトルは『FLUX FORCE』"</p>

<p>response = requests.post(url, json={"prompt": prompt})
with open("generated_image.png", "wb") as f:
f.write(response.content)</p>

<p>print("画像が生成され、generated_image.pngとして保存されました")</p>

デプロイの重要な特徴

  1. サーバーレスアーキテクチャLitServeの設定により、使用時にのみスケールするサーバーレスデプロイが可能になります。
  2. プライベートAPI:Fluxを独自のインフラストラクチャ上でプライベートAPIとしてデプロイできます。
  3. マルチGPUサポート:設定は、複数のGPUで効率的に動作するように設計されています。
  4. 量子化:コードは、モデルを8ビット精度に量子化する方法を示しています。これにより、NVIDIA (NVDA ) L4 GPUなどの低力のハードウェアで実行できます。
  5. CPUオフロードenable_model_cpu_offload()メソッドは、GPUメモリを節約するために、使用されていないモデル部分をCPUにオフロードします。

Fluxの実用的な応用

Fluxの多才性と力は、さまざまな業界で幅広い潜在的な応用を可能にします。

  1. クリエイティブインダストリー:グラフィックデザイナー、イラストレーター、芸術家は、Fluxを使用してコンセプトアート、ムードボード、視覚的なインスピレーションを迅速に生成できます。
  2. マーケティングと広告:マーケターは、キャンペーン、ソーシャルメディアコンテンツ、製品モックアップのためのカスタムビジュアルを作成できます。
  3. ゲーム開発:ゲームデザイナーは、環境、キャラクター、資産のラピッドプロトタイピングにFluxを使用できます。
  4. 建築とインテリアデザイン:建築家とデザイナーは、テキストの説明に基づいてリアルな空間と構造の視覚化を生成できます。
  5. 教育:教育者は、学習材料を強化し、複雑な概念をよりアクセスしやすくするためのカスタムビジュアルエイドとイラストを生成できます。
  6. 映画とアニメーション:ストーリーボードアーティストとアニメーターは、シーンとキャラクターの迅速な視覚化にFluxを使用できます。

Fluxとテキストから画像を生成する技術の未来

Black Forest Labsは、Fluxが生成的なAIの分野における彼らの野心の始まりであることを明確にしています。競合するテキストからビデオを生成するシステムの開発を発表しました。高解像度と以前になかったスピードでの精密な作成と編集機能を約束しています。

このロードマップは、Fluxが単独の製品ではなく、生成的なAIツールのより広いエコシステムの一部であることを示唆しています。技術が進化するにつれて、次のようなことが期待できます。

  1. 統合の向上:テキストから画像を生成する機能とテキストからビデオを生成する機能のシームレスなワークフローが可能になります。
  2. カスタマイズの強化:生成されたコンテンツに対するより微妙な制御が可能になります。高度なプロンプトエンジニアリング技術または直感的なユーザーインターフェースを通じて実現される可能性があります。
  3. リアルタイム生成:FLUX.1 [schnell]のようなモデルが改良され続けるにつれて、リアルタイムの画像生成能力が実現し、ライブコンテンツの作成とインタラクティブメディアが革命される可能性があります。
  4. クロスモーダル生成:テキスト、画像、ビデオ、オーディオなどの複数のモダリティ間でコンテンツを生成および操作する能力が可能になります。
  5. 倫理的なAI開発:強力なAIモデルと責任ある倫理的な開発への重点が続くでしょう。

結論:FluxはMidjourneyより優れているのか

Fluxが「Midjourneyより優れている」という質問には、単純な「はい」または「いいえ」で答えることはできません。両方のモデルは、テキストから画像を生成する技術の最前線を表しています。各モデルには独自の強みと特徴があります。

Fluxは、先進的なアーキテクチャとプロンプトの従順性への重点により、特定のシナリオでより正確な制御と潜在的に高品質の画像を提供する可能性があります。オープンソースバリアントは、開発者や研究者にとって貴重なカスタマイズと統合の機会を提供します。

一方で、Midjourneyには既存の実績があり、大規模で活発なユーザーベースがあり、独特の芸術的なスタイルがあります。Discordとの統合とユーザーフレンドリーなインターフェースにより、さまざまな技術スキルを持つクリエイターにとってアクセスしやすいプラットフォームとなっています。

最終的に、「より優れた」モデルは、特定のユースケース、個人の好み、両方のプラットフォームの進化する能力によって決まるかもしれません。明らかなのは、Fluxが生成的なAIの分野で重要な一歩を踏み出しており、革新的な技術と可能性の境界を押し広げているということです。

私は過去5年間、機械学習とディープラーニングの魅力的世界に没頭してきました。私の情熱と専門知識は、AI/MLに特に焦点を当てた50以上の多様なソフトウェアエンジニアリングプロジェクトに貢献することになりました。私の継続的な好奇心は、自然言語処理という分野にも私を引き付け、さらに探求したいと思っています。