拡張機能 Tiled Diffusion & VAE の導入と使用法
今回は以前名前だけ出していた Tiled Diffusion & VAE について解説していきます。
今回解説する機能は以下の2点です。
・低VRAMでも画像を高解像度化する。
・promptを画像を指定エリアごとに適用する。
まずはインストール方法を確認しておきましょう。
インストール方法
こちらの記事でもご紹介してますので、既にインストールされている方はスキップして頂けます。
入れたかどうかわかんねーわ、という方は、txt2img画面の左下を見てください。
こちらにプルダウンが追加されている場合は、インストールは済んでいます。
この部分が無かった方は、一緒にインストールをしていきましょう。
Extensions の Install from URL で
https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git
を入れてインストール
画像最下部の「Installd into~」の文字がでればインストールできました。
インストールが終わったら、Extentions の Installd から Apply and restart UI を押してインストールを確定させ、再起動させれば拡張機能が反映されるようになります。
もしそれでも反映しなかった場合は、一度WebUIを終了し、もう一度起動しなおしてみてください。
低VRAMで画像を高解像度化する
Tiled Diffusion と Tiled VAE は、画像を小さなタイルに分割し、それぞれのタイルを独立して拡大することで、高解像度の画像を生成する拡張機能です。
機能はよく似ていますが、Tiled Diffusionは主に解像度の向上に、Tiled VAEは画像の色や明瞭度を改善することに焦点を当てています。
ぶっちゃけ、どっちも併用すれば良いので難しく考えなくて良いです。
低スペPCでも大きい画像出せるぜ!!とだけ覚えてください。
大きい画像にアップスケールせずに描き込みだけ細かくする方法も併記します。
主に、img2imgの画面で使います。
txt2imgでも使えはしますが、既に作画崩壊箇所の修正を済ませた画像を拡大化する用途が殆どだからです。
今回は作例としてこちらの画像を使います。
800x1200pixの解像度の画像で、衣装や指の手直しなどは終わらせてあります。
こちらはimg2imgの設定部分です。
今回は Denoising strength を 0.3に設定しました。
個人的には 0.2~0.3 あたりがお勧めです。
あまり数字を大きくしすぎると、思わぬところに人の目、顔が描写されてしまったりするので。
次に、Tiled Diffusion と Tiled VAE のプルダウンを押してUIを表示します。
今回は単純に解像度を2倍にするという設定にしました。
イジった項目は色で囲った部分のみです。
・Enable Tiled Diffusion にチェックをいれて機能を有効化。
・Upscaler を選択。(任意)
・ Scale Factor で 拡大率を 2 倍に設定。
・Enable Tiled VAE にチェックをいれて機能を有効化。
これだけですね。
Upscalerを選ばない場合は、画面サイズはそのままで、描き込みを細かくすることもできます。
印刷物なんかを作る場合はアップスケールは大事になってきますが、ネットに上げるだけの画像であればそのままのサイズ感で良いでしょう。
私は加筆修正しやすいので毎回拡大しています。
この辺りはお好みで。
他の細かい解説は後述します。
結果はこちらです。
正直、単純にアップスケール・高解像度化したいならこの程度の設定で可能です。
便利ですね。
似たような描き込み量の増加なら、ControlNet の Tile/Blur でも可能ですので、気になるようでしたらそちらもご確認ください。
一応、細かい設定項目も解説しておきます。
もっと使いこなしたいという場合は見てください。
Tiled Diffusion のUI説明
Enable Tiled Diffusion
このチェックボックスで、機能を有効化できます。
Keep input image size
チェックを入れるとInput画像の画像比率を守ります。
Method
処理の方法を選ぶところです。
「MultiDiffusion」「Mixture of Diffusers」がありますが、Mixture of Diffusers の方が速く処理できる可能性があります。
ある比較では、特に葉の描写が異なり、陰影の明瞭さと近くと遠くの葉の描き分け、石塀の質感においてMixture of Diffusersが好まれているようでした。
Latent tile width & height
タイルの大きさを設定します。96x96という数値は、タイルが96ピクセル四方であることを示しています。
Latent tile overlap
タイル間で重なる部分の大きさを設定します。この設定により、タイル間のつなぎ目が滑らかになります。
Latent tile batch size
一度に処理するタイルの数を示しています。
Upscaler
画像を拡大する際に使用するアップスケーラーを選択します。
Scale Factor
画像を何倍に拡大するかの設定です。2なら、画像は元の2倍の大きさになります。
Noise Inversion
画像のノイズを補正するための設定ができます。
Enable Noise Inversion
ノイズの補正を有効にするか選ぶチェックボックスです。
Inversion steps
ノイズを補正するためのステップ数を設定します。
Retouch, Renoise strength, Renoise kernel size
これらは、ノイズ補正の精度や方法を細かく調整するための設定項目です。
Region Prompt Control
後述するもう一つの機能です。
Tiled VAE のUI説明
Enable Tiled VAE
このチェックボックスで、機能を有効化できます。
Move VAE to GPU (if possible)
このオプションを選ぶと、VAEの処理をグラフィックカード(GPU)上で行うように試みます。GPUを使用することで処理速度が上がることが多いです。
Recommended to set tile sizes as large as possible before got CUDA error: out of memory.
このメッセージは、タイルの大きさを可能な限り大きく設定することを勧めています。しかし、あまりにも大きくするとGPUのメモリが足りなくなる「CUDA error」が出ることがあるので注意が必要です。
Encoder Tile Size & Decoder Tile Size
これらは、VAEのエンコーダとデコーダのタイルの大きさを設定するスライダーです。エンコーダは画像を圧縮する部分、デコーダは圧縮されたデータを再度画像に戻す部分を指します。
Fast Encoder & Fast Decoder
これらのオプションをオンにすると、エンコーダとデコーダの処理が高速化されます。ただし、品質と速度のバランスを考慮する必要があります。
Fast Encoder Color Fix
速いエンコーダを使用する際に、色の問題を修正するためのオプションです。
Reset
このボタンをクリックすると、設定をデフォルトの状態に戻すことができます。
promptを画像を指定エリアごとに適用する
Tiled Diffusion 内にある、Region Prompt Control という機能を解説します。
txt2imgの方で使う場面が多いかと思いますが、img2img2での修正でも強力な機能です。
地域プロンプト制御という名前が示す通り、画像を生成する際に、タイルで区切ったエリアを指定して、その部分に直接promptが指定できます。
文章を説明するよりも画像で見てもらった方がわかりやすいでしょう。
Region Prompt Controlの設定
まずは txt2img画面 での基本設定で作成画像のサイズを指定します。
今回は 400x600pix の縦長サイズを指定します。
Hires.fix で2倍にするので、作成画像は 800x1200pix となります。
私は普段、txt2img ではこのサイズで出力し、指や絵柄などの修正を行い、最終的に 縦1800~2400pix程度 にアップスケールして仕上げています。
次に、画面左下から Tiled Diffusion のUI(緑枠)を開き、RegionPrompt Control のプルダウンを押してこちらもUI(水色枠)を表示させました。
・Enable Tiled Diffusion にチェックを入れます。
・Region Prompt Control の方の Enable Control にチェックを入れます。
・ Draw full canvas background にチェックを入れます(任意)。
・Create txt2img canvas ボタンを押下します。
ボタンを押したことで、txt2imgで指定した縦長のキャンバスが表示されました。
では、下に並んでいる Region 1 と Region 2 をクリックして開いてみましょう。
解説は画像の通りです。
Region 1 のバーを動かすと、リアルタイムで上の画像内の赤い四角のエリアが調整できます。
Region 2 を動かすと、同じように黄色の四角のエリアを設定できます。
また、この部分は画面の前面(Foreground)に出てきてほしいのか、背景(Background)として後ろ側に設定したいのかも選ぶことができます。
前面(Foreground) を選んだ場合、Featherというバーで、どの程度他の描画から浮いた感じになるかを設定できます。
0 だとそこだけ丸っと別の絵みたいになりますが、0.5くらいだと背景とうまく馴染んで整合性をとってくれたりしますね。
Region Prompt Controlでの作例
今回は prompton からのリクエストで、こちらで作成した二人の女の子を再現しつつ、別のVerのイラストを制作します。
実はこのイラスト、元になった画像がありまして。
もともとは1年近く前のこちらのイラストを作成した際、没になったイラストでした。
「久々にバレエチュチュの女の子のイラストが見たい」というリクエストがありましたので、この画像を土台に、今のモデルを使って img2img し、加筆修正して作成したものだったんですね。
実はこの画像、もともと二人のキャラクターを作成するつもりがなく、「ピンク髪に水色の瞳の女の子」というpromptをAIの方が拡大解釈して「ピンクの女の子と、水色の女の子」の二人組として作画してしまったものです。
そのため、二人の女の子をそれぞれ指定するpromptはありません。
また、今回はキャラクターを再現することが目的ですので、ちゃんと最初から二人作画することと、女の子をそれぞれpromptメイクする必要があります。
では、実際に作成してみましょう。
ここから先は
この記事が気に入ったらチップで応援してみませんか?