記事内に広告が表示されます

「MultiDiffusion」による画像の拡大【Stable Diffusion web UI】

multidiffusion-with-tiled-vae スマホ・PC
スポンサーリンク

 「Stable Diffusion web UI」を利用してAI画像の生成を行うときに、グラフィックボードのVRAM容量が少ないと大きな画像を生成することができません。一定サイズ以上の画像(たとえばFHD、WQHD、4Kなど)を生成しようとするとVRAMエラーが出てしまいます。

 そういう時に「MultiDiffusion with Tiled VAE(マルチディフュージョン・ウィズ・タイルド・ブイエーイー)」という拡張機能を利用することによって、VRAM容量の少ないグラフィックボードを使用していてもパノラマ画像や高解像度の画像を生成することができるようになります。公式によるとVRAM12GBのグラフィックボードでは最大8Kまでの高解像度化が可能とあります。

 「MultiDiffusion with Tiled VAE」は画像を複数の領域に細かく分割して各部ごとに描画を行わせてから統合することで、少ないVRAMでも大きな画像の生成を実現しているようです。

 とはいえ「MultiDiffusion with Tiled VAE」も万能ではなく、使いどころを上手く見極める必要がありそうです。ここでは失敗も含めてサンプル画像を掲載しています。

 なお、誤字脱字や間違い等は後日修正していく予定です。予めご了承ください。

「Cutoff」による色の正確な指定【Stable Diffusion web UI】
「Cutoff」という拡張機能を利用することでプロンプトの色指定が他の要素に移ることをある程度防ぐことができます。使い方はとても簡単です。
スポンサーリンク

「MultiDiffusion with Tiled VAE」を用いた画像の高解像度化

「MultiDiffusion with Tiled VAE」のインストール

 ここでは「MultiDiffusion with Tiled VAE」という拡張機能を「Stable Diffusion web UI」にインストールする方法を紹介しています。

 この「MultiDiffusion with Tiled VAE」の詳細は以下のページをご覧ください。

 拡張機能は「Stable Diffusion web UI」のバージョン等によって正常に動作しないことがあります。また、拡張機能の利用に際して本体の更新が必要になることもあります。したがって、拡張機能のインストールや本体の更新は自己の責任に基づいて実行してください。本体の更新手順は以下のとおりです。

Stable Diffusion web UI の更新手順【Stable Diffusion web UI】
「Stable Diffusion web UI」をアップデートする手順について、誰でも分かるように簡単にまとめています。

 ここから、この拡張機能のインストール方法を見ていきます。

multidiffusion-with-tiled-vae

 「Stable Diffusion web UI」を立ちあげて「拡張機能(Extensions)」タブから「拡張機能リスト(Available)」を開きます。

 「URLからインストール(Install from URL)」する場合は以下のURLを指定します。

https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git

 ここでは「拡張機能リスト(Available)」からインストールを実行します。「拡張機能リストのURL(Extension index URL)」にはURLが予め記載されていますので、そのまま「読込(Load from:)」ボタンをクリックします。

multidiffusion-with-tiled-vae

 すると、「拡張機能リスト(Available)」の一覧にさまざまな拡張機能が表示されます。そのリストの中から「MultiDiffusion with Tiled VAE」を探して、右側の「インストール(install)」ボタンをクリックします。

multidiffusion-with-tiled-vae

 インストールはすぐに完了して、リストの上部に「Extensionsフォルダにインストールしたのでインストール済タブから再起動してください」というメッセージが表示されます。

multidiffusion-with-tiled-vae

 「インストール済(installed)」タブに移動して「適用してUIを再起動(Apply and restart UI)」をクリックします。これでインストール作業は完了です。

 何らかの拡張機能をインストールした直後は、念のために「Stable Diffusion web UI」自体を再起動しておくとよいかもしれません。

multidiffusion-with-tiled-vae

 「MultiDiffusion with Tiled VAE」のインストールが正常に行われている場合は、「Tiled Diffusion」と「タイル上のVAE(Tiled VAE)」の二つの項目が「txt2img」タブ内と「img2img」タブ内に追加されています。

multidiffusion-with-tiled-vae

 それぞれの項目をクリックすると詳細設定の画面が開きます。ここでいくつかの設定を行います。

スポンサーリンク

「MultiDiffusion with Tiled VAE」の使い方

「Stable Diffusion web UI」と拡張機能の利用環境

 こちらのPC環境等は以下のページから確認してください。

Stable Diffusion web UI を利用してAIイラストを生成する
AIイラストを作成するために「Stable Diffusion」をパソコンにインストールしてローカル環境を構築してみました。導入直後に生成したサンプル画像もあります。
新しいパソコンが完成したのでパーツの構成を紹介します
2020年6月、新しいパソコンを購入しました。必要なパーツを集めて組立てる自作PCというものです。お手頃価格のパーツを集めて10万円程度になるようにしてみました。これからパソコンを作り替えるという方はぜひ見てみてください。
AI画像の生成はグラフィックボードの交換で超快適になる!
グラフィックボードを「GTX 1660 Super」から「RTX 3060」に換装しました。その結果、AI画像生成の処理において画像生成にかかる時間が大幅に短縮されました。
デスクトップパソコンのメモリを増設する方法とその後の確認
メモリを増設することでWebブラウザ、ゲーム、動画の編集などが快適になります。最近はメモリがとても安くなっているので増設を検討してみてください。
M.2 SSD の取り付け方法とフォーマットの手順
NVMe接続のM.2 SSD を取り付ける方法とM.2 SSDをフォーマットするやり方について、初心者の方でも分かるように画像付きで詳しく解説しています。

 拡張機能等は一般論としてPC環境や「Stable Diffusion web UI」のバージョンの違いによって正常に動作しないことがあります。

 「Stable Diffusion web UI」の更新方法は以下をご覧ください。

Stable Diffusion web UI の更新手順【Stable Diffusion web UI】
「Stable Diffusion web UI」をアップデートする手順について、誰でも分かるように簡単にまとめています。

 拡張機能のインストール方法の詳細は以下に詳しいまとめがあります。

拡張機能のインストール【Stable Diffusion web UI】
Stable Diffusion web UI を最近使い始めた方が確認しておくべき拡張機能リストとリストからのインストール方法について簡単にまとめています。

 こちらのページでは項目名を日英で併記していますが、バイリンガル版を導入すると大変便利です。詳しくは以下のページをご覧ください。

バイリンガル設定の導入【Stable Diffusion web UI】
「Stable Diffusion web UI」のインターフェースを日本語と英語の「2ヶ国語同時表示(バイリンガル表示)」にする方法を紹介しています。

「txt2img」から「MultiDiffusion with Tiled VAE」を利用する

基本設定

multidiffusion-with-tiled-vae

 「txt2img」タブを開いてから「Tiled Diffusion」と「タイル上のVAE(Tiled VAE)」の二つの項目を開くと、それぞれの機能の詳細設定画面が開きます。

 まず「Tiled Diffusion」内の「有効化(Enable)」と「現在の画像サイズで上書き」にチェックを入れます。「Method(手法)」が「MultiDiffusion機能(MultiDiffusion)」になっていることを確認します。

 他の要素はデフォルトの状態にしておきます。細かい設定は使い方に慣れてから変更してみてください。

 次に「画像の幅」と「画像の高さ」という項目を調整します。最初はパノラマ画像(横長)を作成することをおすすめいたします。「画像の幅」を「1920」「2560」「3840」などの任意の値に設定します。しかし、画像の高さ」は「512」か「768」、最大でも「1024」までの値を指定します。最初は「512」から試すのがおすすめです。その理由はサンプルとともに後述します。

 それから「タイル上のVAE(Tiled VAE)」内の「有効化(Enable)」にチェックを入れます。公式によると通常はデフォルトの設定で使用できるようですが、CUDA のメモリ不足エラーが発生した場合は「エンコーダータイルサイズ(Encoder Tile Size)」と「デコーダーのタイルサイズ(Decoder Tile Size)」の2つのタイルサイズを小さい値に変更するとのことです。

 「VAEをGPUに移動」はチェックあり/なしを両方試してみましたが、VRAM12GBのグラフィックボードであればどちらでも変わらないようです。VRAM容量が少ない場合はチェックを入れないようにしたほうがよいと思います。

 こちらの項目も他の要素はデフォルトの状態にしておきます。細かい設定は使い方に慣れてから変更してみてください。

 あとはいつもどおりに「プロンプト」と「ネガティブプロンプト」を入力して、「サンプリング方法(Sampling method)」を好みのものに変更しておきます。画像のサイズは512×512のままでOKです。

作成例1 星空の下で佇む女性たち

multidiffusion-with-tiled-vae

 こちらは画像のサイズを「2048×512」に設定した上で画像の生成を行ったものになります。プロンプトは以下のとおりです。以下2枚の画像のプロンプトも同一です。

プロンプト
masterpiece, best quality, 3 girls, brown hair, hair flower, brown eyes, (long skirt:1.2), wide shot, starry sky
ネガティブプロンプト
 (worst quality, low quality:1.4)
その他
Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 7, Model: anything-v4.0, Clip skip: 2

multidiffusion-with-tiled-vae

 再生されたパノラマ画像を見てみましょう。これくらいの設定であれば閲覧に耐える画像を出力することが可能です。

 なお、画像はブログの掲載にあたり縮小化しています(以下も同様)。

multidiffusion-with-tiled-vae

 こちらはサイズを「2560×512」にしたものになります。このくらいのサイズでもまったく問題なく画像を生成することができます。

 しかし、画像の高さを低く設定していることには明確な理由があります。

multidiffusion-with-tiled-vae

 こちらは「4K(3840×2160)」を指定して画像を生成したものになります。右上が「無茶しやがって…」のAAみたいになっていますね……

 大きな画像の生成はそれなりに時間が掛かります。「4K」はRTX 3060で10分ちょっと掛かっていたと思います。高さを低くすると数分から10分未満で画像が生成できます。

 人物描写に関するプロンプトを入れた状態で巨大な画像を生成するとこのような画像になってしまいます。人物を大きなキャンバスに無理矢理描き込んだといった状態です。

 人物の描写をプロンプトに含める場合は高さの調整が肝になるといえます。高さは「512」や「768」が適切で「1024」あたりが限界に感じます。

作成例2 友だちとカフェへ

multidiffusion-with-tiled-vae

 今度は異なるプロンプトで画像を生成してみます。以下の2枚も同じプロンプトです。

プロンプト
best quality, multiple girls, silver hair, red hair, brown hair, pink hair, brown eyes, black t shirt, blue pants, wide shot, coffee shop
ネガティブプロンプト
Negative prompt: nsfw, flat color, flat shading,retro style, poor quality, bad face, bad fingers, bad anatomy, missing fingers, low res, cropped, signature, watermark, username, artist name, text
その他
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Model: anything-v4.0, Clip skip: 2

 上記の画像は「2560×768」を指定したものになります。画面を三分割したとすると、ちょうど継ぎ目にあたる部分の表現がやや微妙になっています。また、空間がやや湾曲した状態になってしまっています。

 この点は細かい設定を変更することで改善可能なのかもしれませんが、先ほどの設定では似たり寄ったりの出力画像になります。

 髪色はプロンプトを工夫することで数パターンを出すことができるようです。服装は1パターンしか入力していなかったため、皆同じような服を着ています。このあたりもプロンプトを工夫することでもう少し改善できるかもしれません。

multidiffusion-with-tiled-vae

 こちらの画像は「3840×768」を指定したものになります。

 やはり人物を上手く描いてもらうということはかなり難しいところがあります。細かいところに粗が目立ちます。

 明らかな失敗作もご覧ください。

multidiffusion-with-tiled-vae

 これはひどい!!w

 こちらの画像は「4K(3840×2160)」を指定した上で、「1 girl」をプロンプトに含めて独りの人物を描けるかどうかを試した時のものになります。

 画像が明らかに崩壊してしまっています。画面を細かく分割した上で画像を生成しているということもあってか、各部に無理矢理一人ずつ描こうとしているようです。

 こちらが使い方を理解できていないという点はもちろんあると思います。しかし、人物を含める場合にはプロンプトとサイズの指定に工夫が必要ということは間違いありません。

 一方、風景や特定の場所などの背景画像を生成する分にはそれなりに活用できます。

作成例3 カフェ(背景のみ)のパノラマ画像

multidiffusion-with-tiled-vae

 こちらは「喫茶店」の画像を生成したものになります。人物に関するプロンプトは排除しています。とはいえ、左端のカウンター内に店員さんと思しき人物が小さく描かれています。人物の描写に関するプロンプトが含まれていなくても、人物が描かれていることは普通にあります。

 プロンプトは次の通りです。プロンプトは先ほどのものから人に関する表現を除外しただけです。

プロンプト
best quality, wide shot, coffee shop
ネガティブプロンプト
nsfw, flat color, flat shading,retro style, poor quality, bad face, bad fingers, bad anatomy, missing fingers, low res, cropped, signature, watermark, username, artist name, text
その他
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Model: anything-v4.0, Clip skip: 2

 画像のサイズは「3840×768」です。つなぎ目のような箇所があることから不自然さはありますが、パッと見た感じではこんなものかなという印象を受けます。

作成例4 星空と草原(背景のみ)のパノラマ画像

multidiffusion-with-tiled-vae

 こちらは「星空と草原」の画像を生成したものになります。画像のサイズは「3840×768」です。

 こちらも人物に関するプロンプトは排除しています。しかし、画像を同じ設定で繰り返し生成していると、人物が描かれてしまうことが時々あります。

 プロンプトは次の通りです。以下の2枚の画像も同様です。

プロンプト
best quality, wide shot, starry sky, grass field
ネガティブプロンプト
nsfw, flat color, flat shading,retro style, poor quality, bad face, bad fingers, bad anatomy, missing fingers, low res, cropped, signature, watermark, username, artist name, text
その他
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Model: anything-v4.0, Clip skip: 2

multidiffusion-with-tiled-vae

 先ほどと同じ「星空と草原」の画像を生成したものですが、こちらはサイズが「3840×1024」になっています。

 これくらいであれば風景はまだそれらしく描かれるようです。

multidiffusion-with-tiled-vae

 ところが「4K(3840×2160)」を指定すると途端におかしな表現になってしまいます。

 もしかすると、細かい設定を変更することで対処できるのかもしれません。

「Region Prompt Control」を利用して描写に制限を加える

基本設定

multidiffusion-with-tiled-vae

 「Tiled Diffusion」内の「有効化(Enable)」と「現在の画像サイズで上書き」にチェックを入れます。また「Method(手法)」が「MultiDiffusion機能(MultiDiffusion)」になっていることを確認します。

【補足】
 しかし、後者の「現在の画像サイズで上書き」は一旦チェックを入れずに、デフォルトのサイズ設定のところで「512×512」「512×768」「768×512」等でしばらく様子をみたほうがよいかもしれません。

 「現在の画像サイズで上書き」にチェックを入れる場合は、サイズを最初から大きくしないほうがよいと思います。上の画像では「2560×1440」を指定していますが、大きなサイズよりも小さなサイズからお試しになることを強く推奨いたします。その理由は高解像度化によって画像が大きく崩れてしまいます。

 他の要素はとりあえずデフォルトの状態にしておきます。細かい設定は使い方に慣れてから変更してみてください。

 「Tiled Diffusion」内の下部に「Region Prompt Control(リージョン・プロンプト・コントロール)」という項目があります。

 この機能を使うことでどこに何を描くのかをある程度制御できるようです。しかしながら、こちらも色々使ってからサンプル画像を掲載しようと試行錯誤していたものの、現時点ではうまく使いこなすことができていません。

 画像を繰り返して生成していたのですが、見られる画がまったく出てきませんでした。そのため、ここでは簡単な使い方の紹介にとどめます。

 間違っている可能性も大いにありますので話半分で聞いて(見て)おいてください。笑 後日、内容を追加するかもしれません

→ 作成例とその詳細設定を追加しました。この項目と次の項目を併せてご覧ください。

multidiffusion-with-tiled-vae

 「Region Prompt Control」をクリックすると詳細設定の画面が表示されます。「Enable Control(コントロールの有効化)」と「Draw full canvas background(キャンバス全体の背景を描画する)」にチェックを入れます。

 そして、「Create txt2img canvas(txt2imgキャンバスを作成する)」をクリックしてキャンバスを作成します。

【補足】
 解像度を変更した場合は、「Create txt2img canvas(txt2imgキャンバスを作成する)」を再びクリックして、新しいキャンバスサイズを適用する必要があります。解像度の変更後にキャンバスサイズを変更していないと、キャンバスサイズが前の設定のままになってしまいます。

 赤い枠やオレンジの枠は、この後の「Region(領域)」を有効化することによって出現します。この枠を拡大縮小&移動することで特定の要素を描画する領域を指定するという機能になります。

 ただし、各領域を広げすぎると「Warning: Region very large! Take care of VRAM usage!(警告:領域が大きすぎます! VRAM の使用方法に注意してください!)」という警告文が表示されます。それでも画像の生成自体はできます。

 これらの枠線の設定はかなりシビアです。各枠を適当に配置してしまうと描画される内容がたちまち崩れてしまいます。

multidiffusion-with-tiled-vae

 こちらは先ほどの赤色の枠やオレンジ色の枠が出ている画面の続きです。

 「Region 1(領域1)」という項目をクリックすると詳細設定の画面が表示されます。そこで「Enable Region 1(領域1を有効化)」をクリックして「Forground(前景)」を指定します。

 これによって、前景となる領域を赤枠内に限定することができます。そして、その上で前景のプロンプトを入力することになります。

 同じように「Region 2(領域2)」をクリックして詳細設定の画面を開きます。そこで「Enable Region 2(領域2を有効化)」をクリックして、今度は「background(背景)」を指定します。

 これで背景となる領域をオレンジ枠内に限定することができます。そして、こちらでは背景のプロンプトを入力することになります。

 なお、今回は前景を最初にしてしましたが、公式では「Region 1」に背景を指定して、「Region 2」に人物1を指定、「Region 3」に人物2を指定というようにしているようです。→ 追加した作例では公式に併せて最初に背景を指定しています。

multidiffusion-with-tiled-vae

 この「Region(領域)」の指定は1~8まで可能なようです。とりあえず、「Region 1(領域1)」と「Region 2(領域2)」で試してみてください。

 このほか、メインのプロンプトは主に品質に関わるものをプロンプトとネガティブプロンプト欄にそれぞれ入力することになります。また、タイルサイズに関するパラメーターは無効化されるとのことです。さらに、キャラクターの全身を綺麗に描くことも難しいとのことです。

 人物を単純に左・右または左・中・右に描いてもらいたいということであれば「Latent Couple」という拡張機能の利用が最適です。詳細は以下にまとめがあります。サンプル画像もたくさん掲載しています。

「Latent Couple」による人物の描き分け【Stable Diffusion web UI】
「Latent Couple」という拡張機能を利用することで、画面を分割して各領域ごとにプロンプトを効かせて、各人物をうまく描き分けることができるようになります。

(追加)作成例1&2とその時の各種設定

region-prompt-control

 最初に基本的な設定を行います。プロンプトと設定は以下のとおりです。その他は画像を拡大してご確認ください。

プロンプト
masterpiece, best quality
ネガティブプロンプト
(worst quality, low quality:1.4)
その他
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Model: anything-v4.0, Clip skip: 2

region-prompt-control

 「Tiled Diffusion」内の「有効化(Enable)」と「現在の画像サイズで上書き」にチェックを入れます。サイズは「1024×768」を指定しています。さらに大きなサイズが必要な場合は、後から「img2img」を利用して拡大することを検討してください。

 「Method(手法)」が「MultiDiffusion機能(MultiDiffusion)」になっていることを確認します。

 「Region Prompt Control」をクリックして、「Enable Control(コントロールの有効化)」と「Draw full canvas background(キャンバス全体の背景を描画する)」にチェックを入れます。

 「Create txt2img canvas(txt2imgキャンバスを作成する)」をクリックしてキャンバスを作成します。赤色やオレンジ色の枠は「Region(領域)」の有効化後に表示されます。

 先に説明しておくと、背景を指定した赤枠はキャンバス全面を覆うように拡大しています。そして人物1と人物2を指定した各領域(オレンジ枠と黄色枠)は真ん中にそれなりの大きさに拡大しています。これらの範囲の指定は小さすぎても大きすぎても上手くいきませんでした。良い塩梅に調整するだけでも膨大な時間が奪われてしまいます。

 なお、例に挙げている設定が最適解という訳ではなく、解像度や描画内容に応じて適切な設定を模索する必要があるものと思われます。

region-prompt-control

 「Region 1(領域1=赤枠)」は「Background(背景)」を指定しました。プロンプトには「red sofa(赤いソファ)」とだけ入力しました。

region-prompt-control

 「Region 2(領域2=オレンジ枠)」は「Foreground(前景)」を指定しました。

 プロンプト欄には「1 girl, silver hair, long hair, light smile, black t shirt, (long skirt:1.3), sit in a sofa」というように一人目の人物に関するプロンプトを入力しています。

region-prompt-control

 「Region 3(領域3=黄色枠)」も「Foreground(前景)」を指定しています。

 プロンプト欄には「1 girl, brown hair, short hair, laughing, white t shirt, (blue pants:1.2), sit in a sofa」というように二人目の人物に関するプロンプトを入力しました。

region-prompt-control

 こちらが上述の設定の結果として生成された画像になります。「赤いソファ」という背景、一人目の「銀髪ロング、微笑、黒tシャツ、ロングスカートっぽい下」、二人目の「茶髪ショート、笑い顔、白tシャツ、ズボン」というように入力したプロンプトが指定した範囲に大体表現されています。いかがでしょうか。

 青いズボンという指定が白tシャツに引きずられて白っぽくなっていますが、色の薄いジーンズもあるのでよしとしましょう。青色はソファのほうに表現されてしまったようです。

region-prompt-control

 まったく同じ設定で別の画像を生成してみました。今度はどれもある程度うまく表現されているのではないでしょうか。

 ちなみに、このような画像が毎回出てくることはありません。5枚~10枚に1枚程度かもしれません。ガチャは必須です。

 「Region Prompt Control」の設定は、プロンプト、キャンバスサイズ、枠の範囲を調整するだけでも数日は掛かってしまいました。これ以上は試行錯誤する気力が起きません。皆さんはこの結果を叩き台にして時間を無駄にせず良い結果を出してください。

 「あとは任せた」> _:(´`」 ∠):_

 この内容が少しでも役に立ったという方は他のページもついでに見ていただけると幸いです。過疎ブログの応援をよろしくお願いします。

ケースファンを増設してPCケース内のエアフローを改善する
PCケース内が熱でとんでもないことになっていたので、ケースファンを増設してみました。夏に向けて冷却を考えなければいけません。
AI音声合成はもはや人間と区別できないほどリアル
最近のAI音声合成(入力文字読み上げソフト)は驚くほどにリアルな発話が可能です。その中でもVOICEPEAKシリーズは特に優れています。
AI画像の生成はグラフィックボードの交換で超快適になる!
グラフィックボードを「GTX 1660 Super」から「RTX 3060」に換装しました。その結果、AI画像生成の処理において画像生成にかかる時間が大幅に短縮されました。

「img2img」から「MultiDiffusion with Tiled VAE」を利用する

基本設定

multidiffusion-with-tiled-vae

 今度は「img2img」タブを開きます。そこに「txt2img」で予め作成していた画像を読み込みます。ここでは上の「512×768」の画像を例として用います。そして、この画像を生成したときのプロンプトをこちらにもそのまま入力します。

 プロンプトと設定は以下のとおりです。

プロンプト
masterpiece, best quality, highly detailed beautiful face and eyes, blue eyes, silver hair, solo, black t shirt, skirt, stylish pose
ネガティブプロンプト
nsfw, flat color, flat shading,retro style, poor quality, bad face, bad fingers, bad anatomy, missing fingers, low res, cropped, signature, watermark, username, artist name, text
その他
(元画像)Steps: 20, Sampler: Euler a, CFG scale: 7, Model: anything-v4.0, Clip skip: 2
(拡大画像)Sampler: DPM++ 2M Karras, Denoising strength: 0.5, upscaler: R-ESRGAN 4x+ Anime6B

multidiffusion-with-tiled-vae

 まず「サンプリング方法(Sampling method)」を好みのものに変更します。次に「ノイズ除去強度(Denoising strength)」を「0.5~0.4」前後で適当に指定します。この「ノイズ除去強度(Denoising strength)」は公式の説明によると「0.6」以下に設定するようです。

 その後、「Tiled Diffusion」と「タイル上のVAE(Tiled VAE)」の有効化と設定を行います。

 まず「Tiled Diffusion」内の「有効化(Enable)」と「現在の画像サイズで上書き」にチェックを入れます。「Method(手法)」が「MultiDiffusion機能」になっていることを確認します。

 アップスケーラーを好みのものに変更します。ここでは「R-ESRGAN 4x+Anime6B」を選んでいますが特に意味はありません。アップスケーラーを選び忘れて空欄にしていると元画像と同一サイズで似たような画像が生成されてしまいます。

 倍率はデフォルトの2倍でOKです。これで「512×768」の画像が「1024×1536」に拡大されます。この倍率は2.4倍くらいでも画像を生成できますが、大きくする(2.5倍前後?にすると)とエラーが発生して失敗します。

 次に「タイル上のVAE(Tiled VAE)」内の「有効化(Enable)」にチェックを入れます。「VAEをGPUに移動」はチェックしなくてもOKですが、チェックしても同じように生成されます。

作成例1 銀髪の女性

multidiffusion-with-tiled-vae

 今回はこちらの画像(512×768)を活かした状態で2倍にアップスケールしてみました。

multidiffusion-with-tiled-vae multidiffusion-with-tiled-vae multidiffusion-with-tiled-vae multidiffusion-with-tiled-vae

 こちらが画像の生成を繰り返し行った結果の一部です。これらの画像は元の画像の要素を保ったまま2倍の「1024×1536」に拡大されています。一見するとまったく同じように見えるかもしれませんが微妙に異なっています。

 画像の描写内容は「CFGスケール」と「ノイズ除去強度」を大きくすることでやや変化が見られます。「CFGスケール」のほうはあまり敏感ではないとのことです。しかし、いずれの設定にしても手指の表現が崩れてしまうことも時々あります。

 倍率を2.2倍等に変更することでもう少し大きくすることも可能です。元の画像サイズをもう少し大きいものにするという手もあります。

 さらに大きな画像を「img2img」で生成するためには、横長サイズのほうが好ましいので一例として「768×512(横長)」の画像を用意します。それを2倍にした「1536×1024」の画像を参照元に入れて、同じ手順で再びアップスケーリングを行います。そうすることで「1536×1024」の画像を「3072×2048」にすることができます。生成時間の目安は3分27秒です。

 ただし、このときにデフォルトの設定のままではメモリのエラーが発生することがあります。「CUDA out of memory」といったエラーが表示されます。そのときは「タイル状のVAE(Tiled VAE)」内の「エンコーダタイルサイズ」を「2048」から「1024」に減らすなどの設定の変更が必要となります。

multidiffusion-with-tiled-vae

 元画像(512×768)とアップスケール後の画像4枚の計5枚を比較してみます。「」と番号の付いている画像が元の画像になります。

 画像の拡大(高解像度化)は「txt2img」の「高解像度補助(Hires.fix)」を使うことも多いですが、「512×512」「512×768」「768×512」で大量に生成した画像の中から良さそうな画像を厳選して「img2img」から元画像を活かしたままアップケーリングするという方法もあります。

 その際に「MultiDiffusion with Tiled VAE」を利用することが可能です。VRAMの少ないグラフィックボードをお使いでもそれなりに大きな画像を生成することができます。

 長大なパノラマ画像は「txt2img」内で「Tiled Diffusion」と「タイル上のVAE(Tiled VAE)」を有効化して生成するのが良さそうです。

 また使い方を試行錯誤して気づいたことがあれば追記しようと思います。

ケースファンを増設してPCケース内のエアフローを改善する
PCケース内が熱でとんでもないことになっていたので、ケースファンを増設してみました。夏に向けて冷却を考えなければいけません。
ZOTAC「FireStorm(V3.0.0.038)」の使い方
ZOTACの「FireStorm」はZOTAC製GeForceシリーズのGPUクロックや動作電圧等を調整することが可能なアプリです。このアプリの使い方を紹介しています。
AI画像の生成はグラフィックボードの交換で超快適になる!
グラフィックボードを「GTX 1660 Super」から「RTX 3060」に換装しました。その結果、AI画像生成の処理において画像生成にかかる時間が大幅に短縮されました。
AIイラストの画像生成におすすめのグラフィックボード
「Stable Diffusion」のようなAI画像生成に最適なグラフィックボードを選ぶ際の注意点を簡潔にまとめています。