Files
jfcantu-ComfyUI-AutoNotes/README.md
T
2025-09-29 23:05:02 -07:00

148 lines
4.7 KiB
Markdown

# ComfyUI-AutoNotes
An intelligent note-taking extension for ComfyUI that automatically displays relevant notes based on your workflow context.
## Features
- **Smart Note Display**: Notes automatically appear based on trigger conditions like selected nodes, node attributes, or workflow names
- **Sidebar Interface**: Non-intrusive sidebar that doesn't interfere with your workflow
- **Multiple Display Modes**:
- "All" mode shows all notes
- "Automatic" mode shows only relevant notes based on triggers
- **Rich Formatting**: Support for both plaintext and Markdown formatting
- **Trigger Conditions**: Configure when notes should appear:
- **Node Selected**: Show notes when specific node types are selected
- **Node Attribute**: Show notes when nodes have specific attribute values
- **Workflow Name**: Show notes when workflow filename contains specific text
- **Pinnable Notes**: Pin important notes to always display regardless of context
- **Organized Storage**: Notes stored in your ComfyUI user directory with UUID-based organization
- **Edit Dialog**: Full-featured editor with tree view and trigger condition management
## Installation
1. Clone or download this repository into your ComfyUI `custom_nodes` directory:
```
cd ComfyUI/custom_nodes
git clone https://github.com/yourusername/ComfyUI-AutoNotes.git
```
2. Restart ComfyUI
3. The AutoNotes sidebar will appear on the right side of your ComfyUI interface
## Usage
### Basic Operations
1. **Creating Notes**: Click the "Add" button in the sidebar control panel
2. **Editing Notes**: Click the "Edit" button to open the full editor dialog
3. **Display Modes**: Switch between "All" and "Automatic" in the dropdown
### Setting Up Trigger Conditions
In the Edit dialog, you can configure when notes should automatically appear:
#### Node Selected Trigger
- Displays the note when any of the specified node types is selected
- Example: `CheckpointLoaderSimple, LoraLoader`
#### Node Attribute Trigger
- Displays the note when a specific node has certain attribute values
- Useful for showing notes about specific models or settings
- Example:
- Node Type: `CheckpointLoaderSimple`
- Attribute Name: `ckpt_name`
- Attribute Values: `mymodel.safetensors, specialmodel.ckpt`
#### Workflow Name Trigger
- Displays the note when the workflow filename contains specific text
- Example: `portrait, character, anime`
### Example Use Cases
1. **Model-Specific Notes**: Create notes with tips about specific checkpoints that appear when you select them
2. **Node Documentation**: Add usage instructions that appear when you select certain node types
3. **Workflow Reminders**: Set up notes that remind you of important settings for specific types of workflows
4. **Quick Reference**: Pin frequently-used information to always stay visible
### Data Storage
Notes are stored in your ComfyUI user directory under `autonotes/`:
- `notes.json`: Contains all note data and metadata
- `folders.json`: Contains folder organization (future feature)
## Technical Details
### File Structure
```text
ComfyUI-AutoNotes/
├── __init__.py # Extension entry point
├── autonotes.py # Main Python backend
├── web/
│ └── autonotes.js # Frontend JavaScript
├── README.md # This file
└── requirements.md # Original requirements document
```
### API Endpoints
The extension exposes REST API endpoints for note management:
- `GET /autonotes/notes` - Retrieve notes with filtering
- `POST /autonotes/notes` - Create new note
- `PUT /autonotes/notes/{uuid}` - Update existing note
- `DELETE /autonotes/notes/{uuid}` - Delete note
- `GET /autonotes/folders` - Retrieve folders
- `POST /autonotes/folders` - Create new folder
### Data Models
**Note Structure**:
```json
{
"uuid": "unique-identifier",
"folder_uuid": "parent-folder-id",
"name": "Note Title",
"content": "Note content...",
"format_style": "plaintext|markdown",
"pinned": true|false,
"trigger_conditions": [...]
}
```
**Trigger Condition Structure**:
```json
{
"type": "node_selected|node_attribute|workflow_name",
"node_types": ["NodeType1", "NodeType2"],
"node_type": "SpecificNodeType",
"attribute_name": "attribute_name",
"attribute_values": ["value1", "value2"],
"workflow_names": ["name1", "name2"]
}
```
## Development
The extension follows ComfyUI's standard custom node structure:
- Python backend handles data management and API endpoints
- JavaScript frontend provides the user interface
- Uses ComfyUI's built-in web server and extension system
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly with ComfyUI
5. Submit a pull request