このガイドでは、非推奨となったモンキーパッチアプローチから、新しいコンテキストメニュー拡張 API への移行を支援します。
LGraphCanvas.prototype.getCanvasMenuOptions および nodeType.prototype.getExtraMenuOptions をモンキーパッチする従来のアプローチは非推奨となりました:
ブラウザのコンソールに非推奨警告が表示される場合は、拡張機能が旧 API を使用しているため、移行が必要です。
キャンバスメニューの移行
従来のアプローチ(非推奨)
従来のアプローチでは、拡張機能のセットアップ中にプロトタイプを変更していました:
新しいアプローチ(推奨)
新しいアプローチでは、専用の拡張フックを使用します:
主な違い
ノードメニューの移行
従来のアプローチ(非推奨)
従来のアプローチでは、ノードタイプのプロトタイプを変更していました:
新しいアプローチ(推奨)
新しいアプローチでは、専用の拡張フックを使用します:
主な違い
一般的なパターン
条件付きメニュー項目
どちらのアプローチも条件付き項目をサポートしますが、新しい API の方が簡潔です:
セパレーターの追加
セパレーターの追加方法は、どちらのアプローチでも同じです:
サブメニューの作成
サブメニューを作成する推奨方法は、宣言的な submenu プロパティを使用することです:
この宣言的アプローチはより簡潔で、ComfyUI コードベース全体で使用されているパターンと一致します。
has_submenu: true および new LiteGraph.ContextMenu() を使用したコールバックベースのアプローチもサポートされていますが、保守性を高めるために宣言的な submenu プロパティが推奨されます。
状態へのアクセス
トラブルシューティング
旧 API の使用箇所を特定する方法
コード内で以下のパターンを探してください:
非推奨警告の理解
コンソールに以下の警告が表示された場合:
拡張機能が旧アプローチを使用しており、移行が必要です。
移行成功の確認
移行後:
setup() および beforeRegisterNodeDef() からすべてのプロトタイプ変更を削除
getCanvasMenuItems() および/または getNodeMenuItems() フックを追加
- メニュー項目が正しく表示されることをテスト
- コンソールに非推奨警告が表示されないことを確認
移行の完全な例
移行前:
移行後:
追加リソース