みなさん、こんにちは。
いしかわつかさです。
今回は、今巷で人気のAIコスプレイヤーを簡単に生成することが出来る「ChilloutMix」をやってみたので、ご紹介します。結論から言うとちゃんと仕組みを理解する事は出来ませんでしたが、僕のようにとりあえずやってみたいと思っている方は多いと思います。なので、そんな方用のライトな内容となっています。今回は基本的な設定を中心とした基礎編です。
- パソコンメンテナンス
- PC入力機器
- PC周辺機器
- 外付SSD
- グラフィックボード
AIコスプレイヤーとは
AIコスプレイヤーとは、その名の通り、AIで自動生成されたイラストの事です。先月の2月17日に「AIコスプレイヤー」というワードがTwitterトレンドに入りました。今話題のAIで自動生成されたイラストで実在しないコスプレイヤーをインフルエンサーが発信したことによって、さらに広く知れ渡りました。写実的な画風やセクシーさも相まって「もう人間はいらないのでは」「コスプレと関係ない」などと賛否両論の声が出ています。
AIコスプレイヤーを生成するのに必要な項目を3つ簡単に説明します。
Stable diffusion
まずは、「Stable diffusion」です。これはStability AIが開発したオープンソースの画像生成AIのことです。
Chilloutmix
「Stable diffusion」上で「Chilloutmix」を使用して画像を生成します。「Chilloutmix」は画像を生成する際に使用する学習済みのモデルの事です。この「Chilloutmix」はアジア人っぽい実写風画像を生成するのに向いていると言われています。
おそらくですが、日本人が作成したと思われます。その為、日本人好みの女性が作れるのが魅力で今人気のモデルとなっています。
LoRA
「LoRA」は数枚の被写体画像と対応するテキストを元にファインチューニングを行うことで、Text-to-Imageモデルに新たな被写体を学習させる手法です。「LoRA」は頭文字を取っており意味は「Low-Rank Adaptation of Large Language Models」です。このモデルは、「Civitai」というサービスで配布されています。「Civitai」は学習済みモデルやLoRAを配布・共有するサービスです。
用語を理解しよう!
はじめに前置きしますが、僕は専門家でもとりわけパソコンにめっちゃ詳しいわけでもありません。また、GPUが物凄いハイスペックパソコンを所有しているわけでもありません。ここでは、簡単にできる方法をご紹介しているので、是非チャレンジしてみて下さい。
Stable Diffusionを使用する際に使う用語
プロンプト
ネット上ではしばしば呪文と呼ばれ、どのような画像をAIに作成してもらうか指示する文字列のことです。
AIに指示する場合は、ポジティブプロンプトとネガティブプロンプトの2つがあります。
モデル
画像を生成する際に使用する学習済みのプログラムのこと。今回は、「Chilloutmix」を使用を前提に話を進めています。
LoRA
数枚の被写体画像と対応するテキストを元にファインチューニングを行うことで、Text-to-Imageモデルに新たな被写体を学習させる手法です。今回はLoRAを使用しません。LoRAを使用する方法は、別の記事でまとめたいと思います。
Stable Diffusion WebUI
ローカル環境ではなく、ブラウザ上で「Stable Diffusion」を操作できるインターフェイスの事です。これを使用しない場合、コマンドプロンプトで細かな設定を行う必要があります。
VAE
Variational AutoEncoderの略で、細かい話を省くと、イラスト画像をより洗練するツールと考えて下さい。生成した画像の彩度を調整したり、解像度を上げたりする事が可能です。今回は、もっともシンプルにAIコスプレイヤーを生成する事を目的としている為、使用しません。
VAEの使い方については、「にゃ~の♪/姫神梓」さんが詳しく説明されています。
ChilloutMixの導入
下記GitHubから今回AIコスプレイヤーのイラスト作成に使うモデル「ChilloutMix」をDLします。
緑色のCode → Download ZIPと選択し、PCに保存して下さい。
解答したフォルダの中に「chilloutmix.ipynb」がある事を確認して下さい。
下記URLからGoogle Colaboratoryにアクセスします。これはブラウザ上でPython(Stable Diffusionを実行するのに必要なプログラミング言語)を記述・実行できるサービスです。無料です。
アクセスすると下記のウィンドウがポップアップされます。そこに、先程DLした「chilloutmix.ipynb」をアップロードして下さい。
アップロードが完了すると、下記のウィンドウに切り替わりますので、赤丸の実行ボタンをクリックして下さい。
この処理は数分時間が掛かりますので、お待ち下さい。プログラムが立ち上がると、下記のようなURLが出てきますので、それをクリックして下さい。
下記のような画面が出たら成功です。あとは、呪文を記載すればイラストが生成出来ます。
Stable Diffusion WebUIという性質上、毎回、Web上で起動する必要があります。
2回目以降は、「chilloutmix.ipynb」がGoogle Driveに既にアップロードされているいる為、GoogleDriveから「Colab Notebooks」 – 「chilloutmix.ipynb」と進みダブルクリックして下さい。
あとは、STEP2の再生ボタンで起動して下さい。
Stable Diffusionの画面の説明
Positive/Negative
AIでイラストを描く際に、一番重要な場所となります。プロンプトは2種類存在します。1つがポジティブプロンプト、もう1つがネガティブプロンプトです。ポジティブプロンプトは、AIに描いてほしいイラストを指示する文字列の事です。
逆に、ネガティブプロンプトは、AIに描いてほしくない要素を指示する文字列の事です。
プロンプトルール(呪文の規則)
- 要素の優先順位は、最初に記載した順番。つまり、優先順位は左側が高く、右側が低い。
- ポジティブプロンプトの最初に品質を上げる要素を入れる。
- best quality:最高品質
- masterpiece:傑作
- ultra high res:超高解像度
- highres:高解像度
- 4K、8K
- detailed faceやdetailed clothesなど
- 要素をカッコで囲む事で、対象の要素をより強調する事が可能です。また、重ね掛けすることも可能です。
- (word):wordの重みを1.1倍にする。
- (word:1.5):wordの重みを1.5倍にする。数値分重みを上げる効果。
- [word]:wordの重みを下げる。
プロンプト例
best quality, 1 girl, smile, detailed beautiful skin, face focus, dress shirt, collarbone, dark_hair, long_hair, hair_flower, hair_ornament, windy, soft light
説明
自分が思い描くイラストを単語で指示をします。まず、best qualityで品質を「最高品質」にします。1 girlで女性1人にします。さらに、細かい要素を配置します。smile(笑顔)、detailed beautiful skin(きめ細やかな美肌)、face focus(顔に焦点を当てる)、dress shirt(ドレスシャツ)、collarbone(鎖骨を見せる)、dark_hair(暗めの髪色)、long_hair(長い髪)、hair_flower(髪に花)、hair_ornament(髪飾り)、windy(風)、soft light(柔らかな光)の順で要素を配置しました。
文章にすると、「最高品質の一人の女性を描いて下さい。その女性は笑顔で、きめ細やかな肌をしています。顔に焦点を当てた構図で、服はドレスシャツ、鎖骨が露出しています。髪は、暗めで長く、花の髪飾りをしています。風で髪はなびき、柔らかい光が当たっています。」となります。
painting,sketches,(worst quality:2),(low quality:2),(normal quality:2),((monochrome)),((grayscale)), missing fingers ,skin spots ,acnes,skin blemishes, nsfw
説明
ポジティブプロンプトで指示した内容に対して、より自分の思い描くイラストに近づける為に、描いてほしくない要素を指示します。まず、paintingでより実写の近づける為に、塗り絵のようなイラストを除外します。さらに、sketchesを追加することにより、ラフ画を除外し、よりデッサン(写実)の要素を残します。worst quality/low quality/normal qualityと最低品質/低品質/普通品質を2倍の重みで除外します。要するに、美麗にしてくれと念押しします。monochrome/grayscaleで白黒画像の除外を強めに指定します。AIイラストは、特に指の再現性が不得意です。なので、あまり効果は無いですが、missing fingersで、指の不自然さ無くします。ただ、苦手な項目なので、そもそも何が不自然かというのを理解していないと僕は考えています。そもそもそういう画像が出てきにくいですが、念の為、acnes/skin blemishesでニキビとシミを除外します。最後に、nsfwを追加します。これは、「Not safe for work」(職場で見ないほうがよい)という意味の略語です。
Sampling method/Sampling steps
「Sampling method」は、フィードバック工程においてどのようなアルゴリズムを採用するのかを選べます。サンプリングモデルを変更すると、多少違いは出ますが、大きな違いはありません。その為、どれを選んでもいいです。ただ、色んな方のデータを見ていると「DPM++ SDE Karras」が多いので、僕はこれを選ぶ事が多いです。が、基本的には「Euler a」でOKです。
「Sampling Steps」は、画像生成におけるフィードバック工程を何回行うかを指定します。数を増やせば増やすほど精緻な絵になっていきますが、増やすほど時間がかかるようになります。今回、ご紹介しているやり方は、GoogleのGPU(グラフィックボード)を借りてイラストを生成する方法です。その為、処理が安定しない場合があり、このステップ数を増やすと処理落ちする事が発生します。また、ステップ数を増やしたからと言って良いイラストが生成されるとは限りません。初期設定の20でも十分で、そこそこに仕上がりますが、どうしても増やしたい場合の目安は100ぐらいまでです。僕は、50までに抑えています。Google のGPUを無料で使用している為、無制限に使用できるわけではありません。使い過ぎると、制限を掛けられます。だいたい12時間程で復活(遅くて1日)しますが、重い処理を繰り返すとすぐに容量の限界に達するので注意してくだい。
有料ユニットを購入すると、容量と処理速度がUpするようです。
Option
Restore faces
Generative Facial Prior GAN(GFPGAN)を用いて崩れがちな顔の補正を強力に行い、できるだけ左右対称を維持してくれます。ただ、人工的な顔になりがちな為、使用しない方が良いと思います。処理も重くなります。
Tiling
生成された1枚の画像をタイルのように上下左右に並べる事が可能なモードです。基本的には使用しません。
Highres. fix
512×512以上のサイズにしようとした場合などにきれいに画像がなるように調整してくるモードです。
Stablediffusionは512×512の画像でトレーニングしている為、トレーニング時と違うサイズで画像を生成すると学習した内容に対して想定外の状況になり、太ももから腕が生えたりします。
先に小さいサイズ(512×512)で画像を作成した後に、その画像を元に処理を行っていると思うので、やはり、処理は重くなります。
Image Size
「Height」と「Width」は出力画像のサイズです。モデルは512×512に最適化されているため、最も高品質な画像が生成されるのは512×512です。画像サイズは、そのままVRAMの使用量に反映されるため画像サイズが大きくなるとエラーになりやすくなります。オススメは、もちろん512×512ですが、変更する場合は、8の倍数で数値を上げるとバランスが良くなります。
オススメサイズ
- 512×512(デフォルト)
- 768 x 768
- 640 x 896
- 896 x 640
- 768 x 1024
- 1024 x 768
Batch
Stable Diffusionは画像生成を「バッチ」単位で行います。バッチを何回行うのかが「Batch count」、1回のバッチで何枚の画像を生成するのかが「Batch size」です。これも1回に生成する画像が多いとVRAM使用量が増える為、VRAMが少ない環境だとエラーが出やすくなります。オススメの方法は、「Batch count」で生成したい数を指定し、「Batch size」は1にしておくとエラーなく安定して画像生成ができます。
CFG Scale
「CFG Scale」は、プロンプトの指示にどれぐらい従うかを示す値です。数が大きいと相対的に指示に沿った内容になりますが、絵自体が崩れやすくなります。バランスが良いと言われているのは7~11です。
Seed
「Seed」はシード値です。「-1」だと毎回ランダム生成となります。-1以外で同じ数値にすると同じ画像が生成されます。この数値が1違うだけでも違う画像を出力します。この最大値は4294967295です。
Script
「Script」はスクリプトが使用できます。デフォルトは「None」となっていますが、ここについては、僕もちゃんと理解していない為、割愛します。基本はデフォルトでOKです。
Generate
最後に「Generate」をクリックして、イラストを生成します。
AIコスプレイヤーを生成してみよう!
Sample1
best quality, 1 girl, smile, detailed beautiful skin, face focus, dress shirt, collarbone, dark_hair, long_hair, hair_flower, hair_ornament, windy, soft light
painting,sketches,(worst quality:2),(low quality:2),(normal quality:2),((monochrome)),((grayscale)), missing fingers ,skin spots ,acnes,skin blemishes, nsfw
Sampling method | DPM++ SDE Karras |
Sampling Steps | 35 |
Restore faces/Tiling/Highres. fix | |
Width/Height | 896 / 640 |
Batch count/Batch size | 1 / 1 |
CFG Scale | 10 |
Seed | 100 |
Script | None |
Sample2
best quality, 1girl,city,professional lighting,photo mapping,radiosity,physically-based rendering,smile,mature,head portrait,sunlight,blone,short jacket,hoodie,short hair,floating hair
painting,sketches,(worst quality:2),(low quality:2),(normal quality:2),((monochrome)),((grayscale)), missing fingers ,skin spots ,acnes,skin blemishes, nsfw
Sampling method | Euler a |
Sampling Steps | 40 |
Restore faces/Tiling/Highres. fix | |
Width/Height | 896 / 640 |
Batch count/Batch size | 1 / 1 |
CFG Scale | 10 |
Seed | 581143517 |
Script | None |
まとめ
今流行のAIコスプレイヤーを簡単に生成する方法をご紹介しました。今回は基礎編と言うことで、プログラムの導入からイラスト生成までです。それでも、結構なボリュームになりましたが、みなさんも是非、挑戦してみて下さい。
次回はLoRAについて説明します。また、各パラメータの簡単な比較もまとめようと思います。それではまた!
コメント