見出し画像

Stable Diffusion webUI A1111 v1.10をGPUなしで動かす

以前できたので、アップグレードした今回もできるか実験。


1. Stable Diffusion webUI A1111 v1.10の簡単な説明

Stable Diffusion webUI A1111は、AIを使って画像を生成するためのインターフェースです。ユーザーが入力したテキストに基づいて、AIが新しい画像を作り出します。このプロセスは「テキストから画像への変換」と呼ばれ、非常に計算量が多い作業です。そのため、特にグラフィックス処理能力(GPU)が重要です。

2. ChatGPTとの違い

Stable DiffusionとChatGPTは、どちらもAI技術を利用していますが、目的と処理内容が異なります。

  • 目的:

    • Stable Diffusion: テキストを入力すると、そのテキストに基づいて画像を生成します。主に視覚的な創造物を作り出すために使用されます。

    • ChatGPT: テキストを入力すると、そのテキストに応じた対話や情報を提供する文章を生成します。主に文章や会話の生成を目的としています。

  • 処理内容:

    • Stable Diffusion: 非常に高い計算能力を必要とする画像生成処理を行います。これは複雑な数学的モデルを使って、ピクセル単位で新しい画像を作り上げるため、特に強力なGPUが必要です。

    • ChatGPT: 主にテキストのパターンを学習して、自然な文章や対話を生成します。CPUの性能に依存しますが、画像処理ほど高い計算能力を必要としません。


3. Stable Diffusionを動かすために必要なスペック

Stable Diffusionを快適に動かすには、以下のようなスペックが推奨されます。

  • CPU: Intel Core i5やi7、またはAMD Ryzen 5以上。複数のコアと高いクロック速度を持つCPUが望ましいですが、GPUの性能が最も重要です。

  • GPU: NVIDIA RTX 3060、3070、3080などの専用グラフィックスカードが必要です。画像生成はGPUが中心となって処理を行うため、強力なGPUが必要です。

  • RAM: 16GB以上が推奨されます。複数のタスクをスムーズに実行するために十分なメモリが必要です。

  • ストレージ: 高速なSSD(特にNVMe SSD)が推奨されます。大量のデータを迅速に処理するため、ストレージの速度も重要です。

  • OS: 最新のWindows、Linux、またはmacOSが推奨されます。

4. わたしのパソコンのスペックについて

わたしのPCスペックを見てみましょう:

  • CPU: Intel 12th Gen Core i5-12400。6つのコアと12のスレッドを持つ中性能のCPUです。Stable Diffusionを動かすには適しています。

  • RAM: 16GB。メモリは十分であり、複数のアプリケーションを同時に開くことも可能です。

  • OS: Windows 11 Home。最新のOSであり、Stable Diffusionも問題なく動作します。

  • GPU: Intel(R) UHD Graphics 730。これはCPUに内蔵されたグラフィックスで、日常的なタスクには十分ですが、Stable Diffusionのような高負荷な画像生成には性能が不足しています。


5. 起動ファイルの工夫

@echo off
set PYTHON=python
set GIT=git
set VENV_DIR=venv
set COMMANDLINE_ARGS=--lowvram --disable-nan-check --skip-torch-cuda-test --no-half --opt-split-attention --medvram --always-batch-cond-uncond

:: 仮想環境をアクティベート
call %VENV_DIR%\Scripts\activate.bat

:: Web UIを起動
%PYTHON% launch.py %COMMANDLINE_ARGS%

:: 仮想環境をディアクティベート
deactivate

(説明)

  • --lowvram:

    • メモリ使用量を抑える設定です。GPUのVRAMが少ない場合に有効です。Intel UHD Graphics 730のような内蔵グラフィックスでは、特に重要です。

  • --disable-nan-check:

    • 数値計算でのNaN(Not a Number)チェックを無効にします。これにより、若干のパフォーマンス向上が期待できますが、リスクも伴います。

  • --skip-torch-cuda-test:

    • PyTorchがCUDA(NVIDIAのGPUを使用するための技術)を使用できるかどうかのテストをスキップします。内蔵GPUやCUDA非対応の環境で役立ちます。

  • --no-half:

    • 半精度浮動小数点数(FP16)ではなく、単精度浮動小数点数(FP32)で計算を行います。これにより、VRAMの消費が増えますが、互換性の問題が減ります。

  • --opt-split-attention:

    • Stable Diffusionのモデル内で使用されるアテンションメカニズムを最適化し、メモリ消費を抑えるための設定です。

  • --medvram:

    • --lowvramと同様にVRAMの使用量を抑えるオプションですが、よりバランスの取れたメモリ管理を行います。--lowvramと併用することで、特にVRAMが非常に少ない場合に安定性が向上する可能性があります。

  • --always-batch-cond-uncond:

    • このオプションは、バッチ処理時に条件付きと無条件の推論を強制的に一緒に行う設定です。これにより、VRAMの使用量を減らしつつ、処理の安定性を向上させることができます。


6. わたしのPCにおける動作予測

このスクリプトは、VRAMが少ない環境でStable Diffusionを動作させるために最適化されています。Intel UHD Graphics 730のような内蔵グラフィックスでは、VRAMが限られているため、これらの設定は非常に重要です。

  • 起動の成功率:

    • 上記の設定により、メモリ使用量を抑えてStable Diffusionを動かそうとしていますが、内蔵グラフィックスではパフォーマンスが低いため、動作はかなり遅くなる可能性があります。

  • パフォーマンス:

    • 画像生成の速度は非常に遅いか、処理に失敗する可能性もあります。軽い設定で試すか、より強力なGPUを使用することが推奨されます。

7.結果

6分50秒かかりました。


このくらい圧迫します。もっと整理はできるかなと。

8.感想

1枚10分以内で作れるように、拡張機能や設定を調整すれば、
前のようにある程度の自由度で奇麗な絵を作れるかな。
ただ、何が進化したのかはまだ実感できず。
Dall-eを使っちゃうかな~。

Thank you for your support. We are the world.