メインコンテンツへスキップ
見出し画像

建築ビジュアルCG × AI活用法⑰|360°画像生成AI① AUTOMATIC1111とComfyUIで360°画像生成を効率化する方法

    One More Vision
    画像

    こんにちは。STUDIO55技術統括の入江です。
    画像生成AIによる 360°パノラマ画像 の作成は、建築ビジュアルのCG制作において、スカイボックス や 環境データ として活用でき、制作の幅を広げます。既存のHDR画像を入手するだけでなく、独自の環境データを作成することで、より柔軟で多様な表現が可能になります。

    本日は、Stable Diffusion を活用した360度パノラマ画像の生成について、AUTOMATIC1111 と ComfyUI の使用感や成果をご紹介します。

    ●AUTOMATIC1111

    Stable Diffusion Web UI AUTOMATIC1111 は、Stable Diffusion を使うための最初の代表的なユーザーインターフェース(UI)の一つとして広く認識されています。ユーザーの要望に応じて機能の改善が行われ、定期的なアップデートもあるため、Stable Diffusion を利用する多くのクリエイターにとって標準的なツールとなっています。

    AUTOMATIC1111 は多機能ではありますが、360°画像の生成には多少の工夫が必要となります。Stable Diffusion はもともと通常の2D画像生成に最適化されているため、360°画像のような球面パノラマには対応していません。
    そこで360°画像を生成するには、例えば次のような方法がよく取られます。

    1. パノラマ分割:画像を水平または垂直に分割し、各部分を生成したあと、後で合成して360°パノラマにする。

    2. Latent Mirroring Technique:特別なプロンプトやガイド画像を使って、端と端がシームレスに接続されるよう調整する。

    3. プラグインや拡張の利用:AUTOMATIC1111のコミュニティから提供されている 360°画像生成をサポートする拡張機能やプラグインを活用する。

    🔷 LoRA

    LoRA(Low-Rank Adaptation)は、AIモデルに少量のデータやリソースで特定のスタイルや特徴を学習させる手法です。モデルの元の性能を維持しながら、新しい表現や効果を加えることができ、複数のLoRAを組み合わせて多彩な生成が可能です。

    360°パノラマ画像を生成する LoRA はいくつかあります。

    ・360 panorama
    ・LatentLabs360
    ・360 Diffusion Lora for SD 1.5
    ・360Redmond
    ・360 Degree Flux
    ・Flux Equirectangular 360° Panorama
    ・360pano_outdoor_xl
    ・HDR - 360 Degree Skybox Creator for SDXL

    これらのツールにはそれぞれ異なる使用感と生成される画像の特徴があります。すべてを取り上げることはできませんが、今回は『360 panorama』をメインに、さらに『LatentLabs360』と、ComfyUI を用いた『360 Degree Flux』の使用例もご紹介します。

    🔶360 panorama [SD1.5 / FLUX]

    『360 panorama』は、8/17 のアップデート直後、FLUX Lora を追加したアップデートが 立て続けにありました。(8/23)

    画像
    画像 : CHIVITAI 「360 panorama」

    ここでは、8/23アップデートバージョンを使って、従来の「SD1.5 360 LoRA」と、新しい「Flax LoRA」の2パターンで生成します。

    [SD1.5] LoRA

    画像
    Automatic1111 設定画面
    画像
    360 panorama [SD1.5 360]

    [FLUX] LoRA

    画像
    Automatic1111 設定画面
    画像
    360 panorama [Flax]

    比較してみると、クオリティに大差はありません。強いて言えば、「Flux」は少しエンハンスがかかった印象です。

    実は、これには理由があります。
    Flax モデル は、PyTorch ベース と異なる フレームワーク(JAX)で実装されており、PyTorch の Web UI(例えばAUTOMATIC1111など)ではサポートされません。したがって、現時点で Flax ベース の Stable Diffusion モデル を直接利用できるのは、主に Stable Diffusion Forge と ComfyUI のみとなっています。
    つまり、AUTOMATIC1111 を使用する場合、直接的には Flux モデル の効果が発揮されない結果になるということです。

    Flux モデル については、また改めて後述し、ここでは AUTOMATIC1111 を使ったパノラマ画像の生成について話しを進めます。

    ~問題点~

    『360 panorama』を使って生成する画像クオリティは、もともと他の LoRA と比べて優れたものがあります。

    この 場合の問題点としては クォリティではなく、以下の2点になります。

    1. 左右の画像の継ぎ目が出る問題

    2. エクイレクタンギュラー図法の問題

    1. 継ぎ目の問題

    画像の左右の切れ端をつないだ際にできる「継ぎ目」に関しては、フォトショップや他の画像編集ソフトで微調整することもよくありますが、できれば、生成時に一度にできてしまうのが理想的です。
    その場合、拡張機能を使用します。

    画像
    360ビューワーで見たつなぎ目

    ▪『Asymmetric-Tiling-sd-webui』

    『asymmetric-tiling-sd-webui』は、シームレスな画像処理を行う拡張機能です。

    画像
    GitHub :Asymmetric Tiling for stable-diffusion-webui ページ

    あくまでシームレスなタイリングが 100% 保証されるわけではありませんが、かなり優れた生成結果が期待できます。

    Like existing tiling options this won't guarantee seamless tiling 100% of the time, but it should manage it for most prompts.
    (直訳)
    既存のタイリングオプションと同様に、シームレスなタイリングが100%保証されるわけではありませんが、ほとんどのプロンプトで管理する必要があります。

    引用 : Asymmetric Tiling README
    画像
    ATUOMATIC1111 : Asymmetric Tiling設定画面

    エリック・チャン氏 は、画像がシームレスにタイリングされているかどうか、ウェッブ上で簡単に確認することができる オンライン ツール「Seamless Texture Check」を作成してくれています。

    画像
    画像引用 : pycheung.com

    これを利用して生成結果を タイリング チェック します。この場合、X軸のシームをチェックしますので、Y軸は関係ありません。

    画像
    画像 : シームレスチェックの使用画面

    あくまで無償提供ですが、気持ちのある方は、エリック に "コーヒーを買ってあげてください" (笑)。 

    画像
    画像引用:buymeacoffee.com

    生成した画像の 左右の継ぎ目 箇所が問題なくつながっているか、改めて VRビューワー で確認したのが下の画像です。
    かなりキレイに処理されているのが分かります。

    画像
    VR ビューワー画像

    各拡張機能のシーム処理はいずれも 100% 保証されるものではありません。その中でも Asymmetric Tiling は かなり優秀なエクステンションで、 ComfyUI で使用する タイリング エクステンション 等にも影響を及ぼしています。


    ~ComfyUI 拡張機能~

    参考に、ComfyUI で シーム処理にお役立ちのエクステンションを 2点 挙げておきます。

    ▪『seamless-tiling』

    「ComfyUI-seamless-tiling」は、ローダーとサンプラーの間で「Seamless Tile」ノードを使用し、Make Circular VAE または Circular VAE Decode ノードを使用してイメージをデコードします。Asymmetric-Tiling-sd-webui オプションを複製し、X/Y タイリング実装を行います。

    画像
    画像参考 : github.com
    画像
    ComfyUI 「seamless-tiling」設定画面
    画像
    VR ビューワー

    ▪『tiled_ksampler』

    「tiled_ksampler」は、WAS Studio の技術や構成を基に開発されており、ここでも、Asymmetric Tiling が参照されています。

    画像
    画像 : GitHub 「FlyingFireCo / tiled_ksampler」

    ksampler 機能にタイル処理を組み合わせる(生成プロセスにおける画像の出力品質やスタイルを決定する部分にタイル化機能を加えている)ことで、特に高解像度出力を求める場面で役立つものとなっており、ksampler のアルゴリズムを基にしつつ、さらに細かい調整が可能です。

    「Tiled KSampler」「Asymmetric Tiled KSampler」、「Circular VAE Decoder」で ノード設定を行います。

    画像
    ComfyUI 「tiled_ksampler」設定画面
    画像
    VR ビューワー

    ComfyUI を使用する場合の参考にしてください。


    2.エクイレクタンギュラー図法の問題

    2点目が「エクイレクタンギュラー図法の問題」です。
    "エクイレクタンギュラー" 
    という用語はあまり馴染みがないかもしれませんが、実は私たちが目にしたことがある世界地図がその一例です。具体的には、地球儀の球体形状を平面上に展開した形を指します。
    これは、360度パノラマ画像やテクスチャマッピング に利用される図法ですので、名称として覚えておくとよいでしょう。
    日本語では、『正距円筒図法せいきょえんとうずほう』と言います。

    画像
    正距円筒図法 画像参考 : original by NASA (sensor Terra/MODIS)

    エクイレクタンギュラー投影では、球体の表面を平面展開するため、画像の上下部分が広がったように見えるのが特徴です。しかし、先ほどの生成画像では、いわゆるこのような上下の ”地表ブレンド” が存在しないことが確認できます。

    画像
    上下の地表ブレンドエリア

    したがって、球体に戻した時に、地面や天井のない 下や上に向かって すぼまった見え方になります。

    画像
    VRビューワーの確認画像

    このような場合は、Asymmetric Tiling の README にあったように、”プロンプトで管理する必要” があります。

    プロンプト強調でどうなるか検証してみます。

    画像
    プロンプト強調の設定例
    画像
    生成した360°パノラマ画像

    先ほどよりは良くなりました。

    画像
    VRプレビューで見た画像

    この設定を踏まえ、外観のパノラマ画像を生成したのが次の画像です。
    ご覧のように "地表エリア" が きれいに表現されています。

    画像
    ATUOMATIC1111 設定画面
    画像
    生成画像

    VRビューワーでも正常な見え方です。

    画像
    VR ビューワー

    このような設定をしていない場合に生成される画像例も挙げておきます。

    画像
    生成画像

    このように、"地表エリア" のない パノラマ画像の場合は、球体に戻した(VRで見た)時に、上下がすぼまって見えてしまいます。

    画像
    VR ビューワー

    プロンプト調整や、追加の手順やツールが必要な場合がありますが、工夫があれば可能な範囲で対応ができますので、参考にしてください。

    🔶LatentLabs360

    『LatentLabs360』は、その名の通り、"潜在的な360度パノラマ生成ラボ" として、エクイレクタンギュラー図法に則のっとった形状生成を得意とする LoRA です。

    画像
    画像 : CHIVITAI「LatentLabs360 」

    先ずは、内観の生成画像です。

    画像
    ATUOMATIC1111 設定画面
    画像
    生成画像

    生成された パノラマ画像 は、上下の地表ブレンド がしっかり反映されており、特に工夫を加えなくても エクイレクタンギュラー図法 で生成されています。

    また、共通して ”継ぎ目” の問題はありますので、この点は、同じようにエクステンションで補正します。

    画像
    継ぎ目の問題

    シーム処理も加えた 外観パノラマの生成例がこちらです。

    画像
    ATUOMATIC1111 設定画面
    画像
    生成画像
    画像
    VR ビューワー

    『LatentLabs360』の使用感としては、内観の生成はクラシック空間が得意なようで プロンプト要素に従わない場合が多々あります。そのため、特に外観の生成におけるクォリティで期待ができるものであると言えます。

    各 LoRA の特性を把握し、どの LoRA が目的の生成に対して適正であるかを探っておくことはとても大事です。
    特に、AUTOMATIC1111 を使った建築ビジュアルの活用では、1つの LoRA ですべての建築ビジュアル要素に対して適正な結果を期待するのは難しいケースがあります。
    また、それぞれの LoRa の特徴を把握することで、補正したい要素を補い、特性を際立たせるといった応用的な複数使用の使い方が考慮できるようになります。

    参考例として、『360 panorama』と『LatentLabs360』を組み合わせた生成を、以下に挙げておきます。

    画像
    Loraの複数設定
    画像
    ATUOMATIC1111 設定画面
    画像
    VR ビューワー

    LoRA は相性の良い組み合わせが存在しますので、工夫しながら様々な生成パターンを試して、新たな発見を楽しみましょう。

    ●ComfyUI

    ComfyUI (快適なUI) は、Stable Diffusion をベースにした画像生成ツールで、ノードベースのインターフェースを採用しているのが特徴です。

    画像
    画像引用 : comfy.org

    ユーザーはノードを組み合わせることで、画像の生成プロセスを細かくカスタマイズでき、複雑な生成フローも視覚的に構築できます。

    画像
    ComfyUI 初期インターフェイス

    ComfyUI の初期開発は 2024 年半ば頃に勢いを増し、同年 7 月にバージョン リリースが開始されました。そのため、今年(2024年)の夏以降、LoRA の新しい360度パノラマ生成に特化したリリースモデルは、ComfyUI との互換性を考慮して設計されているものが多くなっています。
    例えば、冒頭に挙げた「360 panorama [FLUX]」や、「360 Degree Flux」「Flux Equirectangular 360° Panorama」などもそうです。

    ComfyUI の主な使用理由は、VRAMの使用量を抑えつつ、効率的にパノラマ画像を生成できる点にあります。また、ComfyUI は設定や調整の柔軟性が高いため、シームレスなパノラマ生成や画像品質の細かい調整に最適です。

    🔷Flux モデル

    今年(2024年)8月に登場した Flux.1 によって、ここ最近のリリースモデルには、Flux モデル が多く採用される傾向も顕著になっています。
    Flux.1 のクォリティの高さは改めて伝えるまでもありません。以前、建築ビジュアルにおける その卓越したクォリティもお伝えしました。

    それを使用した モデル は、当然のように注目が集まります。

    ComfyUI で『flux-dev.safetensors 』を使った生成例です。

    画像
    ComfuUI : flux-dev.safetensors ワークフロー

    生成される画像は、まさに Flux.1 のクォリティそのもの。
    Stable Diffusion を通して Flux.1 が使用できることに、多くの AIユーザーが、創造の新たな扉が開かれる期待と感動を抱いています。

    画像
    ComfyUI flux-dev 生成画像

    ▪『Flux1-dev-fp8』

    Black Forest Labs によって作成された FLUX.1 AI モデル シリーズの開発バージョン(dev) 『flux1-dev-fp8』モデルは、視覚的な忠実度を維持しながら処理の高速化とメモリ使用量の削減に最適化されている FP8 (float8) 精度が使用されています。

    画像
    画像引用 : hagging Face [flux1_dev]

    これは、SafeTensor 形式のプルーニング モデルとして提供され、特に ComfyUI などのツールを介してテキスト プロンプトから画像を生成するアプリケーションでの高度なワークフロー向けに設計されています。そのため、ユーザーはテクスチャの品質やパノラマ ステッチなどの側面を微調整できます。

    Unetモデル や CLIPモデル などの FLUX のモデルファイルは、ComfyUI のファイル構造内に保存されるように最適化されており、その環境で作業するユーザーのセットアップエクスペリエンスが向上します。さらに、オプティマイザーの選択やメモリ最適化機能などの構成設定は ComfyUI の構造とよく一致しており、360度パノラマ画像生成の効率的なトレーニングと使用をサポートしています。

    🔶360 panorama [SD1.5 / FLUX]

    冒頭に AUTOMATIC1111 でテストした『360 panorama[SD1.5 / FLUX]』LoRA を、改めて検証します。

    [SD1.5] LoRA

    画像
    ComfyUI ワークフロー
    画像
    360 panorama [SD1.5] 生成画像

    [FLUX] LoRA

    画像
    ComfyUI ワークフロー
    画像
    360 panorama [FLUX] 生成画像

    「Flux」LoRA モデル は「SD1.5」LoRA を大きく上回る性能を持ち、その生成結果は驚異的です。同じプロンプトとシード値で比較すると、Flux モデル が生み出す高品質かつリアルな画像は、まさに感動的といえます。
    知らない人が見たら、実際の空撮パノラマ撮影の画像と見間違えるでしょう。

    画像
    VR ビューワー

    🔶360 Degree Flux

    「360 Degree Flux」は、建築ビジュアルやVR向けの背景制作に利用される LoRA で、従来の生成モデルと比較して、特に視点の連続性や空間感を重視した出力として期待されています。

    画像
    「360 Degree Flux」

    flux1-dev-fp8 のワークフローで設定します。

    画像
    ComfyUI : flux1-dev-fp8 ワークフロー
    画像
    360 Degree Flux
    画像
    VR ビューワー

    写真のようにリアルな生成画像は、まさに Flux モデル の実力を示しています。ほぼ実写といっても過言ではありません。

    ComfyUI Flux を使ったパノラマ画像は、AUTOMATIC1111 と比較して、精度、クォリティ、画質、シーム処理、マシーン処理の軽量化等も含めて、まさに 一線を画すものがあります。

    ただし、ステータスについては、flux1-dev-fp8 モデルは確かに正式にリリースされた開発バージョンですが、FLUX.1 の開発ブランチに固有の 非商用ライセンスの対象 となります。
    また、Flux の開発バージョンで作られた  LoRA モデル のライセンスは、Black Forest Labs によって別途指定されない限り、非商用目的のみでの使用が制限されるため、取り扱いには注意が必要となります。

    セットアップと使用方法の詳細については、公式の Civitai ページまたは Hugging Face リポジトリを参照してください。

    *

    次週も 360°画像生成AIについてお話しします。
    360°画像生成AIは、建築ビジュアルCG制作におけるもっとも有効な活用法の1つです。楽しみにしてください。

    では、また!


     
     
     
    "One More Vision"は建築ビジュアライゼーションをベースに、STUDIO55技術統括の入江達也が独自の視点で最新情報を毎週お届けします。 STUDIO55サイト: https://studio55.co.jp/

    あなたへのおすすめ