普段、記事を書く際に画像が必要なので、Stable Diffusion というオープンソースの AI 絵画ツールを学んで記録することにしました。
Stable Diffusion とは#
Prompts(プロンプト / 説明)を通じて、テキスト情報を画像情報に変換します。
Stable Diffusion(SD)は、オープンソースの AIGC 絵画大モデルで、オープンソースであり、速度が速く、更新が迅速です。
使い方#
GUI のインストール#
使いやすくするために、まず SD の WebGUI をインストールする必要があります。
インストールリンク:https://github.com/AUTOMATIC1111/stable-diffusion-webui
インストールは 2 種類あり、一つは Google の google.colab にデプロイする方法(オンライン実行環境)、もう一つは自分のローカルにデプロイして実行する方法です。
ローカルインストール手順#
私のコンピュータは Mac で、Apple Silicon チップを使用しているため、以下の手順はこのタイプの機械の参考用です。
新規インストール
以前にインストールしたことがない場合は、Homebrewを使用してインストールできます。
Homebrew がない場合は、ターミナルにこのコマンドを入力してインストールできます。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
WebUI をインストールする前に、まず実行環境を準備するためにターミナルを開きます。
1. Python 3.10 以上のバージョンをインストール
2. GitHub リポジトリから WebUI のコードを取得
コードを取得することで、SD をより便利にリアルタイムで更新し、最新の機能を使用できます。
任意のディレクトリで、以下のコマンドを実行します。
取得後のディレクトリはこのようになります。
3. Stable Diffusion モデルをダウンロード
私がダウンロードしたのは、現在比較的新しいモデルである 2.1 バージョンです。モデルの一般的な形式はckpt
、safetensors
形式で、ダウンロード先は:https://huggingface.co/stabilityai/stable-diffusion-2-1
ダウンロードしたモデルを、先ほど取得した WebUI のstable-diffusion-webui/models/Stable-diffusion
ディレクトリに置きます。
v2.1 バージョンには設定ファイルも必要なので、設定ファイルのダウンロード方法は以下の通りです:
ダウンロード先:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon#downloading-stable-diffusion-models
キーボードの option キーを押しながら、マウスでhere
をクリックしてダウンロードします。
ダウンロードしたファイル名はv2-inference-v.yaml
です。
次に、このファイルの名前を変更し、ダウンロードしたモデルの名前と一致させる必要があります。私がダウンロードしたモデル名はv2-1_768-ema-pruned.ckpt
なので、設定ファイル名はv2-1_768-ema-pruned.yaml
に変更する必要があります。
4. スクリプトを実行して Web UI を起動
スクリプトの実行中に、必要な依存ファイルが自動的にダウンロードされます。時間がかかるので、辛抱強く待ってください。おおよそ 30 分から 2 時間かかります。
アクセスアドレスが表示されるまで成功です:http://127.0.0.1:7860/
成功した後は、ターミナルを閉じたり停止したりせずに、そのままブラウザでこのアドレスにアクセスしてください:http://127.0.0.1:7860/
今後は毎回webui.sh
スクリプトを実行するだけです。更新したい場合は、ルートディレクトリでgit pull
を実行すれば大丈夫です。
特殊な状況の処理#
画像生成を実行する際に、以下のエラーが発生することがあります:
もし同じエラーが発生した場合は、次のように解決できます:
ルートディレクトリにあるwebui-user.sh
ファイルを開き、COMMANDLINE_ARGS
パラメータを次のように変更します:
- 再度
./webui.sh
を実行します。 - 最後に、設定の中の Stable Deffusion -> Upcast cross attention layer to float32 にチェックを入れれば正常に動作します。
最初の絵を描く#
テキストから画像を生成#
絵を描く前に、まずこのインターフェースの各部分が何であるかを理解します。
インターフェースで比較的重要なパラメータ
- ステップ数(Sampling steps): このパラメータは時間と効果に影響し、通常は 30 程度に設定します。主にノイズ除去の程度を制御します。
- シード(Seed):画像の内容を決定し、主に画像の反復時のランダムノイズに影響します。
- CFG スケール:画家の自由度を決定します。
- 2〜6:ランダム生成で、基本的にプロンプトに従わない。
- 7〜10:最も一般的な設定で、良いバランスがあります。
- 10〜15:プロンプトが非常に良く、具体的である必要があり、10 以上では飽和度が高くなります。
画像から画像を生成#
プロンプト + 画像に基づいて画像を生成します。
同様に、このインターフェースのいくつかの設定を見てみましょう。ページの下にスクロールすると設定エリアがあります。
画像生成の最も一般的な用途は:画像のスタイルを変換することです。
画像拡張#
プロンプト + マスク + 画像に基づいて画像を生成します。
一般的なシーン:ウォーターマークの除去、衣装の変更、画像の境界の拡張。
プロンプトの書き方#
キーワード#
異なる特性はカンマで区切る#
類似の特性は | で区切る#
重みの調整#
特定の特性の画面内での比率や重みを調整したい場合は、次のように調整します。
(プロンプト:重み数値)
- 数値 < 1 :重みを減少させる
- 数値 > 1 :重みを増加させる
グラデーション効果#
画面にグラデーションを持たせたい場合は、次のようにします:
[キーワード 1: キーワード 2: パーセンテージ]
交互融合#
画面の半分にこのスタイル、もう半分に別のスタイルを持たせたい場合は、次のようにします。
[キーワード | キーワード]
効果の強化#
高品質のキーワードを追加します。例:best quality、masterpiece
逆の言葉を追加#
一般的に使用される逆の言葉:
nsfw
: 性的暴力的なbad face
: 悪い顔
形態の強化#
画面全体の形態を強調することを制御します。例:**full body shot(全身ショット)** など。
- 光
- cinematic lighting(映画の光)
- dynamic lighting(動的光)
- 視線
- looking at viewer
- looking at another
- looking away
- looking back
- looking up
- 画風
- skatch
- 視点
- dynamic angle
- from above
- from below
- wide shot
ChatGPT との組み合わせ#
上級プレイ#
異なるモデル#
- よく使われるモデルの検索ダウンロードサイト:
市販されている人々がよく使用するモデル:
- 二次元スタイルモデル
- 国風スタイルモデル
- 国風 3 GuoFeng3 : 中国の華麗な古風スタイルモデルで、2.5D の質感があります。
- Midjourney スタイル
- Dreamlike Diffusion 1.0 : 色が特に鮮やかで、画風が特に派手です。
- 実写スタイル
これらのモデルをダウンロードして、stable-diffusion-webui/models/Stable-diffusion
ディレクトリに置き、ページのモデル選択の隣にあるリフレッシュボタンをクリックすれば、これらのモデルを使用できます。