【高解像度化・高画質化】最高にかわいくアップスケールする方法【Hires.fix|ControlNet Tile】
この記事では、ステーブルディフュージョンで生成したイラスト画像を、アップスケールすることで、更にかわいく綺麗にする方法について解説します。
Youtubeでも解説しています
アップスケールとは、画像や映像を高解像度化・高画質化することをいい、そのツールをアップスケーリングツールといいます。
ステーブルディフュージョンでは、アップスケーリングツールとして、「Hires.fix」や「Tile Diffusion」や「ControlNet Tile」が多く使われています。
そして今回は、「Hires.fix」と「ControlNet Tile」の両方を組み合わせてアップスケールすることで、以下画像のようにアップスケールする方法について解説したいと思います。
アップスケール(高解像度化・高画質化)とは何か?
プロンプトだけで画像を生成していると、どうしてもあっさりした画像になってしまいます。
これでも十分かわいいですし、綺麗だと思いますよね。
でも、これから紹介する高画質化をすることで魔法がかかったかのようにクオリティが上がります。
以下画像を見ると一目瞭然ですが、左が高画質化していない画像で、右が高画質化した画像になります。
つまり、解像度を上げてイラスト画像全体のディテールをしっかり描く仕組みです。
高画質化する方法として、私が知る限り4つありますが、今回はこの中の「Hires.fix」「ControlNet1.1 Tile」を解説していきます。
Hires.fix
Tile Diffusion
ControlNet1.1 Tile
After Detailer ※顔だけ高画質化
ADetailerは顔だけを高画質化する拡張機能です。顔だけディテールを上げる場合は、ADetailerはおすすめです。
ADetailerについては別記事でまとめています。
解像度とは?
解像度とは、画像の画質・画素数をさします。
分かりやすく言うと、キャンパスを大きくすることで、より詳細に描けるということです。
小さいサイズだと拡大したときに画像が粗くなりますが、大きいサイズにすると拡大しても画像が粗くなりにくいです。
左は4倍に高解像度化した画像です。拡大しても画像がつぶれていませんね。
元の画像が512×512に対し、2倍に高解像度にすると1024×1024になります。
Hires.fixを使って高画質化する際の注意点
Hires.fixを使う際は、グラフィックボードのスペックに注意してください。
Hires.fixを使うとパソコンに負荷がかかり、画像生成にかかる時間がかなり長くなるので注意です。
512×512の画像生成で9秒くらい、2倍に高解像度化すると40秒くらいでした。単純計算すると4倍くらいかかっています。
GPUのメモリが少ないとエラーで停止することもあります。
私はGTX3060 12GBを使っていますが、解像度の倍率を上げすぎるとエラーで止まることがあります。
低スペックなグラフィックボードの場合、以下2つの選択肢があります。
高性能なグラフィックボードにかえる
パソコンごと買い替える
クラウドサービス「GoogleColab」や「SageMaker」などを使う
本格的にAIイラストに参入するのであれば、パソコンやグラフィックボードを入れ替えるのもありですが、かなり高額なのでおすすめしません。
お金に余裕がある方や、今後、画像生成AIを頻回に使う方は買い替えたほうがいいかもしれません。
私が現状で一番おすすめできるのは「SageMaker」でStable Diffusionを動かす方法です。
以前はGoogleColabの無料版でも使えていましたが、今は無料プランだと警告が出て使えなくなりました。
SageMakerはAmazonが運営するクラウドサービスで、GPUインスタンスが1日4時間も無料で使用することができる神サービスです。
使用者が多いとたまにエラーで使えないときはありますが、現時点ではストレスなく使用できています。
使い方は以下の記事で解説しています。
今回の画像生成に使ったプロンプト
(8k,RAW photo,ultra high res, best quality, masterpiece:1.3),photoshop \(medium\),japanese 1 girl, 15 yo,school uniform,black hair,bob cut, smile,grid,hand up,sitting,colorful flower background,sitting,upper body,
nsfw, EasyNegative, painting, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowers, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, ugly face, fat, double navel, missing fingers, extra fingers, extra arms, extra legs, error, blurry, cropped, bad anatomy, 2girl
Hires.fixで高解像度化する方法
まず最初に、「Hires.fix」にチェックを入れるとHires.fixの項目が表示されます。
項目がいくつかありますが、重要な以下4項目に絞って説明します。
Upscaler
Hires steps
Denoising stength
Upscale by
Upscaler
アップスケーラーは低解像度の元のイラスト画像を拡大する際に用いるアルゴリズムで、アップスケーラーにはいくつか種類があります。
アップスケーラーの種類はかなり多いので、今回は私が厳選した以下4つのアップスケーラーを使います。
Latent
Lanczos
R-ESRGAN-4x+
R-ESRGAN-4x+Anime6B
どのアップスケーラーがいいかは個人差はあるかもしれませんが、個人的に「R-ESRGAN-4x+Anime6B」が一番好きです。
Hires steps
拡大したイラストからimg2imgで描画するときのstep数です。
初期値は0になっています。
値を変えてもそこまで大きな変化はありません。0のままでOKです。
Denoising stength
この項目はノイズを除去する強度で、イラストの変化に大きな影響が出ます。
Denoising stengthの値を小さくすると元のイラストからは変化が少なく、大きくすると元のイラストから大きく変化します。
初期値が0.7になっています。値が小さすぎても大きすぎてもダメで、大体0.6~0.7くらいが適切だと思います。
Upscale by
解像度の拡大率を設定します。
初期値では2になっており、2だと512×512ピクセルの画像の場合、解像度が1024×1024に拡大されます。
より高解像度にするには4倍8倍にすることもできますが、画像生成にかかる時間はより長くなりパソコンに負荷もかかります。
今回の検証では2倍でしています。
Hires.fixの正しい使い方
Hires.fixは常に使うものではありません。
Hires.fixを使うと画像生成にかかる時間が5倍くらいかかります。
なので、Hires.fixを使うのは気に入った画像がガチャで引けたときに、Hires.fixを使って高解像度化するのが適切な使い方です。
ControlNet Tileで高画質化する方法
ControlNetのtileを使うと解像度は変わりませんが、情報量が増えてディテールがアップします。
顔や花がぼやけていたのがくっきりとしてディテールがアップしているのがわかります。
Hires.fixを使うと画像生成にかかる時間が何倍にも長くなりますが、Tileを使っても時間がそれほど変わりません。
Tile resampleはControlNetの旧バージョンからありますが、tile colorfixとcolorfix-sharpは1.194以降から追加されたプリプロセッサーです。
特に「colorfix-sharp」は線が太くなって顔が際立ちますね。
ControlNetの古いバージョンでは「tile colorfix」「tile colorfix+sharp」が使えません。
ControlNetがまだ未導入の方、バージョンアップ方法は以下の記事で解説しています。
ControlNet Tileの使い方
ControlNetを開き、imageに元にする画像をドロップする
Enableにチェックを入れる
Preprocessorを選択する。
3種類あります「tile_resample」「tile_colorfix」「tile_colorfix+sharp」Modelをtileを選択する。
Control Weightを調整する。ControlNetの強度です。
※0.7~1.5くらいで調整してみてください。
最カワ!高解像度化・高画質化の組み合わせ
今回のタイトルにもしているA+Bの組み合わせで最強の高画質化する方法ですが、結論から言うと「Hires.fix」とControlNet1.194で新しく追加された「ControlNet Tile colorfix+sharp」の組み合わせです。
なぜこの組み合わせが最強だと思うのか、解説していきます。
まず、Hires.fixには弱点があります。
1.元の画像が変わってしまう
2.解像度を上げてもディテールはそれほど上がっていない。
Hires.fixだけだと手、髪飾り、背景が大きく変わってしまっています。
この弱点を補ってくれるのがControlNet Tileです。
組み合わせで見てみましょう。以下の画像はすべて「HiresのR-ESRGAN-4x+Anime6B」を組み合わせてつかっています。
しっかりと元の画像を保持したまま、ディテールが上がって高解像度化されています。
その中でも、特に個人的には「HiresR-ESRGAN-4x+Anime6B」+「 ControlNet Tile colorfix+sharp」の組み合わせが一番という結果になりました。
まとめ
今回は、高解像度化・高画質化する方法についての解説と私が個人的に思う最もかわいくなるアップスケールの組み合わせも紹介させていただきました。
今後はこの「HiresR-ESRGAN-4x+Anime6B」+「 ControlNet Tile colorfix+sharp」でおちつきそうです。
色々試しながら自分好みのアップスケール方法を探してみてください。
ではまたお会いしましょう。
この記事が気に入ったらサポートをしてみませんか?