見出し画像

初心者でもAIで美女を作れるようになる入門書(Colab+StableDiffusion)

はじめに

はじめまして、こらぼ(Twitter: @colab_ai)です。

最近、AIで生成された綺麗な写真をSNSで見かけることが増えてきました。個人でもAIで画像生成することができますが、思い通りの画像を作るには、PCやプログラムの知識が必要です。

この記事では、PCやプログラムに詳しくなくてもStable Diffusionを使ったAI画像生成を楽しめるよう、環境構築や実際の画像生成の方法をご紹介します。読みながら一緒に進めて頂けるよう、各手順を画像付きで解説しています。

AI画像生成は楽しいですし、個人的には界隈が盛り上がってほしいと思っていますので、この記事をきっかけにAI画像生成を始める人が増えてくれたら嬉しいです!

環境構築

まずは、AI画像生成を行うための環境構築の手順を4ステップに分けてお伝えします。

0. 前提条件

Googleアカウントを作成済みであることを前提条件とします。AIでの画像生成には、AIのプログラムを動かすのによく使われるクラウドサービス「Google Colaboratory」を使用するため、Googleアカウントが必要になります。

***@gmail.comのようなGmailのメールアドレスを持っている方は、Googleアカウントを持っていると考えてもらっていいです。Google Colaboratoryは、Googleアカウントを持っていれば誰でも無料で使えます。

1. 画像生成プログラムを開く

AIで画像生成するためには、Google Colaboratory上でプログラムを動かす必要があります。今回のAI画像生成で使用するプログラムファイル「AIで美少女を作ってみよう.ipynb」を共有しているので、次のリンクから開いてください。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb」の画面

リンクを開くとこのような画面がブラウザで表示されます。

2. 画像生成プログラムをコピーする

続いて、開いたプログラムファイル「AIで美少女を作ってみよう.ipynb」を自分のGoogleドライブにコピーします。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb」の画面

「ファイル」メニューの「ドライブにコピーを保存」をクリックします。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

これで、「AIで美少女を作ってみよう.ipynb」が「AIで美少女を作ってみよう.ipynbのコピー」というファイル名で、自分のGoogleドライブにコピー・保存されました。

コピーが完了すると、新しいタブで「AIで美少女を作ってみよう.ipynb のコピー」がブラウザに表示されます。確認できたら、「AIで美少女を作ってみよう.ipynb」と「AIで美少女を作ってみよう.ipynbのコピー」の画面は閉じてください。

3. コピーされたプログラムを確認する

続いて、今コピーしたプログラムファイルが自分のGoogleドライブ上にあることを確認し、起動してみましょう。

まずは、Googleドライブをブラウザで開きます。

Googleドライブの「Colab Notebooks」の画面

「マイドライブ」の直下にある「Colab Notebooks」というフォルダを開きます。「Colab Notebooks」フォルダの下に「AIで美少女を作ってみよう.ipynb のコピー」ファイルが保存されていれば成功です。

「AIで美少女を作ってみよう.ipynb のコピー」ファイルをダブルクリックすると、プログラムファイルが新しいタブで起動します。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

プログラムファイルを操作していると、「操作中ですか?」というダイアログが表示されることがあります。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

この場合は、「私はロボットではありません」にチェックを入れましょう。

4. ランタイムのタイプを変更

AIでの画像生成プログラムは、「GPU」と言われる装置を使って画像を生成します。GPUはグラフィックボードと同じようなものです。「AIで美少女を作ってみよう.ipynb のコピー」でも、GPU(グラフィックボード)を使えるようにここで設定を行います。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

「ランタイム」メニューから「ランタイムのタイプを変更」をクリックします。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

「ハードウェア アクセラレータ」を「None」から「GPU」に変更します。「保存」ボタンを押して設定を保存します。

以上で、AI画像生成に必要なプログラムを準備できました。次は、このプログラムを実行して、Stable Diffusionを起動していきます。

Stable Diffusionの起動手順

続いて、プログラムファイル「AIで美少女を作ってみよう.ipynb のコピー」を実行して、AI画像生成アプリケーション「Stable Diffusion」を起動するための手順を示します。

1. 画像生成プログラムの起動

まずは、Googleドライブから「AIで美少女を作ってみよう.ipynb のコピー」を起動します。(先ほどまでの手順ですでに起動済の方は、以下を飛ばして次の手順「2.初期設定を実行する」に進んでください。)

Googleドライブの「Colab Notebooks」の画面

「AIで美少女を作ってみよう.ipynb のコピー」は、Googleドライブの「マイドライブ」直下の「Colab Notebooks」フォルダの下にあります。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

「AIで美少女を作ってみよう.ipynb のコピー」をダブルクリックすることで、プログラムファイルが起動します。

2. 初期設定を実行する

「AIで美少女を作ってみよう.ipynb のコピー」を起動させたら、まずは「1.初期設定」を実行します。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

上の写真の赤丸の部分にマウスを合わせると再生ボタンが現れます。この再生ボタンをクリックすると、灰色部分に記述されているプログラムが実行されます。

初期設定のプログラムでは、画像生成プログラムのダウンロードや設定が自動で行われます。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

プログラムの実行中には、再生ボタンが停止ボタンに変化し、プログラムの下に実行ログが表示されます。プログラムは1分から2分程度で完了します。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

プログラムが完了すると、停止ボタンが再生ボタンに戻ります。また、再生ボタンの左側には、プログラム実行にかかった時間が表示されます。上の画像では、プログラム実行に1分かかったことが分かります。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

もしプログラム実行中に、このようなダイアログが表示されることがあれば、「許可する」をクリックしてください。

3. Stable Diffusionの起動

続いて、AI画像生成アプリケーションStable Diffusionを起動します。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

「2. Stable Diffusionの起動」の部分の再生ボタンをクリックし、プログラムを実行します。

Jupyter Notebook「AIで美少女を作ってみよう.ipynb のコピー」の画面

このプログラムは、再生ボタンを押したら、停止ボタンを押すまで実行され続けます。

実行ログに「Running on public URL: https://*********.gradio.live」のようなログが出れば、Stable Diffusionが起動した状態となります。URLは起動毎に変更されます。

URLをクリックすると、新しいタブでStable Diffusionの画面が表示されます。

画像生成システム「Stable Diffusion」の画面

以上で、Stable Diffusionの起動までが完了しました。次からは、実際に画像を生成していきます!

画像の生成の手順を理解する

まずは、ひとまず画像を生成してみます。

1. 画像を生成する

今回用意したStable Diffusionには、実写系の女性の画像が生成しやすいように最低限の設定をしています。

画像生成システム「Stable Diffusion」の画面

Stable Diffusion画面の右上にある「Generate(生成)」ボタンを押します。

画像生成システム「Stable Diffusion」の画面

すると、「Generate」ボタンが「Interrupt(一時停止)」と「Stop(停止)」ボタンに変わり画像生成が始まります。

画像生成システム「Stable Diffusion」の画面

5秒から10秒程度で画像の生成が終わります。生成された画像を2回クリックすることで、生成された画像を確認できます。

画像生成システムで生成された画像

この手順の段階では、生成される画像は毎回変わります。(このことを通称「ガチャ」と呼んだりします。)

2. プロンプトを覚える

Stable Diffusionは、Prompt(プロンプト)で指示された画像を生成しています。いわゆる"呪文"です。

画像生成システム「Stable Diffusion」の画面

Promptの入力欄は、「Generate」ボタンの左側にあるテキストボックスです。また、その下には、Negative Prompt(否定的なプロンプト)の入力欄があります。Negative Promptには、画像生成時に含めたくない要素を指定します。

この記事の手順で構築したStable Diffusionには、実写系の美少女画像を生成する際によく用いられるPromptとNegative Promptを、それぞれ事前に設定してあります。

Promptは、初期設定で「best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl,」と入力されています。試しにこれを、「best quality, masterpiece, ultra high res, (photorealistic:1.4), 2girls,」と変えてみます。(girlがgirlsと複数形になっている点に注意してください。)

画像生成システムで生成された画像(4枚を1枚にまとめました)

「2girls」に変えて画像を4枚生成してみると、4枚中3枚が2人の女性の画像になりました。

このように、Promptを「1girl」から「2girls」に変更することで、生成される画像に変化が起きました。

ただし、4枚の画像からもわかるように、必ずPrompt通りの画像が生成されるわけではないことも理解しておいてください。2girlsと指定しても、上の画像の右下のように1人の女性が生成される場合もあります。

このPromptを工夫するのは、A画像生成の楽しさの一つです。

Negative Promptには、画像に出してほしくない要素を指定します。初期設定で「paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowers, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, glans, nsfw, nipples, bad hands, (missing fingers), EasyNegative,」を設定しています。paintings(絵画)や、sketches(スケッチ)を指定することで、絵ではなく実写の女性が生成されるようにしています。

反対に、2次元のアニメ調の画像を生成したい場合には、Negative Promptに「photorealistic(写実的な)」と言った単語を入れることで、実写の画像が生成されないようにします。

3. 画像を変化させるSeedを理解する

同じPrompt、Negative Promptで「Generate」ボタンを押しても、毎回異なる画像が生成されます。

画像生成システムで生成された画像

たとえば、「Generate」ボタンを2回押すと、上のように異なる画像が2枚生成されました。これは、2枚の画像が異なる「Seed」(種)から生成されているためです。

AI画像生成におけるSeedは、数字で表されます。同じ数字であれば、同じSeedであることになります。

画像生成システム「Stable Diffusion」の画面

Stable DiffusionでのSeedは、上の画像の赤い四角で囲った部分で設定できます。初期状態ではテキストボックスに「-1」が設定されています。これは、「Generate」ボタンを押すたびにランダムなSeedを使うという意味です。

Seedを固定するには、このテキストボックスに任意の数値を入れます。すると、生成される画像が固定されます。たとえば、「100」という数字を入れて「Generate」ボタンを押して画像を生成すると、何度生成しても同じ画像ができあがります。

また、テキストボックスの右側にある①のサイコロのボタンでは、テキストボックスを初期設定の「-1」に設定できます。②のボタンでは、「-1」でランダムに生成した直近の画像のSeedをテキストボックスに入れることができます。

画像生成システムで生成された画像(Seedの違いによる画像の変化)

たとえば、ランダムな生成で上の左側の画像が生成されたときに②のボタンを押すと、テキストボックスに「3985136232」と表示されます。これが左の画像のSeedの値です。この機能は、気に入った画像を微調整したい時に役立ちます。

AIでの画像生成を楽しむ人は、このSeedの値を変えながら、あるいはSeedを「-1」にしてランダムな値にして自分の好みの画像が生成されるまで、画像を作り続けています。

4. 生成した画像を保存する

気に入った画像が生成できたら、画像をPCに保存することができます。

画像生成システム「Stable Diffusion」の画面

生成された画像の下に「Save」(保存)ボタンがあります。ボタンをクリックすると画像のダウンロードリンクが表示されます。ダウンロードリンクをクリックすると、生成した画像をPCに保存することができます。

以上が、画像生成の大まかな手順です。続いては、自分のイメージ通りの画像を作る手順を、例を挙げながらご紹介します。

自分好みの画像を生成するには

Promptを工夫することで、自分好みの画像を生成できます。

1. テーマを決める

まずは、どのような画像を作りたいか、テーマを決めます。ここでは、「幸せそうな花嫁さん」をテーマに画像を生成してみます。

2. テーマに合った服を着せる

花嫁といえばウエディングドレスです。まずは、ウエディングドレスを着せてみます。

画像生成システム「Stable Diffusion」の画面

Promptに「wedding dress」(ウエディングドレス)を追加し、画像を生成します。Promptでは、追加したい要素を「,」で区切ります

以下のPromptで生成してみます。

best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl, wedding dress,
画像生成システムで生成された画像

何枚か画像を生成してみると、ほとんどの画像でPrompt通りにウエディングドレスを着た女性が生成されました。ただし、花嫁の顔が崩れる写真が多くなってきました。

ウエディングドレスのように、Promptで指示された要素をしっかりと描画しようとすると、顔などのそれ以外の部分のバランスが崩れやすくなります。何枚か生成して画像を確認してみてください。

3. 表情を付ける

崩れた顔を修正するためには、Promptに顔にまつわる指示を入れます。幸せそうな表情が見たいです。

画像生成システム「Stable Diffusion」の画面

笑った時の目になるようPromptで指示を出します。「smiling eyes」(笑顔のときの目)をPromptに追加します。

best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl, wedding dress, smiling eyes,
画像生成システムで生成された画像

何枚か生成してみました。「smiling eyes」を追加する前と比べると、全体的に顔がアップになった画像が増えました。ウエディングドレスだけではなく、目についても指示をしたことで、目や表情を中心とした構図が増えます。

また、顔の崩れもなくなり幸せそうな花嫁の画像が増えました。Promptでは目だけを指示しましたが、口についても笑顔のときの目に合うように口角の上がった画像が多いことが分かります。

4. 日本人らしい顔立ちにする

これまで、欧米人風の顔立ちの花嫁の画像が多く生成されてきたかと思います。画像生成の元となる学習データの多くが欧米人の写真であるため、生成される画像も欧米人らしい顔つきになりやすいです。

画像生成システム「Stable Diffusion」の画面

日本人らしい顔つきにするため、Promptで「japanese」(日本人)を追加して画像を生成してみます。

best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl, wedding dress, smiling eyes, japanese,
画像生成システムで生成された画像

上の画像は、Promptで「japanese」指定をしてないものとしているものを比較したものです。同じSeedで生成した画像ですが、Promptに「japanese」を追加した画像の方が、日本人らしい顔立ちになっているのが分かります。

画像生成システムで生成された画像

また、「japanese」ではなく「korean」(韓国人)を指定した場合との比較もしてみました。国籍を変えると顔立ちが変化することが分かります。

5. 体系を変えてみる

Promptを使うことで、体系を変化させることもできます。

画像生成システム「Stable Diffusion」の画面

急にゲスくなり恐縮ですが、胸を大きくするために、Promptに「large breasts」を追加してみます。

best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl, wedding dress, smiling eyes, japanese, large breasts,
画像生成システムで生成された画像

上の画像の左側が「large breasts」を追加したものです。胸が大きくなり強調されていることが分かります。右側の画像は、「large breasts」の代わりに「curvy body」(丸みのある身体)をPromptに追加したものです。こちらは胸だけではなく体全体にボリュームが出ています。

5. 画像を微調整する

ここまで、Promptにキーワードを追加していくことで生成される画像をコントロールする方法を説明してきました。ここでは、指定したキーワードの影響力を変更する方法について説明します。

Promptに記載した各キーワードの影響力は、数字で指定することができます。

best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl, wedding dress, smiling eyes, japanese,

たとえば、このプロンプトの「japanese」の影響力を変えてみます。「japanese」を「(japanese:0.5)」という書き方に変えることで、「japanese」の影響力を50%に下げることができます。なお、「japanese」と「(japanese:1)」は同じ意味です。

上のプロンプトで「japanese」の割合を変えて画像を生成して比較してみると、影響力が高い方がより日本人寄りの顔立ちになっていることが分かります。

複数のキーワードを組み合わせる際にも、影響力のコントロールは有効です。例えば、チャイナ服とウエディングドレスをミックスした服を着せてみたいと考えた場合には、次のようなプロンプトを書くことができます。

best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl, (chinese dress:0.7), (wedding dress:0.3), smiling eyes,

チャイナ服とウエディングドレスを7:3の割合でミックスしてみます。Promptには (chinese dress:0.7), (wedding dress:0.3)と書きます。

画像生成システムで生成された画像

ウエディングドレスの要素が追加されたようなチャイナ服が生成できました。

このように、様々なキーワードとキーワードの影響力を調整していくことで、よりイメージに合った画像を生成することができるようになります。

上級編:Civitaiを活用してみる

ここまで、Promptで画像を変化させる方法について紹介してきました。最後に、上級編として追加プログラムを使った画像生成について簡単に説明します。

Civitaiへのリンク

Civitaiというウェブサイトでは、生成される画像を変化させる様々なプログラムが公開されています。公開されているプログラムを利用することで、顔立ちや表情、ポーズなどをより細かくコントロールできるようになります。

ここで、構築したStable Diffusionには「Ulzzang-6500 (Korean doll aesthetic)」というプログラムを組み込んであります。

Ulzzang-6500 (Korean doll aesthetic)へのリンク

Ulzzang-6500は、美しい韓国人女性の画像を生成するためのプログラムです。Civitaiで公開されているプログラムの中でも人気のプログラムです。

Ulzzang-6500を利用するためには、Promptに「ulzzang-6500-v1.1」を追加します。

best quality, masterpiece, ultra high res, (photorealistic:1.4), 1girl, wedding dress, smiling eyes, (ulzzang-6500-v1.1:0.3)

そのまま追加すると影響力が強すぎて画像が崩れるので、影響力を30%に抑えて「(ulzzang-6500-v1.1:0.3)」として追加します。

画像生成システムで生成された画像

韓国人らしさを感じられる画像が生成できました。

Ulzzang-6500のような追加プログラムを組み合わせていくことで自分のイメージに近い画像を作り上げていくことができます。Promptでのコントロールに慣れたら、次のステップとしてCivitaiで気に入るプログラムを探してみてください。(プログラムの導入方法については、今回は説明を省きます)

おわりに

この記事は、初めてAI画像生成する方に向けて、Stable Diffusionでの画像生成の基本を説明しました。まずは、この記事をベースにAI画像生成の楽しさを味わってもらえたら幸いです。

もし、参考になったと感じて頂けましたら、ご支援頂けますと、今後の記事制作や画像生成の励みになります。

Twitterでは生成した画像を公開しています。是非Twitterのフォローもよろしくお願いします!

AI画像生成を楽しむ人が増えていくことを願っています!


この記事が気に入ったらサポートをしてみませんか?