JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 133
  • Score
    100M100P100Q87034F
  • License MIT

A unified wrapper for image generation inference APIs (OpenAI and Replicate) with CLI support, useful for MCP and sub-processes

Package Exports

  • ai-image
  • ai-image/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ai-image) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ai-image

A unified wrapper for image generation APIs (OpenAI and Replicate) with CLI support and programmatic access.

Features

  • 🎨 Support for multiple image generation providers (OpenAI DALL-E, Replicate)
  • 🖥️ Easy-to-use CLI interface
  • 📦 Programmatic API for integration into your projects
  • 🔐 Environment variable support for API keys
  • 📁 Flexible output options (directory, filename)
  • 🎯 TypeScript support with full type definitions

Installation

npm install image-gen-wrapper

Or install globally for CLI usage:

npm install -g image-gen-wrapper

Setup

API Keys

Create a .env file in your project root:

OPENAI_API_KEY=your_openai_api_key_here
REPLICATE_API_TOKEN=your_replicate_token_here

Get your API keys:

CLI Usage

Basic Usage

# Generate with OpenAI (default)
image-gen generate "A sunset over mountains"

# Generate with Replicate
image-gen generate "A cyberpunk city at night" --provider replicate

# Specify output file
image-gen generate "A cute robot" --output robot.png

# Generate multiple images
image-gen generate "Abstract art" --number 3

Advanced Options

# Use specific model
image-gen generate "Portrait of a wizard" --model dall-e-2

# Custom size and quality
image-gen generate "Ocean waves" --size 1792x1024 --quality hd

# Pass API key directly
image-gen generate "Forest path" --api-key sk-...

Available Commands

# Generate images
image-gen generate <prompt> [options]

# List available models
image-gen models

# Show setup instructions
image-gen setup

Options

  • -p, --provider <provider> - Provider to use (openai or replicate)
  • -k, --api-key <key> - API key (overrides environment variable)
  • -o, --output <path> - Output file path
  • -d, --output-dir <dir> - Output directory
  • -m, --model <model> - Model to use
  • -s, --size <size> - Image size (e.g., 1024x1024)
  • -q, --quality <quality> - Image quality (standard or hd) - OpenAI only
  • --style <style> - Image style (vivid or natural) - OpenAI only
  • -n, --number <n> - Number of images to generate

Programmatic Usage

Basic Example

import { ImageGenerator } from "image-gen-wrapper";

// Create generator instance
const generator = new ImageGenerator({
  provider: "openai",
  outputDir: "./images",
});

// Generate image
const paths = await generator.generate({
  prompt: "A serene lake at dawn",
  size: "1024x1024",
  quality: "hd",
});

console.log("Images saved to:", paths);

Using Replicate

import { ImageGenerator } from "image-gen-wrapper";

const generator = new ImageGenerator({
  provider: "replicate",
  apiKey: "your-api-key", // Optional if using .env
  outputFilename: "my-image.png",
});

const paths = await generator.generate({
  prompt: "A futuristic space station",
  model:
    "stability-ai/sdxl:39ed52f2a78e934b3ba6e2a89f5b1c712de7dfea535525255b1aa35c5565e08b",
  n: 2,
});

Custom Output Handling

import { ImageGenerator } from "image-gen-wrapper";
import path from "path";

const generator = new ImageGenerator({
  provider: "openai",
  outputDir: path.join(__dirname, "output"),
  outputFilename: "custom-name.png",
});

// Generate multiple images with custom naming
const paths = await generator.generate({
  prompt: "Abstract geometric patterns",
  n: 3,
});
// Will save as: custom-name.png, custom-name_1.png, custom-name_2.png

Supported Models

OpenAI

  • dall-e-3 (default) - Latest DALL-E model
  • dall-e-2 - Previous generation

Replicate

  • stability-ai/sdxl (default) - Stable Diffusion XL
  • stability-ai/stable-diffusion - Stable Diffusion
  • Any model from replicate.com in format owner/model:version

Error Handling

try {
  const paths = await generator.generate({
    prompt: "Mountain landscape",
  });
} catch (error) {
  console.error("Generation failed:", error.message);
}

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.