この記事について(広告・アフィリエイトリンクはありません)
結論:画像に A1111 形式の情報しかないと、ComfyUI はローダーを「チェックポイント1個」に作り直します。元のワークフロー JSON を使うのが一番確実です。
できること
- 開いたグラフが違う理由を、画像の情報から確かめる
- 元のワークフローに戻す
- JSON がないときに、ローダーを手で組み直す
難易度:やさしい〜ふつう。所要時間:約10分。
この記事は読み込みの話です。保存の時点で情報が消える話は、Civitaiでプロンプトが空になる?を見てください。
何が起きるのか
PNG をドラッグすると、ComfyUI は画像の中の情報を次の順で探します。
workflow:画面の配置まで含むワークフローprompt:実行に使ったノードのつながりparameters:A1111 形式の文章
parameters だけの画像では、文章から汎用のグラフを作ります。このグラフのローダーは必ず CheckpointLoaderSimple です。元が拡散モデル、テキストエンコーダー、VAE を別々に読む構成でも、その情報は文章に入っていません。

画像の情報ごとの結果
同じ絵に情報を入れ分けた9個のファイルを、それぞれ2回読み込みました。結果は2回とも同じでした。
| ファイルの中身 | 開いたもの | ローダー |
|---|---|---|
workflow + prompt | 元のグラフ | 分離型のまま |
prompt だけ | 元のつながり | 分離型のまま |
workflow + prompt + parameters | 元のグラフ | 分離型のまま |
prompt + parameters | 元のつながり | 分離型のまま |
parameters だけ | 汎用のグラフ | チェックポイント1個 |
壊れた workflow + parameters | 汎用のグラフ | チェックポイント1個 |
| 情報なしの PNG | 画像の読み込みノードだけ | なし |
| JPEG、WebP に A1111 の情報(EXIF) | 画像の読み込みノードだけ | なし |
つまり parameters が入っていても、workflow か prompt があれば、そちらが優先されました。
JPEG と WebP の A1111 の情報は読まれませんでした。今回作った形式での結果です。
確かめ方
ComfyUI のポータブル版の Python で、中身を一覧できます。
python_embeded\python.exe -c "from PIL import Image; print(sorted(Image.open(r'画像のパス.png').info))"
['parameters'] だけなら、今回の現象が起きます。
直し方
元のワークフロー JSON を使う(おすすめ)
作者が JSON を配っていれば、それを読み込みます。今回は同じシードで、元の画像と1ピクセルも違わない結果になりました。
下の JSON は、今回の分離型ローダーの構成です。
- anima_separate_loaders.jsonComfyUI にドラッグして読み込みます(UNETLoader、CLIPLoader、VAELoader に分かれた Anima の構成)
ローダーを手で組み直す
JSON がないときの方法です。
CheckpointLoaderSimpleを消す拡散モデルを読み込む、CLIPを読み込む、VAEを読み込むを置く- モデル、CLIP、VAE を元の接続先へつなぐ
CLIPの最終層を設定も消して、CLIP をテキストエンコードへ直接つなぐ- スケジューラを確かめる
4と5が大事です。Anima で5シードずつ試しました。
| 組み直し方 | 元の画像との差(画素の平均) | 結果 |
|---|---|---|
| 層のノードを消す、スケジューラも合わせる | 0 | 完全に同じ |
層のノードを消す、スケジューラは normal のまま | 2.1〜10.9 | 正常だが別の絵 |
| 層のノードを残す | 106〜125 | ベージュのノイズ |

層のノードを残すと、エラーは出ません。 実行は成功と表示されて、絵だけが崩れます。
汎用のグラフのまま動かさない
parameters の Model: がチェックポイントの一覧にないと、実行で次のエラーになります。
Value not in list
ckpt_name: 'krea2_dev' not in [...]
拡散モデルだけのファイルをチェックポイントローダーに読ませると、Anima では次のエラーでした。
CLIPSetLastLayer: 'NoneType' object has no attribute 'clone'
このファイルにはテキストエンコーダーが入っていません。チェックポイントのフォルダーに移しても解決しません。
つまずいた点
ローダーを置き換えたところで成功と表示されたので、最初は直ったと思いました。ところが画像はベージュ一色でした。「エラーがない」と「正しい」は別でした。
スケジューラも見落としていました。文章には Schedule type: Simple と書いたのに、開いたグラフは normal でした。同じシードでも別の絵になります。
よくある質問(FAQ)
Q. Civitai の画像はどれもこうなりますか?
今回は Civitai からダウンロードしていないので、確かめていません。決まるのは画像の中身です。先に上のコマンドで中身を一覧してください。
Q. prompt だけの画像は安全ですか?
ローダーは残りました。配置やメモの情報はありません。
Q. カスタムノードの設定で防げますか?
試していません。今回はカスタムノードなしです。
Q. A1111 の情報を消せば直りますか?
直りません。元のグラフの情報が最初からないためです。
まとめ
workflowかpromptがあれば、分離型ローダーは残ります。parametersだけだと、チェックポイント1個の汎用グラフになります。- 組み直すなら、層のノードとスケジューラまで確かめてください。
検証メモ
- 公式の情報:ComfyUI フロントエンドの
src/scripts/app.tsのhandleFileとsrc/scripts/pnginfo.tsのimportA1111(v1.57.6)を読みました。「workflow を先に確認する」という注記があります。ドキュメントの説明は見つけられていません。 - 読み込みの方法:実際のドラッグではなく、ドロップと同じ
app.handleFileをヘッドレスの Chrome から呼びました。マウスでのドラッグは試していません。 - 画像:Anima で生成した1枚に、情報を入れ分けました。実在の Civitai の画像ではありません。
- Krea 2:持っていないので試していません。
krea2_devは、一覧にない名前の例として私が文章に書いたものです。 - 層のノードの崩れ:Anima の結果です。原因までは調べていません。他のモデルでは未確認です。SDXL などのチェックポイントでは普通に使われるノードです。
- ハードリンク:拡散モデルのテストでは、ファイルをコピーせず検証用の
checkpointsにハードリンクしました。 - 未確認のこと:実在の Civitai の画像、Comfy Desktop 版、新しい frontend(1.58 以降)の実機、LoRA を含む文章。コードを読む限り優先の順番は最新の main でも同じ処理が残っています。

