Skip to main content

imGPT 🎨

A powerful CLI tool for generating images using OpenAI's API. Generate images from text prompts directly or process entire directories of prompt files.

Python 3.12+ OpenAI API License: MIT

✨ Features

  • 🚀 Direct Prompt Generation: Generate images from command-line prompts
  • 📁 Batch Processing: Process entire directories of prompt files
  • 🎯 Multiple Formats: Support for .prompt, .txt, and .md files
  • 🔄 Smart Skipping: Skip existing images to save time and API costs
  • ⚡ Rate Limiting: Configurable delays to respect API limits
  • 🎨 High Quality: Uses OpenAI's gpt-image-1 model for best results
  • 📦 Easy Install: Install globally with pipx

🚀 Quick Start

pipx install imgpt

Install with pip

pip install imgpt

Set up your API key

export OPENAI_API_KEY="your-api-key-here"

Generate your first image

imgpt "A majestic dragon flying over a medieval castle at sunset"

📖 Usage

Direct Prompt Generation

Generate a single image from a text prompt:

# Basic usage
imgpt "A cute robot playing guitar"

# Save to specific file
imgpt "A space station orbiting Earth" --output space_station.png

# Custom output location
imgpt "Abstract art with vibrant colors" --output ./art/abstract.png

Batch Processing from Directory

Process multiple prompt files at once:

# Process all prompt files in a directory
imgpt --dir ./my_prompts

# Save to different output directory
imgpt --dir ./prompts --output ./generated_images

# Skip existing images and use faster processing
imgpt --dir ./prompts --skip-existing --delay 1

📁 Supported File Formats

.prompt files

A beautiful sunset over snow-capped mountains with a lake reflection

.txt files

A futuristic cityscape with flying cars and neon lights

.md files (with special parsing)

# Image Description

**Description:**
A serene Japanese garden with cherry blossoms, a small bridge over a koi pond, and traditional lanterns. The scene should be peaceful and zen-like.

**Style:** Photorealistic
**Mood:** Tranquil

🛠️ Command Line Options

imgpt [OPTIONS] [PROMPT]

Arguments:
  PROMPT                    Direct prompt text for image generation

Options:
  --dir PATH               Directory containing prompt files
  --output PATH            Output file/directory path
  --delay FLOAT            Delay between API calls in seconds (default: 2.0)
  --skip-existing          Skip generating images that already exist
  --model MODEL            Model to use: gpt-image-1, dall-e-2, dall-e-3 (default: gpt-image-1)
  --size SIZE              Image dimensions (e.g., 1024x1024, 1536x1024, 1024x1536)
  --quality QUALITY        Image quality: auto, high, medium, low, hd, standard (default: high)
  --style STYLE            Image style for DALL-E 3: vivid, natural
  --format FORMAT          Output format for gpt-image-1: png, jpeg, webp (default: png)
  --version                Show version and exit
  --help                   Show help message and exit

📋 Examples

Single Image Generation

# Simple prompt
imgpt "A red sports car"

# Complex prompt with details
imgpt "A detailed oil painting of a lighthouse on a rocky cliff during a storm, dramatic lighting, high contrast"

# Save with custom name
imgpt "A minimalist logo design" --output company_logo.png

# Use different models and settings
imgpt "A futuristic cityscape" --model dall-e-3 --size 1792x1024 --style vivid

# Generate portrait orientation
imgpt "A portrait of a wise old wizard" --size 1024x1536

# Use DALL-E 2 for faster generation
imgpt "A simple cartoon cat" --model dall-e-2 --size 512x512

# Generate JPEG format
imgpt "A landscape photo" --format jpeg --quality high

Batch Processing

# Process directory (saves images alongside prompts)
imgpt --dir ./product_descriptions

# Separate input/output directories
imgpt --dir ./marketing_prompts --output ./marketing_images

# Production settings (skip existing, faster processing)
imgpt --dir ./prompts --output ./images --skip-existing --delay 0.5

# Batch process with DALL-E 3 for high quality
imgpt --dir ./art_prompts --model dall-e-3 --quality hd --style natural

# Generate thumbnails with DALL-E 2
imgpt --dir ./thumbnails --model dall-e-2 --size 256x256

# Batch process with custom format and quality
imgpt --dir ./web_images --format webp --quality medium --delay 1

🔧 Configuration

Environment Variables

Variable Required Description
OPENAI_API_KEY ✅ Your OpenAI API key

Image Settings

The tool supports multiple models and configurations:

Models

  • gpt-image-1 (default): OpenAI's latest image model
    • Sizes: 1024x1024, 1536x1024 (landscape), 1024x1536 (portrait)
    • Quality: auto, high, medium, low
    • Formats: png, jpeg, webp
  • dall-e-3: High-quality artistic images
    • Sizes: 1024x1024, 1792x1024 (landscape), 1024x1792 (portrait)
    • Quality: auto, hd, standard
    • Styles: vivid, natural
  • dall-e-2: Fast and cost-effective
    • Sizes: 256x256, 512x512, 1024x1024
    • Quality: standard only

📦 Installation Methods

# Install globally without affecting system Python
pipx install imgpt

# Upgrade
pipx upgrade imgpt

# Uninstall
pipx uninstall imgpt

Method 2: pip

# Install globally
pip install imgpt

# Install in virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install imgpt

Method 3: Development Install

git clone https://github.com/humanrobots-ai/imgpt.git
cd imgpt
poetry install
poetry run imgpt "test prompt"

🧪 Development

Running Tests

# Run all tests
poetry run pytest

# Run with coverage
poetry run pytest --cov=imgpt

# Run specific test
poetry run pytest tests/test_cli.py::test_read_prompt_file_simple

Code Quality

# Format code
poetry run black src/

# Lint code
poetry run flake8 src/

🚨 Error Handling

The tool gracefully handles various error conditions:

  • Missing API Key: Clear instructions for setting up authentication
  • Empty Prompts: Skips empty files with warnings
  • API Errors: Continues processing other files if one fails
  • Network Issues: Retries with exponential backoff
  • Invalid Paths: Validates input/output directories

💡 Tips & Best Practices

Writing Better Prompts

  1. Be Specific: Include details about style, lighting, composition
  2. Use Descriptive Language: "vibrant", "detailed", "photorealistic"
  3. Specify Art Style: "oil painting", "digital art", "photograph"
  4. Include Mood: "serene", "dramatic", "whimsical"

Batch Processing

  1. Organize Prompts: Use descriptive filenames for easy identification
  2. Use Skip Existing: Avoid regenerating images unnecessarily
  3. Adjust Delays: Balance speed vs. API rate limits
  4. Separate Outputs: Keep generated images organized

Cost Management

  1. Preview Prompts: Review prompts before batch processing
  2. Use Skip Existing: Avoid duplicate generations
  3. Test Single Images: Verify prompts work before batch runs
  4. Monitor Usage: Track API usage in OpenAI dashboard

🤝 Contributing

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

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🆘 Support

🙏 Acknowledgments

  • OpenAI for providing the amazing image generation API
  • The Python community for excellent tooling and libraries
  • All contributors and users of this tool

Made with ❤️ by Jacob Valdez

Metadata

Release files for imgpt 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for imgpt 0.2.0
File Size Uploaded Provenance
imgpt-0.2.0.tar.gz 8.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for imgpt 0.2.0
File Interpreter ABI Platform
imgpt-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.3 kB

Release files / imgpt-0.2.0.tar.gz

Download URL imgpt-0.2.0.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5eb5197451f27d1f5c207d4844cd7493d25e2096556feb08dec24fb4eeb88743
BLAKE2b-256 checksum
How to use checksums
9c7198b8d64ffcb74a0a3722d1b4212c29703ab84f4f90c3c6ff3dc8940f9142
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 1, 2025.

Transparency log

Release files / imgpt-0.2.0-py3-none-any.whl

Download URL imgpt-0.2.0-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3e594f22f0ece5bc24ee5cde7f2c4df36dbe925b79b3a7aa4d649ceb2d1185ea
BLAKE2b-256 checksum
How to use checksums
4767b59ccbda6ace47c26570a4d2f8603afa0ca153dbda83a143a8c31a1150cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 1, 2025.

Transparency log

Security for imgpt 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for imgpt-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 1, 2025.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page