高精度な画像生成AI「Stable Diffusion」を自分のPCで動かす方法(+ google colab)
実は我が家では動かなかったのですが、その理由は後述。動作可能にするところまではいけました。
先日、Midjournyというお絵描きAIを試してみた: EeePCの軌跡という記事を書きましたが、Midjournyをも超える文章からの画像生成AIが正式リリースされたとのことで、ネット界隈が騒然としております。
それが「Stable Diffusion」というやつなのですが、特徴としては、
・オープンソースで、自分のPC上でも利用可能(つまり無料で使うことができる)
・生成画像の商用利用も可能
とのことで、お手軽具合は確かにMidjourny以上です。
こいつを自分のPC上で使えたら本当に自由自在です。
しかも、かなりいい出来の画像を返すとのことで、期待が高まります。
下記のサイトを参考に、構築してみました。
[Stable Diffusion] AIでテキストから画像を生成する[Python] - TeDokology
このサイトでは、Google Colaboratoryでの利用を前提に書いてますが、ここのコードをPC上でも使うためのやり方を残しておきます。
うちでは、Windows版python 3.7.9をインストール済み、という前提です。
で、まずHuggingFaceのアカウントを作ります。
Hugging Face – The AI community building the future.
このサイトでまず、アカウントを作ってください。
で、アカウント作成後にログインし、以下のページにアクセス。
CompVis/stable-diffusion-v1-4 · Hugging Face
するとここで、以下のような文章が出てきます。
一番下にあるチェックを入れて、Access repositoryをクリックします。
で、その後に、右上にある丸いアイコンをクリックすると、以下のようなメニューが出てきます。
その中の「Settings」をクリックし、現れるメニューの中から「Access Tokens」をクリック。
すると黒丸の文字列が出てくるので、横の「Show」をクリックして文字列を表示し、テキストファイルにでも貼り付けておきます。
このトークンは、後ほど使います。
さて、続いてWindows PowerShellを開き、そこで、
> pip install diffusers==0.2.4 transformers scipy ftfy
を実行します。必要なライブラリがインストールされるので、以下のコードをコピペで持っていきます。
これを「stable_diff.py」という名前でも付けて保存。
なお、このコード内の「access_tokens=」の後ろは、先ほどゲットしたAccess Tokensの文字列を入れておいてください。
さて、ちょっと厄介なのですが、Windows上ではこのままでは動きません。
多分、普通に
> python stable_diff.py
エラーが出てくるはずです。
で、いろいろ調べた結果、管理者権限で起動したWindows PowerShellを使わないとダメらしいです。
はい、Windows PowerShellのアイコンを右クリックして「管理者として実行」を選んで起動します。
その後に「 python stable_diff.py」とやれば、動くはずです。
モデルのダウンロードが開始されて、いよいよ動き出します。
が、我が家ではこの後、動かなくなりました。
こんなエラーを出して、終了。
簡単にいうと、
GPUのメモリーが足らんのじゃボケェ!
と言われました。
はい、我が家のGTX1650Tiは4GB。で、どうやら10GB以上のメモリーを搭載したGPUじゃないとダメっぽいです。
これでは、取りつく島もありません。
一応、少ないGPUメモリーのマシンで動かす方法もないわけでもないですが、
話題のStable Diffusionがオープンソース化されたのでローカルで動かしてみる
(この中のコメントでfloat16でも動かす方法というのを見る)
めんどくさそうなので、とりあえず私はさっさと諦めてGoogle Colaboratoryに行きました。
なお、こっちで動かすためには、先のコードの先頭2行の「#」を消しておいてください。
かつ、Google Colaboratoryの中の「ランタイムのタイプを変更」‐「ハードウェアアクセラレーター」をNoneからGPUに変えておいてください。
ちなみに、上のコードをそのまま実行すると「ガンダム風巨大ロボットの前に立つ銀髪の女の子」の画像が作成されようとします。
他の画像がご所望の方は、「prompt=」の後ろの英文を変えてください(英語で)。
上のコードを実行すると、一気に5枚まで作ってくれます。Google Colaboratoryなら大体1、2分で完了しました。
で、できた画像はこんなの。
うん、確かに「ガンダム風巨大ロボットの前に立つ銀髪の女の子」です。
何度かやりましたが、たまに作画崩壊気味の画像も出てきました。
が、結構はっきりとした画像が生成されることが多くて、なかなかいい感じです。
他にも、
「銀河英雄伝説の戦艦」
「中世風の街に立つ娘」
(いずれも、Google翻訳で日本語 → 英語に変えてからコードに入れてます)
Midjournyと比べると、かなりくっきりとした画像が得られるというのが個人的な印象。
確かに精度もMidjourny以上だと言われると、その通りですね。
なかなか遊べます。ほんと、AIの進化ってやつには驚くばかりです。
※追記
アップ直前になって、少ないGPUメモリーのPCでも動かせるコードができたので、参考までに載せておきます。
公式のサイトの以下の記事
CompVis/stable-diffusion-v1-4 · Hugging Face
をよく読んでいたら、GPUメモリーが少ないPC向けのfp16版のコードができたので、それを残しておきます。
これを「stable_diff_l.py」という名前で保存し、
> python stable_diff_l.py
と実行すると、10GB以下のGPUメモリーのPCでも実行できるかも、とのことです。
ただし、動作は未確認。我が家の4GBじゃどのみちダメでした・・・
![]() |
Midjourney 入力テキスト&出力画像コレクション 1: イメージ通りの画像を生成するためのヒントを得よう! Midjourney 入力・出力コレクション |
最近のコメント