HyperTileを使ってみて、速くはなるけどtxt2imgだと少し情報不足な感じがしたので、生成する時にオンオフできるスクリプトを作りました。
準備
Hyper Tileのインストール
https://github.com/tfernd/HyperTile
CODEボタンからDownloadZipでダウンロードします。
解凍して、hyper_tileフォルダーを WebUI の modulesフォルダーに移動します。
セットアップ
modules\processing.py をバックアップします。
下記の行をprocessing.pyの最初の方に追加します。
from .hyper_tile.hyper_tile import split_attention
sample関数に下記の行を、関数の最初の行に追加して、それ以降をスペースでインデントます。
with split_attention(self.sd_model.model, (self.width//8*8) / (self.height//8*8), self.extra_generation_params["Hyper Tile TileSize"] , swap_size=1, disable = self.extra_generation_params["Hyper Tile Disable"]):
txt2imgとimg2imgの2ヶ所変更します。
ver1.60の img2imgのsampleだと、こんな感じです。
オンオフ スクリプトのインストール
HyperTile.py をダウンロードして WebUI の Scriptsフォルダーに移動します。
TileSizeを小さくすると早くなるけど情報が減る感じがします。
参考画像
txt2imgで、サンプラーDPM++ 2M Karras で 15ステップ、サイズは512x680、TielSize 256 で比較
左がHyperTileで作成。細かい所がちょっと違う
CPUのPCで生成時間は、
Offで7分12秒
TileSize 256で6分54秒
TileSize 128で5分46秒
でした。
img2imgでアップスケールは
512x680を2倍で
Tilesize 256 で 18分44秒
TileSize 128 で 16分15秒
TileSize 64 で 16分02秒
でした。
数字を小さくすると、細かい部分の解像度が落ちる感じがする。
使った感想
txt2imgでは、プロンプトをチェックする時にTileSize128で使うと時短になりそう。本番用には使わないかも。
追記、早くなるから結局いつも使っちゃってた。
追記、アップスケールするとしましまが出る時が有るからt2iでは使わない方が良いかも
swap_sizeを1にするとシマシマ出なくなるかも
img2imgでは、普通に使えるし速い。
CFGを小さくすると破城するので、t2iで生成した時と同じぐらいが良さそう。
Denoising strengthは0.5ぐらいが良さそう。
TileSizeは192前後がバランス良いのかな。 大きい方が綺麗だけど遅い