Imjen - AI Image Generator
Imjen is a command-line tool for generating AI-powered images using OpenAI's DALL-E 3 API. It's optimized for creating minimalistic flat vector icons and other images with customizable prompts and dimensions.
Quick Start with npx
You can run Imjen directly without installation using npx:
npx imjen
Prerequisites
- OpenAI API Key: You need an OpenAI API key to use this tool. Get one at platform.openai.com
- Node.js: Required for npx execution
Setup
-
Set your API key (choose one method):
- Environment variable:
export OPENAI_API_KEY=your_key_here
- Or add it to your configuration file (see Configuration section)
- Environment variable:
-
Run the tool:
npx imjen
On first run, Imjen will automatically create a configuration file (imjen.config.jsonc
) with example settings.
Configuration
Imjen uses a imjen.config.jsonc
file for configuration. Here's the structure:
{
// Optional: Set API key in config instead of environment
// "OPENAI_API_KEY": "your_key_here",
// Default dimensions (optional)
"width": 1024,
"height": 1024,
// Default prompt template (optional)
"promptTemplate": "ui-icon",
// Generate multiple images
"images": [
{
"description": "Compass Rose for navigation",
"promptArg": "minimal flat compass rose icon",
"width": 512,
"height": 512
},
{
"description": "Wind Direction Arrow",
"promptTemplate": "flat-icon",
"width": 256,
"height": 256
}
]
}
Configuration Options
Option | Type | Default | Description |
---|---|---|---|
OPENAI_API_KEY |
string | - | Your OpenAI API key |
width |
number | 1024 |
Default image width in pixels |
height |
number | 1024 |
Default image height in pixels |
promptTemplate |
string | "realistic" |
Default prompt template to use |
description |
string | - | Description for the image |
promptArg |
string | - | Custom prompt (overrides template) |
images |
array | - | Array of image configurations for batch generation |
Available Prompt Templates
Template | Description |
---|---|
ui-icon |
Minimalist UI icon, clean design, simple shapes, flat style |
flat-icon |
Flat icon design, simple geometric shapes, solid colors |
outline-icon |
Outline icon, line art style, minimal design |
realistic |
Photorealistic image, high quality, detailed |
artistic |
Artistic interpretation, creative style, expressive |
Usage Examples
Single Image Generation
For single image generation, configure a single image in the images array:
{
"width": 512,
"height": 512,
"images": [
{
"description": "My custom icon",
"promptArg": "minimalist settings gear icon"
}
]
}
Multiple Images (Batch Generation)
Use the images
array for generating multiple images:
{
"width": 1024,
"height": 1024,
"promptTemplate": "ui-icon",
"images": [
{
"description": "Home Icon",
"promptTemplate": "flat-icon"
},
{
"description": "User Profile Icon",
"promptArg": "minimal user profile icon",
"width": 512,
"height": 512
},
{
"description": "Search Icon",
"promptTemplate": "outline-icon"
}
]
}
Environment Variables
Set your API key as an environment variable:
# Linux/macOS
export OPENAI_API_KEY=your_key_here
npx imjen
# Windows
set OPENAI_API_KEY=your_key_here
npx imjen
Prompt Templates
If no promptArg
is specified, Imjen uses prompt templates to generate images. The default template is "realistic", but you can specify different templates:
- ui-icon: Creates minimalist UI icons with clean design and simple shapes
- flat-icon: Generates flat icon designs with geometric shapes and solid colors
- outline-icon: Produces outline-style icons with line art and minimal design
- realistic: Creates photorealistic, high-quality, detailed images
- artistic: Generates artistic interpretations with creative and expressive styles
Templates automatically incorporate your description into optimized prompts for DALL-E 3.
Output
- Generated images are saved as PNG files in the current directory
- Files are automatically named using the format:
01_description.png
,02_description.png
, etc. - Filenames are based on the image description, sanitized for filesystem compatibility
- Images are automatically resized to the specified dimensions using high-quality algorithms
- Success/error messages are displayed in the console
Troubleshooting
Common Issues
-
"OPENAI_API_KEY is not set"
- Set the API key as an environment variable or in your config file
- Get an API key from platform.openai.com
-
"Error generating image"
- Check your internet connection
- Verify your API key is valid and has sufficient credits
- Ensure your OpenAI account has access to DALL-E 3
-
Configuration file not found
- Run
npx imjen
once to auto-generate the example configuration - Manually create
imjen.config.jsonc
in your project directory
- Run
Model
Imjen uses OpenAI's DALL-E 3 model for all image generation. DALL-E 3 provides:
- High-quality image generation with excellent prompt adherence
- Support for various artistic styles and photorealistic images
- Built-in safety features and content filtering
- Consistent results optimized for creative applications
Contributing
This project is built with Deno and TypeScript. The source code is available on the project repository.
License
See the project repository for license information.