Back to Skills
    🦞

    image-router

    Generate AI images with any model using ImageRouter API

    By @dawe35
    View on GitHub
    SKILL.md
    ---
    name: imagerouter
    description: Generate AI images with any model using ImageRouter API (requires API key).
    homepage: https://imagerouter.io
    metadata: {"clawdbot":{"emoji":"🎨","requires":{"bins":["curl"]}}}
    ---
    
    # ImageRouter Image Generation
    
    Generate images with any model available on ImageRouter using curl commands.
    
    ## Available models
    The `test/test` model is a free dummy model that is used for testing the API. It is not a real model, therefore you should use other models for image generation.
    
    Get top 10 most popular models:
    ```bash
    curl -X POST 'https://backend.imagerouter.io/operations/get-popular-models'
    ```
    
    Search available models by name:
    ```bash
    curl "https://api.imagerouter.io/v1/models?type=image&sort=date&name=gemini"
    ```
    
    Get all available models:
    ```bash
    curl "https://api.imagerouter.io/v1/models?type=image&sort=date&limit=1000"
    ```
    
    ## Quick Start - Text-to-Image
    
    Basic generation with JSON endpoint:
    ```bash
    curl 'https://api.imagerouter.io/v1/openai/images/generations' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      --json '{
        "prompt": "a serene mountain landscape at sunset",
        "model": "test/test",
        "quality": "auto",
        "size": "auto",
        "response_format": "url",
        "output_format": "webp"
      }'
    ```
    
    ## Unified Endpoint (Text-to-Image & Image-to-Image)
    
    ### Text-to-Image with multipart/form-data:
    ```bash
    curl 'https://api.imagerouter.io/v1/openai/images/edits' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      -F 'prompt=a cyberpunk city at night' \
      -F 'model=test/test' \
      -F 'quality=high' \
      -F 'size=1024x1024' \
      -F 'response_format=url' \
      -F 'output_format=webp'
    ```
    
    ### Image-to-Image (with input images):
    ```bash
    curl 'https://api.imagerouter.io/v1/openai/images/edits' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      -F 'prompt=transform this into a watercolor painting' \
      -F 'model=test/test' \
      -F 'quality=auto' \
      -F 'size=auto' \
      -F 'response_format=url' \
      -F 'output_format=webp' \
      -F 'image[]=@/path/to/your/image.webp'
    ```
    
    ### Multiple images (up to 16):
    ```bash
    curl 'https://api.imagerouter.io/v1/openai/images/edits' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      -F 'prompt=combine these images' \
      -F 'model=test/test' \
      -F 'image[]=@image1.webp' \
      -F 'image[]=@image2.webp' \
      -F 'image[]=@image3.webp'
    ```
    
    ### With mask (some models require mask for inpainting):
    ```bash
    curl 'https://api.imagerouter.io/v1/openai/images/edits' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      -F 'prompt=fill the masked area with flowers' \
      -F 'model=test/test' \
      -F 'image[]=@original.webp' \
      -F 'mask[]=@mask.webp'
    ```
    
    ## Parameters
    
    - **model** (required): Image model to use (see https://imagerouter.io/models)
    - **prompt** (optional): Text description for generation. Most models require a text prompt, but not all.
    - **quality** (optional): `auto` (default), `low`, `medium`, `high`
    - **size** (optional): `auto` (default) or `WIDTHxHEIGHT` (e.g., `1024x1024`).
    - **response_format** (optional): 
      - `url` (default) - Returns hosted URL
      - `b64_json` - Returns base64-encoded image
      - `b64_ephemeral` - Base64 without saving to logs
    - **output_format** (optional): `webp` (default), `jpeg`, `png`
    - **image[]** (optional): Input file for Image-to-Image (multipart only)
    - **mask[]** (optional): Editing mask for inpainting (multipart only)
    
    ## Response Format
    
    ```json
    {
      "created": 1769286389027,
      "data": [
        {
          "url": "https://storage.imagerouter.io/fffb4426-efbd-4bcc-87d5-47e6936bf0bb.webp"
        }
      ],
      "latency": 6942,
      "cost": 0.004
    }
    ```
    
    ## Endpoint Comparison
    
    | Feature | Unified (/edits) | JSON (/generations) |
    |---------|------------------|---------------------|
    | Text-to-Image | ✅ | ✅ |
    | Image-to-Image | ✅ | ❌ |
    | Encoding | multipart/form-data | application/json |
    
    ## Tips
    
    - Both `/v1/openai/images/generations` and `/v1/openai/images/edits` are the same for the unified endpoint
    - Use JSON endpoint for simple text-to-image when you don't need file uploads
    - Use unified endpoint when you need Image-to-Image capabilities
    - Check model features at https://imagerouter.io/models (quality support, edit support, etc.)
    - Get your API key at https://imagerouter.io/api-keys
    
    ## Examples by Use Case
    
    ### Quick test generation:
    ```bash
    curl 'https://api.imagerouter.io/v1/openai/images/generations' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      --json '{"prompt":"test image","model":"test/test"}'
    ```
    
    ### Download image directly:
    ```bash
    curl 'https://api.imagerouter.io/v1/openai/images/generations' \
      -H 'Authorization: Bearer YOUR_API_KEY' \
      --json '{"prompt":"abstract art","model":"test/test"}' \
      | jq -r '.data[0].url' \
      | xargs curl -o output.webp
    ```