Stable-diffusion - そのインストールから始まる喜びと苦悩 (安定拡散 - そのインストールから始まる喜びと苦悩)

国内の資料は、基本的には秋葉さんのワンクリックデプロイパッケージを推奨されています。すべてPythonベースのオープンソースプロジェクトなので、デプロイもそれほど複雑ではないだろうと考え、ゼロから試してみることにしました。

AI生成画像に苦労したので、意図的にグラフィックカードを変更しました。入門版の3060 12gです。7年勤めた960が栄光のうちに退役しました。

コアの pytorch cuda のインストールですが、以前 python ゲーム補助スクリプトを書いた際にローカルにインストールしたことがありましたが、やはり問題が発生しました。cuda の暗号化が常に有効にならないという問題です。

待処理

  1. 文章構造を再計画し、まず PyTorch を紹介する。バージョン対応関係とバージョン確認方法
  2. ローカル環境から PyTorch をゼロから新規に作成・デプロイする方法
  3. Stable Diffusion の翻訳稿を作成する(https://stable-diffusion-art.com/install-windows/ から開始)
  4. 参照資料の整理

ステップ

中国語で検索すると、手順を追ったインストール方法が見つかりにくい可能性があります。Google で英語で検索すると、同様のチュートリアルがたくさんあります。ゼロから始めるものばかりです。いくつか説明した後、git のインストールが必要であること、そして python のインストールについても言及します。その後は、リポジトリをダウンロードし、直接スクリプトをダブルクリックして完了となります。 https://github.com/AUTOMATIC1111/stable-diffusion-webui 詳細な使用方法や疑問点については、issues を参照してください。https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki なぜ誰もこのリポジトリが何をするものなのか説明していないのかわかりません。名前からして、それはインターフェース制御台であり、より簡単に使用できるように設計されていることがわかります。インストール時には、現在のフォルダに Python 仮想環境があるかどうかを自動的に認識し、存在する場合は現在のパスの python を使用します。 初心者の方には、https://stable-diffusion-art.com/install-windows/ を参照することをお勧めします。

PyTorch

https://pytorch.org/get-started/locally/

今日は私が話したいのは、まず彼らの手順をそのまま実行しないでください。Pythonはrequirementファイルを使って依存ライブラリをインストールします。これは小さな問題です。重要なのはあなたのGPUのバージョンとドライバーのバージョンがPyTorchに対応していることです。これは多くの人が対応関係を紹介しているので、ネットで調べてみればわかります。 参考:https://blog.csdn.net/weixin_40660408/article/details/129896700

仮想環境を作成するのは、空の仮想環境を作り、その中でまず公式サイトのスクリプトを実行してPyTorchをインストールすることです。

python -c "import torch; print(torch.version.cuda)"
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"

上記の2つのスクリプトで、必要なCUDAバージョンを確認したり、インストールが成功したかどうかを確認したりできます。

ここでは、派手な操作をするのではなく、まず公式サイトのロジックをそのままコピーしてインストールすることをお勧めします。直接pipを使ってインストールすると、PyTorchが失敗する可能性や、CUDAがアクティブにならない可能性があります。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

ポイントは、フォルダのパスに不要なものが含まれていないことです。そうでないと、PyTorchを使用できなくなる可能性があります。

何度もインストールを試みたり、公式のインストールファイルをダウンロードして手動でインストールしたりしました。2.0バージョンをアップグレードしたいと考えていましたが、公式ドキュメントでは2.0がより高速であると記載されています。しかし、以前はあまり使用していなかったので、Pythonのバージョンやそれが影響するかどうか分からずでした。また、公式マニュアルには3.8バージョンの推奨があることが書かれていました。これにより小さな競合が発生しました。以前、ワンクリックインストールパッケージを使用しており、その中に3.10バージョンが含まれていました。最終的には、空のフォルダを作成し、仮想環境を作成して、PyTorchが正しくインストールされていることを確認してから、インストールを開始しました。

その後、インストールされた仮想環境をWeb UIのフォルダに移動しました。この状態でスクリプトを実行して、他の依存関係の問題は解決されました。

移動後、次のコマンドを実行する必要があります:python -m pip install --upgrade --force-reinstall pip pipを修復します。

おそらく、これは非常に奇妙に見えるかもしれませんが、この場所でかなり時間を費やしました。なぜなら、常にPyTorchを正しく認識できなかったからです。すべての干渉要因を除外するために、まずそれをインストールし、次に他の依存ライブラリをインストールすることを思いつきました。

Xformers

有効化することを推奨します。画像生成を高速化し、既存の占有量を削減できますが、副作用として、同じパラメータセットで生成される画像は比較的安定しません

stable-diffusion-webui:Xformers huggingface optimization | 100.00% | 2分57秒33 | 7440MiB / 10058MiB | 12288MiB / 12288MiB (100.0%) |

Xformers

最適化比率 時間 Torch 活性/予約メモリ システムVRAM
51.02% 1分29秒21 4547/7164 MiB 9298/12288 MiB (75.67%)

Xformers

((masterpiece)),((best quality)),((high detail)),((realistic,))
産業時代の都市、中央に深い峡谷、中国式の街並み、バザール、橋、(雨の日:1.2)、(スチームパンク:0.8)、中国建築
ネガティブプロンプト:nsfw,((カウボーイ)),(((陰毛))), ((((陰毛の髪の毛))))スケッチ、重複、醜い、大きな目、テキスト、ロゴ、モノクロ、最悪の顔、(悪いおよび変異した手:1.3)、(最悪の品質:2.0)、(低品質:2.0)、(ぼやけ:2.0)、ホラー、ジオメトリ、bad_prompt、(悪い手)、(指が足りない)、複数の四肢、悪い解剖学、(交差した指:1.2)、醜い指、(追加の指と手と足と腕:1.4)、冠髪飾り、(2girl)、(変形した指:1.2)、(長い指:1.2)、サキュバスの翼、角、サキュバスの角、サキュバスのヘアスタイル、(悪いアーティストアニメ)、悪いアーティスト、悪い手、借りたキャラクター、テキスト重視、ウォーターマーク、サンプルウォーターマーク、キャラクターウォーターマーク、Lofterユーザー名、写真の日付ウォーターマーク、映画ポスター、雑誌表紙、ジャーナル、表紙、表紙ページ、道行表、アルバム表紙、漫画表紙、ブランド名の模倣、EasyNegative、タイツ、シルクストッキング、ショート
ステップ数:35、サンプラー:DPM adaptive、CFGスケール:5.5、シード:2223996555、サイズ:1088x1088、モデルハッシュ:543bcbc212、モデル:base_Anything-V3.0-pruned、Clipスキップ:2、ENSD:31337

終わりに

なぜデプロイメントパッケージを推奨しなかったのかというと、そのパッケージには作者が個人的にカスタマイズした設定が含まれており、公式のオリジナルのものとは異なっているためです。もしあなたが初心者であれば、なぜそれらのパラメータが最適なのか分からないかもしれません。しかし、使用していくうちに公式のマニュアルを参照することで、どのパラメータを調整する必要があるかを知ることができます。

グラフィックボードの選択

データマネーマイニングの後、グラフィックボードの価格は比較的高くありません。一般的なエントリーレベルのプレイヤーが、30603060Tiの間で選択する場合、一般的には大容量12G版の3060が推奨されます。なぜなら、より高い解像度の画像を生成できるからです。なぜ高い解像度が必要なのでしょうか?それは、生成時に解像度を上げることによって、生成される画像がより鮮明で詳細になるためです。もしあなたが小さな画像を生成したいのであれば、8GのVRAMでも十分です。

さらに、高解像度アップスケーリングオプションがあり、ディテールを強調し、画面の詳細さを豊かにすることも、より多くのVRAMが必要です。

以下はNVIDIA GeForce GTX 970、GeForce RTX 3060 Ti、GeForce RTX 3060、GeForce RTX 3080およびGeForce RTX 3080 Tiの単精度(FP32)、半精度(FP16)および双精度(FP64)浮動小数点演算能力の仕様一覧表:

| GeForce GTX 970 | 2014 | 3.49 | 87.2 | 0.109 |

グラフィックボードの選択

グラフィックボードモデル リリース年 単精度浮動小数点演算能力 (TFLOPS) 半精度浮動小数点演算能力 (TFLOPS) 双精度浮動小数点演算能力 (TFLOPS)
GeForce RTX 3060 Ti 2020 16.2 32.4 0.51

グラフィックボードの選択

グラフィックボードモデル リリース年 単精度浮動小数点演算能力 (TFLOPS) 半精度浮動小数点演算能力 (TFLOPS) 双精度浮動小数点演算能力 (TFLOPS)
GeForce RTX 3060 2021 12.7 25.4 0.39

グラフィックボードの選択

グラフィックボードモデル リリース年 単精度浮動小数点演算能力 (TFLOPS) 半精度浮動小数点演算能力 (TFLOPS) 双精度浮動小数点演算能力 (TFLOPS)
GeForce RTX 3080 2020 29.8 58.9 0.93

グラフィックボードの選択

グラフィックボードモデル リリース年 単精度浮動小数点演算能力 (TFLOPS) 半精度浮動小数点演算能力 (TFLOPS) 双精度浮動小数点演算能力 (TFLOPS)
GeForce RTX 3080 Ti 2021 34.8 68.7 1.36

显卡的選択

各種グラフィックカード性能テストデータ

更新

半年ごとに、改めてインストール手順を整理したり、基礎概念を解説したりする予定でしたが、一般的にAIイラストを生成する場合、結局はベテランユーザーが提供した画像パラメータを調整したり、既存の画像をフォーマットして再レンダリングしたりすることになるという事実に気づきました。

以前、AIを使ってミニプログラムのUI素材を描画するというプロジェクトがありましたが、半日かけても期待通りの結果が得られず、結局公式のミニプログラムから画像素材を直接ダウンロードする方が良いという結論に至りました。

金融ITプログラマーのいじくり回しと日常のつぶやき
Hugo で構築されています。
テーマ StackJimmy によって設計されています。