普段、記事を書くときに画像が必要なので、Stable Diffusion というオープンソースの AI 絵画ツールを学んで記録することにしました。
Stable Diffusion とは#
Prompts(プロンプト / 説明)を通じて、テキスト情報を画像情報に変換します。
Stable Diffusion(SD)は、オープンソースの AIGC 絵画大モデルで、オープンソースであり、速度が速く、更新が迅速です。
使い方#
GUI のインストール#
使いやすくするために、まず SD の WebGUI をインストールする必要があります。
インストールリンク:https://github.com/AUTOMATIC1111/stable-diffusion-webui
インストールは 2 種類あり、1 つは Google の google.colab にデプロイする方法(オンライン実行環境)、もう 1 つは自分のローカルにデプロイして実行する方法です。
ローカルインストール手順#
私のコンピュータは 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 以上では飽和度が高くなります。
画像から画像を生成#
プロンプト + 画像から画像を生成します。
同様に、このインターフェースのいくつかの設定を見てみましょう。ページの下にスクロールすると設定エリアがあります。
画像生成の最も一般的な用途は:画像のスタイルを変換することです。
画像拡張#
プロンプト + MASK(マスク) + 画像から画像を生成します。
一般的なシーン:ウォーターマークの除去、衣装の変更、絵の境界の拡張。
プロンプトの書き方#
キーワード#
異なる特性はカンマで区切ります#
類似の特性は | で区切ります#
重みの調整#
特定の特性が画像内で占める割合や重みを調整したい場合は、次のように調整します。
(プロンプト:重みの数値)
- 数値 < 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
ディレクトリに置き、ページのモデル選択の隣にある更新ボタンをクリックすれば、これらのモデルを使用できます。