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-wrapperOr install globally for CLI usage:
npm install -g image-gen-wrapperSetup
API Keys
Create a .env file in your project root:
OPENAI_API_KEY=your_openai_api_key_here
REPLICATE_API_TOKEN=your_replicate_token_hereGet your API keys:
- OpenAI: https://platform.openai.com/api-keys
- Replicate: https://replicate.com/account/api-tokens
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 3Advanced 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 setupOptions
-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.pngSupported Models
OpenAI
dall-e-3(default) - Latest DALL-E modeldall-e-2- Previous generation
Replicate
stability-ai/sdxl(default) - Stable Diffusion XLstability-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.