C28:ComfyUI でのアウトペインティングをマスターする:ステップバイステップのワークフローガイド

はじめに

アウトペインティングは、キャンバス拡張とも呼ばれ、画像の視覚的な整合性を保ちながら画像の寸法を拡張するために使用される、インペインティングの特殊な形式です。このテクニックは、アスペクト比の調整や映画のようなビジュアルの作成に特に役立ちます。このガイドでは、ワークフローのセットアップとノード設定に焦点を当て、ComfyUI を使ってアウトペインティングを実装する方法を説明します。



アウトペインティングとは?

アウトペインティングでは、元のデータとの一貫性を保ちながら、既存の画像の境界の外側に新しいコンテンツを生成します。画像内の空白を埋める従来のインペインティングとは異なり、アウトペインティングはキャンバスを拡張します。これは多くの場合、特定の比率や美的目標を達成するためです。たとえば、このテクニックを使えば、画像を 2.35:1 の映画のようなアスペクト比に変換できます。

元の画像:

キャンバス拡張

左側の領域のアウトペインティング:

キャンバス拡張

ComfyUI でアウトペインティングワークフローを設定する

前提条件

始める前に、ComfyUI がインストールされ、正常に動作していることを確認してください。さらに、ComfyUI Inpaint Nodes パックをインストールします。これにはアウトペインティング専用のノードが含まれています。マネージャーでこのパックを検索し、インストールして、ComfyUI を再起動してください。


ステップ 1:画像を読み込む

  1. Load Image ノードを使って、変更したい画像を取り込みます。
  2. ノードを設定して、目的のファイルを読み込みます。たとえば、画像の名前が c28_outpaint の場合、それを入力として選択します。

ステップ 2:アウトペインティングのために画像をパディングする

  1. Pad Image for Outpainting ノードを Load Image ノードの画像出力に接続します。
  2. パディングパラメーターを設定します:
    • キャンバスを左側に 440 ピクセル 拡張します。
    • フェザリング値を 120 ピクセル に設定し、元の領域と拡張された領域の間で滑らかに遷移させます。

ステップ 3:マスクされた領域を塗りつぶす

  1. Fill Masked Area ノードを Pad Image for Outpainting ノードの画像出力とマスク出力の両方に接続します。
  2. Fill パラメーターを telea に変更します。この設定により、空白の領域が元の画像の端のピクセルから得られたデータで埋められ、シームレスな拡張が実現します。

ステップ 4:プレビューとエンコード

  1. Fill Masked Area ノードの画像出力を Preview Image ノードに接続し、塗りつぶされた領域を可視化します。
  2. Fill Masked Area ノードを VAE Encode ノードにリンクし、画像を潜在空間に変換して、以降の処理に備えます。
プレビュー

ステップ 5:マスクとノイズの設定を行う

  1. Pad Image for Outpainting ノードのマスク出力を Set Latent Noise Mask 入力に接続します。このステップにより、ランダムなノイズがマスクされた領域に適用されないことが保証されます。
  2. Remove Latent Noise Mask ノードを追加し、先に作成したマスクを消去して、画像全体でサンプリングできるようにします。

ステップ 6:潜在ノイズを注入する

  1. Inject Latent Noise ノードを Remove Latent Noise Mask ノードと 2 つ目の KSampler ノードの間に挿入します。
  2. ノイズ強度を 0.1 に下げます。このわずかなノイズの追加により、元の画像領域と拡張された画像領域の間の遷移ゾーンが向上します。

ステップ 7:サンプリングノードを設定する

  1. 2 つの KSampler ノードを使用します:
    • 1 つ目のサンプラーは 20 回の推論ステップ を実行し、デノイズ値は 0.65 です。このステップで、初期のアウトペインティングデータが生成されます。
    • 2 つ目のサンプラーは 4 回の推論ステップ で出力を精緻化し、デノイズ値はより低い 0.2 です。
  2. 一貫性のあるシードノード(例:rgthree Seed)を、両方のサンプラーと Inject Latent Noise ノードに接続し、均一な結果が得られるようにします。

ステップ 8:完了して実行する

  1. すべてのノード接続とパラメーター設定を再確認します:
    • パディング:440 ピクセル(左側)、フェザリング:120 ピクセル
    • ノイズ強度:0.1
    • Fill パラメーター:telea
  2. Queue Workflow をクリックしてプロセスを実行します。

完了すると、拡張されたキャンバスは元の画像とシームレスに融合するはずです。これは telea パラメーターと、精緻化されたサンプリングステップのおかげです。


アウトペインティングの主な利点

  • アスペクト比の調整: 映画のようなビジュアルを作成したり、画像を特定のフォーマットに合わせたりするのに最適です。
  • 一貫性: 追加されたコンテンツが元の画像のスタイルと細部に一致することを保証します。
  • 柔軟性: さまざまなプロジェクトに合わせて、パディング、フェザリング、ノイズのパラメーターをカスタマイズできます。

ノード設定のサンプルコードスニペット

アウトペインティングのノード接続を簡略化した表現を以下に示します:

Load Image --> Pad Image for Outpainting --> Fill Masked Area --> VAE Encode
              |                           |                   |
              |                           |                   --> Set Latent Noise Mask
              --> Mask Preview            --> Preview Image

アウトペインティングのワークフロー

参考文献

ComfyUI とノード設定の詳細については、公式ドキュメントを参照してください:
ComfyUI ドキュメント

コメントを残す