参照画像の画風を使いながら、別の被写体や場面を生成したい。
これまで「ComfyUI Krea2 Reference」を使っていたのですが今回は、ComfyUIのカスタムノード「ComfyUI Krea2 StyleTransfer」を使い、1枚の画像を参照したスタイル転送を試します。
Krea2で通常の画像生成ができる環境を前提に、ノードの追加と付属ワークフローの使い方を紹介します。
使い方の説明はAIのほうがうまいのでAIに作ってもらったものにサンプル画像を入れた記事です
ComfyUI Krea2 StyleTransferとは
ComfyUI Krea2 StyleTransferは、参照画像のスタイルを生成中に反映するためのカスタムノードです。開発者は、参照画像の内容が入り込むことを抑えつつ、線・色・質感などを転送することを目標としています。
LoRAの追加学習は不要で、参照画像を読み込んで使います。ただし、スタイルを学習済みLoRAとして保存する機能ではありません。また、Krea公式のStyle Reference機能とは別の、独立したComfyUI向け実装です。
配布元:ComfyUI-Krea2-StyleTransfer(GitHub)
セットアップ
1. カスタムノードを追加する
ComfyUIのcustom_nodesフォルダでターミナルを開き、次のコマンドを実行します。
git clone https://github.com/nkxx188/ComfyUI-Krea2-StyleTransfer.git
Gitを使わない場合は、GitHubの「Code」→「Download ZIP」からダウンロードして展開し、ノードのフォルダをcustom_nodesに配置します。フォルダを二重に入れず、次のように__init__.pyとnodes.pyがその直下にあることを確認してください。
ComfyUI/custom_nodes/ComfyUI-Krea2-StyleTransfer/
__init__.py
nodes.py
配置後にComfyUIを再起動します。Krea2のモデル・VAE・テキストエンコーダーは、通常生成で使用しているものを引き続き使います。
2. 付属ワークフローを読み込む
今回は、配布元に付属する1枚参照のワークフローを使用します。
GitHubのファイル画面から「Download raw file」でJSONを保存し、ComfyUIの画面へドラッグ&ドロップして読み込みます。Git cloneやZIPで導入した場合は、ノードのworkflowsフォルダにある同名ファイルも利用できます。
読み込んだ後は、モデル・テキストエンコーダー・VAEを、それぞれ手元にあるKrea2用のファイルへ選び直してください。参照画像も自分で用意した画像に変更します。

ワークフローの見方
スタイル転送の中心となるのは、次の2つのノードです。
| ノード | 役割 |
|---|---|
| Krea2 Style Reference | 参照画像を生成サイズに合わせて調整し、VAEで潜在表現に変換します。 |
| Krea2 Style Transfer | 参照情報を使う処理をモデルに追加します。このノードのmodel出力をKSamplerへ接続します。 |
Krea2 Size Presetのlatent出力は、Krea2 Style Referenceのtarget_latentと、KSamplerのlatent_imageの両方へ接続されています。生成サイズを変更するときも、この接続を維持します。
付属ワークフローでは、CLIP Text Encodeの出力がKSamplerのpositiveと、Style Transferのref_conditioningの両方に接続されています。まずはこの構成のまま使用します。
プロンプトには生成したい内容を記述します。このワークフローでは、参照画像をstyle1やcharacter1という名前で呼び出す必要はありません。
実際に使ってみる
1. 参照画像を選ぶ
最初は、線の描き方・配色・塗り方などに特徴がある画像を1枚用意します。比較しやすいように、参照画像とは異なる場面をプロンプトで指定してみます。

Load Imageで画像を読み込み、Krea2 Style Referenceへ渡します。付属ワークフローのfitはcropです。生成画像と縦横比が異なる場合、参照画像の一部が切り取られます。
切り取り範囲を確認したい場合は、reference_preview出力にPreview Imageを接続すると、調整後の参照画像を確認できます。
2. 生成する内容を入力する
試用例として、カフェでコーヒーを飲んでいる人物を生成します。
A woman sitting by the window in a cafe, holding a cup of coffee with both hands. Medium shot, her hands and the cup are clearly visible.
日本語では「カフェの窓際に座り、両手でコーヒーカップを持っている女性。手とカップがはっきり見えるミディアムショット」という内容です。
まずは画風を説明する語句を追加せず、場面と構図を中心に指定します。参照画像による変化を見分けやすくするための比較方法です。

3. 推奨設定で生成する
Krea2 Style Transferのmodeはrecommendedにします。KSamplerは、READMEで案内されている次の設定から始めます。
| 項目 | 設定 |
|---|---|
| mode(Style Transfer) | recommended |
| steps | 8 |
| cfg | 1.0 |
| sampler_name | euler_ancestral |
| scheduler | simple |
| denoise | 1.0 |
付属ワークフローのサイズ設定は1K・4:5・バッチ数1です。しかし、今回の参照画像は2:3なので2:3で実行します。

スタイルを指定するプロンプトを一切入れずにこれです。スタイルだけを見ているので服も着ています。これはすごい。
4. アレンジしてみる
ここと次の「設定値を変えてみる」は人間が書いています。
さて、SFWなものだけでなく、NSFWなものも生成してみましょう。
A close-up photo of a young Japanese woman sitting on a chair completely naked. She is supporting her large breasts with both hands.
全裸で椅子に座っている若い日本人女性のバストアップ画像。両手で自らの大きなおっぱいを支えている。という指定です。顔が良くわかるようにしたかったのでバストアップにしました。

スタイル指定を組み合わせたらより近づく可能性を感じます。
5. 設定値を変えてみる

style_strength 2.0
読んで字のごとく、参照の強度ですが、この後続くパラメーターのほうが影響が大きいです。

low_scale_end 1.40
生成処理のどこまでスタイル指定を効かせるかとった指定のようです。ちなみに1.50あたりで破綻しました。

ref_k_strength 1.18
こちらはまだよくわかってないパラメータです。0.8などにすると参照が弱まり、逆に上げると強くなるのですが、1.40あたりで破綻しました。
うまくいかないときの確認ポイント
参照画像の特徴が弱い
まず、Load Imageで意図した画像を選んでいるか、Style Transferのmodel出力がKSamplerへ接続されているかを確認します。参照画像を別の、特徴がはっきりした画像に変えて比較する方法もあります。
詳細設定を変えても結果が変わらない
recommendedモードでは、内部の推奨値が使用されます。style_strengthなどの詳細設定を自分で調整する場合は、modeをcustomへ切り替えます。
調整する際はseedを固定し、変更する項目を1つに絞ると、どの設定が影響したかを確認しやすくなります。
サイズ不一致のエラーが出る
Krea2 Style Referenceのtarget_latentと、KSamplerのlatent_imageに、同じサイズのlatentを渡しているか確認してください。付属ワークフローと同じく、1つのサイズノードから両方へ接続する構成で始めると分かりやすいです。



コメント