画像生成AIの情報を纏めるWikiです。

概要

ここではWebUIの設定の仕方とか、DDIMってなんやねんみたいな基礎的なもののTipsを載せる感じです。
ローカル版でしかできないような内部的検証、コード周り直接触るようなのはローカルの技術を参照してください。


コマンドラインオプション


ページが長くなってきたのでローカルのwebui-user.batに移動しました。

設定(Settings)周り

色がくすんでる気がする

VAEが設定されていない(=モデル埋め込みのを使用)ときに見られる現象。
nai.vae.ptなどをmodels/VAEフォルダ内に配置して、WebUIの上部タブのプルダウンから合うものを選びます。
VAE一覧も参照。

図:左がVAE未指定、右指定


図:VAEの選択

生成中/学習中もネット見たりゲームしたい


おすすめはiGPUつきのCPUにして、モニタやブラウザをiGPUで描画するようグラフィックの設定をいじること。
内蔵グラフィック付きのパソコンなら、映像出力端子をマザーボードに接続すると、自動でブラウザなどは内蔵グラフィックを使うようになってグラボのVRAM使用量が減少する(アイドル時に4MB)。
要はdGPUを画像生成専用にする。
アプリごとに設定できるので、軽いゲームと重いゲームで使い分ける。
あとは、ブラウザでハードウェアアクセラレーションを無効(ただしブラウザの動作が重たくなる)にし、メモリ不足エラーが発生している場合はVRAMを占有している可能性のあるものをすべて閉じ、GFPGAN(存在する場合)を削除してください。
特にVRAM 8GBの学習は容量ギリギリなのでこういう設定が大事っぽい。

簡単に設定切り替えたい


画面の上にこういうの出せる。



Settings>User Interface>「Quicksettings list」(日本語化してる場合「設定タブ>クイック設定」)に以下の文字列を入力。
sd_model_checkpoint,sd_vae,sd_hypernetwork,sd_hypernetwork_strength,CLIP_stop_at_last_layers,eta_noise_seed_delta

出力する絵のファイル名パターンを設定したい


Setting>saving images/grids>「Images filename pattern」で以下のタグを設定する。

設定できるタグ(複数組み合わせ可能)
[steps], [cfg], [prompt], [prompt_no_styles], [prompt_spaces], [width], [height], [styles], [sampler], [seed], [model_hash], [prompt_words], [date], [datetime], [job_timestamp]

例:[seed]-[steps]-[cfg]-[sampler]-[prompt_spaces]
"Images filename pattern" 上にマウスカーソルを乗せると表示が出る


フォルダ名もSetting>Saving to a directory>「Directory name pattern」で同じように設定できる
Windowsにはファイル名/フォルダ名は異本的に256文字までという制限があるので長すぎると途中で端折られる

VAEの設定


もうVAEはSettingsで指定できるから、ckptと同じ名前にしてコピーしまくる必要は無くなったんやでー
  • auto: 以前と同じ(モデル名と同名のvae.ptファイルを読み込む)
  • 指定: モデルにかかわらず指定したvaeを読み込む
  • none: モデル埋め込みのものを使用

PNG infoでText2Imgに送るとckptまで変更されてロード始めるのを回避したい

設定→UI設定
When reading generation parameters from text into UI (from PNG info or pasted text), do not change the selected model/checkpoint.
(テキストからUIに生成パラメータを読み込む場合(PNG情報または貼り付けられたテキストから)、選択されたモデル/チェックポイントは変更しない。)
これにチェック

Restore faces

アニメ絵だとオフ推奨(目がリアルになる)

高解像度で出力したい


SD1.5以下のモデルは、縦横の両方が512を超えていると破綻しやすくなると言われています。
NovelAIは基本512x768で、たとえばフルHDで出そうとするとほぼ確実に破綻するでしょう。
また、所要時間とVRAM消費は解像度に比例して増えていきます(縦横2倍なら4倍)

まず、破綻しない生成サイズを決める。
そのサイズでガチャする。
設定が確定したら以下の機能を使う。

生成できる解像度の限界を調べる


出したい絵の設定で、縦横をできる限り大きくして、Stepsを1にして、Generateする
これでエラーが起きるようならStepsを上げてうまくいくことはないはず
縦横サイズの上限を増やす

ui-config.json で変えられる

 "txt2img/Width/maximum": 2048,
 "txt2img/Height/maximum": 2048,

Highres. fixを使う


最終的に出力したい解像度を出せるだけのGPUがあって、精細な絵を出したいならこれ。



VRAM 8GBだとFHD(1920x1088)はギリギリ。UpscalerによってはVRAMが一瞬溢れて共有メモリを使用する。
VRAM不足を補うためには、生成時間が延びるけど--medvramを指定する手がある。
3060か4070Ti買っちゃう手もあるかも。
Upscalerについて
Upscalerによってデティールが大きく異なる。
4x-UltraSharpなどの追加のUpscalerはmodels/ESRGANに入れる。

Latent系はとても精細な絵になるが、内容が大きく変化したり崩れたりする。モデルによっては塗りが変化して相性が悪いものもある。
例えばこれが


こうなる

highres.fixのUpscalerの比較


Extras の Upscaler を使う


生成できる解像度の限界を超えて拡大することができる。
VRAMが少ない等で Highres fix. が使えず、出力された画像を綺麗に拡大したいだけならこれ。

サンプラー

EulerとかDDIMとか


NovelAIとWebUIで同じ結果になる。
(ので、ハローアスカでも使われている)

末尾にaがついてないものはStepsをあげると収束する。

Euler a と k_euler_ancestral


似ているがちょっと違う。

k_euler_ancestral
みたいなのを出したかったら、
「Euler a」を選んで、Settingsの、
eta (noise multiplier) for ancestral samplers:
を0.67にする。

ただし、完全一致させたかったらソースコードを改造する必要あり。いまさらNAIを再現する必要はないと思うが・・・
これだったかも。

ローカル版のサンプラー


DPM++ 2M Karras
DPM++ SDE Karras
DPM++ 2M SDE Exponential
DPM++ 2M SDE Karras
Euler a
Euler
LMS
Heun
DPM2
DPM2 a
DPM++ 2S a
DPM++ 2M
DPM++ SDE
DPM++ 2M SDE
DPM++ 2M SDE Heun
DPM++ 2M SDE Heun Karras
DPM++ 2M SDE Heun Exponential
DPM++ 3M SDE
DPM++ 3M SDE Karras
DPM++ 3M SDE Exponential
DPM fast
DPM adaptive
LMS Karras
DPM2 Karras
DPM2 a Karras
DPM++ 2S a Karras
Restart
DDIM
PLMS
UniPC

「DPM++ 2M Karras」は10stepsでも最低限見れる絵を出してくれるのでシード値探しに便利。
15stepsあれば破綻もそれなりに減らせるので低スぺ民の味方かも知れない。
PLMS、LMSやHeunは遅い。

ちなみに、Settings->Sampler parametersで特定のサンプラーを非表示にできる。

Settingsにetaが2つあるけどどっち?




DDIMかPLMSが「for DDIM」で、それ以外が「for ancestral samplers」っぽい。

CLIP Skipについて

数値を上げると文章の解釈が大雑把になる。イラストは2が良いとされる。

モデルはanimefull-final-prunedで試した。生成したのはとある版権キャラ。
1にすると奇形が増えた。だがこれはプロンプトに忠実になるせい?精密な呪文であればいいのかも。
数値を上げていったところ、版権キャラがどんどん似なくなっていった。プロンプトに縛られなくなるのだろうか?代わりにちゃんと見れる絵が増えた印象。

とりあえずNAIデフォの2で基本的にはいいと思う。
数値を上げる事で奇形率が減るかもしれないし、プロンプトから離れるのも強調すれば回避できるかも?

プロンプト記法

NovelAIとAUTOMATIC1111 WebUIの違い

  • NovelAIは{}で強調1.05相当、[]は強調0.95相当(弱くなる)、()は単なる文字
  • WebUIは()で強調1.1相当、[]は強調0.9相当(弱くなる)、{}は単なる文字(拡張機能で使うことも)
  • {{}}は1.1ではなく1.05の2乗(なので変換ツールでは細かく計算して端数を丸めている)
  • WebUIで()を文字として使いたい場合は\(hoge\)のようにエスケープする(作品名などに使う)
  • WebUIは(hoge:1.2345)で強調の度合いを細かく決められる
  • NovelAIはプロンプトミキシングが使える
  • WebUIはプロンプトエディティングが使える
  • トークン75以上を超えた時の処理が違う
    • 75ごとに,で区切ると差異を和らげられるらしい?
変換する

{{{masterpiece}}}という書き方はローカルでは強調の意味を持たない。

プロンプト変換を使うか、
Extensionsの「novelai-2-local-prompt」を使って()記法に変換するといい。

プロンプト強弱の簡単な調整方法

プロンプト入力欄内の単語または強弱を調整したい範囲をドラッグして選択する。
CTRL+↑を押すと(選択範囲:1.0)になる。そのままCTRL+↑を連打すると0.1ずつ数値が増え、CTRL+↓を押すと0.1ずつ減る。
すでに()がついている場合、()の範囲内どこでもよいのでカーソルを置いてCTRL+↑or↓で数値が調整できる。
このとき、エラーが出る場合があるが、気にしなくていい。

NovelAIのプロンプトを真似る


ポジティブプロンプト欄の先頭に「masterpiece, best quality,」をつける(Add Quality Tagsと同じ意味)
ネガティブプロンプト欄に「lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry」をつける(UC L+Bと同じ意味)

コメントも参考に。
(たぶんartist nameは結構最初の頃に削除されたか何かで揺れてるんだと思う)

Prompt matrix

Prompt matrixは、画像生成の時に入力する文字列(プロンプト)で通常は「,」でキーワードを区切るところを、「|」で区切ることで総組み合わせして画像を生成できる機能です。例えば、通常は「a busy city street in a modern city, illustration ,cinematic lighting(近代都市のせわしない街道、イラスト、映画のような照明)」というプロンプトで画像を生成しますが、Prompt matrixで「a busy city street in a modern city | illustration | cinematic lighting」というように「|」で区切って入力することで、「a busy city street in a modern city」に「illustration」と「cinematic lighting」を組み合わせた画像を生成できます。
 引用:画像生成AI「Stable Diffusion」でプロンプト・呪文やパラメーターを変えるとどういう差が出るか一目でわかる「Prompt matrix」と「X/Y plot」を「Stable Diffusion web UI(AUTOMATIC1111版)」で使う方法まとめ - GIGAZINE - https://gigazine.net/news/20220909-automatic1111-s...

img2img

各数値の詳細

  • Denoise Strength:リファレンスイメージからどの程度離れて画像を生成するか

TIPS

グラボをリセットする

ctrl+windows+shift+b のショートカットでグラフィックドライバをリセットできる
WEBUIを起動する前におまじないとして行っているニキもいるようである

UIをリロードするとプロンプトが消えて辛い

→画面更新したりUIリロードしたりしても、Generateボタンに下にある「↙」を押すと直前のプロンプト設定周りが復元できます。

ダークモードで表示


http://127.0.0.1:7860/?__theme=dark

↑のように明示しない場合はOSの設定に従う模様。

画像生成が終了したら音を鳴らす


stable-diffusion-webuiフォルダにmp3の音楽ファイルを notification.mp3 というファイル名で置く

トラブルシューティング

NansException: A tensor with all NaNsなんとかって出る

1111の最新版では黒画像の条件を満たすとエラーを発生させるようになっている。

まずはwebui-user.batファイルをメモ帳なので開き、「set COMMANDLINE_ARGS=」の後ろに「--no-half-vae」をつける。代償としてVRAM消費が増加し生成開始に若干もたつくようになる。パラメータを変更していないのにも関わらず突然エラーになりだしたら再起動する。
エラーで連続生成を止められるのが嫌なら起動引数に--disable-nan-checkを追加するといい。従来の黒画像を出力する仕様に戻る。

CUDA out of memoryで生成できない

グラフィックボードのメモリが不足していることが原因。以下の方法を試すと改善する。
・ほかの不要なアプリを終了する。
・生成画像の解像度を下げる。
・Windowsの設定→システム→グラフィック→既定のグラフィック設定→「ハードウェア アクセラレータによる GPU スケジューリング」をオフにする。これでVRAM消費が400MBほど減る。※DLSS3 FGが使えなくなる
・CPU内蔵グラフィックがあるなら、マザーボードの映像出力端子にケーブルをつないで再起動。これでアイドル時のVRAM使用量が10MB未満になる。
・ブラウザのタブを大量に開くな!!WebUIに関係ないサイトは全部閉じろ!!
・VRAMの多いGPUに買い替える。

このページへのコメント

高解像度だと破綻しやすいのなんで?

0
Posted by 名無し(ID:/fzvD9TCMQ) 2023年09月06日(水) 02:43:05 返信

なんか↙ボタンで、プロンプトが復帰出来なくなったんですけど対処方法誰か分かりますか?
アプデして最新にしたらなりました

0
Posted by 名無し(ID:K1M3kzCcwg) 2023年06月19日(月) 02:35:15 返信数(1) 返信

左斜め下に向いてる矢印のボタン

0
Posted by 名無し(ID:K1M3kzCcwg) 2023年06月19日(月) 02:35:39

修正していただいた方ありがとうございます。

0
Posted by 名無し(ID:3gXnWcmBbg) 2022年12月29日(木) 14:32:52 返信

「プロンプトを真似る」の項でのnsfwについての補足ですが、
Web版でnsfwをつけてない状態だとネガティブにnsfwが入ります
ローカル版でlowresの前にnsfw,をつければWeb版とほぼ同等になります

一方で、Web版でnsfwをつけるとネガティブからnsfwがなくなり、ローカル版では記載通りの指定でほぼ同等になります

あともう一点、ネガティブの最後の「, artist name」はアスカテストには書かれていますが、PNG Infoで見る限りWeb版のネガティブには記述がないようですので除外した方が近いと思います

これらは、Web版の出力画像をローカルのPNG Infoに読ませるとわかります

1
Posted by 名無し(ID:3gXnWcmBbg) 2022年12月28日(水) 03:04:52 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

Prompts

  1. 非R18詠唱全文
  1. 顔(目・口・表情)
  2. 構図
  3. 場所・背景
  4. 環境表現
  5. 特徴・年齢・体型・髪型
  6. ポーズ集
  7. 服飾
  8. 亜人・モンスター娘・人外
  9. 食品
  10. その他
  11. 画風
  12. 絵文字
  13. 色一覧
  14. 頻用ネガティブプロンプト
  15. 大量検証結果
  16. 整理用倉庫

編集中メニュー

  1. 未発見のプロンプト
  2. 旧ページ

table拡張js

どなたでも編集できます

メンバー募集!