Add a 2026.11.04 notice to README explaining that many node inputs and outputs were renamed or reordered and need reconnecting, and update the ja/en/zh node docs and changelog for LIST/ARRAY, x / y_items, the new D2 List Converter and the deprecated list nodes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 KiB
- Top
- Node / Image Node / Text Node / XYPlot Node / Float Palet
- Workflow
Node
🍅 Image Node
D2 Preview Image
- Click the
Popup Imagebutton to display the full-screen gallery
Output
images: Outputs the input images as they are
D2 Save Image
- An image saving node with full-screen gallery functionality, similar to
D2 Preview Image - Supports PNG / JPEG / WEBP / animated WEBP image formats
- Saves A1111-style generation parameters to metadata (PNG / JPEG / WEBP formats only)
- When loaded with
D2 Load Image, positive and negative prompts can be extracted from saved images (PNG / JPEG / WEBP formats only)
Input
images: Images to saved2_pipe: Receives generation parameters fromD2 KSampleretc.filename_prefix: Filename format. SeeD2 Filename Templatefor detailspreview_only:true: Only preview images without savingfalse: Save images
format: Select image format frompng/jpeg/webp/animated_webplossless: Applied forwebpandanimated_webptrue: Lossless compressionfalse: Lossy compression
quality: Image compression ratio. Applied forjpegorwebp,animated_webpwithlossless:falsefps: Frame rate foranimated_webpPopup Image: Clicking the button displays a full-screen gallery
Output
images: Outputs the input images as they arefilenames: Array of full paths of saved image files (ARRAY)
D2 Save Image Eagle
D2 Save Imagewith Eagle registration functionality- Eagle Official Website
Differences from D2 Send Eagle
- Supports animated WEBP
- Full-screen gallery functionality
- Filename rules conform to the standard
Save Image - Tag saving feature excluded
Input
eagle_folder: Eagle registration folder. Can use either folder name or folder IDmemo_text: Text to register as a memo in Eagle
Recording A1111 webui-style parameters in Eagle memo
Automatic creation
When d2_pipe is connected from D2 KSampler, it is saved to the Eagle memo.
Custom format creation
For complex generation parameters like videos, you can also record custom memos.
Input
eagle_folder: Eagle registration folder. Can use either folder name or folder IDmemo_text: Text to register as a memo in Eagle
Recording A1111 webui-style parameters in Eagle memo
Use D2 Filename Template2 to create a template and input it into the memo_text of D2 Save Image Eagle.
In the sample above, positive and negative from D2 KSampler are input to arg_1 and arg_2 and retrieved with %arg_1% and %arg_2%, while other parameters are retrieved with %{Node name}.{Param}.
For details on parameter retrieval methods, see D2 Filename Template.
%arg_1%
Negative prompt: %arg_2%
Steps: %D2 KSampler.steps%, Sampler: %D2 KSampler.sampler_name% %D2 KSampler.scheduler%, CFG scale: %D2 KSampler.cfg%, Seed: %D2 KSampler.seed%, Size: %Empty Latent Image.width%x%Empty Latent Image.height%, Model: %D2 Checkpoint Loader.ckpt_name%
Output result
masterpiece, 1girl, bikini, blue sky,
Negative prompt: bad quality, worst quality, sepia,
Steps: 20, Sampler: euler_ancestral simple, CFG scale: 5.000000000000001, Seed: 926243299419009, Size: 768x1024, Model: _SDXL_Illustrious\anime\HiyokoDarkness_vpred_v2_20250329.safetensors
D2 Send File Eagle
- Registers files at the path input in
file_pathto Eagle - Created to register output files from
Video Combineto Eagle - Can also save video generation parameters by using
D2 File Template2formemo_textinput - The
file_pathoutput outputs the inputfile_pathas it is
About file_path
Provide the full path of the file as a string or an array of strings.
Example: String
D:\ComfyUI\output\foo.png
Example: Array of strings
["D:\ComfyUI\output\foo.png","D:\ComfyUI\output\bar.png"]
About Filenames output by Video Combine
The Filenames output by Video Combine is an array like the following:
[
true,
[
"D:\\ComfyUI\\output\\AnimateDiff_00002.png",
"D:\\ComfyUI\\output\\AnimateDiff_00002.mp4"
]
]
In the image above, the Exec node from ComfyUI-List-Utils is used to extract the filename part.
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 maskwidth / height: Image sizepositive/negative: Promptsfilename/filepath: Name and path of the saved filepnginfo: Image metadata
About Prompt Output
Compatible with images saved by the following nodes and UIs:
D2 Save Image,D2 Save Image Eagle- Save Image With Prompt
- Save Image w/Metadata
- Novel AI
- A1111 (including Forge variants)
Note: Prompts cannot be extracted when the mask editor is used
When you edit an image with the mask editor, ComfyUI writes out a new image file and internally swaps it in, so the original metadata is lost and prompts can no longer be extracted. Clearing the mask does not revert this swap.
As a workaround, add a separate
D2 Load Imagededicated to prompt extraction and avoid using the mask editor on that node.
D2 Load Folder Images
- Batch loads and outputs images from a folder
- Used with
D2 Grid Imageetc. - Use
D2 Folder Image Queuefor sequential processing
Input
folder- Specify folder in full path
extension- Specify like
*.jpgto load only JPEG images - Can also specify patterns like
*silver*.webp - Can specify multiple extensions comma-separated, like
*.png, *.jpg, *.webp
- Specify like
include_subfolderstrue: Also includes images in subfoldersfalse: Only directly under the specified folder- You can also write
**directly infolder, likeimage_folder/**, to search recursively
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- Can specify multiple extensions comma-separated, like
*.png, *.jpg, *.webp
include_subfolderstrue: Also includes images in subfoldersfalse: Only directly under the specified folder- You can also write
**directly infolder, likeimage_folder/**, to search recursively
start_at- Image number to start processing
auto_queuetrue: Automatically execute remaining Queuesfalse: Execute only once
Output
image_path- Full path of image
D2 Grid Image
- Outputs grid images
- Supports both horizontal and vertical alignment
- For D2 XY Plot workflows, please use
D2 XY Grid Image.
Input
max_columns- Number of images to align horizontally
- When
swap_dimensionsistrue, this becomes the number of vertical images
grid_gap- Spacing between images
swap_dimensionstrue: Vertical alignmentfalse: 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
- Combines multiple input images into a batch
- Can be used with D2 Grid Image and others
- Maximum of 50 inputs
D2 Image Mask Stack
- Combines multiple input images and masks into a batch
- Essentially D2 Image Stack with added mask support
D2 EmptyImage Alpha
- Adds alpha channel (transparency) to EmptyImage
- Setting
output_alphatofalseoutputs RGB (3ch) without an alpha channel- Can be passed to nodes that expect RGB (such as Anima ControlNet-LLLite)
D2 Mosaic Filter
- Applies a mosaic filter
- Adjustable transparency, brightness, and color inversion options
I've written an article about the automatic mosaic workflow, so please refer to it.
D2 Cut By Mask
- Cut an image using a mask
- Can specify the output shape, size, margins, etc.
Input
images: Source image to cut frommask: Maskcut_type: Shape of the cut imagemask: Cut according to the mask shaperectangle: Calculate and cut a rectangle from the mask shapesquare_thumb: Cuts out the maximum-sized square. A mode intended for thumbnails
output_size: Output image sizemask_size: Mask sizeimage_size: Input image size (surroundings become transparent while preserving the input image position)
round_to: Round up the cut rectangle's width/height to the chosen unit (defaultnone)- Choose from
none/8px/16px/32px/64px - Only effective when
cut_typeisrectangle(ignored formask/square_thumb) - Intended to prevent blurry edges with local models that generate in 8px units. Expands while keeping the center, and never extends beyond the source image
- Choose from
padding: Number of pixels to expand the mask area (default 0)min_width: Minimum width of mask size (default 0)min_height: Minimum height of mask size (default 0)output_alpha: Whether to include alpha channel in the output image
output
image: Image cut by the mask areamask: Maskrect: Cut rectangular area
D2 Paste By Mask
- Composite images using masks or rectangular areas created with D2 Paste By Mask
- Can specify blur width, paste shape, etc.
Input
img_base: Base image (batch compatible)img_paste: Image to paste (batch compatible)paste_mode: Determines how to trim img_paste and the paste coordinatesmask: Mask img_paste with mask_opt and paste at position x=0, y=0 (mask shape pasting)rect_full: Trim img_paste to the size of rect_opt and paste at the position of rect_opt (rectangular pasting)rect_position: Paste img_paste at the position of rect_opt (rectangular pasting)rect_pos_mask: Mask img_paste with mask_opt and paste at the position of rect_opt (mask shape pasting)
multi_mode: Processing method when either or both of img_base and img_paste have multiple imagespair_last: Process img_base and img_paste pairs from the beginning with the same index. If one has fewer images, the last image is usedpair_only: Same as pair_last. If one has fewer images, an error is displayed and processing stopscross: Process all combinations
input optional:
mask_opt: Maskrect_opt: Rectangular areafeather: Number of pixels to blur the edge (default 0)
output
image: Composited image
About multi_mode
pair_last and pair_only output the same ordered images from img_base and img_paste as pairs.
cross outputs all combinations.
D2 Create Point
- Node that outputs XY coordinates by dragging markers
- Markers increase or decrease with
marker_count, and thex_1/y_1... outputs follow along - Dropping an image onto the node shows it as the canvas background and applies its size to
width/height
Input
marker_count: Number of markers (1-16). The number ofx_N/y_Noutputs follows this valuemodeabsolute: Outputs actual pixel coordinatesrelative: Outputs relative values from 0.0 to 1.0
width/height: Size of the coordinate system. It also determines the aspect ratio of the canvasimage: Image shown in the background. Leave it empty for a black canvasmarkers: JSON of the marker coordinates. It updates automatically when you drag, so you normally don't need to touch it
Output
image: The specified image. If no image is specified, a black image ofwidthxheightwidth/height: Size of the coordinate systemx_1/y_1: Coordinates of marker 1. Ifmarker_countis "3",x_2y_2x_3y_3are also output
About mode
markers always holds relative values (0.0 to 1.0) regardless of mode, so switching between absolute and relative does not move the markers. The same applies when you change width / height.
The image above shows the same marker positions with only the mode changed. Multiplying 0.163305 in relative by 832 of width gives 136 in absolute.
D2 Create Masks
- Node that creates multiple masks by dragging rectangles on a canvas
- Drag inside a rectangle to move it, drag the white circles at its corners to resize it
- Rectangles increase or decrease with
mask_count, and themask_1mask_2... outputs follow along - Dropping an image onto the node shows it as the canvas background and applies its size to
width/height
Input
mask_count: Number of masks (1-16). The number ofmask_Noutputs follows this valueselect_mask: Number of the mask to make active. It changes automatically to the number of the mask you click on the canvaswidth/height: Size of the output masks. It also determines the aspect ratio of the canvasimage: Image shown in the background. Leave it empty for a black canvasmasks: JSON of the mask positions and sizes. It updates automatically when you drag, so you normally don't need to touch it
Output
image: The specified image. If no image is specified, a black image ofwidthxheightwidth/height: Size of the masksmask_1: Mask 1. Ifmask_countis "3",mask_2mask_3are also output
About the active mask
The mask you click becomes "active": it is shown in front of the others and white circles for resizing appear at its corners.
When masks overlap completely you cannot click the one underneath, so pick its number with select_mask instead. Conversely, changing the active mask by clicking also updates select_mask.
D2 Random Point
- Node that outputs random XY coordinates
- You can limit the range by setting min / max
Input
width/height: Size of the coordinate systemmin_x/max_x: Range of the X coordinatemin_y/max_y: Range of the Y coordinatemodeabsolute: Outputs actual pixel coordinatesrelative: Outputs a relative value from 0.0 to 1.0
number_type:int/float. It only takes effect whenmodeisabsoluteseed: Random seed. The same value gives the same coordinates
Output
width/height: The size of the coordinate system you entered is output as isx/y: The randomly chosen coordinates
About the range
min_x max_x min_y max_y are always specified as relative values from 0.0 to 1.0, regardless of mode.
For example, setting min_x to 0.25 and max_x to 0.75 keeps the coordinates near the center. Changing width does not change what "near the center" means.
Entering the same value for min and max fixes the coordinate at that position.
About number_type
When mode is absolute, int outputs an integer like 100 and float outputs a decimal like 100.3968.
relative is a range from 0 to 1, so it is always a decimal.
D2 Random Mask
- Node that outputs a random rectangular mask
- The rectangle is placed so that it never extends beyond
width/height
Input
width/height: Size of the output maskmin_width/max_width: Range of the rectangle width (pixels)min_height/max_height: Range of the rectangle height (pixels)seed: Random seed. The same value gives the same rectangle
Output
width/height: The mask size you entered is output as ismask: Mask that is white inside the rectanglemask_x/mask_y: Top-left coordinates of the rectanglemask_w/mask_h: Width and height of the rectangle
About the rectangle size
Entering the same value for min_width and max_width fixes the width, so only the position moves randomly.
When max is smaller than min the two are swapped, and a size larger than width / height is reduced to the mask size. The rectangle never extends outside the mask.