34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
---
|
|
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`.
|