geoffsee 139ba8ee16 init
2025-07-02 18:09:21 -04:00
2025-07-02 18:09:21 -04:00
2025-07-02 18:09:21 -04:00
2025-07-02 18:09:21 -04:00
2025-07-02 18:09:21 -04:00
2025-07-02 18:09:21 -04:00
2025-07-02 18:09:21 -04:00
2025-07-02 18:09:21 -04:00

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

  1. 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)
  2. 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

  1. "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
  2. "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
  3. Configuration file not found

    • Run npx imjen once to auto-generate the example configuration
    • Manually create imjen.config.jsonc in your project directory

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.

Description
generate a bunch of images from a json spec
Readme 44 KiB
Languages
TypeScript 100%