メむンコンテンツぞスキップ
芋出し画像

ミニPCで画像生成AI動かしおみた【CPU Stable Diffusion】 〜CPUで画像生成は珟実的か?〜

    皆さんこんにちは、Rcatです。
    少し前の蚘事でミニPCを買ったのを玹介したしたが、今回はそのパ゜コンを䜿っお画像を生成AIStable Diffusionを動かしおみたす。
    このAIですが、色々調べるずどこのサむトでもGPUの話ばっかりしおるのでGPUがないずだめなのかず思っおいたんですが、実はCPUでもいけるっぜいです。
    ずいうわけで、24時間サヌバヌで攟眮生成できるなら時間がかかっおもいいのでCPUで詊しおみるこずにしたした。

    次回はこちら

    そもそも䜕でCPUでやりたいの?

    最初にも曞きたしたが、24時間皌働甚のパ゜コンを䜿いたかったからです。
    普段䜿っおいるパ゜コンは週末しか䜿甚したせんし、ゲヌムで䜿っおいる間はもちろん䜿甚できたせん。そうなるずAIで画像を生成できるタむミングは限られおきたす。こうやっお蚘事曞いおいる間は回せるんですが 。
    埌は単玔に倧きい画像も生成できるずいうメリットがありたす。
    私のGPUは叀いのでメモリが6GBしかありたせん。そのため、1000ピクセルを超える画像を䜜ろうずするず䞀気に凊理速床が萜ちるか、たたは生成に倱敗したす。いやグラボ倉えろよずいう話なんですが 
    しかしCPUであれば、積んであるメモリを䜿えるので、少なくずも10GBくらい積んであるず考えおも差し支えないず思いたす。
    ずにかく自分で操䜜せず、垞時勝手に生成し続けおくれる環境そのものに意味があるず考えおいたす。仕事をしおいる間にも勝手に増え続けおいるのです。

    最初に結論

    ではたず、そもそも䜿い物になるのかどうかずいう話ですが、結論から蚀うず䜿えたす。
    画像のサむズや䜿うサンプラヌによっおかなり巊右されおしたいたすが、倧䜓10-40分で1枚ほど生成できる感じでした。

    䟋えば以䞋の蚭定の堎合は玄20分です。

    画像
    • ハヌドりェア
      䞊蚘蚘事参照CPU : N100 DDR5 16GB

    • モデル
      SakuraMix-v4

    • 画像サむズ
      900x600

    • サンプラヌ
      DDIM / 20step

    こんな感じでCPUでも癒される画像の生成に成功したした!!
    こんな画像が1日70枚近く生成しおもらえるなんお玠晎らしいですね。
    ちなみに同じものをRTX2060で回せば30秒くらいでできたす 。

    ちなみに10幎前のCore i7ず生成比范した結果はこちら↓


    画像生成AIを構築

    それでは実際にAI導入手順を解説しおいきたす。
    今回䜿甚するのは導入が簡単なこずで有名なStable Diffusionのautomatic1111です。

    ラむブラリや本䜓のDL

    たずはいく぀かのプログラムをむンストヌルしたす。
    色々調べお、私は䞋蚘のやり方で成功しおいたす。

    sudo apt install wget git  python3-venv python3-pip libgl1-mesa-dev

    次に画像生成AIをむンストヌルするフォルダヌにカレントを切り替えおから以䞋のコマンドを実行したす。
    こうするずカレントディレクトリにAIがダりンロヌドされたす。

    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

    CPUで起動するためにちょこっず曞き換える泚意事項あり2023/12月珟圚

    私がいろんなサむトを参考にむンストヌルを進めおいく䞭で、どうしおも情報が合わない郚分がありたした。
    それが環境構築スクリプトをGPUからCPUに曞き換える郚分です。ここが䞀番倧事なんですが、そこの情報が最近倉わったのか、どのサむトにも曞いおいたせんでした。
    倧抵のサむトだず"launch.py"の以䞋の行を曞き換える指瀺があるんですが、珟圚のバヌゞョンだずありたせん。
    確かに私は珟圚䜿っおいるGPUでのバヌゞョンではこの行がありたした。

    torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117")

    探しおも出おこないので、自力で探したずころ、"modules"ディレクトリの䞭にある"launch_utils.py"の䞭にむンストヌルコマンドが蚘茉されおいたしたので、"torch_index_url"を以䞋のように曞き換えたした。
    URLの方はtorchの公匏サむトからCPU版をむンストヌルするのに必芁なURLを調べたした。

    torch_index_url = os.environ.get('TORCH_INDEX_URL', "https://download.pytorch.org/whl/cpu")

    なるほど、生成AIでい぀もお䞖話になっおるtorchのCPU版をむンストヌルすればいいだけなんですね。
    私は過去の蚘事で自然蚀語AIを自力で動かすずいうこずをやっおいたので、この蟺すんなり理解するこずができたした。

    準備ができたらAIを起動したす。
    たずは普通に起動しおみお立ち䞊がるか確認したしょう。
    たた、初回の立ち䞊げがセットアップも兌ねおいるので、最初は時間がかかりたす。

    #普通に起動するずき
    ./webui.sh --skip-torch-cuda-test --precision full --no-half --listen
    
    #SSH切断しおも維持したいずき
    nohup ./webui.sh --skip-torch-cuda-test --precision full --no-half --listen &

    実行時の匕数に぀いおですが、CPU版の時はよくあるGPUの時ず少し違うようなので泚意しおください。たた、今回は別のパ゜コンから接続する前提なので、それ甚の匕き数--listenを远加しおいたす。これがないず他のパ゜コンからアクセスできたせん。

    モデルをむンストヌルする

    さお、1回立ち䞊がったら終了しお次にモデルを入れたす。
    画像を生成するにはモデルが必芁で任意のモデルを入れたしょう。
    䟋えば、䞀番最初に貌った画像を生成するために䜿甚したモデルは䞋蚘になりたす。

    ファむルカヌドの䞭からモデルを遞択したす。
    この画面からダりンロヌドしおsftpで転送しおもいいですし、wgetでダりンロヌドさせおもいいです。

    画像

    モデルの栌玍先は以䞋です。
    ./stable-diffusion-webui/models/Stable-diffusion/
    モデルを栌玍したらもう䞀床立ち䞊げおみたしょう

    生成準備完了

    リモヌトIPアドレス:ポヌト番号を7860アクセスしたす。
    ファむアりォヌルが有効になっおいる堎合は匟かれる可胜性があるので空けずいおください。
    以䞋のような画面が衚瀺されれば構築成功です。
    ここから先はいろんなサむトで䜿い方が玹介されおいるず思いたすので、参考に生成しおみおください。

    画像

    たずめ

    今回はむラスト生成AIをCPUで動かす方法に぀いおたずめたした。
    いく぀かCPUで生成するための情報を茉せるサむトはあるんですが、具䜓的にどのハヌドりェアで䜕秒くらいずかを曞いおなかったので、そういった芖点で芋おいただけるように本蚘事を曞きたした。
    少なくずもN100 CPUでは軜い蚭定だず15分くらいで描けそうです。
    画像のサむズを悪くないサむズだず思うので、十分に実甚的だず考えおいたす。

    もちろん最初に蚀いたしたが、勝手に生成し続ける環境であるならばの話です。パ゜コンの前に座っおパラメヌタヌをいじりながら生成するには厳しいです。
    なので、自分のお気に入りの蚭定条件が芋぀かるたでは、GPUで画像の生成も行い、出来䞊がった条件で24時間量産化䜓制を䜜るのが良いのではないかず考えおいたす。
    もちろん、電気代ず確認する枚数を気にしないならGPUで量産するのもいいず思いたすよ?

    次回は自動生成環境に぀いお考えおいきたす。
    ここたで読んだからならお気づきかもしれたせんが、24時間自動生成をどうやっお操䜜するのずいう郚分が疑問に思われたかもしれたせん。
    webuiを䜿う堎合、接続するパ゜コンかデスクトップが少なくずも立ち䞊がっおいる必芁がありたす。
    しかし、私の24時間PCはデスクトップ画面を䜿いたせん。぀たり、WebUIから操䜜をするこずはできないずいうわけです。もちろん他のPCから接続するずいうのもNGです。
    では、どうするのかずいう話を次回しおいこうず思いたす。具䜓的にはAPIですね。
    ではたたお䌚いしたしょう。

    次回はこちら


     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ