おはようございます!
9月6日 金曜日。めっちゃ晴れ🌞
最高気温35℃。え?!また!?この数字はもう見ることはないと思っていたのに。。😓
どうりで今朝「あぁぁぁっっっつぅぅ~!」って言って目覚めたわけだ。。
ほんとに言ったかどうかはまあ置いておいて、湿度が高くないのがせめてもの救い。
週間天気予報見てみたら気分が⤵⤵⤵ 最低気温が25℃とか、、なんとかならんかな~
しばらく時の流れに身を任せるとします。。
つべこべ言わず、無心で学んでまいります。
今日の教材はこちら、
よしやっていこう!!
CHAPTER3 プロンプトから画像を生成してみよう
Section 3-4
画像の解像度を上げよう
画像の解像度を上げよう
高解像度化、高画質化のことをアップスケールという。Stable Diffusionでのアップスケール方法はいくつかある。
1.高解像度補助(Hires.fix)
2.その他(Extras)
3.img2img
今回は拡張機能が不要な「Hires.fix(ハイレゾ・フィックス)」を使用する。
PNG info(PNG内の情報を表示)から画像の情報を読み込んで高解像度化しよう
解像度を上げたい画像と全く同じ画像を生成するための設定を整えるための前提知識を再確認。
<前提知識「Seed値」>
[生成]ボタンを押すごとに違う画像が生成されるのは、Seedの値を「-1(=ランダム)」としていたため。これで生成された画像にはランダムなSeed値が与えられる。
このSeed値(上図の場合「Seed: 2682203845」)をシード欄に設定すれば(ほぼ)同じ画像が生成される。
過去に生成した画像のSeed値を確認・設定したい場合は、「PNG info(PNG内の情報を表示)」タブにて設定したい画像をドラッグアンドドロップ
↓
Seed値が確認できる。
このまま[txt2imgに転送(Send to txt2img)]ボタンを押下することで画像の情報が「txt2img」タブに設定される。
↓
※「バッチ回数」「バッチサイズ」は変化なし。画像にその情報が存在しないため。
<Hires.fix(高解像度補助)のメニュー>
まず、「Hires.fix(高解像度補助)」にチェックを入れ、チェックボックス以外のところをクリックしてHires.fix(高解像度補助)欄を展開する。
↓
①アップスケーラー(Upscaler)
使用するアップスケーラーのアルゴリズムの種類を選択する。以下例と特徴。
・Latent:高解像度化の際に、元の画像からの変化が生じやすい。ノイズ除去強度を高め
(0.55以上)に設定する必要あり。
・Lanczos:画像のエッジをシャープに保ちながら拡大することができるが、ディテールの
再現性は他のアルゴリズムに劣ることがある。
・R-ESRGAN:ESRGANの改良版で、ノイズ除去性能が向上している。よりクリアな画像を
生成することができる。
・SCUNet:肌の質感を滑らかにし、美肌エフェクトのような効果を生み出す。処理速度も
比較的速い。
②高解像度でのステップ数(Hires.steps)
高解像度化する際のステップ数を指定。ステップ数が多いほど緻密な画像が生成されるが、処理時間も長くなる。一般的には10〜20ステップが推奨されている。
※この「高解像度でのステップ数(Hires.steps)」と「サンプリングステップ数」との関係がよくわからん。。基本的には「サンプリングステップ数」が効いてる様子だが。。。Hires.stepsのほうの設定はプラスアルファって感じなのか??
③ノイズ除去強度(Denoising strength)
画像生成の際にどれだけノイズを除去するかを指定するパラメータ。値の範囲は[0~1]で、値が低いほど元の画像に忠実で、値が高いほど新しいディテールが追加される。
・低い値(0.4~0.5):元の画像に忠実で細部の変更が少ないが、画像がぼやけることがある。
・中くらいの値(0.5~0.7):バランスが取られていて、元の画像のディテールを保ちつつ
新しい要素も追加される。一般的に推奨される範囲。
・高い値(0.7~1.0):新しいディテールが多く追加され、元の画像から大きく変わることが
ある。創造的な画像生成に適しているが、元の画像から乖離するリスクあり。
※「0.1」とかにするとなかなか生成が終わらない。。極端な値にすると余計な処理が働くっぽいので「0.4~0.7」の間がいいのかなと思われる。
④アップスケール倍率(Upscale by)
元の画像の解像度をどれだけ拡大するかを示すパラメータ。例えば、アップスケール倍率を2.0倍に設定すると、512x512pxの画像は1024x1024pxに拡大される。1.5~2.0倍に設定することが一般的。
⑤サイズ変更後の幅(Resize width to)
クリックすると活性化され、「アップスケール倍率」が非活性になる。「サイズ変更後の高さ」を「0」のまま(非活性のまま)にしている場合、画像のサイズは以下となる。
・横:「サイズ変更後の幅」 (例:680px)
・縦:「サイズ変更後の幅」×1.5 (例:1020px)
⑥サイズ変更後の高さ(Resize height to)
クリックすると活性化される。「サイズ変更後の幅」を「0」のまま(非活性のまま)にしている場合、画像のサイズは以下となる。
・横:「サイズ変更後の高さ」×(2/3)(例:640px)
・縦:「サイズ変更後の高さ」 (例:960px)
※再び「アップスケール倍率」を活性化させるには、「サイズ変更後の幅」および「サイズ変更後の高さ」を両方とも「0」にする必要がある。
実際にアップスケールしてみる!
<元の画像>
元の画像のサイズ:512×738px
↓
<主な設定内容>
アップスケーラー:Latent
高解像度でのステップ数:40
ノイズ除去強度:0.5
アップスケール倍率:2
↓
<生成画像①>
※アップスケール倍率2倍だけどpx数は4倍なのでやはり時間がかかります。
←元の画像 生成画像→
ちなみに「高解像度でのステップ数」を「0」にして生成してみたところ、
アップスケーラー:Latent
高解像度でのステップ数:0
ノイズ除去強度:0.5
アップスケール倍率:2
↓
<生成画像②>
生成画像①と②の比較
←生成画像① 生成画像②→
※②は空に得体の知れないものが浮遊してるしこめかみの色が髪の色と同じでなんか全体的に雑。
やっぱり「高解像度でのステップ数」は「0」のままだとよろしくないみたい。。
今日は金曜日か~。一行前の文は4時間前に書いたんだよなぁ。
早くこの記事を締めなきゃなぁ。
今日はヤクルトを応援するためこれにて終了です。
おつかれさまでした~(=゚ω゚)ノ
コメント