mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
4af4486dd9
Custom nodes have a new attribute `node_pack` indicating the node pack they came from. - This is displayed in the UI in the icon icon tooltip. - If a workflow is loaded and a node is unavailable, its node pack will be displayed (if it is known). - If a workflow is migrated from v1 to v2, and the node is unknown, it falls back to "Unknown". If the missing node pack is installed and the node is updated, the node pack will be updated as expected. |
||
---|---|---|
.. | ||
init.py | ||
README.md |
Custom Nodes / Node Packs
Copy your node packs to this directory.
When nodes are added or changed, you must restart the app to see the changes.
Directory Structure
For a node pack to be loaded, it must be placed in a directory alongside this file. Here's an example structure:
.
├── __init__.py # Invoke-managed custom node loader
│
├── cool_node
│ ├── __init__.py # see example below
│ └── cool_node.py
│
└── my_node_pack
├── __init__.py # see example below
├── tasty_node.py
├── bodacious_node.py
├── utils.py
└── extra_nodes
└── fancy_node.py
Node Pack __init__.py
Each node pack must have an __init__.py
file that imports its nodes.
The structure of each node or node pack is otherwise not important.
Here are examples, based on the example directory structure.
cool_node/__init__.py
from .cool_node import CoolInvocation
my_node_pack/__init__.py
from .tasty_node import TastyInvocation
from .bodacious_node import BodaciousInvocation
from .extra_nodes.fancy_node import FancyInvocation
Only nodes imported in the __init__.py
file are loaded.