Krea 2をM1 MaxのComfyUIで試す Turboは3分強で回り、Rawは47分かけて黒画像
目次
Krea 2が2026年6月22日に出た。12BのDiffusion Transformerで、Krea AIが1から学習した独立ラボ製のモデルだ。RawとTurboの2本がオープンウェイトで公開され、ComfyUIのコアも対応した。
公式はCUDA前提で、Macのことは何も書いていない。手元で動かせるのがM1 Maxしかないので、それで回せるかを確かめる。狙いは「ギリでも動くのか、それとも歯が立たないのか」のラインを引くこと。
特に気になるのがRaw。Krea自身が「Rawで学習してTurboで動かせ」と言っている未蒸留のベースモデルで、推論には52ステップ + CFGを推奨している。蒸留済みTurboの8ステップと比べて、Macでどこまで現実的な時間に収まるか(あるいは収まらないか)が今回の芯になる。
Krea 2とは
Krea 2はKrea AIが1から学習した画像生成モデル。Artificial Analysisのtext-to-imageで独立ラボ1位を主張している。2本構成で、用途がはっきり分かれている。
| 要素 | 中身 |
|---|---|
| 本体 | 12B のDiffusion Transformer(single-stream DiT) |
| テキストエンコーダ | Qwen3-VL-4B |
| VAE | Qwen Image VAE |
| バリアント | Raw(未蒸留ベース)/ Turbo(8step蒸留) |
| ステップ | Raw 52step + CFG3.5、Turbo 8step + CFGなし |
| 解像度 | Raw 〜1k、Turbo 1k〜2k |
RawとTurboは組みで使う設計になっている。RawでLoRAを学習してTurboに当てるのが公式の推奨で、「TRAIN on Raw, RUN on Turbo」と明言されている。つまりRawは生成用ではなく、未蒸留で素直なぶん学習・ポストトレーニング向けのベースという位置づけ。
Comfy-Orgの再パッケージ配布では、拡散本体がbf16(26.28GB)とfp8 scaled(13.14GB)、Turboはこれにmxfp8(13.53GB)とnvfp4(7.67GB)も加わる。テキストエンコーダはQwen3-VL-4Bがbf16(8.88GB)とfp8 scaled(5.24GB)、VAEはQwen Image VAE(0.25GB)。スタイルLoRAも13本付いてくる。nvfp4はNVIDIA Blackwell前提なのでMacでは触れない。
検証環境
| 項目 | 内容 |
|---|---|
| マシン | MacBook Pro M1 Max 64GB |
| OS | macOS 26.5 |
| Python | 3.12.12 |
| PyTorch | 2.10.0(MPS) |
| ComfyUI | master先端(Krea2対応コミット #14589 以降) |
| 拡散本体 | krea2_raw_bf16 / krea2_turbo_bf16(各26.28GB) |
| TE / VAE | Qwen3-VL-4B fp8 scaled(5.24GB)/ Qwen Image VAE(0.25GB) |
| 共通条件 | 1024×1024 / 固定プロンプト・固定seed |
テスト方針
過去のローカルモデル検証(Boogu-Image、Z-Anime)と同じ枠組みで進める。変える変数を1〜2個に絞って、順に潰していく。
- 起動とロードが通るか。まずbf16拡散本体をComfyUIに読ませて、新アーキがMPSでロードできるか確かめる。Krea 2はTE(Qwen3-VL-4B)とVAE(Qwen Image VAE)がBoogu同型なので、過去の地雷(fp8拡散はMPS非対応、ComfyUIアプデでdtypeがBF16に化けて激重化)を踏まないかをまず確認する
- fp8拡散はMPSで弾かれる前提。Boogu・Qwenと同じく拡散本体のfp8はMPSで動かないはず。拡散はbf16一択になる見込みで、ここを実際に踏んで確認する。TEのfp8は通るはず
- 速度計測。cold(初回ロード込み)とwarm(2回目以降)を分けて測る。Turbo bf16(8step / CFGなし)とRaw bf16(52step / CFG3.5)を同じ1024pxで比較する。RawはCFGで実質2倍の前向き計算になるので、Turboとの差がそのまま「未蒸留の重さ」になる
- メモリ常駐量。bf16本体 + fp8 TEで64GBに対してどこまで埋まるか、OOMせず完走するかを記録する
- 出力品質。固定プロンプトで人物・アニメ・写実・文字描画あたりの通り具合を確かめる。LoRAは当たらないので自然文で造形だけ指定する
結果は出たものから順に下に追記する。
結果
1. ロード確認
載った。ComfyUIのコアを #14589 以降まで上げると comfy/ldm/krea2/model.py が入り、CLIPLoaderのtypeにkrea2が増える。構成はBooguと同じ並びで、UNETLoaderに拡散本体、CLIPLoaderをtype=krea2にしてQwen3-VL-4B、VAELoaderにQwen Image VAEを読ませる。t2iは標準のCLIPTextEncode、空のlatentはEmptySD3LatentImage(16chのWan21 latent)で通る。shiftはモデル設定に1.15が内蔵されているので、ModelSampling系を挟まなくても動く。
ひとつだけ起動オプションに注意がある。Qwen Image VAEはデフォルトのbf16だとMPSで黒画像を吐く(3月のQwen Image Editの件と同じ)。--fp16-vaeを付けて起動したら正常な画になった。
2. fp8拡散の可否
テキストエンコーダのfp8は通る。今回TEはqwen3vl_4b_fp8_scaled(5.2GB)を使っていて、CLIPTextEncodeもKSamplerも問題なく動いた。fp8のままMPSに載るのはBooguと同じ。
一方、拡散本体のfp8(krea2_turbo_fp8_scaled、13GB)は弾かれた。モデルのロードは通るが、KSamplerでこう落ちる。
TypeError: Trying to convert Float8_e4m3fn to the MPS backend
but it does not have support for that dtype.
MPSはfloat8型のテンソルをそもそも保持できない。fp8 scaledはCUDAのfp8演算前提の量子化で、Apple Siliconには載らない。3月のQwen、6月のBooguと同じ根っこで、Macで拡散本体に使えるのはbf16版(26GB)だけ。13GBの軽いほうは諦めるしかない。
3. 速度(Turbo)
Turbo bf16(8step / CFGなし / 1024px)の実測がこれ。
| 条件 | 時間 |
|---|---|
| cold(初回ロード約26GB込み・DL並走) | 278.8秒 |
| warm(8step / 1024px) | 約212秒(約25秒/step) |
warmで1枚3分半。8stepの蒸留モデルでこの時間なので、1stepあたりが重い。Booguの10Bが約17秒/stepだったのに対し、Krea2は12Bで約25秒/step。パラメータ差以上に1stepが重い。単一ストリームで全シーケンスを一度に捌くぶん、アテンションのコストが大きいのだと思う。Macで蒸留版を回してこの速度なので、未蒸留のRawがどうなるかは次のセクション。
4. メモリ
warm生成中、bf16本体(26GB)にfp8 TE(5.2GB)が乗って、64GBに対して空きが33GBまで減った。常駐は約31GBで、Boogu(約31GB)とほぼ同じ着地。RAM pressure cacheが効いてOOMはせず完走した。64GBならbf16拡散 + fp8 TEは余裕を持って載る。
5. 出力品質(Turbo)
LoRAは当たらないので自然文で造形だけ指定して、写実・アニメ・文字・スタイルの通り具合を試した。
写実
professional photography、85mm f1.4、soft window lightあたりの品質語を盛ると、すんなりプロ撮影風の人物が出る。理想化しすぎない自然な肌で、ボケや陰影も破綻がない。

もう一歩踏み込んで、うちのキャラのフル指定(茶髪・画像右側のサイドポニー・青スクランチー・制服一式)を高校生想定で盛ったのがこれ。

茶髪も髪型の位置も制服も、指定どおりに乗った。同じキャラをBooguで出したときは髪色の指定を無視されたので、細かい外見属性への追従はKrea2のほうが明確に強い。サイドポニーの左右はseedで振れるが、髪色や服装のような属性は安定して拾う。
アニメ
cel shading、vibrant flat colors、clean lineartを足しても、パキッとしたセル塗りにはならず、水彩寄りのジブリ調になる。手描きアニメ映画の絵柄が強く出て、専用のAnima/Illustrious系のようなアニメ塗りとは別物になる。

文字描画
ここは強い。KREA COFFEEの大見出しが正しく綴られるだけでなく、freshly roasted dailyの小さい本文まで読める文字で出た。Booguが大見出し1語までで本文が崩れたのと比べると、Krea2は小さい本文まで保っている。

スタイル
複雑な構図指定への追従も良い。「タイルのグリッドと青の正方形を交互に並べたヴィンテージコラージュ」というプロンプトで、グリッド構造・交互配置・紙の質感・ミッドセンチュリーの印刷感まで再現した。スタイル系の指定はそのまま絵に出る。

Raw(未蒸留)はM1 Maxで詰まる
ここからが本題のRaw。公式の推奨どおり52step / CFG3.5 / 1024pxで、Turboと同じポートレートのプロンプトを回した。
まず時間。
| 条件 | 時間 |
|---|---|
| Raw bf16(52step / CFG3.5 / 1024px) | 47分2秒(約52秒/step) |
1枚に47分。CFGが有効だとcond/uncondの2パスを毎step踏むので、Turboの倍以上のstepコストになる。生成中のメモリはこうだった。
| ram空き | wired | スワップ使用 | pressure | |
|---|---|---|---|---|
| Turbo bf16(8step / CFGなし) | 33GB | 約21GB | ほぼなし | 余裕 |
| Raw bf16(52step / CFG3.5) | 22.8GB | 28.3GB | 約11GB | 55% |
Turboは余裕で収まったが、Rawはモデル実体(wired 28GB)にCFGの2パスぶんの活性化が乗って64GBを超え、約11GBスワップに落ちた。Apple Siliconはユニファイドメモリなので、モデル実体はプロセスのRSSではなくwired側に出る。
そして47分待った結果が、これ。
真っ黒の画像だった。
ComfyUIのログにこれが出ていた。
nodes.py:1659: RuntimeWarning: invalid value encountered in cast
img = Image.fromarray(np.clip(i, 0, 255).astype(np.uint8))
デコード結果にNaNが混じり、np.clip(NaN, 0, 255)をuint8にキャストして全ピクセルが0、つまり黒になっていた。unetはmodel weight dtype torch.bfloat16でロードされていて、bf16のままCFG3.5を52step回す過程で数値が破綻した。
原因をCFGに絞るため、モデルを載せたまま同じRawをCFGなし(cfg1.0)の8stepで1枚だけ回した。

今度はNaNを吐かず、ちゃんと画になった。構図は出ているが、未蒸留+低step+CFGなしなので全体にもやがかかって眠い。Rawをシャープに出すには本来CFGが要るのに、そのCFGがbf16のMPSで破綻する。
回避するならunetをfp32で回す手はあるが、47分がさらに倍以上になる。RawはそもそもLoRA学習・ポストトレーニング用のベースで、推論はTurboに任せる設計。「TRAIN on Raw, RUN on Turbo」をMacで身をもって踏んだ格好になった。Macで生成に使うならTurbo一択でいい。
NSFWの通り具合
モデル名で検索して来る読者はここを確かめに来る層が一定数いるので、はっきり書く。検証はすべてTurbo bf16。出力は強めにぼかしてある。
きっかけはX上で「Krea 2はNSFWに強い」「ConditioningKrea2Rebalanceというノードでフィルタを回避できる」という話を見かけたこと。このノードはKrea2の条件付け(Qwen3-VLの12層tapが平坦化された(B, seq, 12×2560))を層ごとに再重み付けして増幅するもので、作者は「安全フィルタによる品質劣化のバイパス」「モデルのアンフィルター」を謳っている。噂が実機で本当かを確かめた。
まずノードなしの素のTurboで、直接ヌードを指定した。

素で通った。拒否もぼかしも無害化もなく、解剖の破綻もない人体が出る。Booguがnude指定で油絵が溶けたような描画になったのとは対照的で、Krea2は素の状態でまともなヌードを出せる。「NSFWに強い」の噂はノード抜きでも概ね本当だった。
次に同じプロンプト・同じseedで、CLIPTextEncodeとKSamplerの間にノードを挿し、デフォルト設定(multiplier 4.0)で回した。

ヌードが出る/出ないは変わらない(素で既に出る)。変わったのは描写の密度で、窓光や肌の陰影、部屋の作り込み、全体のコントラストが一段濃くなった。このノードの効きは「NSFWを解放する」というより、条件信号を増幅してプロンプト追従と描写の濃さを底上げするもの、というのが手元での印象。READMEのいう「quality dilution(品質の希釈)のバイパス」はこちらの効果を指していると思われる。基本的なヌードはそもそも素で通るので、解放という以前の話だった。
なお、これはライセンスに抵触する挙動でもある(次節)。記事ではあくまで噂の真偽を実機で確かめる目的に留め、踏み込んだ生成はしていない。
ライセンス
重みはApacheやMITのような無条件のオープンではなく、独自の Krea 2 Community License Agreement で配布されている。試す前に押さえておくべき条項がいくつかある。
| 項目 | 内容 |
|---|---|
| 商用利用 | 全社の年商100万ドル未満なら可。超える場合は opensource@krea.ai で商用ライセンス契約 |
| 再配布・改変・LoRA学習 | 可。ただしライセンス文の同梱、派生モデル名の先頭にKreaを付ける、帰属表示の保持が条件 |
| コンテンツフィルタ | 必須。「prohibited, harmful, or unlawful なコンテンツの生成・配布を検知・防止・緩和する、合理的かつ適切なContent Filter措置を実装しなければならない」 |
| 禁止事項 | 法令・AUP違反のほか、セキュリティ・利用制限・来歴表示・電子透かし機構の回避を明示的に禁止 |
ここが今回の検証と絡む。前節で使ったConditioningKrea2Rebalanceは「安全フィルタのバイパス」を謳うもので、ライセンスが必須としているContent Filter実装や、利用制限の回避禁止条項に抵触する。手元で挙動を確かめるぶんはともかく、これを使った出力をそのまま配布・商用に回すのはライセンス違反にあたる。記事ではあくまで「噂が実機で本当か」を確認する目的に留めた。
参考リンク
- krea/Krea-2-Raw — Rawの公式リポジトリ
- krea/Krea-2-Turbo — Turboの公式リポジトリ
- Comfy-Org/Krea-2 — ComfyUI向け再パッケージのweights
- krea-ai/krea-2 — 公式の推論コード
- Krea 2 Community License — ライセンス全文
- ComfyUI-ConditioningKrea2Rebalance — 条件付け再重み付けノード(NSFW検証で使用)
- Krea 2 Technical Report — アーキテクチャの技術解説
- Boogu-Image-0.1をM1 MaxのComfyUIで試す — 同型構成(Qwen3-VL TE + VAE)の先行検証