Stable Diffusionのモデルデータはどれも数GBの容量を必要とするため、ストレージがすぐいっぱいになってしまいます。
「モデルデータを移して別のディレクトリから取り込めたら…」と思ったことはないでしょうか?
シンボリックリンクやコマンドライン引数を使えば、モデルデータを別のディレクトリから取り込むことができます。
今回は別のディレクトリからモデルデータを取り込む方法について、詳しく解説します。
ストレージを分けて余裕を持たせたいという方は、ぜひ参考にしてみてください。
なお、まだStable Diffusionをインストールしていない方は、以下の記事を参考にしてみてください。
今回シンボリックリンクの作成については、こちらの記事を参考にさせていただきました。
https://yuuyuublog.org/sd_symboliclink/
Stable Diffusionのモデルデータを別のディレクトリから取り込む方法は?
モデルデータを別のディレクトリに移してから取り込むには以下の方法があります。
- シンボリックリンク
- コマンドライン引数で指定
シンボリックリンクとは?
シンボリックリンクはファイルやディレクトリを参照するための仮想リンクです。
通常Stable Diffusionではモデルを"stable-diffusion-webui\models\Stable-diffusion"に入れて使用します。
ただストレージの容量によって、モデルデータを別のストレージに移したい場合もあります。
そんなときに便利なのがこの「シンボリックリンク」です。
モデルデータを別のディレクトリに移動しても仮想リンクから読み込むことができ、ストレージに余裕を持たせることが可能です。
コマンドライン引数とは?
コマンドライン引数はStable Diffusionを起動するときに、動作を制御するパラメータを設定できるものです。
例えばStable Diffusionの外観を変えたり、VRAMのパフォーマンスを調整したりするパラメータがあります。
その中にディレクトリを指定できるものもあり、コマンドライン引数を使えば別のディレクトリからモデルデータが読み込めます。
Stable Diffusionのモデルをシンボリックリンクで読み込む方法
まずモデルデータを別のディレクトリに移動させます。
今回はDドライブ直下に「modeldata」というディレクトリを作成して、その中に全てのモデルデータを入れました。
次に元々モデルデータがあったmodelsの中にある「Stable-diffusion」のディレクトリを削除します。
これは同じ名前のディレクトリがあると、シンボリックリンクが作成できないためです。
Windowsの検索から「cmd」と入力して、管理者権限でコマンドプロンプトを開きます。
コマンドプロンプトに以下のコマンドを入力します。
mklink /D "元々モデルデータがあったディレクトリのパス" "モデルデータを移した新しいディレクトリのパス"
赤文字が元のディレクトリのパス、青文字が新しいディレクトリのパスです。
私の場合だと以下のようになります。
mklink /D "C:\Users\ユーザー名\デスクトップ\stable-diffusion-webui\models\Stable-diffusion" "D:\modeldata"
保存している場所によって異なるため、お使いの環境に合わせてそれぞれ書き換えてください。
これで実行すると"D:\modeldata"へのシンボリックリンクが作成され、modeldataからモデルを読み込むことができます。
作成されたシンボリックリンクのプロパティを見て、リンク先がモデルデータを入れたディレクトリになっていれば正しく設定できています。
この状態でStable Diffusionを起動し、モデルデータが読み込めていれば完了です。
Stable Diffusionのコマンドライン引数でモデルのディレクトリを指定する方法
まず\stable-diffusion-webui\models\Stable-diffusion"の中のモデルデータを別のディレクトリに移動させます。
こちらではEドライブにmodeldataというディレクトリを作成して、その中にモデルデータを入れました。
次にバッチファイルを右クリックして編集を開き、コマンドライン引数でディレクトリを指定します。
指定方法は簡単で、以下のように入力するだけです。
set COMMANDLINE_ARGS=--ckpt-dir="E:\modeldata"
青字がディレクトリを指定するコマンドライン引数、赤字がモデルデータを入れた新しいディレクトリのパスです。
お使いの環境に合わせて書き換えてください。
実際に入力するとこんな感じです。
この状態でバッチファイルを起動して、モデルデータが読み込めていれば正しく指定できています。
実際にモデルデータを移動した状態でも、画像生成ができました。
Stable Diffusionのモデルデータを保存するならSSDがおすすめ
シンボリックリンクの方はDドライブ(HDD)に移して試したのですが、Stable Diffusionの起動時にモデルデータを読み込むのが若干遅く感じられました。
正確に速度を測ったわけではないので体感ではありますが、可能な限り快適な環境で動かしたい方はSSDがおすすめです。
現在は内臓SSDなら1TBで1万円切っているものもあり、外付けSSDでも1万円ちょっとで買えるものがあります。
内臓SSD
外付けSSD
Stable Diffusionのモデルデータを別のディレクトリから読み込む方法まとめ
今回はモデルデータを別のディレクトリから読み込む方法について、解説しました。
モデルデータを別のディレクトリから読み込ませれば、ストレージに余裕を持たせることができます。
余裕があるストレージにモデル専用のディレクトリを作成しておけば、より多くのモデルを使用して画像生成が楽しめるかもしれません。
お使いの環境でストレージに不安がある場合は、シンボリックリンクやコマンドライン引数でディレクトリを指定してみてください。