Repository navigation
v0.1.0
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.
β¨ 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.mdfiles - π 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
Install with pipx (Recommended)
pipx install imgptInstall with pip
pip install imgptSet 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.pngBatch 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
--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.pngBatch 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π§ Configuration
Environment Variables
| Variable | Required | Description |
|---|---|---|
OPENAI_API_KEY |
β | Your OpenAI API key |
Image Settings
The tool generates images with these settings:
- Model: gpt-image-1 (OpenAI's latest image model)
- Size: 1536x1024 (landscape format)
- Quality: High
- Format: PNG
π¦ Installation Methods
Method 1: pipx (Recommended)
# Install globally without affecting system Python
pipx install imgpt
# Upgrade
pipx upgrade imgpt
# Uninstall
pipx uninstall imgptMethod 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 imgptMethod 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_simpleCode 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
- Be Specific: Include details about style, lighting, composition
- Use Descriptive Language: "vibrant", "detailed", "photorealistic"
- Specify Art Style: "oil painting", "digital art", "photograph"
- Include Mood: "serene", "dramatic", "whimsical"
Batch Processing
- Organize Prompts: Use descriptive filenames for easy identification
- Use Skip Existing: Avoid regenerating images unnecessarily
- Adjust Delays: Balance speed vs. API rate limits
- Separate Outputs: Keep generated images organized
Cost Management
- Preview Prompts: Review prompts before batch processing
- Use Skip Existing: Avoid duplicate generations
- Test Single Images: Verify prompts work before batch runs
- Monitor Usage: Track API usage in OpenAI dashboard
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Support
- π§ Email: jacobfv123@gmail.com
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
π 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