ComfyUI Panorama Stickers

参照画像から360度パノラマ画像を作る FLUX.2 Klein 4B/9B 360 ERP Outpaint LoRA 専用のUIです。

このLoRAの基本アプローチは outpainting です。
パノラマを長方形に展開した画像を ERP(equirectangular panorama)と呼びますが、空のERPに任意の画像を貼り、残りの部分をoutpaintすればパノラマ画像が作れる、という発想ですね。

ただし、長方形に画像を貼っただけではERPとして自然に見えません。
ERPはパノラマを展開したものなので、場所によって歪み方が変わります。また、ERPを見ながら「完成後のパノラマ」を想像してcontrol画像を作るのは、UXとしてイケてません。

このカスタムノードは、

  • パノラマの中に入り
  • 実際に景色を見ている感覚のまま参照画像を配置し
  • その結果をERPとして出力する

という流れで、control画像作りを楽にするためのUIです。
出力ERPをそのまま FLUX.2 Klein に編集してもらうことで、パノラマ画像が完成します。


ノード構成

このカスタムノードは、4つのノードで構成されています。

  • Panorama Stickers:ERPキャンバスに画像を配置する
  • Panorama Cutout:パノラマ内の任意視点を切り出す(撮影する)
  • Panorama Preview:ノード上でプレビューする
  • Panorama Seam Prep:左右端の継ぎ目を整える

インストール

nomadoor/ComfyUI-Panorama-Stickers

  • ComfyUI Manager からインストールしてください。

キャンバスの基本操作

レガシー/Node2.0の両方で安定した動作をさせるため、基本的には専用のモーダルUIから操作する設計にしています。

Panorama Preview だけはノード上でもプレビューできますが、操作はモーダルUIを前提にしています。

モーダルUIを開く

  • Open Stickers Editor(Cutout / Preview も同様)ボタンをクリック

視点移動 / ズーム

  • 左ドラッグ / 中ドラッグで視点移動
  • マウスホイールでFOV変更(ズームイン・アウト)

右下ボタン

  • 視点初期化
  • ガイド線表示切替

描画方法切り替え

  • 左上トグルで Panorama / ERP(展開) を切り替え

ドラッグ方向

  • Inspector の UI SettingInverted で反転

Panorama Stickers

ERPキャンバスに参照画像を置いていくためのEditorです。

画像の追加

  • + Image ボタン、またはドラッグ&ドロップで追加
  • 追加直後は視点の中心付近に配置されます

画像の移動・拡大・回転

  • 画像ドラッグで移動
  • 画像を選択するとハンドルが出るため、各ドットを掴んで変形できます
    • Shiftを押しながら回転で45度ずつ回転します
  • Inspectorのスライダーでも調整できます

重なり順 / 複製

  • 画像を選択すると、画像下にUIが表示されます
  • ボタンで最前面・最背面へ移動できます
  • 複製ボタンで同じ画像を追加できます

画像の削除

  • 画像下の削除ボタン or Delete キー
  • キャンバス下部の Clear all ボタンからは全削除もできます

Inspectorから画像選択

  • Inspectorの Image から画像を選ぶと、その画像が中心に来るように視点が移動します

Panorama Cutout

パノラマの中に入り、カメラで撮影するように任意視点を切り出すEditorです。

フレームの追加

  • 下部の + Add frame で追加します
  • 右上にプレビューが表示されます

フレームの移動・拡大・回転

  • 基本は Panorama Stickers と同じです
  • 辺をドラッグすることで、縦横比も変えられます

既定のアスペクト比へ変更

  • フレーム選択時のUIから 1:13:2 などを選べます
  • 横の Rotate 90° で縦横を切り替えられます

フレーム位置へ視点移動

  • 下部UIの 📷 ボタンで、フレーム位置に視点が移動します

Panorama Preview

ノード上でプレビューを見られるノードです。モーダルUIは他と共通ですが、機能を絞っています。

ノード上プレビュー

  • 基本的にはモーダルUIと同じようにドラッグ、マウスホイルで操作することができます。

全画面表示

  • 右下ボタンで全画面表示にできます
  • Esc で解除します

Panorama Seam Prep

どんなに上手く学習しても、パノラマ画像の左右端(シーム)の完全一致は難しいです。
このノードは、境目が画像の中心になるように画像をずらし、境目をinpaintingで後処理するときに使用します。

PanoramaSeamPrep.json
  • seam_width_px : マスクの幅を指定します
  • seam_center_offset_px : 境界を中心からずらします
  • mask_blur_px : マスクの両端をぼかします
    • inpaintingした結果を元の画像に合成するときに使用します

workflow

実際にLoRAを使って、参照画像からERPパノラマを作ってみます。

既知の問題ですが、DistilledモデルではLoRAがほとんど効きません。対策を探していますが、現状は base model 前提で使ってください。

モデルのダウンロード

📂ComfyUI/
└── 📂models/
    ├── 📂diffusion_models/
    │   ├── flux-2-klein-base-9b-fp8.safetensors
    │   └── flux-2-klein-base-4b.safetensors
    ├── 📂loras/
    │   ├── flux-2-klein-9B-360-erp-outpaint-lora_V1.safetensors
    │   └── flux-2-klein-4B-360-erp-outpaint-lora_V1.safetensors
    ├── 📂text_encoders/
    │   ├── qwen_3_8b.safetensors
    │   └── qwen_3_4b.safetensors
    └── 📂vae/
        └── flux2-vae.safetensors

flux-2-klein-9B-360-erp-outpaint

  • Panorama Stickers で参照画像を配置してERPを作ります
  • プロンプトは「トリガーワード + α」でOKです
Fill the green spaces according to the image. Outpaint as a seamless 360 equirectangular panorama (2:1). Keep the horizon level. Match left and right edges.

生成されるのはERP(2:1)画像です。そのままだと見づらいので、Panorama PreviewPanorama Cutout で確認・撮影してください。

flux-2-klein-4B-360-erp-outpaint