AIタレント専門の事務所 ~ AIタレントエージェンシーでタレント募集中

ControlNetのモデルでsafetensors/pth/yamlとか違いは何でどれが正解?

ひよぽん

自分が合っているのか間違っているのか…このままでいいのか…

深刻だな

ひよぽん

どれを使えばいいんだあぁぁぁ…

ControlNetのモデルは、通常モデル1種類と軽量モデル2種類があるからわかりずらいよね~

この記事は、ControlNetの個別モデル(openposeなど)自体ではなく、サイズが違う大枠の3種類について解説しています。

ControlNetのモデルをダウンロードするときに、pthファイルyamlファイルをダウンロードするように書いている記事があったり、safetensorsファイルだけ入れればOKとしている記事もあります。

結局どれが良いの??という疑問にお答えします!

違いは軽量モデルかどうか!3つのControlNetモデルについて解説

結論、pthファイルsafetensorsファイルなどの違いは軽量モデルかどうかなのです。以下の表にまとめてみました。

LARGEMEDIUMSMALL
精度
ファイルサイズ1.45 GB723 MB136 MB
拡張子pth & yamlsafetensorssafetensors
モデルリスト一覧一覧一覧

もうちょっと詳しく知りたいという方のために以下で解説します!

LARGE (通常モデル)

一番記事で紹介されているダウンロード先だと思います。ただ、ある程度のスペックのPCでもControlNetを使う際の画像生成速度が遅くなるので、次のMEDIUM (軽量モデル1)がおすすめです。

  • ファイル形式は.pth(PyTorchのネイティブ形式)と.yaml(モデルの設定を記述したテキストファイル)
  • 1つのモデルのファイルサイズは約1.45GB(ギガバイト)と大きめ
  • ControlNetの開発者が作った、オリジナルのモデル
  • 3つの中で最も精度が高く、細かいところまでよく再現できる
  • その分、メモリをたくさん使うし、読み込みに時間もかかる

https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

LARGE (通常モデル)の一覧

MEDIUM (軽量モデル1)

たまにこちらを紹介している記事もありますね。LARGE (通常モデル)と精度がほとんど変わらないためこちらのMEDIUM (軽量モデル1)がおすすめです。

  • ファイル形式は.safetensors(機械学習モデルの保存に特化したファイル)
  • 1つのモデルのファイルサイズは約723MB(メガバイト)
  • LARGEモデルのデータを半分のサイズに圧縮したモデル
  • LARGEとほとんど変わらない精度を保ちつつ、サイズが半分になってる
  • 圧縮のおかげでメモリの使用量も減って、読み込み時間も短くなる

https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main

MEDIUM (軽量モデル1)の一覧

このモデル一覧に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

SMALL (軽量モデル2)の一覧

今、おすすめのControlNetモデルは?【 MEDIUMモデル

使い勝手と性能のバランスが良いMEDIUMモデルがおすすめです。LARGEモデルから16ビット化によって容量を半減させつつ、ほとんど精度を落とさずに使えるのが強みです。

16ビット化のメリットとしては、GPUメモリ使用量の削減やロード時間の短縮もあるので、より快適に利用できるでしょう。
safetensors形式を採用しているのも、互換性の面で安心材料となります。

究極的な精度を求めるなら、オリジナルのLARGEモデルが最適ですが、複数のモデルを使い分ける場合はストレージ容量にも注意が必要です。

一方、ストレージ容量にあまり余裕がない場合は、LoRAを活用したSMALLモデルも視野に入れましょう。精度はLARGEやMEDIUMには及びませんが、実用上は問題ないレベルを確保しています。メモリ使用量やロード時間の少なさは魅力的ですね。

自分の環境や用途に合わせて、3種類のモデルを使い分けるのがおすすめの戦略と言えるでしょう。まずはMEDIUMモデルを使ってみて、必要に応じてLARGEやSMALLも試してみるのが良いと思います。