What your assistant can do here
The 25 tools this server offers an AI assistant, editing in GIMP. You don't call them yourself: describe the edit, and the assistant picks them. Beta: tools can change without notice.
Try these first
Copy any of these into a chat that has Editmamei Connect connected, with a photo of your own. Most edits land on their own layer, so "undo that" or "make it subtler" works too. Results come back as download links.
Start here
Your assistant replies with an upload link. Open it, add your photo, then come back to the chat.
I want to edit a photo with Editmamei Connect. Send me an upload link.
What can you do with this photo?
Clean it up
Make it brighter and fix the colors.
All tools
Getting images in and out
| gimp_ping | test connection to the GIMP session and report session-start discovery signals. |
| gimp_overview | orientation brief for the gimp_* tool surface — the headless workflow contract, curve laws (one filter per channel; re-edit by filter_id, don't stack), ledger-truth vs. |
| gimp_open_document | open an image and return its image id — the id every other gimp_* tool keys on. |
| gimp_close_document | close an image WITHOUT saving. |
| gimp_save_xcf | save the live document as .xcf — filters stay in place and re-editable (the working file, not the deliverable). |
| gimp_export | write a FLATTENED deliverable — every live filter is baked in, and ALL metadata (EXIF/XMP/IPTC/GPS, thumbnail) is stripped. |
| gimp_inspect | read-only state reader. |
| gimp_checkpoint | disk-backed checkpoints — the substitute for undo in a session that has none. |
| gimp_create_document | create a new, empty image from scratch — not from a file (that is gimp_open_document). |
| gimp_place_image | place another uploaded photo into an open image as a NEW LAYER (compositing). |
| gimp_request_upload | Get a one-time way to send an image from the user's device to this remote GIMP server. |
Adjustments and effects
| gimp_add_adjustment | append (or, with filter_id, re-edit in place) a NON-DESTRUCTIVE adjustment filter — stays live and re-editable; nothing bakes into pixels until gimp_export, and gimp_filter op=delete removes it again. |
| gimp_add_effect | append (or, with filter_id, re-edit in place) one of a small allow-listed set of GEGL effect filters — vignette, black_white, motion_blur, lens_blur, add_noise, drop_shadow, outline, outer_glow, surface_blur — the same non-destructive, re-editable, maskable filter mechanism gimp_add_adjustment uses, sharing the SAME stack: gimp_filter's op=list/set_visibility/delete manage this tool's filters exactly as it manages gimp_add_adjustment's. |
| gimp_filter | manage the live filter stack: op list | set_visibility | delete. |
| gimp_bake | bake a layer's live filters into its own pixels without merging it into anything else — the layer survives as itself, just with no more re-editable filters; a text layer stays a text layer (baking never rasterizes one). |
Layers and canvas
| gimp_crop_document | crop the canvas to an explicit rectangle (left, top, width, height in document pixels) — not a scale (that is gimp_resize_image). |
| gimp_resize_image | scale the whole image up or down — not a crop (that is gimp_crop_document). |
| gimp_transform_canvas | op 'rotate' (arbitrary `degrees` — straighten — plus `expand`) | 'flip' (`orientation` horizontal/vertical). |
| gimp_layer | layer management. |
| gimp_canvas | extend the canvas — grow it and reposition the existing content within the larger frame, never shrink (use gimp_crop_document for that; REFUSED outright when either dimension would be smaller than the current one, and REFUSED when neither dimension actually grows). |
| gimp_convert_image_mode | convert the image's base color mode, rgb <-> grayscale — an indexed image is refused outright as a source. |
My looks (saved filter recipes)
| gimp_look | Manage your saved looks. |
Checking the result
| gimp_get_preview | render the image with live filters applied and return it as a JPEG so you can look at it — fast (~0.25-0.45s at 1024px). |
| gimp_get_histogram | statistics for several channels from ONE render: mean, median, 1st/5th/95th/99th percentiles, and a 256-bin histogram per channel (`bins[v]` = pixel count at value v, 0-255). |
| gimp_compare | mode='before_after': proxy base (no filters) vs proxy+filters — whole image or a `region` — per-channel mean/percentile deltas, optionally with paired before/after preview images (include_previews). |