Painting Droid
Try It Online | Download Desktop App | Docs | Board | Feedback Hub
https://github.com/mateuszmigas/painting-droid/assets/54471371/6cda0fc3-1363-4a5d-a46e-6be5113b1cba
Painting Droid is an AI-powered cross-platform painting app inspired by the legendary MS Paint, but expandable with plugins and open. It utilizes various AI models, from paid providers to self-hosted open-source models, as well as some lightweight ones built into the app. It works in the browser and as a desktop app on Windows, macOS, and Linux.
Features
- Your regular painting app features (e.g., brush, annotate, fill, etc.).
- Fill selected areas with AI-generated content.
- Augment selected areas with AI-generated content (e.g., add a tree to a landscape or remove the background).
- Apply filters and effects to the entire image or a selected area.
- Resize, crop, rotate, and flip the image.
- Plugin support.
- Cross-platform compatibility.
Platform support
Platform |
Details |
Link |
Desktop |
Windows/MacOS |
Github Releases |
Browser (Desktop) |
Chrome/Safari/Firefox |
Web |
Browser (Mobile) |
Not tested |
Web |
Container |
Docker/Kubernetes |
Docker Hub |
Overview
How to develop
Web app
☁️ Github Codespaces
- Install the dependencies using
pnpm install
- Run the app using
pnpm dev:web
🖥️ Local Machine
- Install pnpm
- Clone the repository
- Install the dependencies using
pnpm install
- Run the app using
pnpm dev:web
🐳 Dev Container
- Clone the repository
- Make sure you have Docker, Visual Studio Code and Dev Container extension installed
- Open the repository in Visual Studio Code
- Open the command palette and run
Dev Containers: Reopen in Container
- Change pnpm store dir
pnpm config set store-dir ~/.local/share/pnpm/store
- Install the dependencies using
pnpm install
- Run the app using
pnpm dev:web
Desktop app
- Clone the repository
- Install Tauri prerequisites
- Install the dependencies using
pnpm install
- Run the app using
pnpm dev:desktop
Roadmap
Core features
- [x] Basic UI layout
- [x] Canvas manipulation
- [x] Canvas layers
- [x] Drawing tools: brush, pencil
- [x] Undo/Redo functionality
- [x] Command palette
- [x] State preservation
- [x] Custom 'Project' file format
- [x] Saving and loading projects
- [x] Area selection
- [x] Responsive UI
- [x] Online Demo Model for Web
- [x] WASM adjustments mechanism
- [x] Some Offline JS Model
- [x] Image resize/crop
- [x] Clipboard support
- [x] Desktop app releases and autoupdate
AI features (Desktop only)
- [x] Integration with Stable Diffusion local server
- [x] Integration with DALL-E api
- [x] Integration with Stability.ai api
Post MVP
- [x] Use Blob instead of base64 for storing images
- [x] Use IndexDB instead of localStorage for image data
- [x] Chat with LLM about current layer
- [ ] More image adjustments
- [x] More tools: fill, erase
- [ ] Magic Wand
- [ ] Text annotation tool
- [ ] Release notes popup
- [ ] Change renderer to webgl/webgpu
- [ ] Optimize image conversions with Rust
- [x] Custom app menu for MacOS
- [x] Shape tools: rectangle, circle
- [ ] Plugin support