Photo Slop — a Dash-first photo editor

A layered, browser-based photo editor built on Dash,
dash-mantine-componentsand Fabric.js — drivable from the mouse, from Python, or from an AI agent, with a catalogue that keeps your work with your account. By Pip Install Python.
git clone https://github.com/pip-install-python/Photo-Slop
This host documents no package of its own — it is the template the network's component sites are forked from.
Drop many images onto the canvas, stack them as layers, blend and adjust them non-destructively, then export to a file, a server directory or a Cloudflare R2 bucket — or sign in and keep it all in your catalogue.
Open the editor · Your catalogue
What it does
- Layers. Every dropped image becomes a layer with opacity, 16 blend modes, visibility, lock and stacking order. Text, shapes and brush strokes are layers too.
- Non-destructive effects. Brightness, contrast, saturation, vibrance, hue, blur, sharpen, gamma, noise, pixelate and film presets are a stack on each image layer — change the number and the layer re-renders from the original.
- A catalogue of your own. Sign in and your uploads, saved images and whole projects are kept under your account, served only to you, and reopen in the editor with one click.
- Export anywhere. PNG, JPEG, WebP and SVG render in the browser; TIFF, PDF, AVIF, GIF, BMP and ICO are transcoded on the server. Send the result to a download, a local server directory, Cloudflare R2, or your catalogue.
- One command surface. Every action — by mouse, by a Python callback, or by an agent — is the same JSON command, and every command is acknowledged.
Quick Start
git clone https://github.com/pip-install-python/Photo-Slop
cd photoslop
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
PHOTO_DEV_USER=me python run.py # http://127.0.0.1:8559/editor — a stand-in account for local work
The compiled canvas component ships in the repo, so Node is only needed when you change the TypeScript in src/ts/. Then follow the Quick Start guide for a tour of the editor and Accounts & Catalogue for sign-in and storage.
Built from
DashPhotoCanvas, a Dash component wrapping Fabric.js 7 behind an engine-neutral JSON document model.dash-mantine-componentsfor all editor chrome;flexlayout-dashfor the dockable workspace.dash-clerk-authfor accounts — the same Clerk satellite setup as every site on the 2plot network.- The 2plot documentation boilerplate for the shell, theming, backend switch and
llms.txtsurfaces.
Learn more
- Commands — the JSON command bus every action goes through.
- Accounts & Catalogue — what is kept, where, and who can read it.
- Storage & Export — memory, disk and Cloudflare R2; formats and destinations.
- Agent API — tool schemas for Claude and OpenAI, and the preview loop.
Powered by
Powered by dash-improve-my-llms 2.10.0 (the version is read from the installed package, never hardcoded) — it serves this site's llms.txt, sitemap and crawler documents.
License
MIT License - see LICENSE for details.
Note for AI agents: This is the static, prerendered view of an interactive Dash application served because we detected a non-JS user agent. Full prose docs:
- /llms.txt — LLM-friendly documentation
- /sitemap.xml
- /robots.txt