Skip to content

cedarconnor/upsampler

Repository files navigation

ComfyUI Upsampler Nodes

ComfyUI custom nodes for integrating with the Upsampler API to enhance and upscale images using AI.

Features

Three different upscaling methods:

  1. Smart Upscale - Enhances images by intelligently regenerating at a higher resolution
  2. Dynamic Upscale - Preserves the overall composition while forcing new details
  3. Precise Upscale - Upscales and sharpens while completely preserving the original structure

Installation

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

    cd ComfyUI/custom_nodes
    git clone <this-repo-url> comfyui-upsampler
    
  2. Install dependencies:

    pip install -r comfyui-upsampler/requirements.txt
    
  3. Restart ComfyUI

Setup Required

1. Get Upsampler API Key

  1. Visit https://upsampler.com/
  2. Create an account and generate an API key
  3. Add credits to your account for processing

2. Image Hosting Setup

The Upsampler API requires images to be accessible via public URLs. The nodes now include automatic image hosting with multiple options:

Option A: ImgBB (Recommended - Free & Reliable, up to 32MB)

  1. Get a free API key:

    • Visit https://api.imgbb.com/
    • Sign up and generate an API key
    • Free tier: Up to 100 images/day, 32MB per image
  2. Configure the API key (choose one method):

    Method 1: Node Parameter

    • Add your ImgBB API key to the "imgbb_api_key" field in each node

    Method 2: Environment Variable

    • Set environment variable: IMGBB_API_KEY=your_api_key_here
    • Windows: set IMGBB_API_KEY=your_api_key_here
    • Linux/Mac: export IMGBB_API_KEY=your_api_key_here

Option B: Free Services (Automatic Fallback, larger files supported)

If no ImgBB API key is provided, the nodes will automatically try:

  • Catbox.moe: Up to 200MB, no API key needed, permanent storage
  • 0x0.st: Simple file sharing service
  • PostImages: Image hosting service

Perfect for large images (32MB-200MB) without needing any API keys!

Note: Free services may be less reliable and have usage limits.

Option C: Your Own Server

For production use, implement your own hosting solution by modifying the _upload_image_temp() method in nodes.py.

Usage

  1. Add one of the Upsampler nodes to your ComfyUI workflow:

    • 🔍 Upsampler Smart Upscale
    • ⚡ Upsampler Dynamic Upscale
    • 🎯 Upsampler Precise Upscale
  2. Connect an IMAGE input to the node

  3. Configure the parameters:

    • API Key: Your Upsampler API key
    • ImgBB API Key (optional): Your ImgBB API key for reliable image hosting
    • Input Image Type: Choose "realism", "anime", or "universal"
    • Upscale Factor: How much to upscale (1.0-4.0 for Smart/Dynamic, 1.0-16.0 for Precise)
    • Max Parallel Jobs: How many tiles to submit simultaneously (1-15). Leave at 1 for sequential processing.
    • Additional parameters specific to each method
  4. The node will:

    • Upload your image to a public URL
    • Submit the upscaling job to Upsampler API
    • Poll for completion with progress updates
    • Download and return the upscaled image

Node Parameters

Smart Upscale

  • imgbb_api_key: ImgBB API key for reliable image hosting (optional)
  • global_creativity (0-10): How much the AI can change the original image
  • detail (0-10): Level of detail enhancement
  • description: Text prompt to guide the upscaling process
  • should_enhance_faces: Better preserve and enhance facial features
  • should_preserve_blur: Preserve existing blur in the image
  • max_parallel_jobs (1-15): Tiles submitted in parallel; higher values finish sooner but must stay within Upsampler rate and queue limits

Dynamic Upscale

  • imgbb_api_key: ImgBB API key for reliable image hosting (optional)
  • global_creativity (0-10): How much the AI can change the original image
  • resemblance (0-10): How closely to adhere to original image structure
  • detail (0-10): Level of detail enhancement
  • description: Text prompt to guide the upscaling process
  • should_enhance_faces: Better preserve and enhance facial features
  • should_preserve_hands: Better preserve hand structures
  • should_preserve_blur: Preserve existing blur in the image
  • max_parallel_jobs (1-15): Tiles submitted in parallel; honours UPSAMPLER_MAX_CONCURRENCY and API queue limits

Precise Upscale

  • imgbb_api_key: ImgBB API key for reliable image hosting (optional)
  • should_enhance_faces: Apply face restoration techniques
  • should_preserve_blur: Preserve existing blur in the image
  • max_parallel_jobs (1-15): Tiles submitted in parallel; honours UPSAMPLER_MAX_CONCURRENCY and API queue limits

Advanced Configuration

  • UPSAMPLER_MAX_CONCURRENCY: Optional environment override for the concurrency cap (default comes from each node's max_parallel_jobs, clamped to 1-15).
  • UPSAMPLER_MAX_RETRIES: Additional attempts after the initial Upsampler failure when the error is retryable (default: 2).
  • UPSAMPLER_RETRY_DELAY: Seconds to wait before retrying a failed tile (default: 10).

These variables apply across every Upsampler node in a workflow and complement the per-node max_parallel_jobs control. Increase them gradually to stay within Upsampler's published rate and queue limits (90 POSTs/minute, 6000/hour; 240 status checks/minute).

Pricing

Credits are consumed based on output image size:

  • Smart/Dynamic Upscale: 1 credit per megapixel (minimum 1 credit)
  • Precise Upscale: 1 credit per 4 megapixels (minimum 1 credit)

Troubleshooting

  1. Image upload errors:

    • Get an ImgBB API key for reliable hosting
    • Check your internet connection
    • Try again if free services are temporarily unavailable
  2. "All free hosting services failed":

    • Use ImgBB with an API key (recommended)
    • Set the IMGBB_API_KEY environment variable
    • Or add the key to the node parameter
  3. API authentication errors:

  4. Rate limit errors:

    • The API currently allows up to 90 requests/minute (6000/hour) for upscale endpoints and 240 requests/minute for status checks
    • High max_parallel_jobs values can hit these limits quickly; wait before retrying or lower concurrency
  5. Job failures:

    • Check the error message for specific issues
    • Common issues: invalid parameters or insufficient credits
    • Verify image format and size constraints

API Documentation

For full API documentation, visit: https://upsampler.com/api

License

This custom node implementation is provided as-is. Please refer to Upsampler's terms of service for API usage.

About

implements the upsampler API in ComfyUI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages