Comfy UIのカスタムノードUltimate SD Upscaleを使用するでは、元の画像をタイル状にたとえば16分割し、それぞれのタイルごとに処理をすることで比較的PCへの負荷を抑え、画像を大きく引き伸ばす・高画質化する・アップスケールすることができます。
細部の描写が少し変わりますが、tileでも高画質化・アップスケールが可能です。
前準備
デフォルトのワークフローから始めます。テスト用に、適当なプロンプトで元になる画像を作っておきます。
ほんとに適当な画像になりましたが、これを使用します。
画像のサイズは512*512です。
画像のサイズは512*512です。
この元画像を読み込むために、右クリックなどから画像を読み込むを追加しておきます。
Ultimate SD Upscaleはカスタムノードです。
なので、ダブルクリックでノードを検索しても、追加してなければ出ません。
なので、ダブルクリックでノードを検索しても、追加してなければ出ません。
使えるようにするには、
Comfy UI ManagerからCustom Node Managerをクリックし、
Comfy UI ManagerからCustom Node Managerをクリックし、
ComfyUI UltimateSDUpscaleをインストールします。
バージョンは最新のComfy使ってればlatestで問題ないはずです。
nightlyというのは「毎晩」レベルで更新される、まだテストが十分にされてない不安定な最新版のこと。
nightlyというのは「毎晩」レベルで更新される、まだテストが十分にされてない不安定な最新版のこと。
カスタムノードを追加すると必ずComfyの再起動を要求されるので、Restart、
確認、
ブラウザのリロードも求められるので、確認をクリックします。
ノードを検索してUltimate SD Upscaleが出るようになっているはずなので、クリックします。
最後に、モデルブラウザなどでUpscalerをダウンロードしておきます。4xNMKDうんたらというのが定番ぽいので、それを入れました。
CivitAIなどから調達した場合は、checkpointsなどと同じディレクトリにupscale_modelsのようなフォルダがあるので、そこに入れておきます。
CivitAIなどから調達した場合は、checkpointsなどと同じディレクトリにupscale_modelsのようなフォルダがあるので、そこに入れておきます。
Ultimate SD Upscaleの配線
見ての通りインプットが大量にありますが、「画像を読み込む」などからImageに接続、他はVAEデコーダとKサンプラーに入るインプットを流用すればOKです。
こんなような配線になります。プロンプトやモデルを指定できるので、内容を変更しつつアップスケールすることもできます。
最後にupscale modelというのが必要なので、
upscaleでノードを検索すると出る拡大モデルを読み込む(Upscale loader)を追加します。
モデルは先ほど追加していれば使用可能になっているはずです(モデルとSD1.5などの系統合っているかだけ注意)。
Upscaleの実行
デフォルトで一回実行してみます。
画像はupscale_byの数値の倍数縦横に大きくなります。
・512*512の画像に対してupscale_byが2であれば、できあがる画像は1024*1024になります。
・Ultimate SD Upscaleでは、処理をtile_widthとtile_heightのサイズに分割して何度も行うことでPCへの負荷を抑えます。この場合、1024*1024の画像を512*512のtile4つに分割し、処理を4回行ったことになります。
・512*512の画像に対してupscale_byが2であれば、できあがる画像は1024*1024になります。
・Ultimate SD Upscaleでは、処理をtile_widthとtile_heightのサイズに分割して何度も行うことでPCへの負荷を抑えます。この場合、1024*1024の画像を512*512のtile4つに分割し、処理を4回行ったことになります。
できあがった画像がこれで、
解像度にさほどの変化は見られませんが、逆に言えば解像度を維持して拡大できています。
大きく拡大する場合の注意点(例:16倍)
基本的に、Upscale_byの最大値は4だと思ったほうがよく、16倍などにしたい場合は二回に分けたほうがいいらしいです(アップスケーラーの仕様、VRAMへの処理の分散化、一気に大きくし過ぎると大味な画面になるなどの理由)。
二回に分ける=アップスケーラーから出た画像をもう一回アップスケールするという意味です。
二回に分ける=アップスケーラーから出た画像をもう一回アップスケールするという意味です。
元の画像に対して、tileが小さすぎないよう気をつけましょう。たとえば512*512を16倍にして、width/heightが512の場合、処理は256回繰り返されることになります。
元の画像は大きすぎるので、スクショにしてますが、16倍の画像がこちら。
タイルが小さすぎて、AIがタイルごとに何を描いているのか理解できてないと思われ、描写としてはやや荒くなっています。
>
この場合、2回目のタイルは2048や4096にするのが適当だったと思われます(ただし、それなりのGPUが必要となります)。
紹介したアプリ、Webサービス、AI一覧
紹介したサービス等のまとめです。有料のサービスでも無料で試せることがほとんどなので、気になったものがあったらどうぞ。
コメント