Files

1.6 KiB

description
description
how to add or update nodes in ComfyUI-FrameIO

Follow these steps to add a new node or update existing ones in this repository.

1. Implementation Principles

  • Asynchronous I/O: Use ThreadPoolExecutor for disk-heavy operations (saving/loading).
  • PyTorch Optimization: Perform tensor normalization (.float().div_(255.0)) directly in PyTorch rather than NumPy to avoid memory overhead.
  • Visual Feedback: Always include comfy.utils.ProgressBar.
  • Standard Outputs: Every node should return an INT as the second output representing the count of items processed.
  • Detailed Descriptions: Include a DESCRIPTION class attribute for ComfyUI tooltips.

2. Adding a New Node

  1. Create Python File: Create a new .py file for your node (e.g., new_node_feature.py).
  2. Implement Node Class:
    • Ensure CATEGORY = "FrameIO".
    • Implement DESCRIPTION.
    • Implement RETURN_TYPES = ("IMAGE", "INT") (or similar).
  3. Register in __init__.py:
    • Import NODE_CLASS_MAPPINGS and NODE_DISPLAY_NAME_MAPPINGS from the new file.
    • Update the global mappings in __init__.py.
  4. Update Documentation:
    • Add the new node details to README.md under the appropriate section.
  5. Security Check:
    • For saving nodes, use os.path.commonpath to ensure the target directory is within the ComfyUI output folder.

3. Update Checklist

  • Add DESCRIPTION to class.
  • Ensure INT output for item count.
  • Use ThreadPoolExecutor if I/O bound.
  • Update README.md.
  • Register in __init__.py.