ゆるおた学習帳

試してみて面白かったり便利だったwebサービスのハウツーを備忘録的に残していくブログ

イラスト自動生成AI「Disco Diffusion」に絵を描いてもらう方法

絵を描いてくれるAI「Midjourney」をきっかけに、この世にはオープンソースのイラスト生成AIがあることを知りました。
早速自分も試したい!と思ったのですが、今回の「Disco Diffusion」はイラスト生成まで少し難しかったので自分用備忘録です。

参考にさせていただいた記事はコチラ↓
Get Started With Disco Diffusion to Create AI Generated Art

スポンサーリンク

イラスト自動生成AI「Disco Diffusion」の使い方

「Disco Diffusion」はブラウザ上でPythonを実行できる「Google Colab」で公開されています。

↓こちらのリンクから「Disco Diffusion」へ飛べます
https://colab.research.google.com/github/alembics/disco-diffusion/blob/main/Disco_Diffusion.ipynb

DIsco Diffusion
こんな画面が表示されます。

ファイルを自分のGoogleドライブ上にコピーします。

別タブで開きコピーが作成されます。
コピーされたファイルを使っていきます。

「Disco Diffusion」でイラスト生成する前の準備

  1. ランタイムのタイプを確認する
  2. GPUのステータスを「Tesla P100」 または「Tesla T4」にする

なんだかよくわからない、という方はスクリーンショットを参考に進めてください。

ランタイムのタイプを確認する

出力時間を短くするためにランタイムというものを確認します


メニューバー「ランタイム」→ランタイムのタイプを変更


ハードウェアアクセレータという項目が「GPU」になっていればOKです。
「保存」をクリックします。

GPUのステータスを「Tesla P100」 または「Tesla T4」にする

Google ColabではランダムにGPUを割り当てられるため、GPUのステータスが「Tesla P100」 または「Tesla T4」になるように調整します。

Google Colabの画面を下へスクロールすると「1. Set Up」という項目があります。


「1.1 Check GPU Status」の左横の再生ボタンをクリックします。
するとプログラムが実行されます。


このような画面が出た場合は「OK」を押します。

「1.1 Check GPU Status」の項目内の「コードを表示」をクリックします。
表示されたコードの中に「Tesla P100」 または「Tesla T4」と記述されていれば次へ進みます。

準備ができたらプログラムを実行していく

続いて「1.2 Prepare Folders」も左横のボタンを押して実行します。

すると下のようなポップアップが表示されます。


「Googleドライブに接続」をクリックします。


Googleアカウントのアクセスを許可します。

Googleドライブの接続が済んだら
「1.3 Install, import dependencies and set up runtime devices」から
「Extra Settings」という項目まで全てボタンを押して実行します。

ちなみに実行する項目名は

  • 1.3 Install, import dependencies and set up runtime devices
  • 1.4 Define Midas functions
  • 1.5 Define necessary functions
  • 1.6 Define the secondary diffusion model
  • 2. Diffusion and CLIP model settings
  • Custom model settings
  • 3. Settings
  • Animation Settings
  • Extra Settings

です。実行は同時に行ってもOK。


筆者はGoogle Colabそのものを使ったことがない&プログラミングできない人間なので、実行ボタンを見落としがちでした。

AIに描いてもらいたい絵の内容を入力する

ここまで来たらもう少し!
「Extra Settings」までの項目が全て完了したら「Prompts」のコードを表示します。

# Note: If using a pixelart diffusion model, try adding "#pixelart" to the end of the prompt for a stronger effect. It'll tend to work a lot better!
text_prompts = {
    0: ["ここにAIに描いてもらいたい内容を英語で入力するよ"],
    100: ["This set of prompts start at frame 100","This prompt has weight five:5"],
}

「Prompts」のコードにはサンプルが入力されています。
サンプルでは英語で「グレッグ・ラトコウスキーとトーマス・キンケイドによる、波乱の血の海に光を放つ特異な灯台の美しい絵画、アートステーションでのトレンド", "黄色い配色".」と入力されています。(DeepL翻訳)

もし英語がわからなければDeepLを使えばOK!

とりあえず英語で入力してみます。


「コンピュータの画面を見ながらタイピングをするカピバラ」という意味の
「Capybara typing while looking at a computer screen」を入力しました。
(※「Midjourney」の時と同じ指示文でやってみた)

入力したら実行ボタンをクリックします。

続いて「4. Diffuse!」の項目です。


「n_batches:」はDisco Diffusionに生成させたいイラストの枚数です。
初期値では50になっていますが、生成させる画像の量が多いと時間がかかります。

最初はプログラムが問題なく作動するか確かめるためにも「1」がおすすめ。

設定が済んだら実行ボタン!
下へスクロールすると、生成中の画像が表示されます。


さて、「コンピュータの画面を見ながらタイピングをするカピバラ」は出来上がるのか・・・?


おっと・・・雲行きが怪しいぞ

出来上がった画像がコチラ


ひえっ・・・
質感がむちゃくちゃリアル・・・

他にも、
「ファイナルファンタジーXのブリッツボールスタジアムのような美しいアート」
「Beautiful art like Blitzball Stadium in Final Fantasy X」と入力してみました。


おお!FFXのコンセプトアートっぽい。
真ん中にいる人間らしきモチーフはユウナでしょうか。
ユウナの衣装がFFXというよりFFX-2っぽいですね。

スポンサーリンク

AIにイメージ通りのイラストを出してもらうノウハウ

AIの仕組みや特徴を理解して適切な指示文を出すのは、筆者のような素人には難しい。
こういう時は先人の知恵をお借りしましょう。

深津貴之さんのツイートとnoteがおすすめ

以前より深津貴之さん(noteを作った方)のツイートでは、”どうやって命令文を送るか”と試行錯誤されていました。
noteではAI講座となる記事もありますのでこちらがおすすめ。

note.com深津さんのTwitterでは色んなAIの試作品が見られるのでおすすめです。(→深津 貴之 (@fladdict) / Twitter

先人からお絵描きAIの万能呪文を学ぶ

こちらのすきえんてぃあさんのツイートでは魔法の呪文「detailed CG art, by Makoto Shinkai」が紹介されています。
detailed CG art:細密なCGアート
by Makoto Shinkai:新海誠による
「新海誠さんのような細密なCGアート」をAIに命令するわけですね。

また、以前に深津さんがこのようなツイートもされています。

以上のことから、イラスト生成AIに出す指示文に

  • 作家名を入れる
  • 有名なゲームタイトルを入れる

とAIも人間のイメージを理解しやすいようです。

こちらもどうぞ

▼別の絵を描いてくれるAI「Midjourney」の記事はこちら

話題のイラスト生成AI「Midjourney」、どうやったら描いてもらえるの?

▼文章生成AIにブログ記事を書いてもらいました

AIのべりすとにブログで稼ぐ方法とSEO対策について書いてもらった

▼Googleの検索エンジンもAIですよね

Google検索で一番上に表示されてる業者は怪しいのか?

▼令和の高校の教科書にはプログラミングやAIについても書かれています

2022年度の「情報I」の教科書を読んでみたい!教科書の買い方