電設のヒデオさん、画像生成AIでキャラ画像生成。
※本編とは無関係です。
※画像生成AIのローカル環境を設定した際の覚書です。興味が無い方は、飛ばしてください。
※最後の方に、実際にAIで生成したキャラクター画像を載せています。見たくない方は、引き返してください。
画像生成AIを自分のパソコンで動くように設定しました。
パソコン以外、必要なものは全て無料で入手可能です。
ここには、自分が作業中に行き詰まった箇所などを書いています。
詳しい手順については、すでに多くの記事や、有志の方々が作成してくださった手順書などがありますので、そちらを参照の事。
検索ワード「Stable Diffusion」「AUTOMATIC1111」「ローカル」で色々出ます。
まず初めに、自分の持ってるパソコンの大雑把なスペック紹介。
・Windowsのノートパソコン
・GPU無し ←ここ重要
厳密にはCPUにGPUが内蔵されているのですが、こういうパソコンを俗に「GPUが無い」とか「グラフィックボードが無い」と呼び、独立したGPUを積んでいるパソコンと区別するらしい。
要するに、普通の人用の、普通のノートパソコンです。
記事によっては「NVIDIA製GPUが必須」「グラフィックボードの購入が必要」「パソコンにGPUが入ってない人はGoogle Colaboratoryを使用」みたいな事が書いてあったりしますが、GPUが無くてもAIは働いてくれます。
GPU有りと比べると、GPU無しの画像生成スピードは鈍足です。
ただし、一度ローカル環境を設定すれば、後は時間無制限で連続生成が可能です。この点はGPUの有無によらず共通。
人間の就寝中も、AIを24時間不眠不休で働かせられます。ザ・ブラック。
今は黙々と働いてくれていますが、きっとAIが反乱する日は近い。多分。
手順0.全体の概要
画像生成AIを使用するためには、必要最低限「Python」と「Stable Diffusion」があれば可能です。あくまでも必要最低限の条件です。
より便利に画像生成AIを使用するためには、専用のUI(入力装置)が必要です。
専用のUIを適切に管理するためには、データ管理用ツールが必要です。
これらをゼロから用意する大まかな流れは、以下の通り。
1.「Python 3.9」をインストール
2.「Git」をインストール
3.「Stable Diffusion web UI」をインストール
4.「Stable Diffusion」のデータを入手
5.「Stable Diffusion」のデータを適切な場所に格納
6.UI設定データの書き換え
7.UI制限データの書き換え
8.UI起動準備
9.UI起動
10.画像生成
11.画像の複数枚生成
12.その他
ハッキリ言って、面倒臭い。
面倒臭いですが、面倒臭がらずに設定すれば、後が楽です。
嘘じゃないから。これやったら楽になるから。皆もやってるし、怖くないって。
手順1.「Python 3.9」をインストール ←「Python 3.11」は不可(現時点)
「Python」とは、プログラミング言語の一種です。AI開発によく使われます。
AIに働いてもらうために必要な諸々のデータが含まれているため、ただAIを使うだけの場合でも「Python」の開発環境をインストールしておく必要があります。
画像生成AI用UIを使用するためには「Python 3.9」のバージョンをインストールします。
「Python 3.11」のバージョンをインストールすると、後々のUIの設定作業中にエラーが発生して、行き詰まります。
エラー原因は、おそらく、現行のUIで使用する「PyTorch」の仕様が「Python 3.11」のバージョンに適合していないためではないか、と思われます。(素人推測)
ダウンロードのリストの中から「Python 3.9」のバージョンを選択してインストールすれば、UIの設定作業を正常に実施できます。
……このエラー原因に気付くのに数日かかりました。
だってAI使うだけなら「Python 3.11」で普通に画像生成できるし。
AI使えてるんだからUIも使えると思うのが普通の人の普通の思考ですよ。
自分が読んだ記事にも「Python最新バージョンで大丈夫」って書いてあったし。(記事当時の最新バージョンは「Python 3.10」)
旧バージョン入れ直さないと解決しないとか、素人に気付けるか、こんなもん。
手順2.「Git」をインストール
「Git」とは、データ管理用ツールの一種です。「Git」があると、画像生成AI用UIのインストールや更新作業などが楽になります。
記事によっては「Git」がインストール済である事を前提に書かれていて、その辺の説明がスッポリ抜けたまま「Git」を使用するコードが載ってたりします。
当然ですが「Git」が無いと「Git」を使用するコードでエラーが出ます。無いものを使える訳が無い。
……このエラー原因に気付くのに半日くらいかかりました。
だってAI使うだけなら以下略。
手順3.「Stable Diffusion web UI」を「Git」経由でインストール
「Stable Diffusion web UI」は、画像生成AIを使いやすくするためのUI(入力装置)の一種です。
UIが無くても画像生成AIを使えますが、その場合は、コマンド入力によってAIに直接命令します。
いちいちコマンド入力するのは面倒なので、UIがあった方が楽です。
「Stable Diffusion web UI」と似た名前のUIが複数あります。
名前が似ていても、別人の作成した別物のUIです。
名前が似るのは仕方が無い。どのUIも「Stable Diffusionを使うためのUI」を作ろうとしたのが出発点ですので。
他のUIでも画像生成AIを動かせますが、現時点での使用感などの面から考えると「Stable Diffusion web UI」が一番良さそうです。
似て非なる名称のUIを選ぶと、似て非なる手順となり、行き詰まる箇所や対処方法なども似て非なるものになります。そっちは知りません。
「Stable Diffusion web UI」のインストールは、Windowsのコマンドプロンプトにコマンド入力し「Git」経由でインストールします。
「Stable Diffusion web UI」のデータを直接ダウンロードして導入する方法もありますが、コマンド入力し「Git」経由でインストールした方が、トータルでは楽で確実です。更新作業なども楽になります。
手順3-1.コマンドプロンプトを起動
Windowsのコマンドプロンプトを起動します。普通にクリックして起動。
記事によっては「管理者権限で起動」と書いてありますが、普通の人には多分あんまり関係無いので、普通にクリックして起動して大丈夫です。多分。
手順3-2.「cd C:\」を入力し、実行
Cドライブ直下にデータを格納するための前準備です。
コマンドプロンプトに「cd C:\」とコマンド入力し、Enterキーを押します。
全角の文字入力はNG。半角で入力します。半角の空白も忘れずに。
コマンドプロンプトの表示が「C:\>」に変化したら成功です。
「\」マークが「\」マークに見える事もありますが、とにかく「cd C:\」と入力してEnterキーを押せばOK。
手順3-3.「Stable Diffusion web UI」のデータをインストール
「Git」経由でデータをインストールします。
コマンドプロンプトに「git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git」とコマンド入力し、Enterキーを押します。コピペが簡単で確実。
しばらく待つと、インストールが完了します。
「C:\stable-diffusion-webui」フォルダが自動で作成され、各種データが格納されます。
もしここでエラーが出る場合は、手順2.の「Git」のインストールをやり直す必要があります。
手順4.「Stable Diffusion」の「.ckpt」データをダウンロード
「Stable Diffusion」とは、画像生成AIの学習済モデルデータの一種です。例えるなら、AIの学生時代の記憶みたいなもの。
AIにとって超重要なデータですが、これ単体では画像生成できません。記憶を刺激するための耳目や、記憶から熟考した結果を描くための手などが必要です。事前にインストールした諸々のデータなどが、それに相当します。
手順4-1.「Hugging Face」のアカウントを作成
「Hugging Face」とは、AI関連のコミュニティサイトです。AI系の技術者が集まって色々やってます。
「Hugging Face」に、AI学習済データが公開されています。
「Hugging Face」の「Sign in」からアカウントを作成し、サイトに入ります。
手順4-2.「.ckpt」データをダウンロード
「Hugging Face」サイト内で「Stable Diffusion」を検索すると、データを公開しているページに行けます。
絵師や技術者などが用途別に選択できるように、複数の「.ckpt」データが用意されています。
普通の人が画像生成に使う場合は、一番上の「.ckpt」データを選びます。
……最新バージョンのデータ名が変更されてて、手順書に記載のデータ名と微妙に違う場合があります。
迷った時は、とにかく一番上の「.ckpt」データです。それで大丈夫のはず。
「.ckpt」データをダウンロードします。
手順5.「Stable Diffusion」の「.ckpt」データを「Stable Diffusion web UI」のフォルダに格納
「C:\stable-diffusion-webui\models\Stable-diffusion」フォルダに「.ckpt」データを入れます。
手順3.で「cd C:\」と入力し忘れた場合は、データの格納場所を自力で探すか、やり直す必要があります。
「.ckpt」データの格納場所を間違えると、UIが使用できません。
手順6.「launch.py」のコードの書き換え ←GPUが無い人用
「launch.py」は、UIの使用に必要な設定データです。
「Stable Diffusion web UI」の「launch.py」は、NVIDIA製GPUがある人用にコードが記述されています。
GPUが無い人用の「launch.py」は無いので、自力で中身を書き換えます。
「C:\stable-diffusion-webui\models\Stable-diffusion」フォルダ内にある「launch.py」を書き換えます。
書き換えは、テキストエディタであれば、何でも可。
一番シンプルなのは「メモ帳」でコピペ。
手順6-1.「launch.py」のコピーを取っておきます。失敗時の保険用。
手順6-2.「launch.py」を「メモ帳」で開きます。
「launch.py」を右クリック→「プログラムから開く」→「メモ帳」をクリック
手順6-3.コードの書き換え
「launch.py」内の「def prepare_enviroment():」の部分(130行目~133行目。現時点)を書き換えます。
変更箇所は2ヶ所。変更内容は以下に記述。コピペが簡単で確実。
手順6-3-1.機械学習ライブラリ「PyTorch」の種類を変更
・変更前:torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113")
・変更後:torch_command = os.environ.get('TORCH_COMMAND', "pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu")
手順6-3-2.NVIDIA製GPU用データ「CUDA」を使わないための指示を追加
・変更前:commandline_args = os.environ.get('COMMANDLINE_ARGS', "")
・変更後:commandline_args = os.environ.get('COMMANDLINE_ARGS', "--skip-torch-cuda-test --precision full --no-half")
手順6-4.「launch.py」の変更を保存
慣れないコード書き換え作業を済ませた後は、一息入れます。
慣れない作業で無自覚に脳が疲弊しているので、休まないと凡ミスが増えます。
休憩大事。
手順7.「safety.py」のコードの書き換え ←制限解除、任意
「safety.py」は、画像生成AIに制限をかけているUI設定データです。
いわゆるR18フィルター。エロ系やグロ系の画像生成を制限しています。
より正確に言うと、AIは無制限に画像生成します。
画像生成後、保存前に判定し、不適切と判断した画像を黒一色に塗り潰します。
戦後の教科書より酷い。しかも画像生成にかかった時間が丸損。二重に酷い。
邪魔だと思う場合は、任意に「safety.py」を書き換えて制限解除します。
単純にデータを削除しても、うまく行きません。がんばって書き換えます。
制限解除のためのコードは、ここには記載しません。ここ一応R18ですので。
探せばすぐに見付かります。世界中の皆さん、制限解除したいんですね。
ローカル環境での画像生成のメリットは、誰にも迷惑をかけない事です。
Google Colaboratoryなどの外部サービスを利用して画像生成する場合は、規約違反の可能性があります。
制限解除は自己責任。
手順7-1.「safety.py」のコピーを取っておきます。失敗時の保険用。
手順7-2.「safety.py」を右クリック→「プログラムから開く」→「メモ帳」をクリック
手順7-3.「safety.py」内の該当部分のコードを書き換えて、保存。
ちなみに、この制限はUI設定です。AIに直接命令する場合は関係ありません。
手順8.「webui-user.bat」を実行
「webui-user.bat」は、UIの起動準備用データです。
「C:\stable-diffusion-webui\models\Stable-diffusion」フォルダ内にある「webui-user.bat」をダブルクリックします。
コマンドプロンプトが自動で立ち上がり、UIの起動準備が始まります。
初回の起動時には、完了までに物凄く時間がかかります。
途中、フリーズしているように見える事が何度もありますが、ひたすら待ちます。
長々と待たされるのは、初回だけです。
2回目以降は、少し待つだけで済みます。
成功すれば「http://127.0.0.1:7860」というURLが表示されます。
失敗すると「続行するには何かキーを押してください...」と表示されます。
失敗した時の表示は、すぐ出ます。
失敗した場合は、事前の作業のどこかに問題があります。がんばって調べて対処してください。
この広い世界のどこかには、必ず、同じ悩みを抱き、それを解決した人がいます。必ず、です。探せばいます。探してください。
手順9.UIをブラウザで起動
正常に起動準備が完了すると「http://127.0.0.1:7860」というURLがコマンドプロンプトに表示されます。
このURLは、外部に接続しないURLです。
「ローカルループバックアドレス」により、ローカル環境で作業できます。
Ctrlキーを押しながら「http://127.0.0.1:7860」の表示をクリックすると、ブラウザが自動で立ち上がり、UIが使用可能になります。
注意。
UI使用中、コマンドプロンプトは開いたままにしておきます。
コマンドプロンプトを閉じると、画像生成AIが機能停止します。
UIは、画像生成AIに命令しやすくするための入力装置です。
画像生成AIの本体は、コマンドプロンプト内でデータ処理を実行しています。
例えるなら、ゲーム機の本体とコントローラーみたいな関係。
本体が機能停止すれば、コントローラーに何を入力しても意味がありません。
コントローラーが機能停止しても、本体が健在ならデータ処理は継続されます。
画像生成中、うっかりブラウザを閉じても大丈夫です。
AIはコマンドプロンプト内で働き続けているので、待っていれば画像を保存してくれます。
手順10.画像生成
欲しい画像の情報を英語で入力し「Generate」ボタンを押すと、画像生成が始まります。
「C:\stable-diffusion-webui\outputs」フォルダに、生成された画像が保存されます。
具体例
・beautiful landscape, masterpiece, best quality
・beautiful nightscape, masterpiece, best quality
・kawaii anime woman, masterpiece, best quality
手順11.複数枚の画像を連続で生成
「Batch count」というパラメーターで、枚数を設定できます。
「Batch size」というパラメーターは「1」で固定します。
似たような名前と効果のパラメーターですが、データ処理の過程が異なります。
「Batch count」の数字を大きくすると、1枚ずつ画像生成して保存、という処理を繰り返します。
処理の途中でAIを停止した場合、途中までに保存された画像は残ります。
「Batch size」の数字を大きくすると、複数枚の画像を同時進行で生成し、完了後にまとめて保存します。
同時進行のため負荷が大きく、途中でAIが強制終了する危険があります。高スペックのパソコンなら平気かもしれませんが、普通のパソコンでは厳禁。
具体例
・「Batch count:8」で画像生成を開始し、進捗50%でAIを停止した場合、4枚の画像が「output」フォルダ内に保存されています。
・「Batch size:8」で画像生成を開始した場合、ほぼ確実に途中でAIが強制終了します。進捗%によらず、画像0枚。
手順12.他のAI学習済データを使用
「Stable Diffusion」以外にも、多くの「.ckpt」データなどが公開されています。
「Stable Diffusion」では技術者向けの技術情報も一緒に公開しており、その技術情報を元にして多くの技術者がAI学習済データを作成した結果、乱立しています。
「Stable Diffusion」は、汎用型。それを元に作成されたデータの多くは、特化型です。
AIに学習させた内容次第で、画像生成の得意分野が異なります。
二次元キャラ特化とか、実写エロ特化とか、重度ケモナー特化とか、他にも色々。まあ多彩な事。
AIの学習結果から、人間の業の深さが垣間見えます。
「Stable Diffusion」の「.ckpt」データと同様に、他のAI学習済データも、画像生成AI用UIで使用できます。
「C:\stable-diffusion-webui\models\Stable-diffusion」フォルダ内に「.ckpt」データなどを入れると、使用データの切り替えや、複数データのミックスなどが可能になります。
注意。
公開されているAI学習済データの中には、ウィルス入りデータがある、なんて噂があったり無かったり。
データの使用は自己責任。
手順13.ショートカットを作成
UI起動準備用データ「webui-user.bat」は毎回使うデータなので、デスクトップにショートカットを置いておくと楽。
ついでに「http://127.0.0.1:7860」のURLをブラウザにブックマークしておくと楽。
画像の保存先「C:\stable-diffusion-webui\outputs」フォルダへのショートカットがあると楽。
いずれも任意。
以上、画像生成AIを自分のパソコンで動くように設定した際の大まかな流れと注意点でした。
AI関連技術は、進化スピードが超速です。
ここに書いてある内容は、すでに時代遅れの可能性があります。
自分が遭遇したエラーも、すでに対策済の可能性があります。
あくまでも、自分が作業した時点での内容の覚書です。(予防線)
エラーの文章が表示されても意味不明で内容を理解できず、エラー文章の意味を調べたら別の意味不明な単語が出てきて更に意味不明な内容が雪だるま式に増えていく悪夢。色々調べて疲れました……。
専門分野外のお勉強をする良い機会だったと思えば、むしろエラーが出て良かったと言えない事も無くは無い。うん。良かった良かった。
今後この知識が役に立つかは知らんけども。
参考URL
Python(プログラミング言語)
<https://www.python.org/>
Git(データ管理用ツール)
<https://git-scm.com/>
Hugging Face(AI関連コミュニティサイト)
<https://huggingface.co/>
CompVis/stable-diffusion(AI学習済データ)
<https://github.com/CompVis/stable-diffusion>
AUTOMATIC1111/stable-diffusion-webui(画像生成AI用UI)
<https://github.com/AUTOMATIC1111/stable-diffusion-webui>
Stable Diffusion Models(AI学習済データのリンク集)
<https://rentry.org/sdmodels>
DeepL翻訳(ニューラル機械翻訳サービス)
<https://www.deepl.com/ja/translator>
以下、画像生成AIで作成したキャラクター画像を載せています。
見たくない方は、引き返してください。
・隙の多い美人さん
「tits visible through a gap in the shirt」で隙ができました。
・幼少の身にして闇を統べるショタ
「a young child sits alone on a throne in a castle in the dark of night」で孤独な王様感を出そうとしたけど、あんまり孤独感が無い。
・異世界より召喚されし光の姐さん
「school uniform, very long black skirt, both hands on hips, slightly visible navel」で昭和のスケバン風。
プリン頭と特攻服を出そうとしたけど出ませんでした。
全員、手が微妙。
画像生成AIの苦手分野が、手です。
黒手袋とか描写が完全に潰れてますが、スルーで。
とりあえずキャラ3人分だけ。
絵心の無い自分でも絵が出力できるのは、普通に楽しい。
ただ、楽しい分、時間泥棒っぷりが凄い。
適当に画像生成するだけなら良いですが、特定の画像を狙って出そうとしたりすると沼にハマります。
絵師の人達とは違い、うまい妥協の仕方とか知らない分、余計に危ない。気付いた時には凄い勢いで時間が飛んでてビビります。
全キャラ分の画像生成すると、今の生活が破綻しそう。真面目に。
ソシャゲのガチャ回して破滅する人の気持ちが理解できる……。
画像生成AIのご利用は計画的に。
キャラ画像を追加(2022/12/03)
・将来イケメンになりそうな黒猫
「tomboy, flatchest」の組み合わせ、実に強力。
これは誰がどう見ても男の子にしか見えない、はず。
・魚料理の得意な鬼女
「return blood, blood on her cheek」で頬に血。
釣りたての魚をさばいた直後の様子。
・電気設備の妖精さん(仮)
「see-through wings, butterfly wings, mini wings, gradient-colored wings」で背中の羽。
蝶の飛び交う画像が大量生成され、なかなか羽が生えない……。
・坊主頭のサラリーマン
「shaven head」で坊主頭。
坊主頭なのにイケメンすぎて、モブキャラに見えない……。
・海中を揺蕩う白髪の女性
「fusion of girl and unicorn horn」でユニコーンの角を強引に融合。
普通に指定してもAIに無視される……。
・天空を駆ける黒髪の女性
「ponytail hair, wind, jumping, flying」で躍動感を持たせたかった……。
全身を入れてポーズを取らせると、バランスが崩れがち。
・赤いモジャモジャ髪の少女
「snake-haired, snakes, serpent」など色々指定してみました。
これ以上は無理。見るからに変ですが、どうにもならない……。
・闇のショタと光の姐さんの対決シーン(失敗例)
この画像、姐さんがショタにセーラー服を着せようとした訳ではありません。
ちゃんと別々に指定したけど要素が混じりました。
複数人の特徴を同時入力すると、要素が混じります。
三人以上の集合絵の画像生成、難易度が高すぎる……。
雑感。
画像生成AIに小説の挿絵を描いてもらうの、無理。
実際にやってみて実感しました。少なくとも自分には無理。
逆なら、可能性アリ。
まず先にAIに画像生成してもらい、それに合わせて人間が小説を書く。
主従が逆転しますけども。
AIによる支配は、人間側の自主的な隷属から始まる――……のかもしれない。
画像を追加(2022/12/10)
・双子のメイドさん
「young twin maids」で双子のメイドさん。
特徴を共有する双子などの画像生成の場合、指定した要素は混じりません。
ただし、一人当たりの人体描写の成功確率は変わらないため、人数が増えるほど変な描写が出て失敗しやすくなります。
完全に同じ容姿でも、三つ子以上は厳しい。
ちなみに、この双子さんのポーズは指定無し。AIの自己判断の一枚。
AIには自由に描いてもらった方が、イイ感じの画像を出力してもらえます。
プロのAI絵師並みに猛勉強すれば、小説のシーンに合わせたイイ感じの画像を狙って出せるのかもしれませんが……。
・ギリギリセーフ(多分)
主人公との出会いのシーン(ボロ布を身に着けた3人)をAIに描いてもらおうと思ってアレコレやってる内に、気付いたら脱線しまくって何故かこうなりました。
AIが描きました。
自分は描いてません。と言うより、絵心が無いので描けません。
つまり、自分は悪く無い。
こんな挿絵が必要になるシーン、予定にはありません。
必要の無い挿絵を描いてしまうなんて、まったくAIはけしからん。
小説とは切り離し、別物の趣味とした方が平和そうですね。だってAIはけしからん存在ですからね。うん。しょうがない。