モデルのファイルとファインチューニング|チェックポイント
- 画像生成AIのチェックポイントって何?
- モデルのファイルを替えると、なぜ画像が変わるのか知りたい
- ファインチューニングで何が変わるのかを知りたい
画像生成AIでは、モデル(学習でできた、画像を作る仕組み)のファイルを替えるだけで、同じプロンプトでも違う画像が出ます。
しかし、ファイルに何が入っていて、なぜ画像が変わるのかは、ファイルを見ただけでは分かりません。
この記事では、チェックポイントとファインチューニングを解説します。2つのモデルの作り比べと、ファイルの種類に safetensors を選ぶ理由も分かります。
モデルのファイルの中身は、計算に使う数値(重み)です。この数値を学習し直すと、得意な画像の違うモデルができます。
チェックポイントとは

チェックポイントとは、学習済みのモデルの重みをまとめたファイルのことです。重みは、モデルの中で計算に使う数値で、学習によって決まります。
1つのファイルには、モデルの部品の重みがすべて入っています。たとえば、画像を作る中心の部分(U-Net や Transformer)の重みと、プロンプトを数値に変えるテキストエンコーダの重みです。
この1つのファイルにまとめた保存の形は、画像生成AIを動かすソフトの ComfyUI や Automatic1111 で扱いやすくなっています。
一方、Python(プログラムの言語)で画像生成AIを動かす道具の Diffusers の保存の形は、同じ重みを部品ごとのフォルダに分けたものです。
チェックポイントの語は、学習のしかたや段階の違う重みを1つずつ指すときにも使われます。たとえば Stable Diffusion の v1 では、6つのチェックポイントが公開されています。
ファインチューニングとは

違う重みのファイルを作る方法の1つが、ファインチューニングです。ファインチューニングとは、学習済みのモデルを、追加のデータで学習し直すことです。
日本語の解説の記事では、学習済みのモデルにあとから学ばせる方法をまとめて、追加学習と呼びます。ファインチューニングは、追加学習のうち、モデルの重みの全体か大部分を学習し直す方法です。
学習済みのモデルから始めるので、ゼロから学習するより短い時間で済みます。
たとえば Stable Diffusion 1.5 は、v1.2 のチェックポイントの重みから学習を始めたモデルです。
学習し直しに使ったのは、LAION の画像から選んだ組(laion-aesthetics v2 5+)です。
さらに Stable Diffusion 1.5 から始めて、インペイント(画像の一部を作り直すこと)のための学習をしたモデルもあります。
このように、あるモデルをもとに作られたモデルが、派生のモデルです。
ファインチューニングでは全体の重みを学習し直すので、できるファイルもモデル全体の大きさになります。Stable Diffusion では、たいてい数GB です。
派生のモデルで得意な画像が変わる

派生のモデルは、もとのモデルと同じプロンプトでも、違う画像を作ります。重みが違うためです。
派生のモデルは、学習し直したデータによって、得意な画像の種類や見た目が違います。また、学習し直すほかに、複数のモデルを混ぜて作られることもあります。
上の画像は、同じプロンプトと同じシード(初めのノイズを決める数)で、Stable Diffusion 1.5 と DreamShaper 8 を比べた4枚です。
DreamShaper 8 は、Stable Diffusion 1.5 をもとに作られた派生のモデルの1つです。
この試しでは、どちらも白い壁の2階建ての家になりましたが、形と構図は違いました。
DreamShaper 8 では線のそろった白い箱の形の家が写り、Stable Diffusion 1.5 より整ったレンダリングの画像に近い見え方でした。
同じシードでも、モデルを替えると家の形から変わったわけです。
チェックポイントのファイルの種類とsafetensors

派生のモデルを使うときは、そのチェックポイントのファイルを手に入れて読み込みます。このとき見ておきたいのが、ファイルの種類です。
ファイルの種類には、safetensors と ckpt があります。ファイル名の最後が「.safetensors」か「.ckpt」かで、見分けられます。
ckpt は、Python の pickle という仕組みで重みを保存したファイルで、古いモデルに多い種類です。
pickle で保存したファイルは、悪意のあるコードを動かすのに使われるおそれがあります。
そのため Diffusers の説明では、safetensors のファイルを使うか、重みを safetensors に変えることを勧めています。
safetensors は、pickle に代わって、重みを安全に保存するために作られた種類です。同じモデルに両方のファイルがあるときは、safetensors を選ぶのが安全です。
チェックポイントの中身と種類を知ってモデルのファイルを安全に使おう

モデルのファイルを替えると、計算に使う重みが替わり、画像も変わります。この記事で解説したことは、次の4つです。
- チェックポイントは、学習済みのモデルの重みをまとめたファイル
- ファインチューニングは、学習済みのモデルを追加のデータで学習し直す追加学習の方法
- 派生のモデルは、同じプロンプトでも、もとのモデルと違う画像を作る
- ファイルは、pickle を使う ckpt より safetensors を選ぶ
モデルのファイルを使うときは、ファイルが safetensors かどうかを確かめてみてください。
あわせて読みたい
- 「LoRA|小さなファイルでの追加学習」(準備中) — モデル全体ではなく、差分だけを学ぶ追加学習を知りたいとき
- 「画像生成AIのモデルのライセンス|商用に使えるかの条件」(準備中) — 派生のモデルを仕事に使えるかの条件を知りたいとき
- ComfyUIのモデルのファイル形式と量子化|safetensors・fp8・GGUF — ComfyUI で使うモデルのファイルの種類を、くわしく知りたいとき
- ComfyUIのモデルの種類とフォルダ|checkpoints・diffusion_models・text_encoders・vae・loras — チェックポイントを ComfyUI のどのフォルダに置くかを知りたいとき
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。