0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルLLMを使う 第7回:Mac Studioで高品質と表現の自由度を追求し、Uncensored FLUX.1 devを動かす【MFLUX / MLX】

0
Last updated at Posted at 2026-10-27

⚠️【重要】現在、検証を停止しています

FHDR-Uncensored-MFLUXで画像生成に不具合が発生しています

標準FLUX.1 devは正常に動作しますが、FHDRモデルでは紫色の画像が生成されるため、現在は利用を推奨しません。

はじめに

前回(第6回)は、Mac StudioにMFLUXを導入し、Krea 2 Turboでの画像生成に成功した。Ollamaによる日本語から英語プロンプトへの変換、LoRAの適用、Swift/AppKitを使った設定画面も作った。

しかし、LoRAで画風を変えても、欲しい品質や表現が安定して得られるとは限らなかった。そこで今回は、LoRAだけに頼らずモデル本体を変更する。

目標は次の3つ。

  1. Apple Siliconで高速に動く
  2. 写実的で高品質な画像を生成できる
  3. 表現上の制限が少なく、プロンプトへの忠実度を高められる

検討の結果、PocketAiHub/FHDR-Uncensored-MFLUX を試した。モデル名の Uncensored は配布側の位置づけであり、あらゆる画像が生成できることや品質を保証するものではない。この記事ではモデルの導入と動作検証を扱う。

1. 使用環境

項目 構成
コンピュータ Mac Studio(Apple Silicon M5系)
ユニファイドメモリ 64GB
内蔵SSD 512GB
外付けSSD Hanye 2TB(USB4)
画像生成 MFLUX / MLX
日本語処理 Ollama + Qwen3系27Bモデル
Pythonツール管理 uv

MFLUXやOllamaの導入方法は第6回を参照。今回、既存のKrea 2 Turbo環境は削除しない。

2. モデルを選ぶ

当初は shauray/flux.1-dev-uncensored-q4 も候補だった。しかし、量子化方式がNF4のモデルを、そのままMLX/MFLUXの4bitモデルとして読み込めるわけではない。

Macでの運用を優先して、MFLUX向けに公開されている次のモデルを選んだ。

ここで重要なのは、「4bit」という数字だけで互換性を判断しないこと。NF4とMLXの量子化形式は同一ではない。

3. モデルキャッシュを外付けSSDに保存する

第6回でHugging Faceのキャッシュを外付けSSDに移しているため、今回も同じ保存先を利用する。

export HF_HOME=/Volumes/Hanye2T/AI/mflux/huggingface

確認する。

echo "$HF_HOME"

期待する表示:

/Volumes/Hanye2T/AI/mflux/huggingface

これをモデルを起動する前に設定する。新しいモデルは既存のKrea 2 Turboと別のキャッシュとして取得されるため、Kreaを消す必要はない。~/.zshrc に設定済みなら通常は再設定不要だが、念のため確認する。

4. まずはコマンドラインで動作確認

Pythonスクリプトを改造する前に、MFLUX単体で画像生成できるか確認した。

mflux-generate \
  --model PocketAiHub/FHDR-Uncensored-MFLUX \
  --base-model dev \
  --prompt "A cinematic portrait of an adult woman in soft window light, detailed skin texture, 85mm lens" \
  --width 1024 \
  --height 1024 \
  --steps 20 \
  --guidance 4.0 \
  --seed 42 \
  --output flux_test.png

初回はモデルのダウンロードが発生する。ダウンロード時間は回線やキャッシュの状態によって変わる。

この単独テストでは画像生成に成功した。まず単体で成功させてからPythonに組み込むと、問題の切り分けが容易になる。

5. 日本語入力スクリプトへ組み込む

第6回の japanese_krea.py は、PythonからOllamaのAPIを呼び出して英語プロンプトを作り、MFLUXに渡す構成だった。

今回は既存のKrea用スクリプトを残し、FLUX用に別名のファイルを用意した。

japanese_krea.py       # Krea 2 Turbo用(残す)
japanese_krea_nfsw.py  # FLUX.1 dev用(新規)

nfsw は今回実際に使用したファイル名である。一般的な略記は NSFW だが、ここでは作業中の名前をそのまま記載する。

処理の流れは次のとおり。

日本語を入力
    ↓
Swift/AppKitの設定ダイアログ
    ↓
Ollama / Qwen3で英語へ変換
    ↓
MFLUX / FLUX.1 dev
    ↓
PNGを連番保存
    ↓
macOSで自動表示

実行例:

cd /Volumes/Hanye2T/dev/GitHub/japanese-krea
python3 japanese_krea_nfsw.py

実際の保存先は実行時のカレントディレクトリとし、flux_0001.png のような連番を付ける。

6. 紫一色の画像が出た!

FLUX用のPythonスクリプトで、40ステップの生成を実行した。ログ上はエラーなく終了し、PNGファイルも保存された。

100% | 40/40 [01:44, 2.61s/it]
Image saved successfully at: flux_0001.png
Peak MLX memory: 19.09 GB

ところが、開いた画像は薄い紫一色だった。

ログに Image saved successfully と出ても、意図した画像が生成できているとは限らない。

実行コマンドを確認すると、Python側に次のコードがあった。

"--guidance", str(lora_scale),

これはKrea用のLoRA強度に関する変数名をFLUX用スクリプトへ流用してしまったものだった。--guidance はLoRAの適用強度とは別のパラメータである。

そこで、まずは単体実行で成功した値に固定して再検証した。

"--guidance", "4.0",

修正後、正常な画像が生成された。今回の切り分けでは、Guidanceの指定が重要な確認箇所だった。ただし、薄紫一色の原因を一般的にこの1点へ断定できるわけではない。

7. 実測結果

項目 Krea 2 Turbo FHDR-Uncensored FLUX.1 dev
実行環境 MFLUX / MLX MFLUX / MLX
量子化 Q8 4bit
解像度 1024×1024 1024×1024
ステップ数 8 40
生成時間 約26〜29秒 約104秒
ピークMLXメモリ 29.72GB 19.09GB
結果 画像生成成功 Guidance修正後に成功

※ これは同一条件のベンチマークではない。モデルも量子化もステップ数も異なるため、単純に速度や画質の優劣を決める比較ではない。

今回のFLUXは40ステップで約1分44秒。Kreaの8ステップより時間はかかったが、FLUX側ではモデルと設定の違いを試せるようになった。

8. 高品質化に向けて

今回の経験で分かったのは、LoRAを増やせば必ず望む画像になるわけではない、ということだ。

  • モデル本体:人物や肌、構図などの表現傾向に影響する
  • プロンプト:被写体、年齢、衣服、照明などを明確に指定する
  • Guidance:指示への追従と画像の仕上がりに影響する
  • ステップ数:品質と処理時間のバランスに関わる
  • シード:比較時に条件を揃えるのに役立つ

特に日本語入力では、Ollamaが元の指示を勝手に変えないようにすることが重要だ。以前は「白猫」が英訳の段階で「男性」になったこともあった。画像モデルだけでなく、日本語→英語変換の出力も確認する必要がある。

9. 今後の課題

次は、FLUX用の設定ダイアログからGuidanceを指定できるようにし、値を保存・復元できるようにしたい。また、同一プロンプト・同一解像度で、ステップ数やGuidanceを変えた比較を進める。

モデルがUncensoredを掲げていることと、出力品質が高いことは別の話だ。利用時には配布元のライセンスや公開先の規約、肖像権なども確認する。

10. まとめ

今回は、Krea 2 TurboのLoRA調整から一歩進み、Apple Silicon向けのFLUX.1 dev系モデルをMFLUXで動かした。

  • Krea 2 Turboは削除せず、そのまま残した
  • Hugging Faceキャッシュは外付けSSDを継続利用
  • FLUX.1 dev系4bitモデルで1024×1024画像を生成
  • 40ステップ、約104秒、ピークMLXメモリ19.09GBを計測
  • 紫一色の出力を経験し、Guidance指定を修正して解消
  • Ollamaによる日本語入力ワークフローをFLUXにも展開

高画質を目指すなら、LoRAだけでなくモデル本体と生成パラメータを見直すことが重要だと実感した。


前回:ローカルLLMを使う 第6回:Mac StudioにMFLUXを導入し、Krea 2 Turboの画像生成に挑戦する

モデル:PocketAiHub/FHDR-Uncensored-MFLUX

GitHub:japanese-krea(FLUX用スクリプトの公開状況はリポジトリで確認してください)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?