113 lines
3.6 KiB
Markdown
113 lines
3.6 KiB
Markdown
# ComfyUI-Mircify
|
|
|
|
A ComfyUI custom node for converting images into IRC art by processing them in pixel blocks and generating both image and text outputs with optimal color selection from a 99-color IRC palette.
|
|
|
|
This node is used with [aibird](https://github.com/birdneststream/aibird) to convert images to IRC art.
|
|
|
|
## Features
|
|
|
|
- **Universal Image Support**: Works with any image dimensions
|
|
- **Color Transfer Integration**: Uses KMeans clustering with Manhattan distance for accurate color mapping
|
|
- **Block Processing**: Configurable block sizes (default 8x15 pixels)
|
|
- **Half Block Mode**: Option for 8x7.5 pixel blocks for finer resolution
|
|
- **Multiple Color Methods**: Choose between dominant, average, or median color extraction
|
|
- **99-Color IRC Palette**: Maps colors to extended IRC color palette
|
|
- **Dual Output**: Returns both processed image and mIRC-formatted text
|
|
- **Text File Export**: Save IRC codes directly to text files for easy copying
|
|
|
|
## Installation
|
|
|
|
1. Clone or download this repository to your ComfyUI `custom_nodes` directory:
|
|
```bash
|
|
cd ComfyUI/custom_nodes
|
|
git clone https://github.com/birdneststream/ComfyUI-Mircify
|
|
```
|
|
|
|
2. Install dependencies:
|
|
```bash
|
|
cd ComfyUI-Mircify
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
3. Restart ComfyUI
|
|
|
|
## Nodes
|
|
|
|
### IRC Art Converter
|
|
**Category**: `image/conversion`
|
|
|
|
Converts images into IRC art with both visual and text output.
|
|
|
|
**Inputs:**
|
|
- **image**: Input image (any dimensions supported)
|
|
- **block_width**: Width of each block in pixels (default: 8)
|
|
- **block_height**: Height of each block in pixels (default: 15)
|
|
- **half_block_mode**: Enable half-height blocks (8x7.5 instead of 8x15)
|
|
- **color_method**: Method for color selection (dominant/average/median)
|
|
|
|
**Outputs:**
|
|
- **processed_image**: Visual representation of the IRC art conversion
|
|
- **irc_text**: mIRC-formatted text with color codes ready for IRC clients
|
|
|
|
### IRC Text Saver (probably not working)
|
|
**Category**: `text/output`
|
|
|
|
Saves IRC-formatted text to files for easy copying.
|
|
|
|
**Inputs:**
|
|
- **irc_text**: IRC text from the converter (STRING input)
|
|
- **filename**: Output filename (default: "irc_art.txt")
|
|
|
|
**Outputs:**
|
|
- **file_path**: Absolute path to the saved file
|
|
|
|
## Usage
|
|
|
|
1. **Basic Workflow:**
|
|
- Load an image
|
|
- Connect it to "IRC Art Converter"
|
|
- Connect the `irc_text` output to "IRC Text Saver"
|
|
- Run the workflow
|
|
|
|
2. **Color Methods:**
|
|
- **dominant**: Uses k-means clustering to find the most prominent color in each block
|
|
- **average**: Calculates the mean RGB values for the block
|
|
- **median**: Uses the median RGB values for better noise resistance
|
|
|
|
3. **Block Modes:**
|
|
- **Full blocks (8x15)**: Standard IRC character block size
|
|
- **Half blocks (8x7.5)**: Provides finer vertical resolution
|
|
|
|
4. **Text Output:**
|
|
- Uses mIRC color format: `\x03{fg},{bg} `
|
|
- Color codes 1-99 corresponding to the IRC palette
|
|
- Ready to paste directly into IRC clients
|
|
|
|
## Color Processing
|
|
|
|
The node uses a two-stage approach:
|
|
|
|
1. **Color Transfer Phase**: Applies KMeans clustering with Manhattan distance to map the entire image to the 99-color IRC palette
|
|
2. **Block Processing Phase**: Divides the color-corrected image into blocks and generates the final IRC art output
|
|
|
|
## IRC Color Palette
|
|
|
|
The node uses an extended 99-color IRC palette built in.
|
|
|
|
## Requirements
|
|
|
|
- ComfyUI
|
|
- Python 3.8+
|
|
- torch
|
|
- numpy
|
|
- scikit-learn
|
|
- pillow
|
|
|
|
## Credits
|
|
|
|
- Color transfer logic adapted from [ComfyUI-Color_Transfer](https://github.com/45uee/ComfyUI-Color_Transfer) by 45uee
|
|
- Uses KMeans clustering and Manhattan distance for optimal color mapping
|
|
|
|
## License
|
|
|
|
MIT License |