keyline doesn't make images. Drop the references you love and it writes their visual direction: one brief you give to ChatGPT, Midjourney or any image model, so the results look like your references.
Forever. Not monthly, not per board, not per export. See the proof.
Runs in your browser. No sign-up.Proven on GPT Image 2, FLUX.2 max and Nano Banana.
Single dark object centred on a flat grey field, lit softly from above so gilded highlights and oxblood depths do the whole job.
hover or tap a line: it lights the references it was read from
A real board, composed by keyline's engine as it ships today (2026-10-10) and measured by its own code: seed 1, 3:2, Paper. Beside it, a real reading of the same seven references, 2026-09-09, as recorded. Every layer keeps the images it was read from; hover or tap a line and they are outlined, as in the app.
One direction. A doorway. A chair. A bottle.

OpenAI. Made 2026-08-25 from an earlier reading of the same seven references: the same compiled direction for all three, only the subject word changed.

Black Forest Labs. That direction asked for a “single cool periwinkle note”; watch it surface here too.

Google. The same compiled direction again. All three outputs are unedited.
The direction transferred. The subject didn’t matter.
keyline reads what you can't describe. Real numbers from the pixels, then eight readings from the images.

Measured from your pixels, backgrounds discounted: hex and percentage, not vibes. A contrast score with it.

Composition, palette, material, light and four more. Switch one off and it is not asked for; mark one strong and it leads the layers in the prompt.

Every layer keeps the images it was read from. Hover one and they light up, in Sources and on the board.
One direction, compiled. Not a description you rewrite per tool.

The prompt carries a [SUBJECT] slot. Swap the noun, keep the taste. It stays on screen for the whole session.

Prose for chat models, one line with flags for Midjourney. Compiled, not rewritten. Copy any of the three with the unlock.

Type a subject, move a layer's strength, add an avoid: the prompt marks the line it rewrote. Live, with no AI call.
Set up for what you make.
Digital product, Brand & graphic, Interior, Architecture, Industrial design, Photography & art direction. Pick yours once: new boards start set up for it.
The layers a board starts with, its ratio, its prompt tab, one added line and one download. The field’s name never reaches the reading. Its strong layers are read first and in the most detail; nothing else about the reading changes.
A language, a tone, how much detail. They sit under the field’s line in ChatGPT and Claude prompts, marked as added by keyline. Midjourney takes neither.
Both on the Claude tab, over one recorded reading. Each board starts with its field’s strong and light layers and adds its field’s line.
A new Interior board starts with Material & finish, Palette and Light strong, Typography light (absent from this reading). Its line is added.
A new Digital product board starts with Composition, Typography and Palette strong (this reading has no Typography layer); Material & finish and Lineage light. Its line is added, and so is the example instruction.
Lines marked blue are added by keyline from What you make, not read from your board.
Compiled by keyline’s own code from the reading above (2026-09-09, as recorded) with each field’s starting strengths, 2026-10-18, unedited. The subject slot is left open. The instruction is an example typed for this page, on the Digital product column only.
Each field has one download of the measured palette. Part of the $29 unlock.

keyline-gilt-oxblood-palette-schedule.pdfInterior. An A4 page, the hex values selectable as text.
/* keyline · gilt & oxblood
Measured from 7 references, backgrounds discounted. */
:root {
--color-1: #bab6af; /* 21% */
--color-2: #524f4d; /* 14% */
--color-3: #828180; /* 13% */
--color-4: #532529; /* 10% */
--color-5: #53422a; /* 5% */
--color-6: #7d6f57; /* 5% */
--color-7: #715849; /* 5% */
--color-8: #292722; /* 4% */
}
Digital product. One CSS custom property per measured colour, its share beside it.
# gilt & oxblood Palette list. Measured from 7 references, backgrounds discounted. | No. | Hex | Share | | --- | --- | --- | | 01 | `#bab6af` | 21% | | 02 | `#524f4d` | 14% | | 03 | `#828180` | 13% | | 04 | `#532529` | 10% | | 05 | `#53422a` | 5% | | 06 | `#7d6f57` | 5% | | 07 | `#715849` | 5% | | 08 | `#292722` | 4% |
Architecture. A plain Markdown table: number, hex, share.
The three files hold the gilt & oxblood board’s eight measured colours, hex and share, and nothing else: no reading text. Brand & graphic and Industrial design get a Colour sheet .pdf, Photography & art direction a Palette sheet .pdf, the same table under another name. Generated 2026-10-18 by keyline’s own download code; the page is the image the app places in the .pdf.
No modules, no add-ons. Free to try on unlimited boards; $29 once owns the rest.
keyline is small on purpose. One person builds it, and every card here is live today.
Free: boards, readings, tuning, the first lines of the prompt, watermarked export. $29 once: the full prompt, copies per model, clean exports, Inspect, your field’s palette download, restore. Yours forever. Unlock now.
Everything, forever: the compiled prompt with per-model copies, the Markdown brief, Inspect, the palette download for your field, and watermark-free print-resolution exports, on this board and every board you ever make. One payment. It is not a subscription and not a per-export fee.
No. Boards live in your browser's own storage. Your references leave your machine only in one case: the images are sent to the AI for the reading each time you press Generate.
A vision model will describe your pictures. keyline measures what they have in common: real hexes and weights from the pixels, eight traceable layers, and a compiled prompt with a [SUBJECT] slot that stays reusable. The three-model proof above is the difference in practice.
The field’s name never reaches the reading. Its strong layers are read first and in the most detail; nothing else about the reading changes. The rest happens on your side of it: the layers a new board starts with, its ratio, the prompt tab, one added line in ChatGPT and Claude prompts, and a download of the measured palette. Choosing a field is free; the download is part of the $29.
Your unlock is restored by the email you purchased with, from Settings › License in the app. Boards themselves are local; export the brief for anything you can't lose.
Yes. The board is composed by the same engine and measured by the same code as yours, over seven CC0 references: four from the Met Open Access collection, three via Openverse. The reading beside it (2026-09-09) is shown as recorded; the three model outputs (2026-08-25, from an earlier reading of the same references) are unedited.
Forever. Not monthly, not per board, not per export.