深刻だな
どれを使えばいいんだあぁぁぁ…
ControlNetのモデルは、通常モデル1種類と軽量モデル2種類があるからわかりずらいよね~
この記事は、ControlNetの個別モデル(openposeなど)自体ではなく、サイズが違う大枠の3種類について解説しています。
ControlNetのモデルをダウンロードするときに、pthファイルとyamlファイルをダウンロードするように書いている記事があったり、safetensorsファイルだけ入れればOKとしている記事もあります。
結局どれが良いの??という疑問にお答えします!
違いは軽量モデルかどうか!3つのControlNetモデルについて解説
結論、pthファイルやsafetensorsファイルなどの違いは軽量モデルかどうかなのです。以下の表にまとめてみました。
もうちょっと詳しく知りたいという方のために以下で解説します!
LARGE (通常モデル)
一番記事で紹介されているダウンロード先だと思います。ただ、ある程度のスペックのPCでもControlNetを使う際の画像生成速度が遅くなるので、次のMEDIUM (軽量モデル1)がおすすめです。
- ファイル形式は.pth(PyTorchのネイティブ形式)と.yaml(モデルの設定を記述したテキストファイル)
- 1つのモデルのファイルサイズは約1.45GB(ギガバイト)と大きめ
- ControlNetの開発者が作った、オリジナルのモデル
- 3つの中で最も精度が高く、細かいところまでよく再現できる
- その分、メモリをたくさん使うし、読み込みに時間もかかる
→ https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
MEDIUM (軽量モデル1)
たまにこちらを紹介している記事もありますね。LARGE (通常モデル)と精度がほとんど変わらないためこちらのMEDIUM (軽量モデル1)がおすすめです。
- ファイル形式は.safetensors(機械学習モデルの保存に特化したファイル)
- 1つのモデルのファイルサイズは約723MB(メガバイト)
- LARGEモデルのデータを半分のサイズに圧縮したモデル
- LARGEとほとんど変わらない精度を保ちつつ、サイズが半分になってる
- 圧縮のおかげでメモリの使用量も減って、読み込み時間も短くなる
→ https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
このモデル一覧にSMALL (軽量モデル2)も入っているので注意!723MBの_lora_と書いていないモデルがMEDIUM (軽量モデル1)
SMALL (軽量モデル2)
MEDIUMモデルでもControlNetを使うと生成速度が遅い…という場合に使ってみると良いでしょう。
- ファイル形式は.safetensors
- 1つのモデルのファイルサイズは約136MB(メガバイト)とかなり小さい
- LoRA(Low-Rank Adaptation)という技術を使った超軽量モデル
- 元からあるStable Diffusionモデルに、ちょこっとLoRAを追加した感じ
- 元のモデルは共通で使うから、追加で読み込むLoRAの部分だけですごく軽い
- 精度はLARGEやMEDIUMほどじゃないけど、実際に使う分には十分
- メモリの使用量が一番少なくて、読み込みも一番速い
→ https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
今、おすすめのControlNetモデルは?【 MEDIUMモデル 】
使い勝手と性能のバランスが良いMEDIUMモデルがおすすめです。LARGEモデルから16ビット化によって容量を半減させつつ、ほとんど精度を落とさずに使えるのが強みです。
16ビット化のメリットとしては、GPUメモリ使用量の削減やロード時間の短縮もあるので、より快適に利用できるでしょう。
safetensors形式を採用しているのも、互換性の面で安心材料となります。
究極的な精度を求めるなら、オリジナルのLARGEモデルが最適ですが、複数のモデルを使い分ける場合はストレージ容量にも注意が必要です。
一方、ストレージ容量にあまり余裕がない場合は、LoRAを活用したSMALLモデルも視野に入れましょう。精度はLARGEやMEDIUMには及びませんが、実用上は問題ないレベルを確保しています。メモリ使用量やロード時間の少なさは魅力的ですね。
自分の環境や用途に合わせて、3種類のモデルを使い分けるのがおすすめの戦略と言えるでしょう。まずはMEDIUMモデルを使ってみて、必要に応じてLARGEやSMALLも試してみるのが良いと思います。
自分が合っているのか間違っているのか…このままでいいのか…