こんにちは。
エス・エー・エス株式会社の海田です。
ようやくほんの少しだけ、暑さが和らいできた感じですね。皆様いかがお過ごしでしょうか。夏休み、ゆっくりお休みできましたか?私は今年の夏は、ここ数年で一番遊んだ気がします(笑)
さて、弊社は月に一度 「全体会議」 というものを実施しています。こちらでは会社全体の共有事項の発表や連携であったり、外部ゲストを招いての講演会やワークショップなどを実施したりしています。普段なかなか会えない他部署の方たちとの交流も兼ねて、楽しい会議となっております。つい先日の全体会議では 外部ゲストとしてAWSの社員の方に来社 いただき、 生成系AI のお話をしていただきました。
今年は ChatGPT や Bard 、 BingAI など自然言語処理の生成系AIが世間を賑わせ、一大ブームとなりました。ChatGPTを使って、欲しい回答がいい感じにもらえるとか、コーディングのヒントを得られるとか、もちろん生成系AI自体の進化というのはとてもすごいことなんですが、何より一番すごいと感じるのは、それらの技術が ごく一部の限られた人間のためだけではなく、誰もが利用でき恩恵を享受できるようになった ことだと思っています。基本的に誰でも利用できるようになったということに、とてもとても価値を感じます。そしてその進化はチャット生成 (text to text) だけにとどまらず、「言葉から絵を生み出す (text to image) 」ことまでできるようになっています。
今日は、そんな「言葉から絵を生み出す画像生成系AI」で有名な 「Stable Diffusion」 を試してみました。
1. Stable Diffusion とは Stable Diffusion は、ミュンヘン大学のCompVisグループが開発し2022年から一般公開されています。先にも示した通り、 「text to image」 ・・つまり、いくつかの キーワードをお題として与えることで、学習モデルから絵を出力する というアプリケーションです。
例えば、 「cat running through space(宇宙を駆ける猫)」 と入れてみると、こんな画像が出力されました。
左下とか、結構躍動感があっていいですね(笑)
まあこんな感じでいろいろ試行してみることができます。
2. Stable Diffusion の使い方は簡単だが・・ Stable Diffusionの利用方法ですが、以下のサイトでアカウント登録をするだけで利用できます。
これが生成の画面です。使い方は簡単で、左上 赤線 の 「Prompt」 という部分にキーワードを入れて、左下の 黄色「Dream」 という場所をクリックすると右側に絵が生成されます。私が過去に作成した 「南極でペンギンと泳ぐビジネスマン」 が表示されていますね。
しかし、生成には コスト がかかります。「Dream」の右に 「7.2」 という数字が見えると思います。そして左上の 黄色「5」 という数字は現在の自分の保有値です。つまりこの状態では、 ポイント不足で画像を生成することができません。 (その上の 「image count」 という場所を「1」にすればとりあえず今回は生成することはできますが、いずれは終わりが来てしまいます。)ポイントは有料で追加することはできます。
ということで、クラウドサービスとして提供されている「 Stable Diffusion 」はお試しとしては気軽に使える分、がっつりいろいろ触ってみるにはそれなりの追加コストがかかります。
当初はここまでをTechBlogの記事にしようと思っていました。しかし・・
3. ローカルPCで無制限に利用できる「 Stable Diffusion」 がある! いろいろ調べてみると、なんと「 Stable Diffusion 」は ローカルPCでも使える ということがわかりました。オープンソースなので必要なパッケージをダウンロードさえすれば、ローカルでサービス立ち上げてブラウザ経由でアクセスできるわけですね。この場合は、もちろんローカルPCのリソースを利用するので、コストはかかりません。作り放題です(笑) ローカルで利用できる「 Stable Diffusion 」のことを「 Stable Diffusion web UI 」というようです。
実は後でWikiを見て分かったのですが、この ローカルPCでも利用できるという特徴 は「 Stable Diffusion 」の知名度を一気に上げた要因の一つでもあります。生成系AIとしてはほかに「DALL-E」「Midjourney」などがありますが、いずれもクラウドサービスのみでの利用です。(つまり無料お試しはあれど、追加コストがかかるということですね。)
ローカルPCでやることはたった3つです。
作業フォルダを作る 必要パッケージをDLする(Git、Python、Stable Diffusion web UI など) セットアップコマンドをたたく 最初の「作業フォルダを作る」については必須ではありませんが、インストールするパッケージやアウトプット群をまとめて一つの場所で管理できて便利ですので、ぜひやっておくといいと思います。
「 Stable Diffusion web UI 」はパソコンの グラフィックボード(GPU) のパワーを大量に使用します。グラフィックボードはゲーミングPCなどでは普通に搭載されておりますが、一般的なノートPCなどでは、 CPUが兼業していることが多い です。兼業しているので当然専用のGPUにはかないません。なのですごくざっくりといえば、 ゲーミングPCではサクサク画像が作成でき、一般的なノートPCではのんびーりまって画像が作成されます。
私はプライベートで 一般的なノートPC を1台、そして、 自作PC を1台持っていますので、今回はこの2つで「 Stable Diffusion web UI 」を試してみました。結果、どちらのPCでも利用することはできました。簡単にそれぞれのスペックを紹介します。(同じようなスペックの方はほぼ同じような感じで動くかと思います)
では、それぞれのPCでのセットアップ方法です。
自作PCの場合 私の自作PCの場合は、以下の通り実施するだけでセットアップできました。(情報提供してくださったWebライターの方、本当にありがとうございます。とても簡単にできました。)
ノートPCの場合 ノートPCの場合は、上記サイトに沿って実施するだけではエラーとなってしまいました。上記サイトでは 「webui.bat」 を実行しておりますが、それを呼び出す 「webui-user.bat」 をテキストエディタで開き、 「COMMANDLINE_ARGS」 の部分を以下のように追記します。そして、 「webui.bat」 ではなく 「webui-user.bat」 を実行することで、無事セットアップすることができました。
@ echo off
set PYTHON =
set GIT =
set VENV_DIR =
set COMMANDLINE_ARGS = -- skip - torch - cuda - test -- no - half -- no - half - vae -- precision full \\ここを追加
call webui . bat
3. お絵描き開始! セットアップが無事完了すると、以下のようなメッセージが出力されます。
この「http://127.0.0.1:7860」をブラウザで入力すればローカルで起動している「 Stable Diffusion 」サービスにアクセスできることになります。
では、それぞれのPCで同時に起動して先ほどの 「cat running through space(宇宙を駆ける猫)」 を入れてみましょう。
promptの部分に上記キーワードを入れて、 「Generate」 を押します。デフォルトのままであれば大丈夫かと思いますが、 「Width」,「Height」は「512」 に、 「Batch count」と「Batch size」はどちらも「1」 にしておきましょう。
さて、できました。
ノートPC
自作PC
ちょっと猫の形が怪しい部分はありますが、一応キーワードに沿ったそれっぽい絵を作成してくれました。さて気になる実行時間です。 驚くべき差が出ます。
ノートPCは13分56秒 かかったのに対して、 自作PCは2秒 で終わりました。512×512の1枚を出力するだけでの時間なので、 一般的なノートPCで複数出力することは現実的には厳しい かもしれません。(HP Spectre X360 14 はHP社のノートPCとしてはフラッグシップモデルであり、ビジネス用途では決して低いスペックではないですが、専用グラボを搭載していないというだけで画像生成系AIには不向きであることが明らかとなりました。) 生成系AIを本格的に進めていくには、ゲーミングPCのような専用グラボを搭載しているPCが必須 となります。特にNvidia製(いわゆるGeForceシリーズ)が強いようですね。
ちなみにノートPCでも生成画像サイズを下げてみる(例えば128×128にしてみる)と、 49秒 で終わりました。しかし、下に示すようにとても宇宙を駆けるよう猫には見えない絵が生成されました。(「 Stable Diffusion 」は生成の元となるモデルが512*512であるとWikiに記載がありましたので、それが原因なのかもしれません)
ということで、ノートでも自作PC(グラボ搭載PC)でも利用することはできますが、 サクサク作っていきたいならグラボ搭載PC一択! ということがわかりました。ということで、自作PCでガシガシ作っていきます。
4. 未来の車の絵を描こうと頑張る・・ さて、自作PCで引き続き進めていきます。今回描かせてみたかったのは自分が好きな車です。私はステーションワゴン(Mazda6ワゴン、レヴォーグ、カローラツーリング、プジョー308SWとか)の車が好きで、今後発売されたらいいな~と思うような車をAIに描かせてみました。ちなみに自作PCは性能が高いので、 「Batch size」を「4」にして一度に4枚ずつ生成するようにしています。 とりあえずキーワードに 「beautiful station wagon」 と入れました。すると・・・
うーん、まあそういう形なんだけど、なんか 未来感がない(笑)
「future station wagon」 にしてみます。
多少マシにはなったけど・・ 現実って感じ がする。
もうめちゃくちゃ入れてみます。
「next generation station wagon elegant beautiful cutting edge exterior」
どこかで見た車の組み合わせの気もしますが(笑)、まあだいぶ良くなっては来ましたね。
5. 別の学習モデルでやってみる 私も詳しいわけではないのですが、生成系AIというのは元となる学習モデルがあって、指令されたキーワードとその学習モデルから一定のアルゴリズムに従って画像がアウトプットされるようです。ということは、 車に得意な学習モデルを導入すれば、もしかすると同じキーワードでも結構イイモノできるのでは・・ と考えました。「 Stable Diffusion モデル おすすめ 」などで検索すると、結構出てきます。
その中で今回は 「Deliberate」 というのを使ってみました。
導入はとても簡単で、サイトから学習モデルをDLして「インストール場所\stable-diffusion-webui\models\Stable-diffusion」配下に格納するだけです。するとブラウザの画面左上の「Stable Diffusion checkpoint」というプルダウンで学習モデルを選択することができるようになりました。(以降すべてDeliberate(https://civitai.com/models/4823/deliberate)を利用した生成となります)
学習モデルで「 Deliberate 」を選択して、同条件のpromptで試してみます。あれ・・なんかいい感じ!?質感高い?(笑)
いろいろやってみて気づいたんですが、 背景のキーワード を入れると結構パンフレットに出てくるようなそれっぽい雰囲気になったりします。例えば、 「in the forest(森の中)」 とか
「next generation station wagon elegant beautiful exterior in the forest 」
相変わらず昔のワゴンが出てきますが、でも雰囲気はいいですね。
「in space galaxy next gen station wagon elegant beautiful exterior 」
宇宙を走行するためになんか別のものがいろいろ搭載されてます。 メーカーオプションいくらするんですかね(笑)
宇宙関連、ちょっとカッコよかったので、スーパーカーっぽいやつを作ってみました。
「super car in space galaxy elegant exterior and stylish interior」
6. 結論:楽しい。 いかがだったでしょうか。前提知識も絵の才能もなくてここまでのエセ画家になれるのはなかなか高揚感があります。あと、入力したpromptを「ああ、そういう風に解釈したのね~」みたいな AIとの認識の違い も感じられてたりして面白いです。
ちなみに今回のようにローカルで(WebUI形式で)動かす場合、すべての画像は 「インストール場所\stable-diffusion-webui\outputs」 配下に自動で格納されます。生成のたびに明示的に保存する必要がないのと、4枚一度に出力した場合の1枚絵(grids)も同時に保存されますのでかなり便利です。 ただし空き容量にはご注意! この記事書くためにたった2日間で840MB(約1300枚)使いました。
子供に「おひめさまかいて~」とか、「悪い敵かいて~」とか言われて描きましたが、アニメ、人間風の描写もとてもいい感じでした。というわけで皆様楽しいAIお絵描きライフをお楽しみください!
読んでくださってありがとうございました。
本記事を書くにあたり沢山のWEBサイトを参考にさせていただきました。この場をお借りして御礼申し上げます。