MacでローカルでFlux Schnellを実行する方法

💡FLUXオンラインを手軽に試してみませんか? Anakin AIで今すぐ試してみてください!FLUX.1 Pro Online- Anakin AI.

Anakin AIを無料で利用開始

MacでローカルでFlux Schnellを実行する方法

Start for free
目次
💡
追加の手間なしにFLUXをオンラインで試してみたいですか?

今すぐAnakin AIで試してみてください!👇👇👇
FLUX.1 Pro Online | Anakin
Better than Midjourney and Stable Diffusion, Try the Open Source, State-of-the-art image generation Tool: FLUX Pro Online!
FLUX.1-schnell | Free AI tool | Anakin
Flux Schnell is a fast, open-source text-to-image model designed for efficient image generation, offering high-quality outputs with minimal computational resources.
FLUX.1-dev | Free AI tool | Anakin
Flux Dev is an open-weight, guidance-distilled text-to-image model that offers high-quality image generation for non-commercial applications, balancing performance and efficiency.

Flux Schnellは、テキストのプロンプトから高品質な画像を生成できる強力な画像生成モデルです。この記事では、MacBook Pro with M3 Maxチップ上でローカルにFlux Schnellをセットアップして実行する手順を説明します。要件、インストール手順、最初の画像の生成の手順について説明します。

MacでローカルにFlux Schnellを実行するための要件

始める前に、システムが以下の要件を満たしていることを確認してください:

  • M3 Maxチップを搭載したMacBook Pro
  • 少なくとも40 GBの利用可能なRAM
  • macOS Sonoma以降のバージョン
  • Xcode Command Line Toolsがインストールされている
  • Homebrewパッケージマネージャー

ローカルFlux Schnellのインストール手順

インストールプロセスを管理可能なステップに分解しましょう:

ステップ1:Minicondaのインストール

まず、Python環境を管理するためにMinicondaをインストールします:

  1. ターミナルを開く
  2. 次のコマンドを実行してMinicondaインストーラーをダウンロードします:
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh
  1. Minicondaをインストールします:
sh Miniconda3-latest-MacOSX-arm64.sh
  1. 指示に従ってインストールを完了します
  2. 変更を適用するためにターミナルを閉じて再度開きます

ステップ2:Conda環境の作成とアクティベート

次に、Fluxのための専用の環境を作成します:

conda create -n flux python=3.11 -y
conda activate flux

ステップ3:PyTorchのインストール

MPS(Metal Performance Shaders)対応のPyTorchをインストールします:

pip install torch==2.3.1

ステップ4:Diffusersと依存関係のインストール

必要なライブラリをインストールします:

pip install git+https://github.com/huggingface/diffusers.git
pip install transformers==4.43.3 sentencepiece==0.2.0 accelerate==0.33.0 protobuf==5.27.3

ローカルでFlux Schnellを実行しましょう!

すべてをインストールしたので、Flux Schnellを実行して画像を生成するプロセスを説明します。

ステップ1:スクリプトの準備

新しいPythonファイル「flux_generate.py」を作成し、次のコードを追加します:

import torch
from diffusers import FluxPipeline
import diffusers

# ロープ関数をMPSデバイスに対応できるように変更
_flux_rope = diffusers.models.transformers.transformer_flux.rope
def new_flux_rope(pos: torch.Tensor, dim: int, theta: int) -> torch.Tensor:
    assert dim % 2 == 0, "The dimension must be even."
    if pos.device.type == "mps":
        return _flux_rope(pos.to("cpu"), dim, theta).to(device=pos.device)
    else:
        return _flux_rope(pos, dim, theta)

diffusers.models.transformers.transformer_flux.rope = new_flux_rope

# Flux Schnellモデルをロード
pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-schnell", revision='refs/pr/1', torch_dtype=torch.bfloat16).to("mps")

# 画像生成のためのプロンプトを設定
prompt = "猫が「こんにちは、世界」と書かれた看板を持っている"

# 画像を生成
out = pipe(
    prompt=prompt,
    guidance_scale=0.,
    height=1024,
    width=1024,
    num_inference_steps=4,
    max_sequence_length=256,
).images[0]

# 生成した画像を保存
out.save("flux_image.png")

ステップ2:スクリプトの実行

ターミナルで、flux_generate.pyが含まれるディレクトリに移動し、次のコマンドを実行します:

python flux_generate.py

このプロセスはおよそ30秒かかり、MacBook Pro M3 Maxの最大40 GBのRAMを利用します。

コードの理解

スクリプトの主要なコンポーネントを確認しましょう:

ライブラリのインポート:PyTorchとDiffusersから必要なモジュールをインポートします。

ROPE関数の変更new_flux_rope関数はMPSデバイス(AppleのMetal Performance Shaders)を扱うための回避策です。これにより、M3 Maxチップとの互換性が確保されます。

モデルのロードFluxPipeline.from_pretrained()を使用してFlux Schnellモデルをロードします。モデルリポジトリとリビジョンを指定します。

プロンプトの設定:生成する画像を説明するテキストプロンプトを定義します。

画像の生成pipe()関数がさまざまなパラメータとともに呼び出されます:

  • prompt:画像のテキスト説明
  • guidance_scale:この例では0に設定
  • heightwidth:画像のサイズ(1024x1024ピクセル)
  • num_inference_steps:ノイズ除去のステップ数(この場合は4)
  • max_sequence_length:入力シーケンスの最大長さ(256)

画像の保存:生成された画像は同じディレクトリに「flux_image.png」として保存されます。

ローカルFlux Schnellのパフォーマンスの最適化

MacBook Pro M3 MaxでFlux Schnellのパフォーマンスを最大限に活かすには:

  1. 不要なアプリケーションを終了して、RAMとCPUリソースを解放します。
  2. 十分な換気を確保し、サーマルスロットリングを防止します。
  3. num_inference_stepsを調整:この値を増やすと画像の品質が向上しますが、生成時間も増加します。
  4. max_sequence_lengthを調整:より長いシーケンスはより詳細なプロンプトを可能にしますが、より多くのメモリと処理時間が必要です。

ローカルFlux Schnellのトラブルシューティング

問題が発生した場合:

  1. CUDAエラー:M3 MaxはCUDAをサポートしていないため、MPSバックエンド(to("mps"))を使用していることを確認してください。
  2. メモリエラー:メモリが不足している場合は、画像サイズやmax_sequence_lengthを減らしてみてください。
  3. モジュールが見つからないエラー:conda環境に必要なすべてのパッケージがインストールされていることを確認してください。

ローカルでFlux Schnellを実行できるようになったので、次にいくつかのアイデアを試してみましょう:

  1. プロンプトの試行:モデルがそれらをどのように解釈するかを確認するために、異なるテキストの説明を試してみてください。
  2. パラメータの調整guidance_scalenum_inference_steps、画像のサイズなどを調整し、出力に与える影響を見てください。
  3. バッチ処理:スクリプトを変更して、プロンプトのリストから複数の画像を生成するようにしてください。
  4. 統合:Flux Schnellを独自のアプリケーションやワークフローに統合することを検討してください。

結論

MacBook Pro M3 MaxでローカルにFlux Schnellを実行することで、創造的な可能性が広がります。驚くほどのスピードと品質を備えているため、自分のマシンで見事な画像を生成することができます。モデルとその作成者にクレジットを与えることを忘れずに、AIによる画像を使用する際には著作権と倫理的な考慮事項を尊重してください。