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を使う 第6回:Mac StudioにMFLUXを導入し、Krea 2 Turboの画像生成に挑戦する

0
Last updated at Posted at 2026-10-24

はじめに

前回は、OllamaとComfyUIを連携し、日本語の指示から英語の画像生成プロンプトを作成して、画像を生成するところまで成功した。

今回はさらに高品質な画像・動画生成を目指し、Apple Siliconに最適化されたMLX系の実行環境を検討する。

静止画はKrea 2 TurboやFLUX系、動画はWan 2.2などを候補としている。

その第一歩として、MFLUXを導入し、Krea 2 Turboをローカルで実行する。

この記事では、導入環境、Hugging Face認証、発生したエラー、モデルの保存先、ComfyUIとの違いを整理する。

なお、執筆時点ではMFLUXによるKrea 2 Turboの画像生成完了は未確認である。

1. 使用環境

項目 構成
コンピュータ Mac Studio
チップ Apple Silicon M5系
ユニファイドメモリ 64GB
内蔵SSD 512GB
外付けSSD Hanye 2TB、USB4
LLM Ollama
LLMモデル Qwen3系 Abliterated 27B、Q8_0
画像生成環境 ComfyUI、MFLUX
Python環境 uv
モデル配布元 Hugging Face

内蔵SSDは512GBしかないため、AIモデルはできるだけ外付けSSDに集約する方針とした。

Ollamaのモデルはすでに外付けSSDへ移動済みである。

2. なぜMFLUXなのか

これまで画像生成にはComfyUIを使用していた。

ComfyUIは非常に柔軟で、画像生成、LoRA、ControlNet、動画生成などの処理をノードで組み合わせられる。

一方、Apple SiliconにはAppleが開発したMLXという機械学習フレームワークがある。

MLXはApple Siliconのユニファイドメモリを活用でき、対応モデルでは効率的な推論が期待できる。

MFLUXは、このMLXを利用してFLUX系などの画像生成モデルを実行するためのツールである。

ただし、MLXだから必ずComfyUIより高速になるわけではない。モデル、量子化、実装、メモリ使用量によって性能は変わる。

今回は両方を残して比較する。

環境 主な用途
Ollama LLM、プロンプト生成
ComfyUI 画像・動画生成ワークフロー
MFLUX Apple Silicon向け画像生成
MLX Apple Silicon向け機械学習基盤

OllamaもApple SiliconのGPUを利用できるため、Ollamaを削除する必要はない。

3. MFLUXの導入

今回の環境では、Pythonパッケージ管理ツール uv を使用してMFLUXを導入した。

新規環境で導入する場合の基本コマンドは次のとおり。

brew install uv
uv tool install mflux

すでにインストール済みの場合は再インストール不要。

実際に確認できた実行ファイルは次の場所にある。

/Users/tetsuyanoguchi/.local/bin/mflux-generate-krea2

MFLUX本体は以下に配置されていた。

/Users/tetsuyanoguchi/.local/share/uv/tools/mflux/

つまり、MFLUXのプログラム本体と画像生成モデルは別々に管理される。

4. 外付けSSDの構成

AI関連データは外付けSSD Hanye2T に集約する。

現在確認できているパスは次のとおり。

/Volumes/Hanye2T/AI/
├── ollama/
│   └── models/
└── mflux/

ComfyUIも利用しており、そのモデル管理には次のディレクトリがある。

models/
├── checkpoints/
├── diffusion_models/
├── loras/
├── text_encoders/
├── vae/
├── controlnet/
├── clip/
└── ...

このほかにもComfyUIが自動作成した多数のフォルダが存在する。

主な役割は以下のとおり。

ディレクトリ 用途
checkpoints 統合チェックポイント
diffusion_models 拡散モデル本体
loras LoRA
text_encoders テキストエンコーダ
vae VAE
controlnet 画像生成の条件制御

ComfyUIのモデル配置とMFLUXのモデル配置は別である。

MFLUXはHugging Faceのモデルキャッシュを利用できるため、ComfyUIの loras フォルダへモデルを入れるだけではMFLUXで使用できるとは限らない。

また、MFLUX用のファイルが必ずComfyUIと同じ形式で使用できるわけでもない。

5. Krea 2 Turboの生成テスト

MFLUXにはKrea 2 Turbo用の生成コマンドがある。

今回実行したコマンドは以下。

mflux-generate-krea2 \
  --prompt "a beautiful Japanese woman sitting in a quiet cafe, soft natural light, cinematic" \
  --width 1024 \
  --height 1024 \
  --seed 42 \
  --steps 8 \
  -q 8

設定内容は以下のとおり。

オプション 意味
--prompt 画像生成指示
--width 横幅1024px
--height 高さ1024px
--seed 乱数シード42
--steps 推論ステップ8
-q 8 8bit量子化指定

実行すると、まずHugging Faceからモデルの取得が始まった。

Downloading model from HuggingFace:
krea/Krea-2-Turbo...

Fetching 8 files: 0%

しかし、途中でエラーが発生した。

httpx.HTTPStatusError:
401 Unauthorized

huggingface_hub.errors.GatedRepoError:
Cannot access gated repo

これは画像生成処理そのもののエラーではなく、モデルの取得に必要なアクセス権または認証に関するエラーである。

6. Hugging Faceの認証

Krea 2 Turboのモデルページは以下。

Hugging Faceにログインし、必要に応じてモデルの利用条件に同意してアクセス権を取得する。

認証用トークンは次のページで作成する。

今回は mflux という名前のトークンを作成した。

最初は次のコマンドを使用した。

huggingface-cli login

しかし、次の警告が表示された。

Warning:
'huggingface-cli login' is deprecated.
Use 'hf auth login' instead.

さらに、最初の認証では次のエラーが発生した。

401 Client Error: Unauthorized
Invalid user token.

そこで新しい認証コマンドを使用した。

hf auth login

トークンを入力すると、次の確認が表示される。

Add token as git credential? (Y/n)

今回は y を入力した。

その結果、認証に成功した。

Token is valid (permission: fineGrained).

The token mflux has been saved to
/Users/tetsuyanoguchi/.cache/huggingface/stored_tokens

Your token has been saved in your configured
git credential helpers (osxkeychain).

Login successful.

The current active token is: mflux

これでHugging Faceへのログインは成功した。

ただし、Hugging Faceへのログイン成功と、個別モデルへのアクセス許可は別の問題である。

7. モデルファイルのダウンロード

Hugging FaceのWebページからモデルファイルをダウンロードした。

その後、取得したファイルをComfyUIの loras フォルダに配置した。

ただし、MFLUXが必要とするモデル一式が揃っているか、またそのファイルをMFLUXが直接利用できるかは、現時点で未確認である。

Hugging Faceには通常、以下のようなキャッシュ保存先がある。

~/.cache/huggingface/hub/

今回、次のパスを調べた。

du -sh ~/.cache/huggingface/hub/models--krea--Krea-2-Turbo

この場所では対象モデルを確認できなかった。

Webブラウザによるダウンロードと、Hugging Faceライブラリによるキャッシュ取得は別の経路なので、保存先が異なる場合がある。

なお、キャッシュが存在しないことだけで、Webからのダウンロードが失敗したとは判断できない。

8. モデル保存先を外付けSSDにする方法

モデルは数GBから数十GB以上になることがある。

内蔵SSDの容量を節約するため、将来的にはHugging Faceのキャッシュも外付けSSDへ移動する予定である。

設定方法の一例は以下。

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

これは現在のシェルと、そのシェルから起動したプロセスに対して有効になる。

永続化する場合は、設定を ~/.zshrc などに追加する方法がある。

ただし、設定変更だけでは既存のモデルは自動的に移動されない。

また、MFLUXがどの環境変数やモデルパスを使用するかは、実行方法とバージョンに応じて確認する必要がある。

今回は画像生成を先に成功させるため、保存先の移動は後回しにした。

9. ターミナルのプロンプト表示名を変更

作業中、ターミナルに表示されるユーザー名が長く、気になった。

macOSの実際のユーザー名を変更すると、ホームディレクトリやアプリの設定に影響する可能性がある。

そこで、ユーザー名自体は変更せず、zshのプロンプト表示だけを変更することにした。

~/.zshrc に以下を追加する。

PROMPT='%F{cyan}tezzy%f %F{yellow}%~%f %# '

設定を読み込む。

source ~/.zshrc

これにより、表示を例えば次のようにできる。

tezzy ~ %

実際のユーザー名やホームディレクトリは変更されない。

10. 今回の結果

作業 結果
Mac Studioの環境構築 完了
Ollamaの導入 完了
ComfyUIの導入 完了
OllamaとComfyUIの連携 成功(前回)
MFLUXのインストール 完了
Krea 2 Turbo生成コマンドの実行 実施
初回モデル取得 401エラー
Hugging Face認証 成功
Webからのモデルファイル取得 実施
ComfyUIのlorasフォルダへの配置 実施
MFLUX用モデル一式の配置確認 未確認
MFLUXでの画像生成成功 未確認
MFLUXモデルの外付けSSD移行 未実施

11. 次の作業

まずはKrea 2 Turboによる画像生成を成功させる。

確認用のプロンプトは、これまでのテストと比較しやすいように白い猫とする。

mflux-generate-krea2 \
  --prompt "A white cat sitting on a beach at sunset, photorealistic" \
  --width 1024 \
  --height 1024 \
  --seed 42 \
  --steps 8 \
  -q 8

実行時にはモデルの取得や読み込みに時間がかかる場合がある。

成功後は以下を進める。

  1. MFLUXの画像生成時間とメモリ使用量を測定する。
  2. ComfyUIとの画質・速度を比較する。
  3. MFLUXのモデル保存先を外付けSSDに整理する。
  4. Krea 2、FLUX系モデルの比較を進める。
  5. Wan 2.2による動画生成を検証する。
  6. Ollamaによる日本語プロンプト生成と統合する。

12. まとめ

今回、Mac StudioにMFLUXを導入し、Krea 2 Turboを実行するための環境構築を進めた。

Hugging Faceの認証では401エラーに遭遇したが、新しい認証コマンド hf auth login を使ってログインに成功した。

画像生成モデルは非常に大きく、ダウンロード先、キャッシュ、実行環境ごとのモデル形式を理解しておく必要がある。

特に、ComfyUIとMFLUXは別の実行環境なので、モデルの保存場所を混同しないことが重要だ。

今後はApple Siliconの性能をどこまで引き出せるか、画像生成の速度と画質を比較していきたい。


13. Krea 2 Turboの画像生成に成功!

Hugging Faceの認証を完了し、MFLUXでKrea 2 Turboを再実行した。

mflux-generate-krea2 \
  --prompt "A white cat sitting on a beach at sunset, photorealistic" \
  --width 1024 \
  --height 1024 \
  --seed 42 \
  --steps 8 \
  -q 8

結果は成功!

Fetching 8 files: 100%
Download complete: 30.3GB
Reconstruction complete: 35.7GB

100%|██████████| 8/8 [00:29<00:00, 3.71s/it]

Image saved successfully at: image.png
Metadata embedded successfully at: image.png

Peak MLX memory: 29.72 GB

生成画像はターミナルから直接開ける。

open image.png

白猫の画像は非常にきれいに生成された。

実測結果

項目 結果
実行環境 MFLUX / MLX
モデル Krea 2 Turbo
量子化 Q8
解像度 1024×1024
ステップ 8
初回画像生成 約29秒
2回目 約26秒
ピークMLXメモリ 29.72GB

初回はモデルのダウンロードに約6分23秒かかった。

しかし、一度ダウンロードすれば、次回以降はキャッシュから読み込める。

Mac Studioの64GBユニファイドメモリでも、Krea 2 TurboのQ8モデルを実行できた。

14. Hugging Faceのモデルを外付けSSDへ移動

内蔵SSDは512GBしかない。

Hugging Faceのキャッシュを調べたところ、42GB使用していた。

du -sh ~/.cache/huggingface

結果:

42G /Users/tetsuyanoguchi/.cache/huggingface

内訳を調べる。

du -h -d 2 ~/.cache/huggingface | sort -h | tail -20

大部分は以下に保存されていた。

~/.cache/huggingface/hub/blobs

そこで、外付けSSDに移動することにした。

14.1 移動先を作成

mkdir -p /Volumes/Hanye2T/AI/mflux/huggingface

14.2 キャッシュをコピー

rsync -a --progress \
  ~/.cache/huggingface/ \
  /Volumes/Hanye2T/AI/mflux/huggingface/

コピー後、容量を比較する。

du -sh \
  ~/.cache/huggingface \
  /Volumes/Hanye2T/AI/mflux/huggingface

結果:

42G /Users/tetsuyanoguchi/.cache/huggingface
42G /Volumes/Hanye2T/AI/mflux/huggingface

14.3 保存先を変更

Hugging Faceのキャッシュ保存先は HF_HOME で指定できる。

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

設定を確認する。

echo $HF_HOME

結果:

/Volumes/Hanye2T/AI/mflux/huggingface

設定を永続化する。

echo 'export HF_HOME=/Volumes/Hanye2T/AI/mflux/huggingface' >> ~/.zshrc

これで新しく開くzshでも外付けSSDを参照する。

14.4 動作確認

同じKrea 2 Turboの画像生成を実行した。

100%|██████████| 8/8 [00:26<00:00, 3.33s/it]

Image saved successfully at: image.png

Peak MLX memory: 29.72 GB

再ダウンロードなしで画像生成に成功した。

14.5 内蔵SSDのキャッシュを整理

元のキャッシュを一時的に名前変更する。

mv ~/.cache/huggingface ~/.cache/huggingface_backup

この状態で再度画像生成し、外付けSSDから正常に読み込めることを確認した。

バックアップの容量を確認する。

du -sh ~/.cache/huggingface_backup

問題がないことを確認してから削除した。

rm -r ~/.cache/huggingface_backup

このコマンドは元のキャッシュを削除するため、外付けSSDでの動作確認が完了している場合に限って実行する。

これで内蔵SSDの約42GBを解放できた。

15. OllamaとMFLUXを連携する

次の目標は、日本語を入力するだけで画像を生成すること。

これまでの画像生成では、英語のプロンプトを直接入力していた。

そこで、既存のOllamaを利用して日本語から英語プロンプトを自動生成する。

構成は次のとおり。

日本語入力
    ↓
Python
    ↓
Ollama API
    ↓
Qwen3 27B
    ↓
英語プロンプト生成
    ↓
MFLUX
    ↓
Krea 2 Turbo
    ↓
画像生成
    ↓
macOSのプレビューで表示

使用するLLMは次のとおり。

huihui_ai/Qwen3.8-abliterated:27b-q8_0

ollama list で確認する。

ollama list

結果:

NAME                                      SIZE
huihui_ai/Qwen3.8-abliterated:27b-q8_0    29 GB

16. 日本語画像生成用Pythonスクリプト

スクリプト名は以下。

japanese_krea.py

保存場所:

/Volumes/Hanye2T/AI/mflux/japanese_krea.py

PythonからOllamaのHTTP APIを呼び出し、英語プロンプトを取得する。

MODEL = "huihui_ai/Qwen3.8-abliterated:27b-q8_0"
OLLAMA_URL = "http://127.0.0.1:11434/api/generate"
HF_HOME = "/Volumes/Hanye2T/AI/mflux/huggingface"

Ollamaには以下のJSONを送信する。

payload = {
    "model": MODEL,
    "stream": False,
    "think": False,
    "prompt": (
        "You are an expert prompt writer for photorealistic image generation. "
        "Convert the Japanese request into one vivid, accurate English image prompt. "
        "Preserve all subjects, actions, relationships, and important details. "
        "Do not invent people, objects, or story elements. "
        "Output ONLY the English prompt, without quotes or explanation.\n\n"
        f"Japanese request: {japanese}"
    ),
    "options": {"temperature": 0.3},
}

取得した英語プロンプトをMFLUXに渡す。

command = [
    "mflux-generate-krea2",
    "--prompt", english,
    "--width", "1024",
    "--height", "1024",
    "--seed", "42",
    "--steps", "8",
    "-q", "8",
]

MFLUXの処理が完了したら、画像を自動的に開く。

subprocess.run(["open", str(output)], check=False)

実行方法:

cd /Volumes/Hanye2T/AI/mflux
python3 japanese_krea.py

これで日本語を入力できる。

17. 日本語プロンプトの誤変換問題

実際に次の日本語を入力した。

太った白猫が後ろ足をだして座りタバコを吸っている

しかし、Ollamaから返ってきた英語プロンプトは次のようになった。

A photorealistic close-up of a man sitting with his
legs stretched out in front of him, casually smoking
a cigarette, natural lighting, detailed skin texture,
relaxed posture.

なんと、白猫が男性になってしまった!

画像生成AIの問題ではなく、LLMによるプロンプト変換の段階で、被写体が変わっていた。

対策

日本語から英語に変換する際のルールを強化することにした。

  • 被写体の種類を変更しない。
  • 色、体型、姿勢、動作を保持する。
  • 元の日本語に存在しない人物や物体を勝手に追加しない。
  • 写実的な表現は追加しても、元の意味を変更しない。
  • 英語プロンプトだけを返す。

期待する英語プロンプトは次のようなものだ。

A fat white cat is sitting with its hind legs stretched
out in front of it, smoking a cigarette.

これにより、画像生成の前段階で起きる意味の変化を抑える。

ただし、LLMの出力なので誤訳が完全になくなるわけではない。

18. 生成前の確認を廃止

最初のPythonスクリプトでは、英語プロンプト生成後に次の確認を表示していた。

この内容で画像を生成しますか? [Y/n]:

しかし、毎回確認するのは面倒だ。

そこで、確認処理を削除した。

修正版では、日本語を入力してEnterを押すだけで、そのまま画像生成を開始する。

処理の流れは以下。

日本語入力
    ↓ Enter
Ollamaで英語プロンプト生成
    ↓
英語プロンプトを表示
    ↓
MFLUXで画像生成
    ↓
画像を自動表示

操作を減らすことで、自然な日本語による画像生成を繰り返しやすくなった。
image_4.png

19. 今回の成果

項目 結果
Krea 2 Turbo 画像生成成功
MFLUX / MLX 動作確認済み
1024×1024画像生成 約26〜29秒
ピークMLXメモリ 29.72GB
Hugging Face認証 成功
モデル保存先 外付けSSDへ移行完了
内蔵SSD 約42GB解放
Ollama連携 日本語入力スクリプト作成
日本語の誤変換 問題を発見し、指示文を修正
生成前の確認 廃止
修正版の生成結果 今後さらに検証

20. 今後の展開

これでMac Studio上に、LLMと画像生成AIを組み合わせる環境ができた。

今後は、画像生成の品質を高めるだけでなく、動画生成にも挑戦したい。

候補は以下。

  • Krea 2 Turboによる高品質静止画生成
  • FLUX系モデルとの画質比較
  • LoRAによる表現の拡張
  • Wan 2.2による動画生成
  • Ollamaによるプロンプトの高度化
  • 静止画から動画への変換

最終的には、日本語の自然な指示だけで、画像から動画までローカル環境で生成できる仕組みを目指す。

Mac Studioの64GBユニファイドメモリで、どこまで実現できるか楽しみだ。


前回:ローカルLLMを使う 第5回:OllamaとComfyUIを連携し、日本語から画像を自動生成する


21. Krea 2 TurboでLoRAを使う

静止画生成が成功したので、次はLoRA(Low-Rank Adaptation)による画風の変更を試した。

外付けSSDを確認したところ、LoRAファイルは合計10個あった。

/Volumes/Hanye2T/AI/ComfyDesktop/Models/loras/krea2_darkbrush.safetensors
/Volumes/Hanye2T/AI/mflux/loras/vintagetarot.safetensors
/Volumes/Hanye2T/AI/mflux/loras/rainywindow.safetensors
/Volumes/Hanye2T/AI/mflux/loras/neondrip.safetensors
/Volumes/Hanye2T/AI/mflux/loras/sunsetblur.safetensors
/Volumes/Hanye2T/AI/mflux/loras/retroanime.safetensors
/Volumes/Hanye2T/AI/mflux/loras/dotmatrix.safetensors
/Volumes/Hanye2T/AI/mflux/loras/darkbrush.safetensors
/Volumes/Hanye2T/AI/mflux/loras/softwatercolor.safetensors
/Volumes/Hanye2T/AI/mflux/loras/kidsdrawing.safetensors

ComfyUI側に1個、MFLUX側に9個。別のディレクトリに置いたままでも、MFLUXにはLoRAの絶対パスを渡せる。

21.1 LoRAを直接指定する

mflux-generate-krea2 \
  --prompt "A white cat sitting on a chair" \
  --lora-paths /Volumes/Hanye2T/AI/ComfyDesktop/Models/loras/krea2_darkbrush.safetensors \
  --width 1024 \
  --height 1024 \
  --steps 8 \
  -q 8

実際のログ:

Loading 1 LoRA file(s)...
Applying LoRA: krea2_darkbrush.safetensors (scale=1.0)
Applied to 264 layers (528/528 keys matched)
All LoRA weights applied successfully
LoRA weights baked successfully
100%|██████████| 8/8 [00:32<00:00, 4.09s/it]
Image saved successfully at: image_5.png
Peak MLX memory: 44.63 GB

528/528キーが一致し、LoRAの読み込みと適用に成功した。 ただし、キーが一致することと、期待した画風になることは別問題である。

最初は違いが分かりにくかったが、画風を強めて再生成すると、水彩画のような仕上がりになった。

21.2 LoRAの強度を指定する

mflux-generate-krea2 \
  --prompt "A white cat sitting on a chair, dark expressive brush painting" \
  --lora-paths /Volumes/Hanye2T/AI/ComfyDesktop/Models/loras/krea2_darkbrush.safetensors \
  --lora-scales 1.5 \
  --width 1024 \
  --height 1024 \
  --seed 42 \
  --steps 8 \
  -q 8

--lora-scales で適用強度を指定できる。ただし、画風を厳密に比較するには、プロンプト・seed・ステップ数を同一にしてLoRAの有無だけを変える必要がある。

LoRA使用時のピークMLXメモリは今回44.63GBとなり、LoRAなしで測定した29.72GBより大きかった。64GB環境ではメモリ使用量にも注意する。

22. 日本語入力をもっと使いやすくする

これまでの japanese_krea.py は、ターミナルの input() で日本語を受け付けていた。

ところが、スクリプト実行中の入力欄では、日本語をBackspaceで消すとカーソルが半文字分ずれたようになり、編集しにくかった。通常のシェルのコマンド入力では問題がなかった。

そこで、Pythonのターミナル入力をやめ、macOSのGUIダイアログで日本語を入力する方式に変更した。

初期案ではAppleScriptの display dialog を使ったが、LoRAをラジオボタンで選ぶ機能なども必要になったため、最終的にはPythonからSwift/AppKitの画面を呼び出す構成にした。

23. 日本語・LoRA・シード・強度を1つの画面に統合

改良版スクリプトの設定画面には、次の項目をまとめた。

項目 操作
日本語プロンプト 複数行テキスト入力
LoRA ラジオボタンで1つ選択。「LoRAなし」も選べる
シード 数値入力。初期値42
LoRA強度 数値入力。初期値1.0
画像生成 画面内のボタンで実行
キャンセル 生成せず終了

LoRA一覧は固定文字列ではなく、次の2つのフォルダにある .safetensors ファイルから取得する。

LORA_DIR = Path("/Volumes/Hanye2T/AI/mflux/loras")
EXTRA_LORA_DIR = Path("/Volumes/Hanye2T/AI/ComfyDesktop/Models/loras")

これならLoRAを追加しても、スクリプト内の選択肢を手作業で書き換える必要がない。

実装ではPythonがSwiftコードを一時ファイルに書き出し、/usr/bin/swift で実行する。画面にはmacOS標準のAppKitを使用する。

result = subprocess.run(
    ["/usr/bin/swift", str(script)],
    input=json.dumps(payload, ensure_ascii=False),
    text=True,
    capture_output=True,
    check=False,
)

GUIの設定結果はJSONとしてPython側へ返す。

24. 前回の設定を記憶する

画像を何度も生成する際、毎回プロンプトやLoRAを設定し直すのは面倒だ。

そこで、以下を自動保存するようにした。

  • 前回の日本語プロンプト
  • 前回選択したLoRAのファイルパス
  • 前回のシード
  • 前回のLoRA強度

保存先:

/Volumes/Hanye2T/AI/mflux/krea_settings.json

保存データの例:

{
  "prompt": "太った白猫が後ろ足を出して座り、タバコを吸っている",
  "seed": 42,
  "scale": 1.5,
  "lora": "/Volumes/Hanye2T/AI/ComfyDesktop/Models/loras/krea2_darkbrush.safetensors"
}

次回起動時には、このJSONを読み込み、前回の文章と設定を入力画面に復元する。

日本語プロンプトは別途 last_prompt.txt にも保存する。

25. 画像ファイルを自動連番にする

MFLUXが出力した画像をそのまま使うと、ファイル名が重複したり、以前の画像と区別しにくかったりする。

そこで、生成後のファイルを次のように連番保存する処理を追加した。

krea_0001.png
krea_0002.png
krea_0003.png
...

空いている番号を探す関数は次のとおり。

def next_output_path():
    i = 1
    while (OUTPUT_DIR / f"krea_{i:04d}.png").exists():
        i += 1
    return OUTPUT_DIR / f"krea_{i:04d}.png"

生成前後のPNGファイルの更新状態を比較し、今回生成された画像を検出してリネームする方式にした。処理後は次のコマンドに相当する動作で自動表示する。

subprocess.run(["open", str(destination)], check=False)

画像の保存先も外付けSSDの /Volumes/Hanye2T/AI/mflux/ としている。

26. 日本語から画像生成までの処理

最終的な流れは次のとおり。

python3 japanese_krea.py
    ↓
macOS設定ダイアログ
  ├─ 日本語プロンプト(前回入力を復元)
  ├─ LoRA(ラジオボタン)
  ├─ シード
  └─ LoRA強度
    ↓
設定をJSONで保存
    ↓
Ollama / Qwen3で英語へ変換
    ↓
MFLUX / Krea 2 Turbo
  └─ 必要に応じてLoRAを適用
    ↓
PNGを連番保存
    ↓
画像を自動表示

実行方法は従来どおり。

cd /Volumes/Hanye2T/AI/mflux
python3 japanese_krea.py

このスクリプトはPython標準ライブラリを中心に構成し、Ollama APIにはHTTPでアクセスする。GUIにはmacOSのSwift/AppKitを利用するため、macOS専用の実装である。

なお、LoRAを使わない場合はLoRA関連オプションをMFLUXに渡さない。

27. まとめと次の課題

今回、Krea 2 TurboのLoRA適用が実際に成功し、画像の画風も変化することを確認できた。

また、japanese_krea.py は単純なターミナル入力から、GUIで一括設定できる画像生成ツールへ進化した。

改良内容 状況
Krea 2 TurboへのLoRA適用 実測ログで成功を確認
LoRA強度の指定 CLIで確認
日本語入力のGUI化 スクリプトへ実装
LoRAのラジオボタン選択 スクリプトへ実装
シードの入力 スクリプトへ実装
前回設定の保存と復元 スクリプトへ実装
PNGの自動連番保存 スクリプトへ実装
生成画像の自動表示 スクリプトへ実装

GUI統合版はMac Studioでの利用を進めているが、個々の機能の長期的な安定性や、全LoRAの互換性を保証するものではない。

次の目標は、Wanによる短い動画生成である。静止画を先に作り、それを動かす方式を試したい。Wan 2.2 TI2V-5B自体は基本的に無音の動画を生成するため、音声については別途合成する方式も検討する。

Pythonスクリプトのダウンロード

Mac Studio上で動作する、日本語対応のKrea 2 Turbo画像生成スクリプトをGitHubで公開しました。

主な機能

  • 日本語入力からOllamaで英語プロンプトに変換
  • LoRAをラジオボタンで選択
  • シード値とLoRA強度を指定
  • 前回の設定を自動保存
  • 生成画像を連番で保存し、自動表示

japanese_krea.py をGitHubからダウンロード

GitHubでソースコードを見る

実行方法

cd /Volumes/Hanye2T/AI/mflux
python3 japanese_krea.py

※ MFLUX、Ollama、Krea 2 Turboなどの事前セットアップが必要です。保存先やモデル名は各自の環境に合わせて変更してください。

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?