見出し画像

機械学習モデルDiffusersのローカル環境立ち上げてみた

この記事はMACに画像生成A IのStable Diffusionを利用するために必要なDiffusersをインストールして、画像生成してみた記録となります。

この記事を読めばMACでDiffusersを動作させて画像生成させる方法がわかります。


Diffusersの立ち上げ条件

Diffusersをローカル環境で立ち上げるために必要な条件は次の5点です。

  1. Python:オープンソースのプログラム言語。Diffusersを実行させるために必要。 Python 3.6系、Python 3.7系、Python 3.8系、Python 3.9系のいずれかを利用する。なぜなら、Diffusers においてこれらのバージョンで動作を保証しているためである。

  2. venvの仮想環境:Pythonの機能の1つで、仮想環境を構築できるソフトウェア。Pythonをインストールすれば既にインストールされている。ここではvenvの仮想環境の立ち上げ方を説明している。Diffusersを実行する環境として必要

  3. Diffusers:画像や音声の機械学習が可能なPythonのライブラリ。画像や音声を機械学習させる時に必要で、画像や音声を学習させた拡散モデルをPython経由で読み込むかたちで利用

  4. Transformers:深層学習モデル。Diffusersが機械学習させる時に必要。

  5. Rust:メモリなどに特化したプログラム言語で、Transformersをインストールするために必要


Pythonによるvenv仮想環境の作成

Pythonに組み込まれている標準モジュールで仮想環境を作成できます。そのため、特別なにかをインストールする必要はありません。

まずMACの標準ソフトである「ターミナル」を起動し「cd」コマンドで移動します。次の「/path」にはたとえばユーザネームがhanakoで、デスクトップにStableDiffusionというフォルダを作りそこに仮想環境を立ち上げたい場合は、「/Users/hanako/Desktop/StableDiffusion」と打ち込みます。

cd /path

次に仮想環境の名前を決めていきます。ここではmyVenvという名前にします。

python3 -m venv myVenv

するとcdコマンドで移動した場所に「myVenv」というフォルダが生成されていることがわかります。

「myVenv」フォルダを確認すると色々と作成されていることがわかります。


Diffusersのインストール

まずvenvによる仮想環境の有効化を行います。先ほどの「/path」のまま次のコマンドをターミナルで実行します。

source myVenv/bin/activate

するとターミナルの行の表示の先頭に(myVenv)が表示され、仮想環境が有効化されていることがわかります。

仮想環境が立ち上がったので、Diffusersのインストールを行なっていきます。PIPを利用して行なっていくのですが、初めにPIPを最新の状態にします。ターミナルで次のコマンドを実行してください。

python -m pip install --upgrade pip setuptools

すると次のようなログが出てPIPが更新されます。

次にターミナルの行の先頭に「(仮想環境名)」が表示されている状態で、ターミナルで次のコマンドを実行してください。

pip install diffusers

すると次のようなログが表示されます。(一部抜粋)

Diffusersがインストールされたか確認していきましょう。次のコマンドをターミナルで打ち込みます。

pip list

するとPIP経由でインストールされたライブラリが表示され、その中にdiffusersがあることが確認できます。

最後に仮想環境を終了させます。ターミナルで次のコマンドを打ちこんでください。

 deactivate

すると行の先頭についていた(仮想環境名)がなくなり仮想環境が終了できました。

Transformersのインストール

ターミナルで次のコマンドを実行してください。

pip install transformers

しかし次のようにエラーが出ました。「ERROR: Could not build wheels for tokenizers, which is required to install pyproject.toml-based projects」とあります。



Rustのインストール

プログラミング言語rustをインストールしていきます。ターミナルで次のコマンドを打ち込みます。

brew install rustup-init

すると次のようなログが表示されます。

次にターミナルで次のコマンドを打ち込み、初期セットアップを行なっていきます。

rustup-init 

すると次のようなログが表示されます。

インストール方法を1~3の中から選択するかたちとなるのでターミナルに次のように打ち込みます。

1

ログが表示されてrustのインストールは完了です。

次にrestをアップデートさせます。

rustup update

ログが表示されます。

最後に改めてtransformersをインストールします。

pip install transformers

次のようなログが表示されて「Successfully」がありtransformersがインストールされました。

Diffusersの動作確認

次に「testDiffusers.py」というファイルを作成し、次の内容を記載してください。

from diffusers import DiffusionPipeline
model_id = "CompVis/ldm-text2im-large-256"
load model and scheduler
ldm = DiffusionPipeline.from_pretrained(model_id)
run pipeline in inference (sample random noise and denoise)
prompt = "A painting of a squirrel eating a burger"
images = ldm([prompt], num_inference_steps=50, eta=0.3, guidance_scale=6)["sample"]
save images
for idx, image in enumerate(images):
image.save(f"squirrel-{idx}.png")

次に仮想環境を有効にします。「myVenv」と記載があるところは任意の仮想環境名に変更してください。ターミナルの行の先頭に(myVenv)など仮想環境名が表示され仮想環境を立ち上げることができます。

source myVenv/bin/activate

次に作成したpythonファイルを仮想環境内で実行していきます。次のコマンドをターミナルで打ち込んでください。

python testDiffusers.py

すると次のようなログが表示されます。最初に実行すると時間がかかるのですが、これは学習済みのモデルをダウンロードしているためです。2回目以降はこの処理は省略されます。

なお、2回目以降のログは次のようになります。

すると次のように「squirrel-0.png」という名前で画像が生成されます。

再び「python testDiffusers.py」を打ち込んでみましょう。すると前回とは異なった画像が生成されました。

「testDiffusers.py」の「prompt = "A painting of a squirrel eating a burger"」という部分の「squirrel」を「cat」に、「burger」を「apple」を「fish」に変更してターミナルで再び「python testDiffusers.py」を打ち込んでみましょう。すると魚を食べている猫の画像が生成されました。

画像の生成が終わった後は、仮想環境を終了させることを忘れずに行なってください。仮想環境を終了させるにはターミナルで次のコマンドを打ちこんでください。

 deactivate

すると行の先頭についていた(仮想環境名)がなくなり仮想環境が終了できます。

この記事が気に入ったらサポートをしてみませんか?