SATA Utility Node Suite for ComfyUI
Author: Satadal
Version: 1.0
License: MIT
Repository: https://github.com/SatadalAI/SATA_UtilityNode
🚀 Overview
SATA Utility Node Suite is a collection of custom nodes for ComfyUI designed to enhance your image processing and workflow experience.
It includes:
- Upscale Machine: High-quality model-based image upscaling with aspect-ratio preserving rescale.
- Prompt Machine: Easy prompt selection from a CSV for positive/negative prompt workflows.
- Touchpad Pan & Zoom: Seamless navigation for large images in the ComfyUI preview panel.
- Resolution Machine: Quick selection of model-specific image resolutions for popular models.
- Save Image w/Metadata: saving images with meta data and with different file formats.
🧩 Node Features
🖼️ Upscale Machine
- Model-based Upscaling: Uses custom or pre-trained models from the
upscale_modelsfolder. - Aspect Ratio Preserving Rescale: Output size is always original size × rescale factor.
- CPU-based Rescaling: Efficient resizing using OpenCV.
- Supersampling: Optional detail preservation for downscaling/fractional resizing.
- Rounding Modulus: Ensures output dimensions align with model/UI constraints.
- Dual Output: Returns both the processed image and a help/documentation link.
💬 Prompt Machine
- CSV-based Prompt Selection: Select prompt sets from a CSV file (
prompts.csv). - Positive/Negative Output: Outputs both positive and negative prompts as strings.
- Easy Integration: Designed for use in prompt-driven workflows.
🖱️ Touchpad Pan & Zoom
- Preview Navigation: Enables smooth pan and zoom for large images in the ComfyUI preview panel.
- User Experience: Makes inspecting high-res outputs fast and intuitive.
📏 Resolution Machine
- Model-aware Resolution Selection: Choose from a list of recommended resolutions for each supported model.
- Auto-populate Width/Height: Selecting a resolution automatically fills in the correct width and height.
- Manual Override: You can manually set width/height, which clears the preset selection.
- Supports Many Models: Includes presets for SD1.5, SDXL, Illustrious XL, Pony XL, Flux.1 Dev, Qwen-Image, Wan2.2-S2V, SD3.5 Large, Lumina-Image 2.0, and more.
- UI Integration: Intuitive dropdowns for model and resolution selection in the ComfyUI interface.
💾 Save Image w/Metadata
- Single path+filename input: Provide a single required
path_and_filenamestring (examples:comfy,Test/comfy,SDXL/Test/comfy). The last path segment is used as the filename; preceding segments become folders under the ComfyUI output directory. - Supported formats: PNG, JPEG (saved as .jpg), WEBP (choose with the
extensiondropdown). - Automatic folder creation: Any missing folders in the provided path are created automatically.
- Metadata embedding: PNG files receive tEXt entries (parameters/prompt). JPEG/WEBP receive EXIF UserComment where possible.
- Placeholder resolution: Filenames and paths accept
%...%placeholders which are resolved from the node'spromptdictionary (best-effort). Example: ifpromptcontains{"title": "MyTitle"}, using%title%/imgwill save underMyTitle/img.png. - Collision-safe saving: If a file already exists the node will append
_0001,_0002, ... to the base filename to avoid overwriting.
📦 Installation
-
Clone or download this repository into your ComfyUI
custom_nodesdirectory:git clone https://github.com/SatadalAI/SATA_UtilityNode.git -
(Optional) Install dependencies if not already present:
pip install -r requirements.txt -
Restart ComfyUI.
📚 Node Inputs & Outputs
Upscale Machine
| Name | Type | Description |
|---|---|---|
image |
IMAGE | Input image tensor |
upscale_model |
STRING | Model filename from upscale_models folder |
rescale_factor |
FLOAT | Scaling factor (aspect ratio preserved) |
supersample |
STRING | "true" or "false" |
rounding_modulus |
INT | Ensures dimensions are divisible by this value |
Outputs:
| Name | Type | Description |
|---|---|---|
IMAGE |
IMAGE | The upscaled and resized image |
show_help |
STRING | Link to documentation/help |
💬 Prompt Machine
Loads positive and negative prompts from a prompts.csv file, allowing you to quickly switch between predefined prompt sets in your workflow.
| Name | Type | Description |
|---|---|---|
selection |
STRING | Prompt set name from CSV |
Outputs:
| Name | Type | Description |
|---|---|---|
positive |
STRING | Positive prompt |
negative |
STRING | Negative prompt |
🖱️ Touchpad Pan & Zoom
A UI enhancement that enables smooth, intuitive touchpad-based panning and zooming on images in the ComfyUI preview panel. No node configuration is required—it works automatically.
📏 Resolution Machine
Provides dropdowns to quickly select recommended resolutions for popular models like SDXL, Pony, SD3, and more. Selecting a preset auto-populates width and height, but you can also set them manually.
| Name | Type | Description |
|---|---|---|
model |
STRING | Model name (select from supported models) |
resolution |
STRING | Resolution preset name (auto-populates size) |
width |
INT | Image width (can be set manually) |
height |
INT | Image height (can be set manually) |
Outputs:
| Name | Type | Description |
|---|---|---|
width |
INT | Final image width |
height |
INT | Final image height |
💾 Save Image w/Metadata
An advanced image saving node with dynamic pathing, metadata embedding, and filename collision avoidance.
| Name | Type | Description |
|---|---|---|
path_and_filename |
STRING | Path and filename string (e.g., MyRenders/character). The last segment is the filename; preceding segments are folders under the ComfyUI output directory. |
extension |
STRING | File format: png, jpeg, webp. |
custom_string |
STRING | Optional custom text to embed in metadata. |
quality_jpeg_or_webp |
INT | Quality for JPEG/WEBP formats (1-100). |
lossless_webp |
BOOLEAN | If true, saves WEBP files losslessly. |
prompt (hidden) |
DICT | Workflow data used to resolve %...% placeholders in the filename (e.g., %sampler_name%). |
Key Behaviors:
- Dynamic Paths: Automatically creates any missing folders in your specified path.
- Metadata: Embeds workflow data into PNG (tEXt), JPEG (EXIF), and WEBP (EXIF) files.
- Collision Safe: Prevents overwrites by appending a number (e.g.,
image_0001.png) if the filename already exists. - UI Output: Returns a list of saved files to the ComfyUI manager/preview panel.
📝 License
MIT License