PR #2666 は、実行モデルを「出力側から入力側への再帰モデル」から「入力側から出力側へのトポロジカルソート」へと反転させます。ほとんどのカスタムノードは引き続き「動作し続ける」はずですが、このページはカスタムノード作成者向けに、壊れる可能性のある事項についてのガイドとして役立てることを目的としています。Documentation Index
Fetch the complete documentation index at: https://dripart-mintlify-e28287af.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
破壊的変更
モンキーパッチング
実行モデルにモンキーパッチを適用していたコードは、動作しなくなる可能性が高いです。なお、この PR による実行パフォーマンスは、最も一般的なモンキーパッチ方案を上回るため、それらの多くは不要になります。オプション入力検証
この PR 以前は、一連の"required"(必須)入力を通じてのみ出力に接続されていたノードのみが実際に検証されていました。カスタムノードが "optional"(オプション)入力にのみ接続されていた場合、以前は検証失敗が表示されないことがありました。
以下に、検証失敗の原因となり得る事項と推奨される解決策をいくつか示します。
-
カスタムウィジェットを設定するために、比較できないタイプ(例:辞書)上で
minやmaxなどの予約済み 追加パラメータ を使用すること。-
使用している追加パラメータを、
uiMinやuiMaxなどの予約されていないキーに変更します。(推奨ソリューション) -
この入力に対してカスタムの VALIDATE_INPUTS 関数を定義し、その検証をスキップするようにします。(簡易ソリューション)
-
使用している追加パラメータを、
-
複合タイプ(例:
CUSTOM_A,CUSTOM_B)の使用- (出力として使用する場合)この PR の単体テスト で見られるような
MakeSmartTypeなどのラッパーを定義して使用します。 - (入力として使用する場合)
input_types引数を受け取るカスタムの VALIDATE_INPUTS 関数を定義し、タイプ検証をスキップするようにします。 - (両方に対応し、便利)この PR の単体テスト で見られる
@VariantSupportデコレータを定義して使用します。
- (出力として使用する場合)この PR の単体テスト で見られるような
-
グラフ定義内で定数としてリスト(例:
[1, 2, 3])を使用すること(例:定数VEC3入力を表現するため)。これは以前はフロントエンド拡張を必要としていました。以前は、サイズがちょうど2のリストはいずれにせよ失敗していました——それらは壊れたリンクとして扱われていました。- リストを
{ "value": [1, 2, 3] }のような辞書でラップします。
- リストを
実行順序
実行順序は、どのノードがどの ID を持っているかに依存して常に変化していましたが、 теперь どの値がキャッシュされているかにも依存して変化する可能性があります。一般的に、実行順序は(グラフの構造によって強制されるものを超えて)非決定的であり、変更される可能性があるものと見なすべきです。 実行順序に依存しないでください。 HIC SUNT DRACONES新機能
検証の変更
前述の オプション入力検証 の変更による影響を軽減するために、VALIDATE_INPUTS 関数にいくつかの機能が追加されました。
VALIDATE_INPUTS関数によって受け取られる入力については、デフォルトの検証がスキップされるようになります。VALIDATE_INPUTS関数は**kwargsを受け取ることができるようになりました。これにより、すべての入力がノード作成者によって検証済みとして扱われます。VALIDATE_INPUTS関数はinput_typesという名前の入力を受け取ることができます。この入力は、各入力(リンクを介して接続された)を接続された出力のタイプにマッピングする辞書になります。この引数が存在する場合、ノードの入力に対するタイプ検証はスキップされます。