画像拡張LoRA、Krea 2 Registered OutpaintのComfyUI版試してみた

画像拡張LoRA、Krea 2 Registered OutpaintのComfyUI版試してみた AIラボ

Krea 2 Registered Outpaintとは

Krea-2-Registered-Outpaint 元画像
Krea-2-Registered-Outpaint 拡張後

「Krea 2 Registered Outpaint」は、入力画像を左右・上下へ拡張するためのKrea 2用LoRAです。LoRA本体はyijunwang2氏、ComfyUI用カスタムノードはRealRebelAIが制作しています。

公開の流れは次のように分かれています。

要素開発者
Krea 2 Raw / TurboKrea AI
Outpaint LoRAyijunwang2
基礎となる参照画像処理Ostris
ComfyUI移植RealRebelAI

Krea AI公式のOutpaint機能ではなく、複数のコミュニティ実装を組み合わせたものです。

「Registered」の意味

ここでのRegisteredは「登録済み」という意味ではなく、元画像の位置を座標として登録する仕組みを指します。

通常の参照画像LoRAは、元画像の内容をモデルへ渡しても、その画像が最終キャンバスのどこに置かれるかまでは明確に伝えませんが、Registered Outpaintでは、元画像を配置する範囲を次のような座標で指定します。

(x0, y0, x1, y1)

たとえば、1024×1024の画像を2048×1024の左側へ配置する場合は、概念的には次の配置になります。

元画像の範囲:0, 0, 1024, 1024
生成キャンバス:2048 × 1024

モデルは「元画像が完成画像の左半分に置かれている」と把握したうえで、右側を生成します。

普通のOutpaintとの違い

一般的なComfyUIのOutpaintは、画像の外側へ余白を追加してマスクを作り、その部分をInpaintモデルで埋めます。

Registered Outpaintではマスクを使いません。

  1. 最終キャンバス全体をノイズから生成
  2. 元画像をVAEで参照Latentへ変換
  3. 元画像の配置座標をRoPE位置情報へ反映
  4. 参照画像を見ながらキャンバス全体を生成
  5. 最後に元画像の正確なピクセルを合成し直す

この方法により、遠近感、照明、壁や床のライン、繰り返し模様などを広げやすくなっています。

元画像部分も生成処理中は一度再構成されますが、最後のCompositeノードが元画像を戻します。境界には標準で32pxの内向きフェザーをかけ、生成部分との継ぎ目をなじませます。

ComfyUI版で追加される4つのノード

カテゴリーはRealRebelAI/krea2_outpaintです。

Rebels Krea2 Outpaint Canvas

元画像、拡張方向、完成サイズを設定する中心的なノードです。

主な設定:

  • source:元画像
  • direction:拡張方向
  • target_width:完成画像の幅
  • target_height:完成画像の高さ
  • source_max_edge:参照Conditioningの最大辺。標準384px
  • seam_px:元画像を戻す境界のフェザー幅。標準32px

このノードから次の5つが出力されます。

  • condition:最大384pxに縮小した参照画像
  • placed_source:完成キャンバス上へ配置した元画像
  • placement:配置座標を記録したJSON
  • canvas_width
  • canvas_height

元画像の縦横比は維持されます。

Rebels Krea2 Outpaint Encode

プロンプトと元画像の参照LatentをConditioningへまとめます。

Identity EditではQwen3-VLとVAE参照の両方を使いましたが、このOutpaintではvlm_referenceが標準でOFFです。元画像はQwen3-VLの画像入力へ渡さず、VAE参照Latentとしてモデルへ送ります。

これは単なる軽量化設定ではなく、LoRAが学習された条件に合わせた設定です。

Rebels Krea2 Outpaint Model Patch

元画像の配置座標をKrea 2モデルへ反映します。

通常の参照Latentは独立した座標を持ちますが、このノードは参照トークンのRoPE座標を完成キャンバス上の配置位置へ変換します。

接続順も重要です。

Krea 2 Turbo
↓
Outpaint LoRA
↓
Outpaint Model Patch
↓
KSampler

kv_cacheはONで使用します。参照画像のK/Vを最初に計算し、8ステップを通して再利用する設計です。

Rebels Krea2 Outpaint Composite

生成結果へ元画像のピクセルを戻します。

参照Conditioningは最大384pxなので、元画像内の細部を完全に再現する目的では使われていません。生成後に高解像度の元画像を合成することで、元画像部分の文字、顔、細かな模様を維持します。

対応している拡張方向

ComfyUI版には6つの方向が用意されています。

設定動作
extend_right右側へ拡張
extend_left左側へ拡張
extend_down下側へ拡張
extend_up上側へ拡張
extend_width_both左右へ均等に拡張
extend_height_both上下へ均等に拡張

左右への拡張では元画像がキャンバスの高さ全体を占め、上下への拡張では元画像が幅全体を占めます。

Krea 2 Identity Edit v1.2公開!Fidelity dialとfit機能で画像編集が進化!
Krea 2 Identity Edit v1.2で追加されたFidelity dial、fit機能、新しいComfyUIワークフローを、v1.1からの変更点を解説します。

Krea 2 Identity Edit v1.2で合成した画像を左右に拡張 extend_width_both

krea-2-identity-edit-registered-outpaint-extend_width_both

さらに下に拡張 outpaint-extend_down

krea-2-identity-edit-registered-outpaint-extend_down

現在のComfyUI版の制限

現在のノードは基本的に1パスOutpaintです。

対応しやすい配置:

  • 画像を左へ置いて右側を生成
  • 画像を右へ置いて左側を生成
  • 画像を上へ置いて下側を生成
  • 画像を中央へ置いて左右を生成
  • 画像を中央へ置いて上下を生成

元画像の四方すべてを囲むように拡張する場合は2パス必要です。元のDiffusers実装には2パス計画機能が含まれていますが、ComfyUI版では2回のSampler処理を手動で接続する段階です。

さらに、矩形のOutpaint専用なので、自由な形状のマスクによる部分修正には対応していません。

推奨設定

項目設定
モデルKrea 2 Turbo
LoRA強度1.0
Steps8
CFG1.0
SamplerEuler
SchedulerSimple
Denoise1.0
Reference maximum edge384px
Seam feather32px
VLM ReferenceOFF
K/V CacheON
Negative Prompt空欄

Diffusers版のguidance scale 0.0が、ComfyUIではCFG 1.0に相当します。

プロンプトは追加部分だけでなく、完成画像全体を説明します。

悪い例:

add a garden on the right side

適した書き方:

A wide cinematic view of a modern house surrounded by a lush summer garden,
coherent natural lighting, continuous architecture, realistic perspective

元画像の内容、完成後の画角、照明、背景、全体のスタイルまで書いた方がつながりやすくなります。

必要なファイル

ComfyUI/models/diffusion_models/
└─ krea2_turbo_int8_convrot.safetensors

ComfyUI/models/text_encoders/
└─ qwen3vl_4b_fp8_scaled.safetensors

ComfyUI/models/vae/
└─ qwen_image_vae.safetensors

ComfyUI/models/loras/
└─ krea2_outpaint_rank32.safetensors

Krea 2本体、Qwen3-VL、VAEは通常のKrea 2ワークフローと共通です。新たに必要なのは229MBのOutpaint LoRAとカスタムノードになります。

導入について

現在、READMEで案内されているのはGitHubからの直接導入です。追加のPython依存関係は設定されていません。

この操作はcustom_nodesへ新しいフォルダを追加します。ComfyUI本体、Torch、CUDA、既存モデルは変更しません。新しいノードなので、ComfyUI側のKrea 2内部実装が変わるとModel Patchが読み込めなくなる可能性があります。

git clone https://github.com/RealRebelAI/ComfyUI-Rebels-Krea2-Outpaint

導入後にComfyUIを再起動し、同梱JSONを読み込みます。

GGUFについて

READMEではGGUFも条件付きで動作する可能性が示されています。

このModel PatchはKrea 2のSingleStreamDiT内部構造へ直接アクセスします。GGUFローダーがLinear層だけを差し替え、モデルの階層構造を維持していれば動作します。属性名やモジュール構造を変更するGGUF実装では、そのまま動かない可能性があります。

公開先

LoRAとワークフローの公開先はこちらです。

GitHub – RealRebelAI/ComfyUI-Rebels-Krea2-Outpaint: a custom node set to incorporate the outpaint lora pipeline for Krea-2
a custom node set to incorporate the outpaint lora pipeline for Krea-2 – RealRebelAI/ComfyUI-Rebels-Krea2-Outpaint
yijunwang2/krea2-outpaint · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

補足:拡張部分が暗くなる

画像にもよると思いますが、デフォルトの設定のままだと拡張部分が暗くなり境界が見えます。

krea-2-registered-outpaint 拡張部分が暗い

これは、Krea 2がキャンバス全体を元画像より暗い露出で再生成して、Compositeが元画像部分だけを元の明るさへ戻すため、拡張部分との明暗差が残るためだと思われます。seam_pxの値を増やせば境界をぼかす幅は変わりますが、根本的に直りません。

そこで、Color Correct (mtb)前へ挟み、exposure: 0.50程度で輝度調整したら近い明るさになりました。

Color-Correctノード
VAE Decode
↓
Color Correct (mtb)
↓
Rebels Krea2 Outpaint Composite

ただ、これは自動的な正解値を出す方法ではなく、生成結果ごとの手動補正です。

本来必要なのは、Compositeで置き換えられる「生成された元画像部分」と本物の元画像だけを比較し、そこで求めた輝度差をキャンバス全体へ適用する処理です。現在のOutpaintノードにはその露出補正が組み込まれていないため、完全自動で直すには専用の補正ノードが必要になります。

現在のノードは「元画像のピクセルを戻して32pxでぼかす」ところまでで、生成部分との露出・ホワイトバランス調整を行っていませんが、自動補正版をノードを作って差し替えたら、完璧とは言えませんが、簡単に拡張してくれる面白いLoRAになりました。

Krea-2-Registered-Outpaint-workflow