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

SDXL 0.9のデモをWindows PCで試す(VRAM 8GB)

    Last update 07-08-2023


    【07-15-2023 追記】
     高性能なUIにて、SDXL 0.9モデルが実験的にサポートされています。下記の記事を参照してください。12GB以上のVRAMが必要かもしれません。



     本記事は下記の情報を参考に、少しだけアレンジしています。なお、細かい説明を若干省いていますのでご了承ください。

    【リポジトリ】
    https://github.com/FurkanGozukara/stable-diffusion-xl-demo
    【解説動画】
    Stable Diffusion XL (SDXL) Locally On Your PC - 8GB VRAM - Easy Tutorial With Automatic Installer
    https://www.youtube.com/watch?v=__7VNmnn5iU 
    【チュートリアル】
    https://github.com/FurkanGozukara/Stable-Diffusion/blob/main/Tutorials/How-To-Use-Stable-Diffusion-SDXL-Locally-And-Also-In-Google-Colab.md



    ▼ 環境

     インストールから実行まで行うために必要な環境(大ざっぱ)です。

    • Geforce RTX 2xxx以降(VRAM 8GB以上)

    • Python 3.10、CUDA Toolkit 11.8、Gitがインストール済み

    • なるべく高速なSSD

    • なるべく高速なインターネット回線



    ▼ インストールの手順

    事前の準備

     https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9 へアクセスして申請を行い、許可されたら https://huggingface.co/settings/tokens よりアクセストークンを取得してください。

    環境の構築

     作業ディレクトリを「C:\aiwork」としていますので、適宜読み替えてください。コマンド プロンプトを開いて、下記のコマンドを順に実行してください。torchの行とrequirementsの行でそれぞれ、数GB程度のダウンロードが発生します。

    cd \aiwork
    
    git clone https://github.com/FurkanGozukara/stable-diffusion-xl-demo
    cd stable-diffusion-xl-demo
    
    python -m venv venv
    venv\Scripts\activate
    (ここで行頭に (venv) が付いていることを確認する)
    
    python.exe -m pip install --upgrade pip
    
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
    pip install xformers==0.0.21.dev557
    
    pip install -r requirements2.txt
    
    deactivate

     ファイル「stable-diffusion-xl-demo\app2.py」をテキストエディタで開いて、Hugging Faceのアクセストークンを入力してください(17行目付近)。

    access_token = "your_token"

    起動用バッチファイルの作成

     下記の内容で、バッチファイル「C:\aiwork\sdxldemo.bat」を作成してください。オリジナルとは少しだけ内容が異なります。

    @echo off
    
    call stable-diffusion-xl-demo\venv\Scripts\activate.bat
    
    set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128
    set ENABLE_REFINER=false
    
    python stable-diffusion-xl-demo\app2.py
    deactivate
    
    pause

     なお、VRAMが潤沢にある環境の場合は、下記の設定に差し替えるとREFINERを有効にできます。

    set PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:256
    set ENABLE_REFINER=true



    ▼ 実行の手順

    起動する

     先ほどの手順の続きです。コマンド プロンプトを開いて(先ほど使用したものでも構いません)、下記のコマンドにて起動してください。

    cd \aiwork
    sdxldemo

     初回は大量のダウンロードが始まるので、しばらくかかります。起動が完了したら下記のメッセージが表示されますので、指示されたURLへアクセスしてください。

    Running on local URL:  http://127.0.0.1:7860
    
    To create a public link, set `share=True` in `launch()`.

    推論を行う

     表現したい文をprompt欄(必要があればnegative promptも)に入力して、「Generate image」をクリックしてください。すぐに思いつかない場合は、下の方にある「Examples」のどれかをクリックしてみてください。

    画像
    一度に生成する枚数も設定できる

     生成される画像のサイズは1024x1024固定で、RTX 3060では1枚あたりの生成に45秒程度かかりました(デフォルトの場合)。画像は「stable-diffusion-xl-demo\outputs」に保存されます。

    画像
    生成した画像が保存されている

     その他の設定は「Advanced settings」にあります。「Images」は1回で生成する枚数で、「CUDA out of memory」のエラーが出ない範囲で上げることができます。「Refiner Strengs」は、「set ENABLE_REFINER=true」の場合のみ設定できます。

    画像
    その他の設定(REFINERの設定を含む)

    終了する

     やめる場合は、コマンド プロンプトのウインドウで「Ctrl + C」を押してください。おもむろにウインドウを閉じても構いません。



    ▼ メモ

    アンインストールの手順

     もし、「stable-diffusion-xl-demo\outputs」の中身が必要であれば移動してください。その後、実行を終了した状態で「stable-diffusion-xl-demo」のディレクトリを削除してください。

    キャッシュについて

     Hugging Faceからダウンロードしたデータは、「C:\Users\(ユーザー名)\.cache\huggingface」内にキャッシュされます。たまっていくので、内容を確認しながら適宜削除することをおすすめします。削除してしまっても、元データが消えない限りは必要時に再度ダウンロードされます。



    ▼ 古いメモ

     公式の方法で推論を行う場合の手順です。VRAMが(12GBでも)不足してしまい実行できなかったので、動作の確認はとれていません。

    情報

    インストール~実行

     コマンド プロンプト上で作業を行ってください。作業ディレクトリ(下記例では「C:\aiwork」)は適宜変更してください。

    cd \aiwork
    
    git clone https://github.com/Stability-AI/generative-models
    cd generative-models
    python -m venv venv
    venv\Scripts\activate
    python.exe -m pip install --upgrade pip
    pip install wheel
    
    CUDA用のTorch(先に入れておかないとCPU版が入る)
    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
    
    Windows用のTriton(標準では存在しない模様)
    pip install https://huggingface.co/r4ziel/xformers_pre_built/resolve/main/triton-2.0.0-cp310-cp310-win_amd64.whl
    
    pip install -r requirements_pt2.txt
    
    ここまでの間にcheckpointsのディレクトリを作ってモデルを入れておく
    
    実行後ブラウザが上がるのでしばらく待つ(ポート番号は任意の値)
    streamlit run scripts/demo/sampling.py --server.port 8888



    ▼ その他

     私が書いた他の記事は、メニューよりたどってください。

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

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

    あなたへのおすすめ