2025-11-14 21:25:31 +05:30
2025-11-14 21:25:31 +05:30
2025-11-14 21:25:31 +05:30
2025-11-14 21:25:31 +05:30
2025-11-14 21:25:31 +05:30
2025-08-31 19:31:38 +05:30
2025-08-31 19:31:38 +05:30
2025-11-12 09:51:45 +05:30
2025-11-14 21:25:31 +05:30
2025-10-10 20:33:06 +05:30

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_models folder.
  • 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_filename string (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 extension dropdown).
  • 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's prompt dictionary (best-effort). Example: if prompt contains {"title": "MyTitle"}, using %title%/img will save under MyTitle/img.png.
  • Collision-safe saving: If a file already exists the node will append _0001, _0002, ... to the base filename to avoid overwriting.

📦 Installation

  1. Clone or download this repository into your ComfyUI custom_nodes directory:

    git clone https://github.com/SatadalAI/SATA_UtilityNode.git
    
  2. (Optional) Install dependencies if not already present:

    pip install -r requirements.txt
    
  3. 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


S
Description
No description provided
Readme MIT
389 KiB
Languages
Python 53%
JavaScript 47%