StableDiffusionなどの画像生成は、学習元が512ピクセル×512ピクセルとなっているため、基本的にはこのサイズや、アスペクト比から離れれば離れるほど、画像は崩れやすくなります
その悩みを解決する手段として、StableDiffusion WebUIにはHires. fixという拡大機能が付いている解説をさせて頂きました
だけど、Hires. fixですと拡大率が限られてたり、余計な変化が起きてしまったり、いらないモノが映りこんだりしてくるんですよね…?
そこで、Hires. fixの様に大きな画像にしてくれる拡張機能が、幾つかあります。
どのアップスケーラーがいいの?
それぞれに特徴があるので、一概には言えませんが、良いアップスケーラーの1つかと思うControlNetのTileの使い方をご紹介していきますね
現在、Stable Diffusionや画像生成AIに関する記事は、以下のものがありますので参考にしてね
この記事に、特に関連する記事はコチラ
画像を拡大し、高解像度画質で生成するメリット
それでは、ControlNet tileでの画像のアップスケールについて解説していきますね
その前に「どうして大きなサイズを出力することが必要になるか?」という話をしますと以下のような理由があります
- シンプルな理由で、画像を美しくしたい
- 生成する画像サイズが小さいと、ディテール部分のパーツが上手く描けない
- たくさんの人・物が集まる緻密な状況や、群衆などを描くことが出来ない
最近は、実写系の画像も生成されることが多くなりましたので、512ピクセルでは画質が荒くなってしまうんですね…
目や鼻など、小さなパーツが崩れていることはよくあるよね
画質をあげるメリットは描く対象物が増えると、ドット数が足りなくて上手く描けなかったりするので、単に画質をあげるためだけにとどまりません
4Kで見れる美しい画像の、AI美女がみたいのだ
【ControlNet】新機能tile!で高画質で生成 4K,8K時代へ
ControlNetの新機能のTileを使えば、上記した問題が、だいぶ解消できるようになりました
ControlNetの新機能のTileで解決
今回の話しているタイルって、なんでアップスケールするのにタイルなの?
画像生成AIで作られた元の画像を、下の画像の様にタイルの状に分割してアップスケールをするから、タイルにちなんだネーミングなのでしょう
ほかのアップスケーラー系の拡張機能よりも良いとされているポイントとしては、タイルごとに必要な情報のみを拡大してくれることです
従来の拡張機能のアップスケーラーでは、画像をタイルごとに分けて生成する方法もありました
ですが、全てのタイルに、プロンプトに書かれているものを考慮し描こうとしてたようなので、必要ない物出現や、重複してしまうなどのデメリットがありました
ControlNetの新機能のTileでは、元の画像をタイルごとに、そこに何を描いているのかを把握し、ディテールを再構築してくれます。
元の絵をタイル状に分割して、それぞれのタイルの特徴を把握して描いてくれるんだね!
Tileを使うためには、ControlNet ver1.1.107以降が必要
ControlNetのTileを使えるようにするためには、新しいコントロールネットのバーションに更新してください
最低でもバージョン 1.1.107で追加された機能なので、最低でもこれ以降のControlNet、できればバージョン1.1.117になっていれば使える様です。
その他に、StableDiffusion WebUI本体を実行できる環境と、ControlNetバージョン1.1.107に対応したモデルファイルが必要です
以上の3点が必要です
ver1.1.107以降のバージョンでも、ControlNetの目立った不具合はない様なので、最新版に更新して見ても大丈夫そうです
ControlNetのバージョンが、1.1以前のものと、以降のものでバージョンアップの方法に違いがありますので、コチラ記事を参考にしてくださいね
githubのコントロールネット
https://github.com/Mikubill/sd-webui-controlnet
Hugging Faceのコントロールネット
https://huggingface.co/lllyasviel/ControlNet-v1-1
「公式」コントロールネットのタイルの解説ページ
https://github.com/Mikubill/sd-webui-controlnet/discussions/1142
【画像を拡大】ControlNet Tileの使い方 要点の要約
使い方の注意点は、公式サイトに書いてありますので、詳しく知りたい方は見ておいてくださいね
https://github.com/Mikubill/sd-webui-controlnet/discussions/1142
要点を要約して軽く説明しますね
- コントロールネットのアップデートのほかに、コントロールネットのモデルファイルも必要
- 最大4倍、または8倍の解像度にアップスケールが出来ます
- ぼやけや、画像の崩れを修正、調整し改善が見込めるます
- タイル分けしてアップスケールした際に、余計な複製された対象物を作らない
- 未完成のモノをアップスケールしながら作ることも可能
- アップスケール前の元画像のサイズは、768ピクセルか1024ピクセルが望ましい
以上のことがかかれていますよ
1024ピクセル×1024ピクセルは、私の環境だと、既にエラーが出るレベルだよ
その時は、768ピクセルあたりで生成してみてね
Control NetのTileで、高画質・拡大 生成の設定手順
それでは使い方の手順を解説していきますね
Tileを使う元になる画像を用意する (txt2imgで画像生成)
Tileは一度の行程で、高解像度の画像は作ることが出来ないので、txt2imgで768ピクセルもしくは、1024ピクセルの画像を作るか、または画像を用意します
一度の行程でという点は、直接大きな画像を生成できるHires. fixを使うメリットはありそうですね
プロンプトを整えて、生成してみますね
最初の画像の生成は、Hires. fix も ControlNetも使わずに生成していきます
一発で大きな解像度は作れないの?
ControlNetのTileの機能ですと、そうなりますね。
基本的には、txt2imgで作った画像をimg2imgでアップスケールする感じです。
逆に言うと、その工程を踏む方がいいと思います。
と、いうのもこの後、高解像度の画像を生成しますが、1枚1枚の生成時間が長くなるので、気に入ったものだけをアップスケールしていく形にしないと、生成している時間も、電気代も、グラボの負担も大きくなりそうです
まずはこれで、元になる画像が生成されました
img2imgの設定 Script / SD upscale
そうしましたら、この元画像となる画像を、img2imgに送りますので、転送するボタンsend to img2imgを押してください
または、用意してある画像を、PNGinfoタブを開いて、この位置に画像をドロップしてください
そうしましたら、img2imgに転送するボタンを押します
img2imgのタブを開いて、設定をしていきますね
一番下にある Script のプルダウンメニューを開いてください
選択肢の中から、SD upscaleを選びます
こちらは、画像を拡大するスクリプトとなります
「SD upscale」は、元の画像をタイル状に分割し、それぞれの部分に対してアップスケールを行い、その後再び結合するという方法で、大きな画像を生成します。
これにより、通常ではVRAMの容量不足により生成できないサイズの画像を生成することが可能になります
標準的なグラボが付いているパソコンでも高価なパソコンになるので、容量の小さなグラボでも使えるのはありがたいですね
Tile overlap
「Tile overlap」は、細分化した画像のつなぎ目をスムーズにする機能で、このパラメータを調整することで、画像の境目が目立たなくなります。
この機能は、大きな画像を生成する際に、タイル状に分割した画像同士の境界が目立つ問題を解消してくれます
高画質になっても、つぎはぎだらけのAIのおねぇさんでは嫌なのだ
今回はデフォルトのままやってみようかと思います
Scale Factor
Scale Factorは倍率を指定することが出来ます。今回は、このまま2倍にしてみましょうか
Up scaler
「Upscaler」は、画像の拡大方法を指定するための機能で、様々なアップスケールの方法を選ぶことが出来ます。
実装された順に表記してあります。
違いについては、ちょっとマニアックな設定過ぎるので、とりあえず最新のSwinIRを選択してみましょう
軽くSwinIR説明しますと、低品質な画像から高品質な画像を再現するために使用され、画像高解像度や画像ノイズ除去などの技術を活用します。
VRAMの容量の小さなグラボでも高い性能を発揮し、効果的な画像の拡大を実現することができますよ
コントロールネットの設定
次に、コントロールネットの設定をします
コントロールネットControlNetを開いてください
Enableにチェックを入れ、コントロールネットを有効にします
そして、Pixel Perfectにチェックを入れます
Pixel Perfectをオンにすると、preprocessorの解像度を手動で設定する必要がなくなりますよ。
ControlNetが自動的に最適なアノテータの解像度を計算し、ピクセルが完璧に一致するように画像を整えてくれます
良く分からなかったけど、自動的にキレイにしてくれるチェック項目なんだね
つぎに、Control Typeでタイルtileを選びます
ここで選択すると、Preprocessor と Model も自動的に選択されると思います
もしならない人は、Preprocessorを tile_resampleを選択して
Model を tileに設定してください
ほかの項目は、いったんそのままで拡大して画像を確認してみますね
結果を見ながら必要であれば、調整してくださいね
最終的な img2img の調整 する場合
拡大画像に大きな影響を及ぼすのが、Denoising strengthです
これまでのアップスケーラーでは、拡大率が高いと画像が崩れたり、大きく変化してしまいましたが、コントロールネットのおかげで、ずいぶん安定して拡大をすることが出来る様になりました
それでも、100%は防げないので、Denoising strengthで調整していきますが、0に近いと、カクカクして、1に近いほど新しい書き込みが増える様です
Hires. fixの説明動画の時と、同じく、0.6くらいで、いったんやってみますね!
CFGスケールは、このままデフォルトの値でやってみます
こちらの画像サイズを選択する場所は、1つのタイルのサイズの設定になるようです
VRAMが小さなグラボの場合は、値を下げておくといいですよ
サンプリングステップスSampling stepsはもいったん、このままで生成してみましょう
Control NetのTileでアップスケールして、Generate!!
生成しますね
SD upscaleによりタイルに分けられ、それぞれに処理され拡大されていきます
先ほど指定指定した、768×768ピクセルのタイルごとに画像が処理され、最後に1枚の絵に合成されていきます
Control Net・tileで拡大した画像の検証
詳しく違いを見ていきましょうか
違いが分かりやすいように、4倍で生成しなおしてみました
左が原画の768pxの画像で、右が3072pxの画像です
なんか、スッキリしてキレイな感じがする気がする
web上での表示画像ですと、チョット分かりにくいかもしれませんが、確実に右の方がきめが細かく、スッキリしている印象があります。
拡大も、ほぼそのまま行われた感じがします
純粋な拡大という意味では、良いのか悪いのか判断が分かれるかもしれませんが、肌や洋服の立体感や、陰影がより詳細に表現されていますね
ガラスや、木目の表現も描写が増えています。
奥の方の掲示板や、ポスターの描写も書き加えられていますね
逆に、余計な描写や、人間の数が増えてしまったりなどの、副産物も現ていれません
特に残念に思う所はなさそうです
アップにしてみたいと思います
元画像のほうは、少しドットの粗さが見えてきましたね
やはり高解像度の方は、目や口の描写がハッキリと、そして繊細に描かれていますね
唇もぷっくりきれいに書かれているね
さらにアップにしてみます
ここまで来ると、一目瞭然ですね
これはかなり、おすすめの拡張機能ではないでしょうか
もう少し、元の画像を忠実に再現するためには、先ほど説明したDenoising strengthで調整することで、変化を抑えられます。
Denoising strengthを下げて何度か生成してみました
上手く調整すれば、変化を及ぼすことなくそのままの状態でアップスケールできそうだね
画質を上げるTile以外の方法
素晴らしい拡張機能ではありますが、やはり元の画像を美しく作らないと、いくらアップスケールしても美しい画像は作れません。
そのためには、いくつかの方法があります
その方法を軽く紹介しますね
AI系ソフトウエアによる高画質化
AI系ソフトウエアによる高画質化は、Stable Diffusionや拡張機能での高画質化ではなく、別のソフトウェアによる高画質化です
まずは結果から、実際の画像をお見せします
この様に、外部のソフトウェアを使う事で、原画からStable Diffusionでアップスケール(解像度を上げる)すると、想定外のモノが出現したりします
この問題を防ぎ、純粋に解像度上げようとすると、外部ツールを使うのもアリです
コチラのソフトを使えば、ご覧のようにほぼ純粋に高解像度化することができます
静止画を高解像度するソフトウェア HitPaw Photo AI公式サイト
動画を高解像度するソフトウェア HitPaw Video Enhancer公式サイト
プロンプト
まずは、プロンプトを上手に作ることです
画質を上げるプロンプトの検証動画や、プロンプトの一覧表を作りましたので、下記のリンクから活用していただけると嬉しいです
VAE
次に、VAEを使う事ですね
VAEは、お手軽に画質を上げることも出来るし、VAEだけでも画質を変化させることが出来るので、このみのVAEを探すのもアリですね
因みにですが、今回説明したControlNetのタイルと相性が良くないVAEもある様なので、途中で生成が止まることがありましたら、VAEを変えてやってみてください
StableDiffusionの開発に関連しているStabilityAI社のvaeで、正しい読み方が分からないのですが、FT-mse-840000という物がありますが、こちらですと私の環境では不具合は感じられませんでした
EasyNegativeなどのネガティブエンベディングス
3つめに、EasyNegativeなどのネガティブエンベディングスの活用です
コチラは、ネガティブプロンプトをひとまとめにした機能で、長いネガティブプロンプトを書かないで済むようになります
Restore faces
Restore facesにチェックを入れるのもアリです。
ただし、Restore facesは実写系のみに効果を発揮し、イラスト系には、向いていないようです
こちらは、顔の描写を繊細にしてくれます
また、これらの要素を、少しずつ変化させて、検証したい場合には、XYZ Plotを使って検証結果を表にまとめてくれる機能もありますので、活用してみてくださいね
StableDiffusionに関する以下のコンテンツとコラボさせて頂いてますので、ご興味ありましたら覗いてもらえたら嬉しいです
まとめ:動画版【ControlNet】新機能tile!高解像度画質で生成
StableDiffusion WebUI v1.6.0(随時更新リサーチ中)
- StableDiffusion WebUIバージョン1.6.0リリース速報まとめ
- 【SDXL1.0のVAE】StableDiffusion WebUI v1.6.0 導入&設定方法
- StableDiffusion WebUI ver1.6.0「VAE」切り替えを便利なインターフェイス
- ControlNet ver1.14バージョンアップSDXLに対応…しかし
- SDXL1.0環境のEasyNegative【negativeXL 】ネガティブプロンプト省略embeddings
StableDiffusion WebUI や拡張機能のダウングレード
StableDiffusion webUI基本設定
- StableDiffusion WebUIをローカル環境で使う設定のやり方♪
- StableDiffusion WebUIバージョンアップ方法。更新手順や注意点
- StableDiffusion WebUIバージョンの確認方法
- 【操作画面の解説・txt2img】分かりやすくパラメータの使い方を説明
- 【画像生成AIイラスト】VAEインストール方法と便利な使い方
- 「VAE」かんたんに切り替えするインターフェイス
- 【日本語化】StableDiffusionWebUI インターフェイス設定方法。
- 大きく、キレイな画像を出力する方法Hires.fix使い方。解像度アップ!
- 操作画面の5つのボタン解説
- 【X/Y/Z plot】使い方。プロンプトや設定を調整し比較してみよう!
- 【img2imgインペイント】画像生成AIイラストを修正/inpaintのパラメータ
- 【学習モデルの追加と変更】かんたん切り替え
- StableDiffusion WebUIバージョン1.3。LoRAを使う方法
- 【まとめ】画質が悪いを改善する7つの機能の使い方!
- 【StabilityMatrix】StableDiffusionWebUI簡単インストーラー
【学習モデル・checkpoint】
- 【実写系学習モデル・3選】写真の様なリアルな美少女が作れるモデルまとめ
- 【BracingEvoMix】日本人風の顔に特化した最新学習モデル
- 【BeautifulRealisticAsiansV5通称BRAV5】
プロンプト
- Stable Diffusionプロンプト(呪文)に関しての書き方。
- 【画質を上げる・画質に美しく芸術性を持たすプロンプト】呪文の書き方
- 【Tag complete】プロンプトのコツを掴める入力補助機能。
【ControlNet】
- 【ControlNet】使い方とインストール方法。画像生成AIイラストに便利な神機能。
- 【ControlNet-V1.1206】最新バージョンアップデート&モデル更新方法。
- 【ControlNet】不具合?表示されない…反映されない時には?
- 骨(棒人間)を使い、思い通りの姿勢をとらせた方法。
- 原画の絵と同じ姿勢(ポーズ)のAIイラスト生成のやり方♪
- AIイラストから線画を抽出する方法♪
- AIイラストを手描きで修正し、生成するやり方♪
- 【ControlNet】自作の線画イラストを画像生成AIに色塗り(ペイント)させる方法
- 自作の線画イラストをAIイラストに色塗り(ペイント)させる方法♪
【その他 拡張機能について】
- 【Eagle-pnginfo】画像やプロンプトを自動で一括管理できる拡張機能
- 【eagle】画像管理おすすめアプリ使い方
- 【eagle】公式サイト
- 【EasyNegative v2】導入&使い方♪設定方法
- 【EasyNegative V2】反映されないときには?原因と対処方法
- 【EasyNegative V2】【LoRA】にサムネイルを付ける方法
- 【LoRA】画像生成AIの追加学習データの使い方。
- 【Dynamic Prompts】ダウンロードとインストールの設定方法と特殊構文の使い方
- SDXLでも使える?【ADetailer】手や顔の崩れを自動できれいに修正できる拡張機能
画像生成で収益化方法
- AIイラストを生成して販売する方法(わどさん・外部リンク)♪
- 未経験でも10分で!AI美女をStableDiffusionでの作り方
- AI美女などの画像販売で稼ぐ方法/AIグラビアをStableDiffusionWebUI で作る