Pixel-Portal is a lightweight, cross-platform image editor built with Python and PySide6. It provides a simple yet powerful interface for image manipulation, featuring basic drawing tools, layer management, and cutting-edge AI-powered image generation capabilities.
- Drawing Tools: A variety of tools for drawing and painting, including Pen, Bucket, Ellipse, Line, and Rectangle.
- Layer Management: Full support for layers, allowing for complex image compositions. You can add, remove, reorder, and merge layers.
- Crisp Layer Rendering: Canvas compositing and drawing tools operate on the active layer stack with pixel-perfect precision.
- Layer Chain Navigation: Layers are stored in a doubly linked list so tools can traverse neighbours without expensive lookups.
- Selection Tools: Tools for selecting parts of the image, including Rectangle, Circle, and Lasso selections.
- Image Manipulation: Resize, crop, and flip the canvas.
- AI-Powered Image Generation: Integrated with state-of-the-art AI models to generate images from text prompts.
- Optional Background Removal: Strip backgrounds from generated images using
rembg(requiresonnxruntime). - Background Options: Choose checkered, solid colors, or a custom image for the canvas background.
- Undo/Redo: A robust undo/redo system to make editing easier and non-destructive.
- Customizable Interface: A simple and intuitive interface that can be customized to your liking.
- Native Document Format: Save and reopen complete projects with
.aolefiles that preserve the full layer stack.
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Python 3.12 or higher
- pip
-
Clone the repository:
git clone https://github.com/your-username/Pixel-Portal.git cd Pixel-Portal -
Create a virtual environment:
python -m venv .venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install the dependencies:
pip install -r requirements.txt
Once the dependencies are installed, you can run the application with the following command:
python -m portal.main