Remove Background
One tap. A mask, not a deletion.
The background goes into a layer mask, so the original pixels stay underneath. An edge slider tunes the cut, and Select Subject refines it at full resolution.


paint with a prompt.
A photo editor and design tool where a sentence works like a brush, and where a script or an agent can design too. Change any part of a picture, re-shoot it on another camera and film, and lay out posts, posters and slides from a brief or from rows of your own data.
Desktop · iPad · iPhone · CLI · API · MCP

Workflows
Generate, Fill, Remove, Expand, Extract and Compose all start the same way: a selection, a sentence, a button. Every result lands as a layer that remembers its recipe. These are the real results, before and after. Press and hold a picture to see where it started.

Generate
Describe a picture and get it at the size you need, up to about four megapixels. Words you ask for come out spelled right.


Fill
Marquee the base, ask for a square walnut one, and choose between variants. The result goes back through your selection, so the lamp, the desk and the light stay exactly as they were.


Remove
Select Subject finds the lamp in one tap. Remove fills in the wall, the window and the desk that were behind it.


Expand
Widen a square to 3:2 and the room carries on: more window, more wall, more desk. Your original pixels go back on top, untouched.


Extract
Extract returns the subject with real transparency, soft where the edges are soft. Drop it onto anything.


Compose
Use up to ten pictures as references and say how they meet: here the portrait and the lamp, at one desk, in the same light.


Re-capture
Pick a camera, a lens and a film, and the picture is developed the way that film would. More on Re-capture.
Straight off the renderer
Each of these took between 4 and 5 seconds of GPU time on the renderer k-anvas uses. The prompts are underneath.

“Swiss-style typographic poster … the title ‘FORMA’ in heavy grotesque letters” 4.0 s

“Alpine lake at dawn, low mist over still water” 4.8 s

“Rainy narrow alley in Tokyo at night … signs reading ‘喫茶 ミナト’” 4.5 s

“A die-cut sticker of a cartoon fox reading a book”, with transparency 4.0 s

“Mid-century living room with board-formed concrete walls” 4.4 s

“A clear wine glass half filled with red wine”, with transparency 4.1 s

“Overhead flat lay on light grey paper” 4.6 s

“A glossy cobalt blue ceramic coffee cup”, with transparency 4.1 s
Re-capture
Choose a camera, a lens, an aperture and a film stock, and k-anvas develops your picture the way that film would: its colour, its tone, its grain and the glow around bright lights. Fourteen cameras, twenty-nine lenses, twenty-one films, and looks that set them all in one tap.


OriginalQwen-Image-2.1


Golden hourColour negative · ISO 400


Street, 1978Black and white · ISO 400


Night cityTungsten colour · ISO 800
Real Re-capture output: the film stage of the app's next build, run on a real Qwen-Image-2.1 portrait. With a renderer paired, an optional optics pass also re-shoots perspective, depth of field and bokeh for the lens. It uses Qwen-Image-2.1 (research use only) and has not been tested against a live renderer yet.
Design
Say what it is for and k-anvas lays it out: a headline, the details, a button and a picture, each set as large as it fits. Resize for… sets the same words again for a post, a story, a thumbnail or an A4 flyer, with the safe areas and the bleed already right.





For scripts and agents
Everything the studio makes can be written as one design JSON. The app, a
kanvas command line, an HTTP API and an MCP server all read it and draw it
with the same engine, so a script or an agent designs the way you do. Point k-anvas at
your own data and get a design for every row, or a whole deck.
$ kanvas render posts.json{
"kanvas": 1,
"layout": "offer",
"sizes": ["Instagram 4:5"],
"style": "lime",
"brief": {
"kicker": "{{badge}}",
"headline": "{{title}}",
"details": "{{details}}",
"action": "{{price}}",
"image": "{{image}}"
},
"data": [
{ "title": "Desk lamp", "badge": "New", "price": "€89", … },
{ "title": "Cobalt cup", "badge": "Bestseller", … },
{ "title": "Wine glass", "badge": "Back in stock", … },
{ "title": "Weekend kit", "badge": "Limited", … }
]
}




The four posts are the real output of kanvas render on the JSON beside them
(shortened here), drawn by k-anvas's own engine with no screen at all. The pictures are
earlier Qwen-Image-2.1 results.
$ kanvas render design.jsonCommand linePNG, JPEG, WebP, PDF, editable PowerPoint or a .kanvas file, from a script or a CI job.POST /v1/renderHTTP APIkanvas serve answers on your own machine, with an OpenAPI description, for any language.$ kanvas mcpMCP serverTwenty-one tools for agents like Claude: validate, render, preview, data sources, maps and batches.Home → AutomateThe studioThe same sources, maps and batches with screens of their own. Or drop a .json on Home.Data maps and batches
Add a data source: the URL, the key it needs and where its rows are. The key stays on your machine. Map each of its keys to a design field, as words, a price, a picture, a date or a chart's rows, then run a batch: a design for every row, a contact sheet and a zip at the end.

Slides
A deck is a design too: ten slide layouts, speaker notes, and a slide for every row of your data. Export one PDF, or a PowerPoint file where every line of text is still a text box you can edit.
Template files
A template is a JSON file with typed fields, checked against a published schema. kanvas templates validate draws it at every size it is made for and names every problem by its path. Import it and it joins Templates in the studio, with a form for its fields. Outside authors get a guide.






The agent tools come with the app's next build. Rendering, data and keys stay on your machine; a picture prompt goes only to the renderer you point k-anvas at.
The editor
Layers, masks, selections and adjustments, in a bold layout: seven tool groups as labelled tiles, one clean top bar, layers and history as tabs, and big targets for a finger or a pen. Plain verbs, no sparkles.



Remove Background
The background goes into a layer mask, so the original pixels stay underneath. An edge slider tunes the cut, and Select Subject refines it at full resolution.


Upscale
Real-ESRGAN runs inside k-anvas, on your graphics card or your CPU, at 2x or 4x. It works offline and never touches your renderer.


Your GPU
k-anvas renders on an endpoint you deploy to your own Modal account. Your pictures go from your device to your GPU and back. There is no k-anvas server in between, no credits and no sign-up.
Devices
One app, laid out for the screen it is on. Touch gets big targets, tile sheets and gestures. A mouse and keyboard get the same screens with single-key shortcuts.



Before launch: the desktop builds are not signed yet, and the iPad and iPhone layouts have been tested in browsers but not yet on real devices.
part of the k-family
Get k-anvas
macOS, Windows and Linux.
Coming sooniPad, iPhone and desktop browsers. Installs to your Home Screen.
Coming soonA Modal account to run your renderer. k-anvas pairs with it in a minute, and you pay Modal only for the GPU seconds you use.
k-anvas renders with Qwen-Image-2.1, which is licensed under the Qwen Research License for research and evaluation only. Please don't use k-anvas for paid or client work.