ComfyUI Extension: Vectorizer API

Authored by rickrender

Created

Updated

0 stars

A collection of ComfyUI nodes for interfacing with the Vectorizer.ai API. Manipulate the results with options for scaling the SVG result back to raster image with increased resolution. Includes a background remover node to remove a prevalent background color from raster images. Enter credentials in config.json or directly within the node.

Custom Nodes (0)

    README

    ComfyUI Vectorizer.ai API Node Pack

    This repository contains a pack of useful nodes for ComfyUI designed to simplify a professional vector-based image processing pipeline. Convert raster images to clean, scalable vectors using the Vectorizer.AI API, and then remove the background with a background removal node for compositing and further creative work. There are options to scale the vector graphic to a user defined value, this can allow for higher resolution raster graphics without quality loss.

    workflow

    ✨ Core Features

    • High-Quality Vectorization: Integrates with the powerful Vectorizer.AI API to convert PNGs into clean, editable SVGs.
    • Infinite Scalability: Includes a scaled_png option to render the resulting SVG at any resolution (e.g., 4x, 8x) for crisp, high-resolution raster images without quality loss.
    • Background Removal Nodes: Node options for two different methods that detect and remove a solid color background from a raster image or the largest shape from a returned SVG file.
    • Mask Output for Advanced Workflows: The background remover provides a perfect black and white silhouette mask, ideal for inpainting, compositing, sticker effects, and driving ControlNets.
    • Secure & Convenient: Supports API key management via an optional config.json file, so you don't have to enter your credentials in the workflow.

    📦 Nodes Included

    1. Vectorizer.ai API

    This node is the bridge to the Vectorizer.AI service. It takes an image and sends it for vectorization.

    • Inputs: image, API credentials, output_format (svg, png, scaled_png), mode (production or test), and other vectorization parameters.
    • Output: Returns the original or processed IMAGE back into the workflow.
    • Functionality: Saves the final vector (.svg) or raster (.png) file to your ComfyUI output directory, respecting your filename_prefix and numbering.

    2. Background Remover (Shape)

    A node to remove the single largest shape from the background of the returned SVG file with an option to save the edited SVG or pass through an RGBA PNG.

    3. Background Remover (Color) [WIP]

    A fast chroma keyer designed for images with a solid color background.

    • Inputs: image, threshold (to control the edge softness/fuzziness).
    • Outputs: image_rgba (the subject on a transparent background) and mask (the black and white silhouette).
    • Functionality: Detects the background color by analyzing the image borders.

    ⚙️ Installation

    Automatic Install: Search for Vectorizer API in ComfyUI Manager and click Install.

    Manual Install: Activate your venv then proceed by following these instructions:

    1. Clone the Repository

      Navigate to your ComfyUI custom_nodes directory and clone this repository:

      cd ComfyUI/custom_nodes/
      git clone https://github.com/rickrender/ComfyUI-Vectorizer-API.git
      
    2. Install Python Dependencies

      Install the required Python packages using the included requirements.txt file.

      cd ComfyUI-Vectorizer-API
      pip install -r requirements.txt
      
    3. Install System Dependencies (for CairoSVG)

      The scaled_png feature relies on the Cairo graphics library. You must install it on your system.

      • For Debian/Ubuntu:
        sudo apt-get update && sudo apt-get install libcairo2-dev pkg-config
        
      • For other operating systems, please consult their package manager to install the "Cairo" library.
    4. Set Up API Credentials (Recommended)

      Create an account at vectorizer.ai and get your keys from your account page. For convenience, create a file named config.json inside the ComfyUI-Vectorizer-Pack folder. Add your API keys to this file:

      {
        "api_id": "YOUR_REAL_API_ID",
        "api_secret": "YOUR_REAL_API_SECRET"
      }
      

      The node will automatically use these credentials if the fields in the UI are left blank. You can also enter them in the UI if you wish instead.

    5. Restart ComfyUI

      Completely restart your ComfyUI instance. The new nodes will appear in the "Conversion" category.


    Dependencies

    • Python: requests, lxml, CairoSVG
    • System: libcairo2 or equivalent

    License

    This project is licensed under the MIT License.

    Acknowledgements

    This node pack utilizes the powerful Vectorizer.AI service.