captain-cocco.com Open in urlscan Pro
183.181.89.26  Public Scan

URL: https://captain-cocco.com/stable-diffusion-high-resolution/
Submission: On May 18 via api from US — Scanned from JP

Form analysis 3 forms found in the DOM

POST https://captain-cocco.com/wp-comments-post.php

<form action="https://captain-cocco.com/wp-comments-post.php" method="post" id="commentform" class="comment-form">
  <p class="comment-notes"><span id="email-notes">メールアドレスが公開されることはありません。</span> <span class="required">*</span> が付いている欄は必須項目です</p>
  <p class="comment-form-comment"><label for="comment">コメント <span class="required">※</span></label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p>
  <p class="comment-form-author"><label for="author">名前 <span class="required">※</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required="required"></p>
  <p class="comment-form-email"><label for="email">メール <span class="required">※</span></label> <input id="email" name="email" type="text" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required="required"></p>
  <p class="comment-form-url"><label for="url">サイト</label> <input id="url" name="url" type="text" value="" size="30" maxlength="200" autocomplete="url"></p>
  <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"> <label for="wp-comment-cookies-consent">次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。</label></p>
  <p><img src="https://captain-cocco.com/wp-content/siteguard/293540225.png" alt="CAPTCHA"></p>
  <p><label for="siteguard_captcha">上に表示された文字を入力してください。</label><br><input type="text" name="siteguard_captcha" id="siteguard_captcha" class="input" value="" size="10" aria-required="true"><input type="hidden" name="siteguard_captcha_prefix"
      id="siteguard_captcha_prefix" value="293540225"></p>
  <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="コメントを送信"> <input type="hidden" name="comment_post_ID" value="3214" id="comment_post_ID"><input type="hidden" name="comment_parent" id="comment_parent"
      value="0"></p>
  <p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="72ff718022"></p>
  <div class="inv-recaptcha-holder">
    <div class="grecaptcha-badge" data-style="inline" style="width: 256px; height: 60px; box-shadow: gray 0px 0px 5px;">
      <div class="grecaptcha-logo"><iframe title="reCAPTCHA"
          src="https://www.google.com/recaptcha/api2/anchor?ar=1&amp;k=6LeUwHocAAAAAMQaa6mteaihMhC4twdJ4IrPbsGd&amp;co=aHR0cHM6Ly9jYXB0YWluLWNvY2NvLmNvbTo0NDM.&amp;hl=en&amp;v=FFtxPnbuZxq6kkeHkQJR2MNQ&amp;size=invisible&amp;badge=inline&amp;cb=6mb6z2c5v44y"
          width="256" height="60" role="presentation" name="a-e6g24v3qpqhn" frameborder="0" scrolling="no" sandbox="allow-forms allow-popups allow-same-origin allow-scripts allow-top-navigation allow-modals allow-popups-to-escape-sandbox"></iframe>
      </div>
      <div class="grecaptcha-error"></div><textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response"
        style="width: 250px; height: 40px; border: 1px solid rgb(193, 193, 193); margin: 10px 25px; padding: 0px; resize: none; display: none;"></textarea>
    </div><iframe style="display: none;"></iframe>
  </div>
  <p style="display: none !important;"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="1684415436177">
    <script>
      document.getElementById("ak_js_1").setAttribute("value", (new Date()).getTime());
    </script>
  </p>
</form>

GET https://captain-cocco.com/

<form class="search-box input-box" method="get" action="https://captain-cocco.com/"><input type="text" placeholder="サイト内を検索" name="s" class="search-edit" aria-label="input" value=""><button type="submit" class="search-submit"
    aria-label="button"><span class="fa fa-search" aria-hidden="true"></span></button></form>

GET https://captain-cocco.com/

<form class="search-box input-box" method="get" action="https://captain-cocco.com/"><input type="text" placeholder="サイト内を検索" name="s" class="search-edit" aria-label="input" value=""><button type="submit" class="search-submit"
    aria-label="button"><span class="fa fa-search" aria-hidden="true"></span></button></form>

Text Content

プログラミングとか趣味とか、なんかいろいろ。
コッコ隊長の勉強部屋
 * ホーム
 * C言語
   
   * C言語 入門
   * C言語 標準ライブラリ
 * C++
   
   * C++ STL
 * Java
 * SMF (MIDI)
 * 投資・資産運用
 * プロフィール
 * お問い合わせ

 * ホーム
 * C言語
   
   * C言語 入門
   * C言語 標準ライブラリ
 * C++
   
   * C++ STL
 * Java
 * SMF (MIDI)
 * 投資・資産運用
 * プロフィール
 * お問い合わせ

Previous
AI
[Stable Diffusion Web UI] サンプリング方法(Sampling method)の違いによる生成画像の出力結果を比較検証!
コーディングテクニック
[C/C++] リスト構造体(チェーン構造)の書き方と使い方
C言語
[C言語 標準ライブラリ] float.hの使い方
MIDI
ゲーム開発に挑戦してみる。#1「MIDIベースの音ゲー作りたい!」
java入門
[Java入門] 配列
MIDI
[MIDI] ヘッダチャンク
java入門
[Java入門] mainメソッドとは
C言語
[C言語 標準ライブラリ] time.hの使い方
MIDI
ゲーム開発に挑戦してみる。#2「MIDIファイル解析してみた」
java入門
[Java入門] メソッド
C言語
[C/C++] テーブルデータ(配列)をfor文で巡回する方法
コーディングスタイル
[C/C++] わかりやすいif文(条件式)の書き方
Windows
[Windows] 絶対に覚えておきたいショートカットキー集
C++
[C/C++] switch文のインデントの付け方
C言語
[C言語 標準ライブラリ] locale.hの使い方
C言語
[C言語 標準ライブラリ] stdlib.hの使い方
C言語
[C言語 標準ライブラリ] ctype.hの使い方
java入門
[Java入門] クラス
AI
[Stable Diffusion Web UI] サンプリング方法(Sampling method)の違いによる生成画像の出力結果を比較検証!
コーディングテクニック
[C/C++] リスト構造体(チェーン構造)の書き方と使い方
C言語
[C言語 標準ライブラリ] float.hの使い方
MIDI
ゲーム開発に挑戦してみる。#1「MIDIベースの音ゲー作りたい!」
java入門
[Java入門] 配列
MIDI
[MIDI] ヘッダチャンク
java入門
[Java入門] mainメソッドとは
C言語
[C言語 標準ライブラリ] time.hの使い方
MIDI
ゲーム開発に挑戦してみる。#2「MIDIファイル解析してみた」
java入門
[Java入門] メソッド
C言語
[C/C++] テーブルデータ(配列)をfor文で巡回する方法
コーディングスタイル
[C/C++] わかりやすいif文(条件式)の書き方
Windows
[Windows] 絶対に覚えておきたいショートカットキー集
C++
[C/C++] switch文のインデントの付け方
C言語
[C言語 標準ライブラリ] locale.hの使い方
C言語
[C言語 標準ライブラリ] stdlib.hの使い方
C言語
[C言語 標準ライブラリ] ctype.hの使い方
java入門
[Java入門] クラス
AI
[Stable Diffusion Web UI] サンプリング方法(Sampling method)の違いによる生成画像の出力結果を比較検証!
コーディングテクニック
[C/C++] リスト構造体(チェーン構造)の書き方と使い方
C言語
[C言語 標準ライブラリ] float.hの使い方
MIDI
ゲーム開発に挑戦してみる。#1「MIDIベースの音ゲー作りたい!」
java入門
[Java入門] 配列
MIDI
[MIDI] ヘッダチャンク
Next
 * 1
 * 2
 * 3


[STABLE DIFFUSION WEB UI] アップスケール方法による結果の違いを比較検証!

AI
2023.05.04
スポンサーリンク


Stable Diffusion Web
UIで高解像度の画像を生成したいとき、生成する画像のサイズを上げると、絵が破綻することが多いと思います。これは、画像生成モデルの学習元の画像のサイズと生成する画像のサイズがかけ離れていることが原因だと思われます。

そこで今回は、Stable Diffusion Web
UIで生成した512×512の画像を高解像度化する方法の解説と、その方法による違いを比較検証していきたいと思います。

目次
 1. Stable Diffusion Web UIの高解像度化の機能
 2. Hires. fix (高解像度補助)を使用する
    1. Hires steps
    2. Denoising strength(ノイズ除去強度)
    3. Upscaler毎の生成画像の比較
 3. Extrasのアップスケールを使用する
    1. GFPGAN visibilityの設定値による出力の差異
    2. CodeFormer visibility
    3. Upscaler1と2を使って比較する
 4. まとめ

スポンサーリンク



STABLE DIFFUSION WEB UIの高解像度化の機能

Stable Diffusion Web UIには、高解像度化するための機能として以下のものがあります。
・Hires. fix (高解像度補助)
・Extrasのアップスケール

それぞれ使ってみて結果をお見せしたいと思います。

比較対象元となる高解像度化前の画像(512×512)はこちらです。


HIRES. FIX (高解像度補助)を使用する

Stable Diffusion Web UIでは、高解像度化するための様々な手法を選択することができます。
まずは、手法(Upscaler)毎の特徴を見ていきましょう。

Upscaler生成画像Latent画像の解像度を高めるための技術の一つですが、画風にも影響を与えることがあります。
入力された元画像の潜在空間を拡大して、txt2imgで再生成するという方法のため、Denoising
strengthを高めに設定しないとノイズが残る傾向があります。他のアップスケーラーと比較すると、Latentはディテールが豊かで色味が鮮やかな画風になりやすいですが、元画像から変化する部分が多くなることもあります。
イラストやアニメ風の画像に向いています。Lanczos画像の縮小リサイズに向いている補間メソッドです。
Sinc関数を用いて、画像の周波数成分を低域に限定することで、画像の鮮明さを保ちつつ、ノイズやエイリアスを抑える効果があります。lobeというパラメータで波の広がりを調整できる特徴があります。lobeの値が大きいほど、画質が向上しますが、処理が重くなります。
写真や風景などの自然な画像に向いています。Nearest画像の拡大や縮小において、隣り合うピクセルの色をそのままコピーする補間メソッドです。
処理が最も速く簡単なメソッドですが、画質が劣化しやすく、ジャギーや偽色が発生する欠点があります。
ドット絵やパレット画像など、色の変化が少なく、ピクセルの形が重要な画像に向いています。ESRGAN_4x画像の拡大リサイズに向いている補間メソッドです。
Enhanced Super-Resolution Generative Adversarial Networks (ESRGAN)という敵対的生成ネットワーク
(GAN)を用いて、画像の高解像度化を行う技術です。画像の細部やテクスチャを鮮明に再現し、リアルな画質を実現する効果があります。
イラストやアニメなどの画像に向いています。LDSRDeep Laplacian Pyramid
Super-Resolutionの略で、画像の超解像に用いられる深層学習アルゴリズムです。
画像の高周波成分を復元するためにラプラシアンピラミッドを用いるという特徴があります。高精度、高効率という利点があります。
イラストやアニメなどの画像に向いています。R-ESRGAN 4x+
Anime6BReal-ESRGANという画像の超解像に用いられる深層学習アルゴリズムの一種です。
4x+は、4倍の拡大率、Anime6Bは、Anime6Bというモデルを使用することを表しています。
画像の細部や色彩を綺麗に復元することができるという特徴があります。
アニメやイラストなどの画像に向いています。ScuNETSwin-Conv-UNetという画像のノイズ除去に用いられる深層学習アルゴリズムの一種です。
Swin-Convブロックという局所的なモデリング能力と非局所的なモデリング能力を持つブロックを用いて、UNetというエンコーダー・デコーダー構造を構築しています。実際の画像に含まれる様々な種類のノイズを除去することができるという特徴があります。
写真や動画などの画像に向いています。ScuNET PSNRScuNETの一種で、PSNRという画質評価指標を最大化するように学習されたモデルです。
ScuNETと比べて、画像の細部や色彩をより忠実に復元することができるという特徴があります。
写真や動画などの画像に向いています。SwinlR_4xSwinIRという画像の超解像に用いられる深層学習アルゴリズムの一種で、4倍の拡大率を持つモデルです。
Swin TransformerというTransformerベースのブロックを用いて、画像の特徴を階層的に抽出することができるという特徴があります。
写真や動画などの画像に向いています。

Upscalerの選択以外では、Hires stepsとDenoising strength(ノイズ除去強度)というパラメータがあります。
まずはこの2つの適正範囲を検証していきたいと思います。


HIRES STEPS

Hires stepsは0~150まで選択でき、デフォルトは0になっています。
倍率を2倍にして、アップスケーラをデフォルトのLatentに固定、またDenoising
strengthもデフォルトの0.7に固定して、ステップ数を(0,10,15,20,35,50,100,150)にして比較してみます。
また、高解像度化にかかる時間も比較してみます。

ステップ数を最大まで上げても絵が破綻することなく、上げれば上げるほど、より鮮明な画像になりました。グラボのスペックが高ければ、できるだけ上げた方が良い結果になりそうです。

高解像度化にかかる時間は次のようになりました。
(512×512の画像生成にかかる時間は差し引いています)

0stepは20stepと同じ時間がかかりました。
512×512の画像生成のときのSampling stepsが20だったので、Hires stepsを0にした場合は、それを引き継いでいるのだと思われます。

0step(Sampling stepsと同じステップ数=20step)でも十分に綺麗に高解像度化されました。
より鮮明な画像にしたい場合は50step、もしくは最大値の150まで引き上げてしまって良いと思います。


DENOISING STRENGTH(ノイズ除去強度)

Denoising strength(ノイズ除去強度)は0~1まで設定可能で、デフォルトは0.7になっています。
倍率を2倍にして、アップスケーラをデフォルトのLatentに固定、またHires stepsもデフォルトの0に固定して、Denoising
strengthを0から0.1刻みで比較してみます。

0.6あたりから十分な鮮明さがあり、0.9以上は完全に構図が変わってしまいました。
まとめると以下のような特徴がでました。
・値が小さいほど、構図が変わりにくいがぼやける。
・値が大きいほど、鮮明になるが構図が変わりやすくなる。

アップスケーラとの組み合わせにもよると思いますが、0.6~0.8の範囲で良い塩梅を見つけるのが良さそうです。Hires
stepsは構図への影響が無かったので、Denoising strengthを決めてから鮮明さをHires stepsで調整するのが良いのではないでしょうか。

また、Denoising strengthは画像の生成時間には影響ありませんでした。


UPSCALER毎の生成画像の比較

Hires stepsは0固定にして、Upscaler毎の違いを比較します。

Upscaler生成画像LatentLatent (antialiased)Latent (bicubic)Latent (bicubic
antialiased)Latent (nearest)Latent
(nearest-exact)NoneLanczosNearestESRGAN_4xLDSRErrorになりました。。。R-ESRGAN 4x+R-ESRGAN
4x+ Anime6BScuNETScuNET PSNRSwinlR_4x

どれもそれ程大きな違いは出ませんでしたが、個人的にはScuNET PSNRが良さそうに見えます。

高解像度化にかかる時間は次のようになりました。
(512×512の画像生成にかかる時間は差し引いています)

どのUpscalerを選んでも鮮明に高解像度化できますが、どうしても元の画像から構図が少し変わってしまいます。


EXTRASのアップスケールを使用する

次にExtrasのアップスケール機能を使って高解像度化してみます。
Extrasのアップスケールでは次のパラメータがあります。
・Upscaler 1
・Upscaler 2
・Upscaler 2 visibility
・GFPGAN visibility
・CodeFormer visibility
・CodeFormer weight (0 = maximum effect, 1 = minimum effect)


GFPGAN VISIBILITYの設定値による出力の差異

GFPGAN visibilityは、顔面修復のアルゴリズムを適用する度合いを調整するパラメータです。
GFPGANは、顔を綺麗にすることができるモデルで、人物や動物の顔に対して有効です。
GFPGAN visibilityは、0~1までの値で設定でき、0はGFPGANを適用しないことを意味し、1は最大限に適用することを意味します。GFPGAN
visibilityを高くすると、顔がより鮮明になります。

Upscaler 1をScuNET PSNRに固定して、GFPGAN visibilityを0から0.1刻みにして比較します。
→ほとんど変わらなかったので0と1のみ比較します。
左が0で、右が1です。


CODEFORMER VISIBILITY

CodeFormer
visibilityは、CodeFormerというTransformerベースの顔面修復アルゴリズムを適用する度合いを調整するパラメータです。
CodeFormerは、GFPGANの代替としての顔復元ツールで、古い写真の修復に有効です。
CodeFormer
visibilityは、0から1までの値で設定でき、0はCodeFormerを適用しないことを意味し、1は最大限に適用することを意味します。CodeFormer
visibilityを高くすると、顔がより鮮明になります。

Upscaler 1をScuNET PSNRに固定して、CodeFormer visibilityを0,0.5,1.0にして比較します。

→古い写真の復元用なので、もともとある程度鮮明なイラストの高解像度化では全然使えません。

CodeFormer weightはCodeFormer visibilityの影響度を調整するパラメータですが、今回は検証不要ですね。


UPSCALER1と2を使って比較する

左から順番に、以下の設定でアップスケールした画像を比較します。
・Upscaler1=設定なし。Upscaler2=設定なし。
・Upscaler1=ScuNET PSNR。Upscaler2=設定なし。
・Upscaler1=ScuNET PSNR。Upscaler2=R-ESRGAN 4x+ Anime6B。Upscaler 2 visibility=0.1。
・Upscaler1=ScuNET PSNR。Upscaler2=R-ESRGAN 4x+ Anime6B。Upscaler 2 visibility=0.5。
・Upscaler1=ScuNET PSNR。Upscaler2=R-ESRGAN 4x+ Anime6B。Upscaler 2 visibility=1.0。

少しずつ鮮明になっていってますが、やりすぎるとクッキリしすぎて違和感が出てきます。


まとめ

Hires.fixを使った方法、Extrasのアップスケールを使った方法、それぞれのパラメータを変えて比較しましたが、いかがでしたでしょうか?

構図が少し変わることを許容できるなら、Hires.fixを使用したアップスケールがおすすめです。

構図を絶対に変えたくない場合は、少しぼやけますがExtrasのアップスケールを使用することをおすすめします。

個人的には、Hires.fixでアップスケーラをScuNET PSNRにして、Denoising strengthを0.6~0.8の範囲で調整後、Hires
stepsをMAXにして(ここはマシンスペックと相談して)アップスケールするのが良いと思いました。Hires stepsは20でも十分ですが。

他にも良い設定や方法があれば、是非コメントで教えてください。



グラフィックボードの性能が足りない方は、この機会に是非グレードアップを検討してみてください。

◆AI画像生成の入門モデルとしておすすめのグラフィックボード

ASUS DUAL-RTX3060TI-O8GD6X
created by Rinker
¥67,800(2023/05/18 10:07:17時点 楽天市場調べ-詳細)
 * Amazon
 * 楽天市場
 * Yahooショッピング

◆ワンランク上のハイエンドモデルとしておすすめのグラフィックボード

ASUS DUAL-RTX4070-O12G
created by Rinker
¥99,800(2023/05/18 10:07:17時点 楽天市場調べ-詳細)
 * Amazon
 * 楽天市場
 * Yahooショッピング

◆最高峰の超ハイエンドモデルとしておすすめのグラフィックボード

ASUS ROG-STRIX-RTX4090-O24G-GAMING
created by Rinker
¥374,999(2023/05/18 10:07:18時点 楽天市場調べ-詳細)
 * Amazon
 * 楽天市場
 * Yahooショッピング

スポンサーリンク

AIStable Diffusion画像生成
AI画像生成Stable Diffusion Web UIアップスケール高解像度化
コッコ隊長の勉強部屋
コッコ隊長の勉強部屋


関連記事

AI


[STABLE DIFFUSION WEB UI] TXT2IMGのスクリプトの使い方を解説!

Stable Diffusion Web
UIのtxt2imgには、3つのスクリプトが用意されており、それぞれプロンプトの組み合わせや、各種パラメータの調整に役立つ便利な機能です。今回は、そのスクリプトの使い方について解説したいと思います。...
AI


[AI画像生成] STABLE DIFFUSION WEB UIを使って画像生成モデルを比較検証!

Stable Diffusion Web
UIというツールを使って、いくつかの画像生成モデルを比較検証してみました。その結果を、この記事でお伝えします。Stable Diffusion Web
UIとは「Stable Diffusion W...
AI


生成系AIツールまとめ

AIツール一覧ツール名機能Poeテキスト → テキストCohesiveテキスト → テキストDocsBotURL/PDF等のドキュメント → テキストStable
Diffusion XLテキスト → 画像Stable Diffusionテ...
AI


[STABLE DIFFUSION WEB UI] サンプリング方法(SAMPLING METHOD)の違いによる生成画像の出力結果を比較検証!

みなさん、AI画像生成を楽しんでいますか?今回はStable Diffusion Web UIのサンプリング方法(Sampling
method)の設定の違いによって、生成される画像にどのような影響があるかを比較検証したいと思います。サンプ...
スポンサーリンク

[Stable Diffusion Web UI] サンプリング方法(Sampling method)の違いによる生成画像の出力結果を比較検証!

[Stable Diffusion Web UI] txt2imgのスクリプトの使い方を解説!


コメント

コメントを書き込む


コメントをどうぞ コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメント ※

名前 ※

メール ※

サイト

次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。



上に表示された文字を入力してください。








Δ

ホーム
AI
スポンサーリンク



人気記事

[Stable Diffusion Web UI] アップスケール方法による結果の違いを比較検証!
2023.05.04
[Stable Diffusion Web UI] サンプリング方法(Sampling method)の違いによる生成画像の出力結果を比較検証!
2023.05.03
[C/C++] 二重インクルードによる型の再定義を防止する方法(インクルードガード)
2021.09.262022.11.12
[C/C++] リスト構造体(チェーン構造)の書き方と使い方
2021.09.292022.11.12
[AI画像生成] Stable Diffusion Web UIを使って画像生成モデルを比較検証!
2023.05.03


カテゴリー

 * AI5
   * 画像生成4
     * Stable Diffusion4
 * MIDI5
 * Windows1
 * ゲーム1
 * ゲーム開発2
 * パソコン1
 * フリーソフト1
 * プログラミング31
   * C++3
   * C言語19
   * java入門9
   * コーディングスタイル2
   * コーディングテクニック3
 * 未分類1
 * 生活1
   * ふるさと納税1
 * 資産運用5
   * 株主優待2


アーカイブ

アーカイブ月を選択 2023年5月  (4) 2023年4月  (1) 2023年1月  (12) 2022年12月  (2) 2022年10月  (1)
2022年6月  (3) 2022年3月  (3) 2022年2月  (1) 2022年1月  (4) 2021年12月  (1) 2021年11月  (1)
2021年10月  (1) 2021年9月  (4) 2021年8月  (1) 2021年3月  (2) 2021年2月  (1) 2020年11月  (3)
2020年10月  (1) 2020年2月  (1) 2019年8月  (1) 2019年7月  (1) 2019年6月  (2) 2019年4月  (1)
スポンサーリンク

スポンサーリンク

コッコ隊長の勉強部屋
 * ホーム
 * C言語
 * C++
 * Java
 * SMF (MIDI)
 * 投資・資産運用
 * プロフィール
 * お問い合わせ

Copyright © 2019-2023 コッコ隊長の勉強部屋 All Rights Reserved.
 * メニュー
    * ホーム
    * C言語
      * C言語 入門
      * C言語 標準ライブラリ
    * C++
      * C++ STL
    * Java
    * SMF (MIDI)
    * 投資・資産運用
    * プロフィール
    * お問い合わせ

 * ホーム
 * 検索
   
 * トップ
 * サイドバー