Files
orion4d-illusion_node/README.md
T
2025-06-22 10:45:49 +02:00

159 lines
7.1 KiB
Markdown

# ComfyUI Illusion & Pattern Nodes
This repository contains a collection of custom nodes for ComfyUI, designed for generating various patterns, optical illusions, and performing related image manipulations. All nodes are categorized under "illusion" in the ComfyUI menu.
## Installation
1. Navigate to your ComfyUI `custom_nodes` directory:
```bash
cd ComfyUI/custom_nodes/
```
2. Clone this repository:
```bash
git clone https://github.com/orion4d/illusion_node.git
```
(Replace `<your_repository_url_here>` with the actual URL of your Git repository).
3. Restart ComfyUI.
The nodes should now be available in the "illusion" category when you right-click or use the "Add Node" menu.
## Nodes Overview
Below is a summary of each node provided in this pack:
---
### 1. Pattern Generator (`PatternGenerator_node.py`)
* **Display Name:** `Pattern Generator`
* **Function:** Generates various 2D procedural patterns.
* **Key Features:**
* **Pattern Types:**
* `Stripes`: Creates vertical or horizontal stripes using two colors.
* `parameter1`: Stripe width.
* `Checkerboard`: Creates a checkerboard pattern.
* `parameter1`: Square size.
* `Random Dots`: Scatters dots of `color2` over a `color1` background.
* `parameter1`: Density percentage (1-100).
* `parameter2`: Maximum dot radius.
* `Solid Color`: Fills the image with `color1`.
* `Gradient`: Creates a linear gradient between `color1` and `color2`.
* `parameter1`: Direction (0: L-R, 1: T-B, 2: R-L, 3: B-T).
* `Noise`: Generates blocky random noise.
* `parameter1`: 0 for Color Noise, 1 for Grayscale Noise.
* `parameter2`: Block scale (1 for pixel-level noise).
* Customizable `width`, `height`, `color1_hex`, `color2_hex`, and `seed`.
---
### 2. Tessellation Composer (Advanced) (`TessellationNode.py`)
* **Display Name:** `Tessellation Composer (Advanced)`
* **Function:** Creates complex tiled patterns from an input image, with various transformations per tile.
* **Key Features:**
* Uses an `input_image` as the base tile.
* `tile_width`, `tile_height`: Dimensions of the base tile (input image will be resized).
* `tiles_x`, `tiles_y`: Number of tiles in horizontal and vertical directions.
* `mode`: Tiling strategy (`repeat`, `mirror`, `diamond`).
* `mirror_axis`: Optional mirroring of tiles (`none`, `x`, `y`, `xy`, `random`).
* `offset_x`, `offset_y`: Offsets applied to alternating rows/columns.
* `rotation_mode`: How rotation is applied (`none`, `by_tile`, `random`).
* `rotation_angle`: Base rotation angle.
* `scale_mode`: How scaling is applied (`none`, `by_tile`, `random`).
* `scale_factor`: Base scale factor.
* `opacity`: Opacity of the composited tiles.
* `random_seed`: For random operations.
---
### 3. Optical Illusion Generator (`OpticalIllusionNode.py`)
* **Display Name:** `OpticalIllusionNode` (or similar, based on class name if not explicitly mapped)
* **Function:** Generates classic optical illusion patterns.
* **Key Features:**
* `illusion_type`:
* `checkerboard`: Standard checkerboard.
* `circles`: Concentric circles.
* `lines`: Parallel lines.
* `spiral`: Archimedean spiral.
* Customizable `size`, `frequency` (density/count of elements), `line_width`, `color1` (background), and `color2` (foreground/lines).
---
### 4. Optical Geometric Pattern Generator (`OpticalGeometricNode.py`)
* **Display Name:** `OpticalGeometricNode` (or similar, based on class name if not explicitly mapped)
* **Function:** Generates various geometric optical art patterns.
* **Key Features:**
* `pattern_type`:
* `concentric_squares`
* `concentric_triangles`
* `wavy_grid`: Grid lines distorted by sine waves.
* `starburst`: Lines radiating from the center.
* `hexagons`: Honeycomb pattern.
* `waves`: Superimposed sinusoidal waves.
* Customizable `size`, `frequency`, `line_width`, `color1`, and `color2`.
---
### 5. Color/Gradient Image (`ColorImageNode.py`)
* **Display Name:** `Color/Gradient Image`
* **Function:** Creates images with solid colors or various types of gradients.
* **Key Features:**
* `mode`:
* `solid`: Fills with `color1`.
* `linear`: Linear gradient between `color1` and `color2`, controlled by `angle`.
* `radial`: Radial gradient from center (`color1`) to edges (`color2`).
* `angular`: Angular (sweep/cone) gradient, rotation controlled by `angle`.
* `mirror`: Reflected linear gradient.
* `diamond`: Diamond-shaped gradient.
* Customizable `width`, `height`, `color1`, `color2`, and `angle`.
---
### 6. Autostereogram Creator (Advanced) (`autostereogram_node.py`)
* **Display Name:** `Autostereogram Creator (Advanced)`
* **Function:** Generates Single Image Random Dot Stereograms (SIRDS), also known as "Magic Eye" images.
* **Key Features:**
* Takes a `depth_map` (grayscale image where brightness indicates depth) and a `pattern` image.
* `eye_separation_pixels`: Simulates the distance between eyes projected onto the image plane, influencing the pattern period.
* `depth_scale_factor`: Controls the intensity of the 3D effect (how much objects "pop out" or recede).
---
### 7. Checkerboard Composer (`CheckerboardNode.py`)
* **Display Name:** `Checkerboard Composer`
* **Function:** Creates a checkerboard pattern using two input images as alternating tiles.
* **Key Features:**
* Takes `img1` and `img2` as inputs for the two alternating tiles.
* `tiles_x`, `tiles_y`: Number of tiles in the checkerboard.
* `tile_width`, `tile_height`: Desired dimensions for each tile.
* `tile_mode`:
* `resize`: Input images are resized to `tile_width` x `tile_height`.
* `crop`: Input images are cropped from the top-left to `tile_width` x `tile_height`.
---
### 8. Tile Image Repeater (Smart Resize) (`TileImageRepeaterNode.py`)
* **Display Name:** `Tile Image Repeater (Smart Resize)`
* **Function:** Repeats an input image to create a larger tiled image, with intelligent resizing options for the base tile.
* **Key Features:**
* Takes an `image` as the base tile.
* `horizontal_repeats`, `vertical_repeats`: Number of times to repeat the tile.
* `resize_mode`: How the base tile is resized before tiling:
* `None`: No resizing.
* `Width`: Tile is resized to `tile_target_size` width, height adjusted by aspect ratio.
* `Height`: Tile is resized to `tile_target_size` height, width adjusted by aspect ratio.
* `Shortest Side`: The shorter side of the tile is resized to `tile_target_size`.
* `Longest Side`: The longer side of the tile is resized to `tile_target_size`.
* `tile_target_size`: The target dimension for resizing (if `resize_mode` is not `None`).
* `resampling_filter`: Filter used for resizing (`lanczos`, `bicubic`, `bilinear`, `nearest`).
---
Enjoy creating illusions and patterns!