この記事について(広告・アフィリエイトリンクはありません)
結論:カスタムノードの入力の順番が変わると、保存した値が別の欄に入ります。保存し直す前に、設定「ウィジェット値を名前で復元」をオンにして開き直してください。
できること
- 値がずれているかを見分ける
- 新しめの JSON の値を、名前で戻す
- 戻せない JSON に対処する
難易度:やさしい。所要時間:約5分。
ノードが赤くならないので気づきにくいトラブルです。ノードが赤くなるトラブルとは別の話です。
何が起きるのか
ワークフローの JSON には、ノードの値が widgets_values として順番に保存されています。読み込むときは、既定では 1番目の値を1番目の欄へ と順番に戻す作りです。
カスタムノードの更新で入力の順番が変わったり、途中に入力が増えたりすると、値が隣の欄へずれます。
再現用のノードで、保存したあとに steps と seed の順番を入れ替えました。

| 欄 | 保存した値 | 設定オフ | 設定オン |
|---|---|---|---|
steps | 30 | 12345 | 30 |
seed | 12345 | randomize(画面は NaN) | 12345 |
| 生成後の制御 | randomize | 30 | randomize |
cfg | 5.5 | 5.5 | 5.5 |
sampler_name | uni_pc | uni_pc | uni_pc |
どちらもノードは赤くなりません。オフのまま実行すると、この例では seed が数字でないのでエラーで止まりました。
設定が効く条件
順番の変え方を2種類、JSON を2種類、設定のオンとオフで、各3回読み込みました。結果は毎回同じでした。
| JSON | 設定オフ | 設定オン |
|---|---|---|
widgets_values_named あり(新しめの保存) | ずれる | 直る |
widgets_values_named なし(古い保存) | ずれる | ずれる |
widgets_values_named は、値を名前つきで残す欄です。公式のコードでは 2026年7月末に追加されました。これがない JSON は、設定をオンにしても戻せません。 公式の設定の説明どおり、名前で読み込む設定ですが、今回の古い JSON には読む名前がありませんでした。
メモ帳で JSON を開いて widgets_values_named を検索すると、どちらか分かります。
設定の場所
設定画面で「ウィジェット値を名前で復元」(英語は Restore widget values by name)を探して、オンにします。ID は Comfy.Workflow.NamedValuesRestore です。
既定はオフで、今回の版では実験的な設定です。公式のドキュメントには、将来は既定になる予定の移行期の設定と書かれています。
注意:保存し直すと戻せない
一番の落とし穴です。ずれたまま保存すると、名前つきの欄にも、ずれた値が書き込まれました。
| JSON | 設定オンで開いた結果 |
|---|---|
| 元の JSON | 直る(steps 30) |
| 設定オフで開いて保存し直した JSON | ずれたまま(steps 12345) |
ノードを更新する前に、JSON のコピーを取っておくと安全です。
エラーにならないずれ
もっと怖いのは、型が同じ入力どうしが入れ替わる場合です。width と height の順番を入れ替えて試しました。
| 設定 | 開いた値 | 実行 |
|---|---|---|
| オフ | height 832、width 1216 | エラーなしで通る |
| オン | height 1216、width 832 | 通る |
保存した値は width 832、height 1216 でした。オフでは、縦横が入れ替わったまま実行できます。 更新のあとは、数字を一度目で確かめてください。
戻せないときの対処
- 更新前の JSON があれば、設定をオンにしてそれを開く
- 値を見比べて、手で入れ直す
- ノードの作者の変更履歴(CHANGELOG)で、入力の変更を確かめる
- 必要なら、そのパックを前の版に戻す。やり方はカスタムノードの入れ方を見てください
実在のパックの例
実例として、ComfyUI-AusBoss の プルリクエスト #95 があります。作者の説明では、Crop For Inpaint に keep_inside が増えたとき、古いワークフローの空の値がこの欄に入り、スイッチがオフで開きました。API の実行では既定のオンになり、同じワークフローで結果が2通りになったそうです。作者は読み込み時に値を直す処理を入れて解決しています。
この例は説明とコードを読んだだけで、実行していません。 今回の私の環境の安全チェックが、このパックの実行を止めたためです。この記事の数値は、すべて自作の再現用ノードのものです。
つまずいた点
最初は「設定をオンにすれば全部直る」と思っていました。古い形の JSON を試すと、まったく同じようにずれました。
保存し直しの実験も、やる前の予想は別の結果でした。名前つきの欄は安全だと思っていましたが、保存のたびに今の画面の値で上書きされます。
よくある質問(FAQ)
Q. 赤いノードとの違いは?
今回はノードがそのまま読み込まれ、値だけがずれました。ノードがないわけではありません。
Q. 設定はオンのままでいいですか?
今回の範囲では問題は出ていません。ただし実験的な設定で、多くのノードで試したわけではありません。
Q. 標準のノードでも起きますか?
今回は自作のノードで起こしました。標準のノードでは試していません。
Q. ワークフローの画像(PNG)でも同じですか?
試していません。読み込みの違いはPNGでローダーが変わる原因に書きました。
まとめ
- 値は既定では順番で戻るので、入力が変わるとずれます。
- 設定は
widgets_values_namedがある JSON にだけ効きました。 - ずれたまま保存すると、戻せなくなります。
検証メモ
- 再現用のノード:順番だけが違う3種類と、幅と高さを入れ替える2種類を自作しました。実在のパックの更新を再現したものではありません。
- 古い JSON:新しい形の JSON から
widgets_values_namedを消して作りました。本当に古い版で保存したファイルではありません。 - 設定の切り替え:画面のマウス操作ではなく、設定の API から切り替えました。
- 読み込み:画面の処理(
app.loadGraphData)を使い、値は画面のウィジェットから読みました。各条件3回です。 - 実行の結果:生成はせず、
/promptへの送信の検証結果を見ました。 - 公式の情報:フロントエンドの
LGraphNode.tsとcoreSettings.ts(v1.57.6)、設定のドキュメントを読みました。 - 未確認のこと:実在のパック、V3 API のノードの Issue #21108 の症状、サブグラフ、Comfy Desktop 版、新しい frontend。

