メインコンテンツへスキップ
見出し画像

Windows PC上でxFormersのパッケージをインストールする手順

    ※現在はxFomersのパッケージが提供されており、特段の理由が無ければ本記事の手順は必要ありません。

    1. 概要

     Windows PC上に構築したPythonの環境でMeta ResearchのxFormersを利用する際、多くの方はパッケージをインストールするだけで済むかもしれないことがわかりました(Kohya.S氏からの情報、感謝!)。本記事ではその手順を説明します。

     なお、パッケージが適用できなかった場合や、正しく動作しなかった場合は、自分でビルドする必要があります。以下の記事を参考にしてください。

    2. 環境の確認

     検証の結果、「xFormersのパッケージをインストールする環境でのPyTorch(torch)のバージョン」と「xFormersのパッケージをビルドした環境でのPyTorchのバージョン」が合っていないと、正常に動作しない恐れがあるようです。そのため、まずは前者を調べます。

     コマンド プロンプトを開き、xFormersをインストールする環境(仮想環境であれば先に入る必要あり)にて、コマンド「pip freeze | find "torch"」を実行してください。

    #実行例
    \aiwork> pip freeze | find "torch"
    pytorch-lightning==1.8.4.post0
    torch==1.12.1+cu113
    torchmetrics==0.11.0
    torchvision==0.13.1+cu113

     上記の例では「torch==1.12.1+cu113」の記述がありますので、「CUDA 11.3用のtorch 1.12.1」がインストールされていることがわかります。

    2. パッケージの入手及びインストール

     先ほど調べた環境に当てはまる項目を参照してください。ただし、項目は執筆時点のものですので、将来的に変わる可能性があります。なお、項目がない場合は自分でビルドする必要があります。

    自分でビルドする場合

     冒頭で紹介した別の記事を参照してください。

    CUDA 11.3用torch 1.12.1の場合

     AUTOMATIC1111氏のStable Diffusion web UI(以下web UI)が使用するパッケージが使えます。以下のコマンドでインストールしてください(オプションは状況に応じて変更)。

    pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl

     こちらはPython 3.10専用で、GeForce 10~30 seriesが対象とのことです。現時点では、WebUIはCUDA 11.3用のtorch 1.12.1を使用しているようですが、将来的に変更される可能性があります。参考まで、拡張機能のDreamBoothを入れた場合は、CUDA 11.6用のtorch 1.12.1に差し替える必要があります(バージョンが同じなので動作に影響はありません)。

    CUDA 11.6用torch 1.13.1、
    CUDA 11.7用torch 1.13.1の場合

     12/15/2022の時点において、下記で紹介したリンク先にビルド済みパッケージが無いため、自分でビルドする必要があります。冒頭で紹介した別の記事を参照してください。

    CUDA 11.6用torch 1.12.1、
    CUDA 11.6用torch 1.13.0、
    CUDA 11.7用torch 1.13.0の場合

     現時点では、Python 3.7~3.10用のパッケージが以下のリンク先に掲載されています。GitHubにログインした状態でアクセスしてください(アカウントは無料で作成可)。ちなみにUbuntu用も置いてあるようです。

    https://github.com/facebookresearch/xformers/actions/runs/3566916718

     下にスクロールすると、以下の画像のようなパッケージの一覧が出てきます。見つからない場合はJobsが選択されている状態だと思われますので、左側のリストの上にある「Summary」を選択してください。 

    画像
    パッケージの一覧(抜粋)

     上記の画像を例にとると、「py3.10」がPython 3.10用を指し、続いて「1.12.1」「1.13.0」がtorchのバージョン、それから「cu116」「cu117」がCUDA 1.16用や1.17用を指しています。必要なパッケージが見つかったらファイル名のリンクからダウンロードしてください。ログインしていない場合はリンクがありませんので、ログインしてください。

     ダウンロードしたzipファイルの中にwhlファイル(パッケージ)があるので、解凍して以下のコマンドでインストールしてください(オプションは状況に応じて変更)。whlファイルの場所やファイル名が異なる場合は、適宜読み替えてください。

    pip install -U -I --no-deps \aiwork\xformers-0.0.15.dev0+303e613.d20221128-cp310-cp310-win_amd64.whl

     インストールが終わると、作業はすべて完了です。

    AUTOMATIC1111版Stable Diffusion web UIにxFormersをインストールする手順

     以下のコマンド例を参考にインストールしてください。web UIやwhlファイルのディレクトリ、ファイル名が異なる場合は適宜読み替えてください。

    cd stable-diffusion-webui
    venv\Scripts\activate
    pip uninstall xformers
    pip install --no-deps \aiwork\xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl
    deactivate

     詳細は、「1. 概要」で紹介した記事の「web UIにxFormersを新規インストールする手順」を確認してください。

    3. 関連情報

    補足

     検証時の環境ですが、OSはWindows 10(22H2)、Pythonは3.10.9、CUDAは11.6.2を使用しました。
     確認した限りでは、「xFormersのパッケージをインストールする環境でのPyTorch(torch)のバージョン」と「xFormersのパッケージをビルドした環境でのPyTorchのバージョン」の相違のみが問題となりました。片方のPyTorchがCUDA 11.3用で、もう片方が11.6用であっても、PyTorchのバージョンが同じであれば問題は起きませんでした。もし問題が起きるようであれば統一してください。

    4. twitterの連絡先

     noteのアカウントはメインの@Mayu_Hiraizumiに紐付けていますが、記事に関することはサブアカウントの@riddi0908までお願いします。

     
     
    5060Ti (16GB) と 3060 (12GB) を所持。記載が無い限り文章は手書きです。記事に関することは X の riddi0908 までお願いします。質問箱は気まぐれにお返事します。

    あなたへのおすすめ