自作したデスクトップにどのLinuxを導入するか・・試行錯誤の結果、結局の所、Debian stableの最新版Debian 12.5に落ち着く。RXT4060Ti 16GBをグラフィックスエンジンとした自作PCのCPUはCore i5 13500。。実はこれ・・Intel内蔵グラフィックスを含んでおり、この点がLinuxセットアップ時の唯一の懸念事項でした。でもまぁ・・Linux起動時オプションでIntel内蔵グラフィックスを一時的に無効化してやればなんとかなるだろうとたかをくくっていたのだが。。
最新のUbuntu24.04 LTSをインストールする場合、インストールメディアにて起動時、safety graphicsが指定できるため、インストール自体はうまく行く。ただし、再起動すると、ブラックスクリーン^^;。したがって、起動時オプションでnomodesetを追加・・intel内蔵グラフィクスを無効化し、起動を継続・・途中まではうまく行くけどlogin画面まで到達できない。普通ならば、これでloginできるんだけど^^;・・解像度は差し置いて。。
うーん・・これはpre-install指示したドライバー等のせいか・・とも思ってこれを外してみても一緒。困りました。ターミナルモードでloginしてグラフィックス系ドライバーを力づくで総入れ替えしてもよかったんだけど、そもそもUbuntu 24.04自体、最初のアップデート24.04.1が出てくるまで信用できない。。
と・・言う事で、ここは鉄板のDebian 12を使用する事に決断。今回はstable diffusion Web UIをLinuxで動作させるって事が主目的なのでLinuxの種類は問わない。また、Debianの場合、ドライバー周辺でそう変な事はしていないし、レビジョンも12.5まで来ており、主要バグも収拾されているため、いける可能性は大・・と思った次第で。結果的には正解でした。
と・・言う事で、インストールしたてのDebian 12.5 Gnome editionにてstable diffusion Web UIのセットアップを行っていきます。
尚、今回は、Debian 12.5自体のインストール&セットアップ方法については触れません。Debian12のインストール方法に関しては、12.5になって若干違いが生じていますが、本ブログ以下を参考に。。。
→Debian 12 "Bookworm" ・・・クイックセットアップ
また、nvidiaドライバーがpre-installされないが故に、Debian 12.5 gnome editionのインストール直後は、低解像度になりますが、以下に説明するnvidiaドライバーインストール後は通常状態に戻ります。
1.stable diffusionの動作環境
1.1 ハードウェア(自作PC)
CPU:Core i5 13500
Memory: 32GB
Storage : 500GB SSD(1TB側はWindows 11 Proが動作)
Graphics:Nvidia GFORCE RTX 4060 Ti 16GB
1.2 ソフトウェア
① OS:Debian 12.5 Gnome edition
・カーネル:6.1シリーズ
・Gnome : バージョン43.9
・pre-installed Python : バージョン3.11.2
・Dispaly Server:X11
② stable diffusionで使用するwebブラウザ:Google Chrome
以下Googleサイトより、ChromeのDebパッケージをダウンロード・インストールし、デフォルト起動webブラウザにして、stable diffusionで使用します。具体的には、Gnomeの”既定のアプリケーション”にて”ウェブ”の箇所にGoogle Chromeをセットします。
→https://www.google.com/intl/ja_jp/chrome/
2.stable diffusionインストール&設定
2.1 Nvidiaドライバー&CUDAインストール
①リポジトリの追加
最初に、何にしても、RTX4060Ti 16GBをDebianで利用可能とするために、nvidiaドライバーをインストールします。また、stable diffusionに必要なCUDAも合わせてインストールします。
まず、Synapticパッケージマネージャを立ち上げ、上記インストールのため、Debian repositoryに追加作業を行います。
Synapticのメニューの”設定”→”リポジトリ”を選択し、以下の変更を行います。
↓
|
contribとnon-freeにチェック→閉じるボタンを押下 |
閉じるボタンを押下すると、リポジトリの更新作業が行われ、nvidiaドライバー、CUDAのインストールが可能となります。
②RTX 4060Ti 64GBの適正ドライバーの確認とインストール
まず、自作PCに搭載するRTX 4060Ti 16GBの適正ドライバーを確認します。このために、"nvidia-detect"をインストールし、これを使ってRTX4060Ti 16GBの適正ドライバーを特定します。
"nvidia-detect"のインストール(rootに切り替えて)→apt install nvidia-detect
デフォルトnvidiaドライバーが、RTX 4060Tiをサポートしている事がわかります。
次に、nvidiaドライバーインストール時にカーネルコンフィグが必要になるため、カーネルヘッダーをインストール(rootに切り替えて)します。
→apt install linux-headers-amd64
続けて、nvidiaドライバーと、firmware-misc-nonfreeをインストール(ルートに切り替えて)します。
→apt install nvidia-driver firmware-misc-nonfree
途中以下Windowがポップアップしますが、”了解”を押下し、処理を進めます。
以上インストール処理終了後再起動します。
再起動後、今度は、CUDAをインストール(ルートに切り替えて)します。
→apt install nvidia-cuda-toolkit nvidia-cuda-dev
以上でstable diffusionをDebian 12.5にインストールする前段階の処理は完了です。
ちなみに、nvidia-smiの出力結果は以下のような感じになります。
この時点では、まだsudoのセットアップを完了していませんでしたのでrootに切り替えてインストール等を行っていますが、以降はsudoのセットアップを行った後の記述となります(Debianパッケージのインストール等、root権限必要時は、以降、sudo ・・を使います)。
2.2 stable diffusion Web UIインストール&セットアップ
stable diffusion Web UI on Debian 12.5は、pythonの仮想環境(venv)使用が前提です。またWindowsでやったようなstable diffusionの動作要件であるpython(バージョン3.10.6)を自分でインストールするっていう作業は必要ありません。もともとDebian 12.5には違うバージョンのpythonがpre-installされているため、これやっちゃだめなんですけど。。
① 必要なDebian 12.5パッケージのインストール
最初にstable diffusion Web UIに必要な開発環境等をインストールします。
→sudo apt install python3-venv python3.11-dev git curl gnupg2 google-perftools
(curlとgnupg2は念の為入れています。当方が意外に使う場面も多いためという理由も有り)
<python3.11-dev>について殆どのユーザが、stable diffusion Web UIにControllNetをインストールすると思いますが、Debian 12.5上のstable diffusion Web UIにControllNetをインストール→WebUIの再起動中にControllNetの初期化フェーズが動きその中で行われるinsightfaceの自動インストールが失敗するため、これを手動でインストールする事を求められますが、その際にpython3.11-devが無いとinsightfaceのインストールが失敗します。。
②Python3仮想環境の作成と初期化
Python3の仮想環境を作成し初期化します。ここではホームディレクトリ直下の.sdに仮想環境を作ります(以下コマンドはホームディレクトリ直下で投入しています)。
→python3 -m venv ~.sd
また、仮想環境をactivateするためには、~.sd/bin/activateを実行しますが、これに実行権がついていないため、chmodを使って実行権を与えます。面倒なので+777でいきます。
→chmod +777 .sd/bin/activate
一度仮想環境をactivateします。
→.~sd/bin/activate
activateが成功したら、コマンド入力ラインの先頭に仮想環境名(ここでは.sd)が出力されます。これを確認したら、deactivateと入力し仮想環境から抜けます。
④webui.shの入手と実行(stable diffusion Web UIのインストール)
以下コマンドをホームディレクリ直下で実行
→wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
以上処理終了後、ホームディレクトリ直下にwebui.shが出来ていますのでこれを実行します。
その前に、これも実行権が無いため、とりあえず・・
→chmod +777 webui.sh
次にwebui.shを実行し、stable diffusion Web UIのインストールを行います。
→
./webui.shインストールが完了すると、stable diffusion Web UIが起動します。
ターミナル側をactiveにし、Ctrl+Cを打鍵→Web UIを終了させ、Chrome(上記図右側)を閉じます。
以上で、ホームディレクトリ直下のwebui.shはもう使用しませんので削除します。
④stable diffusion Web UI環境変数の設定とstable diffusion Web UI起動・終了方法
上記インストール完了後、ホームディレクトリ直下に"stable-diffusion-webui"ディレクトリが出来ており、ここにstable diffusion Web UIがクローンされています。Web UI環境変数設定後、Web UIは、ここと、先程作成した仮想環境.sdを使い動作する事となります。このstable-diffusion-webuiディレクトリ直下に、webui-user.shがあります。ここがWeb UI環境変数設定場所となります。これをText editor等を使い以下のように編集して保存します。
(以下”COMMANDLINE_ARGS”は、WebUI実行時引数となります。筆者は、グラフィクスメモリーが16GBあるため、--xformersぐらいしか指定していません。この引数はユーザ各人の環境により変動しますので、自分に最適なものを指定してください。また、他にも設定項目がありますが、今回は混乱を避けるため、必要最低限これだけやればいいか・・程度の環境設定例を示しています)
↓
#!/bin/bash
#########################################################
# Uncomment and change the variables below to your need:#
#########################################################
# Commandline arguments for webui.py,
export COMMANDLINE_ARGS="--xformers"
# python3 venv without trailing slash (defaults to ${install_dir}/${clone_dir}/venv)
venv_dir="$HOME/.sd"
# TCMalloc setting up
PATH=$PATH:/usr/sbin
###########################################
次にstable-diffusion-webuiディレクトリ直下にwebui.shが出来ていますが、これが、WebUI起動shellとなります。webui.shは、同じディレクトリにあるwebui-user.shで指定された環境変数を読み込み、stable diffusion Web UIを起動します。
このwebui.shに実行権が適正についているならば、ターミナルを用い、ホームディレクトリ直下のstable-diffusion-webuiディレクトリに入って、./webui.shとターミナルにて投入すると、stable diffusion Web UIが起動します。環境変数で指定した仮想環境に対してはWeb UI初回起動時いくつかインストールプロセスが走りますが2回目以降はありません。
終了方法はWindows版と同じです。ターミナル側でCtrl+C→次にChromeを落とす・・この順番で構いません。
2.3 stable diffusion Web UI本体のアップデート
これは簡単です。ターミナルにて、Web UIクローン先(ローカル)に入って git pullを投入するだけ。
2.4 その他(ControllNet導入時に発生するエラーの対処に関して)
stable diffusion Web UIを使うにあたって、殆どの方が導入するADetailer及びControlNetですが、Debian 12.5上で設定したWeb UIにControlNetを導入すると、insightfaceを自動的にインストールしようとしたが出来なかった・・ので手動でインストールしてねと怒られます。
この処理は実は簡単で、仮想環境.sdをactiveにして・・pip install insightface を投入するだけ、ただし、前述した通り
python3.11-devをインストールしてればねって事です(これが無いとインストールは失敗します)。
仮想環境をactivateするには前述したようなやり方もありますが、sourceを使っても出来ます。今回はsourceを使います。
ホームディレクトリ直下の.sdディレクトリに入り、以下コマンドを投入
→source bin/activate
仮想環境に入るとコマンド入力ライン先頭に仮想環境名が入る(今回は(.sd)が先頭に入る)→コマンド入力ラインに以下コマンドを投入
→pip install insightface
インストールが完了したら、deactiveを投入して仮想環境から抜ける。。
以降、stable diffusion Web UI起動時のControlNet初期化エラーは消えます。
3.最後に。。
さて今回のインストール&設定ですが、Python3の仮想環境構成は、stable diffusion Web UIのクローン先(stable-diffusion-webuiディレクトリ)の中にもあります。(名前は確かvenvです)。ここを使っても良かったのですが、webui-user.shの中の環境変数の説明を見る限り、どこに作ってもいいんじゃないか・・と思い、オリジナルは残した感じで、今回は、ホームディレクトリ直下の.sdとして作っています。
stable diffusion Web UIに関してはWindowsよりもDebian 12.5の方がレスポンスは良いので◎。また、上位グラフィックスエンジンと比較すると演算スピードとしては劣るものの、当方の自作PCに積んでいるRTX4060TiのVRAM 16Gっていうメリットはstable diffusion Web UIを使うにあたって極めてでかいというのも痛感しました。RTX 4060Ti 16GBはゲーム的にはまず不要なため、結構不人気という事実もあり。。^^;。要は使いみちって事でしょうか。。
と・・言うことで今回の投稿はここまでとします。。
コメント
コメントを投稿