English | 日本語 | 繁体中文
- Top
- Node
- Workflow
# Node
## :tomato: Sampler Nodes
### D2 KSampler / D2 KSampler(Advanced)
- KSampler that can input prompts as STRING
#### Input
- `cnet_stack`
- For connecting to `D2 Controlnet Loader`
- `model` / `clip` / `vae` / ..etc
- Same as standard KSampler
- `negative` / `positive`
- Prompts in STRING format
#### Output
- `IMAGE`
- Image output
- `positive` / `negative`
- Input passthrough
---
### D2 Pipe
- A node for modifying and extracting the contents of `d2_pipe`
- `d2_pipe` is used to pass parameters collectively in nodes such as D2 XY Plot Easy, D2 KSampler, and D2 Send Eagle
---
## :tomato: Loader Node
### D2 Checkpoint Loader
- A Checkpoint Loader that outputs the full path of model files
- Can automatically apply v_prediction settings when the filename contains "vpred"
#### Input
- `ckpt_name`
- Checkpoint name
- `auto_vpred`
- `true`: Automatically applies v_prediction settings if the filename contains "vpred"
- `sampling` / `zsnr`
- Same settings as ModelSamplingDiscrete (details unknown)
- `multiplier`
- Same settings as RescaleCFG (details unknown)
#### Output
- `model` / `clip` / `vae`
- Same as the conventional CheckpointLoader.
- `ckpt_name` / `ckpt_hash` / `ckpt_fullpath`
- Checkpoint name, hash, and full path.
---
### D2 Controlnet Loader
- Controlnet Loader that creates simple workflows when connected to `D2 KSampler`
#### Input
- `cnet_stack`
- For connecting to `D2 Controlnet Loader`
#### Output
- `cnet_stack`
- For connecting to `D2 KSampler` or `D2 Controlnet Loader`
---
## :tomato: Image Node
### D2 Preview Image
- Click the `Popup Image` button to display the full-screen gallery
---
### D2 Load Image
- Load Image node that can extract prompts from images
- Compatible with images created in StableDiffusion webui A1111 and NovelAI
- Includes a button to open mask editor
#### Input
- `image_path`
- Loads file when image path is input
- Used for connection with `D2 Folder Image Queue`
#### Output
- `IMAGE / MASK`
- Image and mask
- `width / height`
- Image size
- `positive` / `negative`
- Prompts
Note: Prompts may not be retrievable depending on workflow configuration. For example, they cannot be retrieved without a node containing the string "KSampler" (e.g., Tiled KSampler).
---
### D2 Load Folder Images
- Batch loads and outputs images from a folder
- Used with `D2 Grid Image` etc.
- Use `D2 Folder Image Queue` for sequential processing
#### Input
- `folder`
- Specify folder in full path
- `extension`
- Specify like `*.jpg` to load only JPEG images
- Can also specify patterns like `*silver*.webp`
---
### D2 Folder Image Queue
- Outputs paths of images in a folder
- Automatically executes Queue for the number of images when Queue is run
#### Input
- `folder`
- Image folder
- `extension`
- Specify file name filter
- `*.*`: All images
- `*.png`: PNG format only
- `start_at`
- Image number to start processing
- `auto_queue`
- `true`: Automatically execute remaining Queues
- `false`: Execute only once
#### Output
- `image_path`
- Full path of image
---
### D2 Grid Image
- Outputs grid images
- Supports both horizontal and vertical alignment
#### Input
- `max_columns`
- Number of images to align horizontally
- When `swap_dimensions` is `true`, this becomes the number of vertical images
- `grid_gap`
- Spacing between images
- `swap_dimensions`
- `true`: Vertical alignment
- `false`: Horizontal alignment
- `trigger_count`
- Outputs grid image when the number of input images reaches this specified value
- `Image count`
- Number of input images
- `Reset Images`
- Discards all input images
---
### D2 Image Stack
- Outputs multiple input images together
- Can input up to 50 images
#### Input
- `image_count`
- Can increase/decrease number of inputs. Maximum 50
---
### D2 EmptyImage Alpha
- Adds alpha channel (transparency) to EmptyImage
---
## :tomato: Size Node
### D2 Get Image Size
- Both outputs and displays size
---
### D2 Size Selector
- Node for selecting image size from presets
- Can also get size from images
- Rounding method can be selected from `Ceil / Float / None`
#### Input
- `images`
- Used when getting size from images
- `preset` must be set to `custom`
- `preset`
- Size presets
- Must be set to `custom` when using `width` `height` below or image sizes
- Edit `/custom_nodes/D2-nodes-ComfyUI/config/sizeselector_config.yaml` to modify presets
- `width` / `height`
- Width/height dimensions
- `preset` must be set to `custom`
- `swap_dimensions`
- Swap width/height
- `upscale_factor`
- Value passed to other resize nodes. Does nothing in this node
- `prescale_factor`
- Output width/height after resizing by this factor
- `round_method`
- `Round`: Round to nearest
- `Floor`: Round down
- `None`: No rounding
- `batch_size`
- Batch size to set for empty_latent
#### Output
- `width / height`
- Input `width`, `height` multiplied by `prescale_factor`
- `upscale_factor` / `prescale_factor`
- Passthrough of input
- `batch_size`
- Passthrough of input
- `empty_latent`
- Outputs latent created with specified size and batch size
---
### D2 Image Resize
- Simple image resizing
- Precision up to 3 decimal places
- Can select rounding, floor, or ceiling
- Capable of upscaling using upscale models
- Latent output is also possible (requires VAE)
---
### D2 Resize Calculator
- Can select rounding, floor, or ceiling
---
## :tomato: Text Node
### D2 Regex Replace
- Can replace using regular expressions
- Multiple conditions can be specified
- Supports reuse of regex match strings (e.g., \1, \2)
- Target string can be specified by "tag unit" or "whole"
#### Input
- `text`
- Target string for search
- `mode`
- `Tag`: Break down `text` by newlines and "," and replace individually
- `Advanced`: Replace `text` as a whole
- `regex_and_output`
- List of search strings and output strings
- Write in following format
- If output string is empty, matched part is deleted
- No limit on number of entries
```
Search string 1
--
Output string 1
--
Search string 2
--
Output string 2
```
#### Output
- `text`
- Text after replacement
#### Sample
Sample for removing Pony series quality tags.
Mode: `Tag`
Input text
```
score_9, score_8_up, (score_7_up, score_6_up:0.8) , rating_explicit, source_anime, BREAK
1girl, swimsuit
```
Regex Replace
```
.*(score_|rating_|source_).*
--
--
BREAK
--
```
Output text
```
1girl, swimsuit
```
---
### D2 Regex Switcher
- Searches input text with regex and outputs matching text
- Main purpose is switching quality tags per Checkpoint
- When matching string is found in input `text`, outputs target string and match index (starting from 0)
- Can concatenate strings at front and back
#### Input
- `text`
- Search target string
- `prefix`
- String to concatenate at front
- `suffix`
- String to concatenate at back
- `regex_and_output`
- List of search strings and output strings
- Write in following format
- `pre_delim`
- Character inserted between `prefix` and `regex_and_output`
- `Comma`: `,` / `Line break`: newline / `None`: nothing
- `suf_delim`
- Character inserted between `regex_and_output` and `suffix`
#### Output
- `combined_text`
- String combining `prefix` + output string + `suffix`
- `prefix` / `suffix`
- Input passthrough
---
### D2 Multi Output
- Node that outputs generic parameters like seed and cfg as lists
#### Input
- `type`
- `FLOAT`: Floating point numbers. For CFG etc.
- `INT`: Integers. For steps etc.
- `STRING`: Strings. For sampler etc.
- `SEED`: Can input seed values with random number button
- `Add Random`
- Adds random numbers to input field
- Only shown when `type` is `SEED`
---
### D2 Filename Template
- A node for creating filenames
- Can incorporate external elements
#### Input
- `arg_1` `arg_2` `arg_3`
- Import values from other nodes
- `format`
- `%date:{yyyy/MM/dd/hh/mm/ss}%`
- `yyyy`: Year
- `MM`: Month
- `dd`: Day
- `hh`: Hour
- `mm`: Minute
- `ss`: Second
- `%node:{id}.{key}%`
- Retrieves values by specifying node ID and item name
- Example: `%node:8.width%`: Get width from node ID 8
- `%arg_1%` (same for 2 and 3)
- Embed input values
- `%arg_1:ckpt_name%` (same for 2 and 3)
- Embed checkpoint name with `.safetensors` removed
#### Example
```
%date:yyyyMMdd-hhmmss%_%arg_1:ckpt_name%
👇
20241219-021926_obsessionIllustrious_v31
```
---
## :tomato: XY Plot Node
### D2 XY Plot Easy
- A node that creates XY Plots with simplified workflow limited to KSampler parameters
#### Input
- `positive` / `negative` / `seed` / `steps` / `cfg` / `sampler_name` / `scheduler` / `denoise`
- Settings to pass to KSampler
- `ckpt_name`
- Setting to pass to D2 Checkpoint Loader
- `x_type` / `y_type`
- Specify items to execute in XY Plot
- When `STRING`, `INT`, or `FLOAT` is specified, output will be from `x_other`, `y_other`
- `x_list` / `y_list`
- XY Plot modification contents
- Since it's newline-separated text, input from other nodes is possible
- `auto_queue`
- `true`: Automatically executes Queue the required number of times
- `false`: Manually execute Queue
- `Reset index`
- Reset index with this button when stopped midway
#### Output
- `xy_pipe`
- Collectively outputs parameters used in D2 KSampler
- `grid_pipe`
- Collectively outputs parameters `x_annotation` `y_annotation` `status` used in D2 Grid Image
- `positive` / `negative` / `seed` / `steps` / `cfg` / `sampler_name` / `scheduler` / `denoise`
- Parameters to pass to KSampler
- `ckpt_name`
- Setting to pass to D2 Checkpoint Loader
- `x_other` / `y_other`
- Outputs from here when `x_type` `y_type` is set to `STRING` `INT` `FLOAT`
- `x_annotation` / `y_annotation`
- Header text to connect to `D2 XY Grid Image`
- `status`
- Control signal to connect to `D2 XY Grid Image`
- `index`
- Current processing count
---
### D2 XY Plot
- Node for creating versatile XY Plot workflows
- X/Y inputs are simple newline-separated text for easy combination with other nodes
#### Input
- `x_type` / `y_type`
- Specify data type of `x_list` `y_list` from `STRING` `INT` `FLOAT`
- `x_title` / `y_title`
- Text to add to header text
- `x_list` / `y_list`
- XY Plot change contents
- Newline-separated text that can be input using other nodes
- `auto_queue`
- `true`: Automatically execute required number of Queues
- `false`: Manually execute Queue
- `Reset index`
- Reset index with this button when stopped midway
#### Output
- `X` / `Y`
- Elements retrieved from `x_list` `y_list`
- `x_annotation` / `y_annotation`
- Header text to connect to `D2 XY Grid Image`
- `status`
- Control signal to connect to `D2 XY Grid Image`
- `index`
- Current processing count
---
### D2 XY Grid Image
- Grid image creation node used with `D2 XY Plot`
#### Input
- `x_annotation` / `y_annotation`
- Header text for grid image
- `status`
- Control text from `D2 XY Plot`
- `INIT`: Initialize
- `FINISH`: Output grid image
- `{empty string}`: Other states
- `font_size`
- Header text font size
- `grid_gap`
- Gap between images
- `swap_dimensions`
- `true`: Vertical grid
- `false`: Horizontal grid
- `grid_only`
- `true`: Output only grid image
- `false`: Output individual images too
---
### D2 XY Prompt SR
- Search and replace input text to pass to `D2 XY Plot`
- Can output as list
#### Input
- `prompt`
- Prompt. Can include newlines
- `search_txt`
- Search target text. Can include multiple words
- Cannot use newlines
- `replace`
- Replacement text
- OK to include "," as it's separated by newlines
#### Output
- `x / y_list`
- Connect to `D2 XY Plot`
- `LIST`
- Output replaced text as list
---
### D2 XY Prompt SR2
- Search and replace prompts received from `D2 XY Plot` before passing to KSampler
- Use this to recreate Stable Diffusion webui A1111's Prompt S/R
#### Input
- `x_y`
- Replacement text received from `D2 XY Plot`
- `prompt`
- Target text for replacement
- `search`
- Search text. Can include multiple words
- Cannot use newlines
---
### D2 XY Seed
- Outputs random number when `-1` is specified
- Other numbers are output as-is
- Must set `x/y_type` to `INT` on `D2 XY Plot` side
---
### D2 XY Checkpoint List / D2 XY Lora List
- Node to pass Checkpoint/Lora to `D2 XY Plot`
- Can specify up to 50
---
### D2 XY Model List
- A node that passes Checkpoint/Lora to `D2 XY Plot`
- Useful when you want to get a large list of models but don't want to select them one by one in `D2 Checkpoint List`
- Click `get_list` to retrieve the model list, then edit it to keep only the ones you need
#### input
- `model_type`
- Select either `checkpoints` or `loras`
- `filter`
- Enter text to filter
- Regular expressions are supported
- When including `\` in search text, write it as `\\`
- `get_list`
- Button to retrieve model list
---
### D2 XY Folder Images
- Node to pass image paths from specified folder to `D2 XY Plot`
---
### D2 XY Annotation
- Used to add headers when not using `D2 XY Plot` or when doing special XY Plot
---
### D2 XY List To Plot
- Converts output from list nodes to be compatible with `D2 XY Plot`
- Internally, it simply performs `"\n".join(list)`, so if the list contents include line breaks, it may not work as intended
- Use `D2 XY String To Plot` when working with text that contains line breaks
---
### D2 XY String To Plot
- Converts multiline text to be compatible with `D2 XY Plot` / `D2 XY Plot Easy`
- Used when you want to perform XY Plot comparisons of entire prompts
- When using with `D2 XY Plot Easy` for prompt comparison, set `x/y_type` to `STRING` and connect `x/y_other` to the `positive` input of `D2 KSampler`
---
## :tomato: Refiner Node
### D2 Refiner Steps
- Node for outputting steps for Refiner
#### Input
- `steps`
- Total step count
- `start`
- Starting steps for first KSampler
- `end`
- Ending steps for first KSampler
#### Output
- `steps` / `start` / `end`
- Input passthrough
- `refiner_start`
- Starting steps for second KSampler
---
### D2 Refiner Steps A1111
- Node that can specify denoise for Refiner in img2img
#### Input
- `steps`
- Total step count
- `denoise`
- Specify denoise for img2img
- `switch_at`
- What percentage of total steps to switch to next KSampler
#### Output
- `steps`
- Input passthrough
- `start`
- Starting steps for first KSampler
- `end`
- Ending steps for first KSampler
- `refiner_start`
- Starting steps for second KSampler
---
### D2 Refiner Steps Tester
- Node for checking steps
---
## :tomato: Float Palet
### D2 Queue Button
- Button to generate specified number of images (Batch count)
- Can be moved by dragging left edge of palette
- Configure visibility in ComfyUI settings under `D2` category
- Number of images can also be set from settings screen
- Separate numbers with comma (,)
---
### Prompt convert dialog
- Dialog for converting weights between NovelAI and StableDiffusion
- Open from `Prompt convert` button
- Hidden by default
- Enable display by activating `settings > D2 > Show prompt convert button`