Stable Diffusionで生成した画像へのリンクをまとめています(GoogleColaboratoryで生成)
SDキャラクター・ちびキャラ(SD Character/chibi style)1
Stable Diffusionの概要
Stable Diffusionはテキストから画像を生成するためのオープンソースAIモデル。
主にテキストの説明(プロンプト)に基づいて詳細な画像が自動生成される。
midjourneyやDALLE-2などのツールもあるが、Stable Diffusionはオープンソース。
誰でも無料で使うことが出来る、プログラミングに詳しい人ならフォークしてオリジナル機能をプラスすることも可能。
Stable Diffusionの優れた点はコンピュータ上でローカルに実行したり、Web上で環境を構築すれば無料で使えるサービスがあること(GoogleColaboratory/Paperspace)。
GoogleColaboratoryではStableDiffusion Web UIというGUI(視覚的に操作出来る)プログラムが使えなくなった。(そのため、GoogleColaboratoryで使うには簡単なPythonのコードで記述する必要がある。)
オープンソースゆえに個人の参加も活発。
画像を生成するために必要なモデルもさまざまなものが作られている。
- Stable Diffusion
- anything
- Counterfeit
- OrangeMixs
- 7th_Layer
などはよく見かける。
openjourneyもオープンソースで精力的に開発が進められている、期待の高いツールの一つ。
リアルな人間の画像生成に必要なモデルも
- BRAV5
- chilled_remix
などはよく見かける。SNSでも凄い数の美女画像がすぐ見つかる。
モデルの共有とダウンロード・画像生成AIの補助ツール・生成の際に使うプロンプト(キーワード)の参考サイトなど
ChatGPT・Stable DiffusionなどAIで文章生成・画像生成ができるおすすめツール
をリンクまとめサイトにまとめてある。
Stable Diffusionで使われる基本的な単語
プロンプト(Prompt)
システムが画像を作成できるように書くテキスト文字列。
ここに書いたプロンプト(文字列)を元にして画像を生成。これが基本で最も重要なところ。
ネガティブプロンプト(Negative Prompt)
生成する画像に描きたくないものを書く。
- 風景だけを生成したい場合 — 人間に関する単語「human/ woman/ man/ girl/ boy」などを書き込む。
- 低品質な画像を避けたい場合 — 「worst quality/low quality/ lowres」などを書き込む。高品質な画像が生成される可能性が高くなる。
ガイダンススケール(Guidance Scale)
入力されたプロンプトをどの位反映し、忠実に描画するかを決める。
デフォルト値は7.5。個人的には設定したプロンプトを強めに反映して欲しいので20に設定している。
1にするとプロンプトは完全に無視される。プロンプトを設定する意味がなくなるので、完全にAIの自由に書かせたいときに使う。
幅と高さ
生成される画像のサイズを決める。
デフォルトでは「512/512」ピクセルのサイズの画像を生成。
このサイズを使用することが最も一貫した結果が得られるのだそう。
サイズは変更可能だが、大きくすればより多くの計算能力が必要になる。
- 人間をメインにするなら縦長
- 風景をメインにするなら横長ワイド
にするのも良さそう。
サンプラー(Sampler)
実際に画像を生成するアルゴリズム(ノイズ除去する)。
サンプラーを変更することで雰囲気の異なる画像を生成できるように。
使用できる主なSampler
- Euler a
- Euler
- LMS
- DPM++ 2M
- DMP fast
- LMS Karras
- DPM++ SDE Karras
- DPM++ 2M Karras
- DDIM
- PLMS
と数多くある。
- Euler a — 生成時間の時間も短く、品質とのバランスがいい。
- DPM++ SDE Karras — よく見かけ、推奨するモデルも多い。
- DDIM — 生成時間の時間も短く、step数が低くても高品質に生成できることが多い。
- Karras — その名前のサンプラーの改良版。ノイズが減って綺麗でシャープな絵になるらしい。
- 「+」 — 改良・バージョンアップを示す。
参考程度に、結局は自分の好みに最も近い画像を生成してくれものを見つけるしかない。
また、サンプラーの中には「Ancestral samplers」と呼ばれるものがある。
このタイプを使用するとイラストが収束しなくなる。
- Euler a
- DPM2 a
- DPM++ 2S a
- DPM++ 2S a Karras
名前に「a」がついているものが該当する。
加えて、DDIMやPLMSなども該当するよう。
収束とは何を意味するのか、stepごとにイラストの形が変わることを指す。
- 収束する — 構図が安定する
- 収束しない — 構図が大きく変わる
ランダム性が高まり、画像の再現性が低くなってしまう。
気にいったキャラクターはそのまま変わってほしくない、と思っても再現性が低くなる。
髪型や他の要素も変化しやすく、同じ構図で生成したいときに理想通りにならず、困ってしまうことに。
ステップ(Steps)
画像をどれくらい精細に描画するかを決めるパラメータ。イメージ作成プロセスを繰り返す回数だと考えられる。
Stable Diffusionは始めのノイズだらけの画像から、少しずつノイズを取り除いていく作業を繰り返す。
最初のステップでは画像は個々の要素がぼやけて視覚的なノイズのように見えている。
反復のたびに既存の視覚的な構成に詳細な情報を追加したり、画像自体を変更したりすることで精度を高めていく。
最終的に理想の画像を得るためにノイズ除去をどこまでやるかを設定するのがステップ。
stepの回数だけノイズを引き算して、最終的に残ったものが画像として出力される。
設定値が高いほど高品質な画像になるが、生成時間も比例して長くなる。
最低でも80以上は欲しいところ。これぐらいなら品質も満足出来るものに仕上り、生成時間とのバランスもいいように感じる。
シード(Seed)
Stable Diffusionにおいて最も重要な設定の1つ。
デフォルト設定ではSeed値はランダムなため、同じプロンプトを設定しても毎回違う画像が生成される。
再度実行してもまるで違う画像が生成される。
気に入った画像が生成され
- これを残したい
- これをベースに似た画像を生成したい
- 完璧にするためにもう少し調整したい
場合、Seed値をマニュアルで設定することで生成される画像に一貫性を持たせることができる。
シードを同じ数値に固定。
プロンプト、その他パラメーターを設定すると、気に入った画像をベースに新しい画像が生成される。
キャラクターはそのままに背景、服装、ポーズなどを変えることが出来る。
AIキャラクターの写真集などを作りたいと考えている人にとっては、シードの固定は必須。