An AI-powered image editing application with iOS and web interfaces that uses natural language prompts to transform images.
- 🎨 Natural Language Editing: Describe changes in plain English
- 🖼️ Multi-Image Support: Combine elements from up to 3 images in a single edit
- 📱 iOS App: Native SwiftUI application with full Photos integration
- 🌐 Web App: Browser-based interface accessible from any device
- 🤖 Powered by Qwen-Image-Edit-2509: State-of-the-art AI model for image transformation
- 📊 Real-time Progress: Monitor generation status and progress
- 💾 Smart Memory Management: Automatic model loading/unloading to optimize GPU usage
- 🕐 History Tracking: Keep track of all your edits (iOS only)
-
Install Python dependencies:
cd server pip install -r requirements.txt -
Start the server:
uvicorn image-edit-server:app --host 0.0.0.0 --port 8000
-
Access the web app: Open your browser to
http://localhost:8000
- Open
ImageEdit.xcodeprojin Xcode - Build and run on simulator or device
- Configure server endpoint in Settings if needed
ImageEdit/
├── ImageEdit/ # iOS app source code
│ ├── ContentView.swift # Main UI
│ ├── HistoryManager.swift # Edit history
│ └── Settings.swift # User preferences
├── server/ # Python backend
│ ├── image-edit-server.py # FastAPI server
│ ├── static/ # Web app files
│ │ ├── index.html # Web interface
│ │ ├── app.js # JavaScript logic
│ │ └── style.css # Styling
│ └── requirements.txt # Python dependencies
└── docs/ # Documentation
├── architecture.md # System design
├── api.md # API reference
└── web-app.md # Web app guide
- Python 3.8+
- CUDA-capable GPU (8GB+ VRAM recommended)
- 16GB+ system RAM
- iOS 18.5+
- iPhone or iPad
- Xcode 15+ for development
- Modern web browser (Chrome, Safari, Firefox, Edge)
- JavaScript enabled
- Auto-load: Model loads on first request
- Auto-unload: Frees GPU memory after 30 minutes of inactivity
- Manual control: Unload button in both iOS and web interfaces
- Status monitoring: Real-time model status display
- Supports common formats (JPEG, PNG)
- Configurable generation parameters
- Progress tracking with percentage updates
- Queue system for multiple requests
GET /- Web applicationGET /health- Server and model statusPOST /edit- Submit image for editingGET /jobs/{id}- Check job statusGET /results/{filename}- Download resultPOST /model/unload- Manually unload model
MODEL_TIMEOUT_MINUTES- Minutes before auto-unload (default: 30)
See CLAUDE.md for AI assistant development guidelines.
- Multi-Image Editing Guide - New! Learn how to combine multiple images
- Architecture Overview
- API Documentation
- Web App Guide
- Getting Started
MIT