話題の画像生成AI実行環境の構築手順をご紹介【初学者向け】
こんにちは。データサイエンス課 ブログ担当です。
2023年6月現在、「画像生成AI」に関するニュースや情報を目にする機会が増えたと感じています。例えば直近では『週刊プレイボーイ』が出版した「AIグラビアアイドル・さつきあい」などが話題になっていたのが記憶に新しい方もいらっしゃるのではないでしょうか。
弊社でも画像生成AI活用に関する話がちらほら聞こえてくる中、社内で話題に上がった「Stable Diffusion(ステーブルディフュージョン)」のモデルを活用して実際にAIで人物を描くまで行いました。そこで画像生成AIの環境構築方法とともに、どのような画像が生成できるのかご紹介させていただきます。
少し技術寄りな内容も含まれますが、この記事を読むことでGoogleColabで画像生成AIの実行環境構築と、人物の画像作成が可能となります。
初学者の方でもわかりやすいよう画面のスクリーンショットなども使って説明しておりますので、画像生成AI活用の足掛かりにご活用ください。
そもそも画像生成AIとは?
人が想像するイメージや特徴をテキストに書き起こすことで、AIがテキストから連想するイメージに近い画像を自動で生成してくれる技術のことです。正確にはテキストではなく “プロンプト(prompt)” と呼ばれるAIへの指示が書かれた内容となっておりますが、詳細については長くなってしまうため割愛させていただきます。
以前公開した記事で画像生成AIと拡散モデルについて紹介している記事もあるため、より深く画像生成AIについて知りたい方はそちらの記事もご参照ください。
【画像生成AIと拡散モデルについて】
https://bloom-t.co.jp/blog/article_7701/
画像生成AI活用の現状と注意点
まず世の中で画像生成AIがどのように使用されているのか、活用事例と注意点についてご紹介します。
活用事例
・SNSなどでプロフィールのアイコン作成
・WEB制作の補助ツールとして活用
・デザインの参考として活用
・個人制作のAI写真集
など
注意点
・生成した画像を商用利用する際は対象モデルの利用規約を確認
・著作権の問題などで今後規制が厳しくなる可能性がある
・GoogleColabなどクラウド環境で実行する際は違法コンテンツが作成されないよう注意
・GoogleColabで実行する際は、起動時間でコストが掛かるため使用後の停止忘れに注意
など
当然ながら上記以外でも活用事例や注意点はありますが、代表的な活用例と注意点を記載しました。
こちらの内容は2023年6月14日時点での情報となります。
画像生成に必要な情報
StableDifussionで画像生成を行うため、以下情報を活用します。
・画像生成AIで何をしたいか
・使用するモデルの選定
・プロンプト
画像生成AIで何をしたいか決めておくことで、実施する内容に適したモデルを選定することが可能となります。モデルに追加学習させることも可能ですが、何をしたいか曖昧な状態では期待した結果にならないことが多いです。(今回は既存モデル活用のためモデルの学習方法については割愛します)
画像生成AIで何をしたいかが決まれば、次は目的に沿ったモデルの選定を実施します。モデルのダウンロードには CIVITAI や Hugging Face というサイトがおすすめです。
最後にプロンプトですが、近年プロンプトエンジニアという職種が出来るほど注目されている領域で、AIに指示する内容が記載された文字列となっており ”呪文” と呼ばれることもあります。後ほどプロンプトのサンプルを記載するためご参考にして頂ければ幸いです。
実際にAIで画像生成を実施
今回はGoogleColabの有償版であるGoogleColabProを用いてStable Diffusionのモデルの一つである ”Brav5” を活用して画像生成を行います。 ”Brav5” はアジア人の画像生成に強いとされているモデルとなります。
今回使用する環境を以下にまとめました。
使用環境
実行環境 :GoogleColabPro+
使用言語 :Python
ライブラリ :Pytorch
画像生成モデル :Stable Diffusion
学習済みモデル :Brav5
GoogleColab にて Brav5 を WebUI で実行
①GoogleColabへログインします。
②ログイン後にColabのメニューから以下を実施してノートブックを新規作成します。
[ファイル] ⇒ [ノートブックを新規作成] をクリック。
③次にColabのランタイム設定を行います。
[ランタイム] ⇒ [ランタイムのタイプを変更] ⇒ [ノートブックの設定]
以下の内容に設定します。
ランタイムのタイプ:Python3
ハードウェア アクセラレータ:GPU
GPUのタイプ:T4
ランタイムの仕様:標準
④以下内容をColabへ入力して画像の赤枠①をクリックし、10分程度放置します。
インストールなど読み込みが完了してweb UIのURLが発行されるため、画像の赤枠②のURL(~.gradio.live)をクリックします。
# PyTorchインストール
%pip install torch torchvision torchtext torchaudio torchdata
# stable-diffusion-webui をクローン(ダウンロードのようなもの)
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
# クローンしたweb UIのフォルダへ移動
%cd /content/stable-diffusion-webui
# このコードは、指定されたURLからStable-diffusionモデル(beautifulRealistic_brav5.safetensors)をダウンロードし、
# 「/content/stable-diffusion-webui/models/Stable-diffusion」に保存します。
# "wget"コマンドは、Webサーバーからファイルをダウンロードするために使用されます。
# "-O"オプションは、ダウンロードしたファイルの保存先と名前を指定するために使用されます。
!wget https://civitai.com/api/download/models/63786 -O /content/stable-diffusion-webui/models/Stable-diffusion/beautifulRealistic_brav5.safetensors
# web UIの起動
# --share: web UIをブラウザから見られるようにする
# --xformers: 画像生成の速度向上, 使用するVRAM量の削減
!python launch.py --share --xformers
⑤リンクをクリックしてStable Diffusion Web UIにアクセス出来たら画像の赤枠へパラメータの設定を行います。
チェックポイント:beautifulRealistic_brav5.safetensors
プロンプト:(Best quality, 8k, 32k, Masterpiece, UHD:1.2),Photo of Pretty Japanese woman, 1girl, (medium-short dark brown hair), double eyelid, cafe, cocoa on table, small mug, (white shirt:1.2), terrace
ネガティブプロンプト:(worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, normal quality, ((monochrome)), ((grayscale)) watermark, bad legs, bad arms
Sampling method:DPM++ SDE Karras
Sampling steps:40
Batch count:3
Seed:-1
⑤パラメータの設定が完了したら “Generate” をクリックして画像生成を行います。
画像生成が終了するまでしばらくお待ちください。
⑥画像生成が完了したら生成された画像が表示されます。
実際に生成した画像は以下となります。
作成した画像の中から出来が良いものについてピックアップしていくつかご紹介しました。
指の表現が難しいことや、黒目が楕円になってしまう件についてはまだまだ課題が残る結果でしたが、それでも中々の出来だと感じています。
プロンプトを指定することで、”立つ/座る”, “性別/特徴/シチュエーションを指定する” など様々なことが可能なので、使い方によっては多くの領域に活用できると可能性を感じています。
まとめ
今回は画像生成AIの可能性が垣間見れる結果だったのではないでしょうか。
またGoogleColabを用いた画像生成AIの環境構築は思ったより簡単なので、是非環境構築に挑戦し画像生成AIを楽しんでみてください。
今回は “Brav5” を活用しましたが、CIVITAIなどで公開されているモデルであれば同じ手順で使用することが可能となります。
今後も新しい技術やモデルが研究されていくと思うと楽しみで仕方ありませんね。
では、よき画像生成ライフを!
(Colabの停止は忘れないようにお気をつけください)