InvokeAI/invokeai/app/invocations/custom_nodes
2024-02-19 17:31:08 +11:00
..
InvokeAI_DemoFusion@aae207914f fix(nodes): canny preprocessor uses RGBA again 2024-02-19 17:31:08 +11:00
init.py feat: workflow library (#5148) 2023-12-09 09:48:38 +11:00
README.md feat(nodes): change expected structure for custom nodes 2023-10-20 14:28:16 +11:00

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.