--- 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`.