メインコンテンツへスキップ
  1. 記事/

ノートパソコンでStable Diffusionを実行する方法

Vitalik Buterin
著者
Vitalik Buterin
Visionary behind the Ethereum protocol, renowned for his research and thought leadership in cryptography, blockchain technology, and decentralized systems.
目次
The New AI Hype - この記事は連載の一部です
パート 3: この記事

昨年、テキストの説明から画像を生成するいくつかの機械学習モデルが一般に公開されました。これはAI分野での興味深い発展でした。しかし、これらのモデルのほとんどは、有効な倫理的理由からクローズドソースのままでした。そのため、何らかのインターフェースを通じてそれらとやり取りできますが、テストできることの数は限られていました。今までは…

これらのモデルの最新版はStable Diffusionで、Stability AIによって開発された、自然言語の説明からデジタル画像を生成するオープンな機械学習モデルです。このモデルは非常に人気があり、主にオープンソースで公開された最初のモデルだったからです。

私はすでにDall-EMidjourneyで遊んでいましたが、モデルをローカルで実行して、いろいろと自由に試してみたいと思いました。M1 ProとWindowsデスクトップの両方でモデルを正常にインストールして実行することができました。このガイドでは、Macですべてを動作させるために私がたどったステップを詳しく説明します。

初期ノート
#

始める前にいくつかのメモ。オンラインでいくつかのガイドを試しましたが、どれもスムーズな体験を得ることができませんでした。多くのリポジトリやソリューションなどを試す必要がありました。このガイドの主な目的は、M1でStable Diffusionを実行する方法の手順を提供することです。これは私が最も多くの課題を発見したものです。Windowsへのインストールははるかに簡単でした。

そうは言っても、私が最終的に使用したリポジトリにはすべてのプラットフォーム向けの詳細なガイドがあります:WindowsMacLinux。別のプラットフォームを使用している場合や、このガイドがMacで機能しない場合は、それらを使用することをためらわないでください。

注:私は上記のMacガイドを試していません。このリポジトリを見つけたとき、モデルを動作させるために必要なワークアラウンドのほとんどをすでに把握していたからです。

コードを取得する
#

まず、コードを取得することから始めましょう。私はInvokeAIのStable Diffusionのフォークを使用しており、ここでフォークしました。お好みであれば、InvokeAIのオリジナルリポジトリを使用しても構いません。ガイドが時間を経ても更新され、動作し続けることを確保するために、私のフォークを使用します。このリポジトリを選んだ理由は、1) これが最初に動作させることができたもので、2) 全体とのやり取りをはるかに簡単にするWeb UIを持ついくつかのフォークの一部だったからです。

始めるには、リポジトリをローカルマシンにクローンします。

git clone https://github.com/VitalikButerin/InvokeAI

モデルを取得する
#

次に、ネットワークの重みを含む実際のモデルを取得する必要があります。これは、平均的なハードウェアを持つ普通のユーザーが競争することさえできない巨大なデータセットでの大規模な訓練サイクルの結果です。モデルはそのサイズ(約7.5 GB)のためにコードと一緒に配布されておらず、ユーザーがそのライセンスに準拠する必要があることを確保するためです。そこでHugging Faceが登場します。

Hugging Faceのサイトに移動してログインするか、アカウントがない場合は作成してください。設定が完了したら、ここをクリックし、モデルカードの条件に同意して、sd-v1-4-full-ema.ckptというファイルをダウンロードします。モデルをダウンロードした後、コードフォルダに移動し、models/ldm/stable-diffusion-v1/内にmodel.ckptという名前で配置します。フォルダstable-diffusion-v1は存在しないため、作成する必要があります。

注:探索できるモデルの他のバリアントがありますが、これは私が見たほとんどのリポジトリで推奨されているものです。

環境のセットアップ
#

コードとモデルの準備ができたら、次のステップはすべてを実行するためのローカル環境をセットアップすることです。

Xcodeをインストールする
#

最初のステップはXcodeをインストールすることです。これは開発者がAppleプラットフォーム向けのアプリを構築するために使用するツールのスイートです。XcodeはApp Storeからインストールするか、AppleのDeveloperサイトからダウンロードできます。

ドキュメントで定義されているように、コマンドラインツールパッケージは、Xcodeとは別にダウンロードできる小さな自己完結型のパッケージで、macOSでコマンドライン開発を行うことができます。

新規インストールの場合、または必要なものがすべてあることを確認するために、このコマンドで十分です:

xcode-select --install

Condaをインストールする
#

私が見たほとんどのソリューションは、ソリューションを実行するために必要なパッケージと環境を管理するためにCondaを使用しています。任意のプラットフォームにインストールするためのCondaのガイドは非常に明確なので、ここの指示に従うことをお勧めします。ソフトウェアには2つの_フレーバー_があります:AnacondaとMiniconda。Minicondaは成功しませんでした。最終的にAnacondaを使用し、これで経験していた問題のいくつかが解決されました。さらに、このガイドに従いました。設定が完了したら、このコマンドを使用してインストールを確認できます(注:ターミナルアプリケーションを再起動することを忘れないでください):

conda

インストールプロセスが成功した場合、下の画像のようなものが表示されるはずです。

注:condaは、次のステップで環境を作成するときにpythonpipの両方のコマンドがターミナルで使用可能であることを要求します。Macではデフォルトがpython3とpip3であるため、おそらくエイリアスを作成する必要があります。

Rustをインストールする
#

他のガイドに従っているとき、プロセスの次の部分である環境の構築で常に問題が発生していました。多くの試行の後、システムにRustコンパイラが欠けていることがわかりました。ここのRustインストールガイドに従いましたが、これは次のコマンドを実行することになります:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
注:私が使用しているリポジトリのすべてのガイドに戻って、これが彼らの方法で必要かどうかを確認していません。Rustをインストールせずに次のステップを試して、問題が発生した場合は戻ってくることをためらわないでください。

環境を構築してオンにする
#

もう少しです。次に、ldm環境を作成し、画像の生成を開始する前にアクティブ化します。これを達成するために、このガイドの最初にクローンしたリポジトリのルートにcdし、次のコマンドを使用して環境を作成します:

PIP_EXISTS_ACTION=w CONDA_SUBDIR=osx-arm64 conda env create -f environment-mac.yml

このステップで問題が発生し、環境を再構築する必要がある場合、2つのオプションがあります:1) 以下のコマンドを使用する:

PIP_EXISTS_ACTION=w CONDA_SUBDIR=osx-arm64 conda env update -f environment-mac.yml

Intel Macの場合、コマンドは次のようになります:

PIP_EXISTS_ACTION=w CONDA_SUBDIR=osx-64 conda env create -f environment-mac.yml

または2) Anacondaのフォルダに移動し、環境を削除して、このセクションの元のコマンドで環境を作成します。いくつかのリポジトリを試した後、クラッタをクリーンアップするために2)に頼る必要がありました。

次に、環境をアクティブ化する時間です:

conda activate invokeai

最後のステップは、コマンドを使用してモデルをプリロードすることです:

python scripts/preload_models.py

楽しんで…
#

これでStable Diffusionで遊び始める時間です。実行します:

python scripts/invoke.py --full_precision --web

そしてlocalhost:9090でブラウザを開きます。

下のようなWebインターフェースが表示されるはずです。

最初のプロンプトを選んでモデルを試してみてください。すべての画像はoutput/img-samplesに保存されます。可能なさまざまなモデルと設定を探索してください。私は512x512の画像で、最終画像には約100サイクル(初期バリアントには5)、config scaleは7.5で実行しています。サンプラーとしてはDDIMを使用した結果を好みます。サンプラー間の違いといくつかの例についてはこのRedditスレッドで見つけることができます。

この記事を最初に書いて以来、InvokeAIのStable Diffusion実装には新しいバージョンがあります。上で説明したこと以外にも、探索できる多くの新機能があります。詳細はこちら

いくつかの例
#

これらは私のモデルの最初の実行からの画像のいくつかの例です。これらを機能させるにはある種の_アート_があると言わなければなりません。プロンプトの設計を始めるためのアイデアを得るためのリンクをいくつか残しておきます。

免責事項とその他のオプション
#

締めくくる前にいくつかのこと。MacとWindowsの両方にこれをインストールしましたが、M1 ProでのMac体験は全く悪くありませんでしたが、Nvidia RTX 2070を搭載したWindowsマシンでのパフォーマンスははるかに良かったです。このガイドで見る画像のほとんどはそのシステムから生成されました。バリアントをより速く試して、気に入ったサンプルからより多くの品質を得ることができたからです。

私が持っていた最初の目標の1つは、追加の訓練でモデルを拡張すること、つまり自分の顔をモデルに入れて遊ぶことでした。残念ながら、Macで訓練方法を実行できず、WindowsのGPUにはモデルを訓練するための適切な要件がなかったため、それは不可能でした。現在、そうするには少なくとも16GbのVRAMが必要なようです。

最終的に、Stable Diffusionモデルを実行するための多くのオプションがあります。ローカルのものもあれば、クラウド(例:Google Colab)のものもあります。これを試したいが実行できるマシンにアクセスできない場合は、イライラしないでください。おそらく使用できる他のソリューションがあります。

これが動作したら、ソーシャルメディアであなたの作品にタグ付けしてください:

The New AI Hype - この記事は連載の一部です
パート 3: この記事

関連記事