Image generation that knows your brand.
Chat-style image generation. A prompt LLM rewrites your casual request using your brand colors, logo, referenced content, and prior conversation; an image model generates from the rewritten prompt. Output lands in your asset library. Bring your own OpenAI or Gemini key.

Generic AI image tools don't know your brand.
Open Midjourney or ChatGPT and ask for a blog cover. You'll get something that looks like every other stock illustration. You'll spend twenty minutes re-prompting, telling it "no, more like teal, less like that other shade, use the same vibe as my logo." You'll give up and open Canva instead. You'll spend an hour there.
Canvas in m18t solves this by knowing your brand record before you start typing. Your colors, your logo, your primary locale, the content piece this image is for, the tags it carries — all auto-injected into the engineered prompt. You ask for "a cover image"; the platform asks for "a cover image for a SaaS blog post about onboarding automation, in [brand]'s teal-and-navy palette, with abstract geometric forms matching the [brand] logo style."
The brand context isn't an afterthought you type every time. It's the system's default.
Two stages. One chat. Your brand baked in.
- 1
You write a casual prompt
Open a Canvas session for the current brand. Type something like "cover image for my onboarding automation blog post." That's it.
- 2
The prompt engineer LLM rewrites it
A text LLM (Gemini Flash by default, configurable) takes your prompt, the conversation history, your brand colors, your logo URL, the referenced content piece's title and excerpt, any tags or asset references, and rewrites it into a high-quality image generation prompt.
- 3
The image model generates
The engineered prompt goes to DALL-E (or whichever image provider you have configured), the image gets generated.
- 4
The output lands in your asset library
The image becomes an asset row in m18t, in the graphics namespace, attached to the canvas session, with the engineered prompt stored alongside. You can promote it to a permanent asset, attach it to content, edit it in a new session.
Capabilities
Chat-style multi-turn sessions
Each session is a conversation. Iterate by referencing previous generations. The engineered prompt is stored per generation.
Auto-injected brand context
Brand colors, logo URL, primary locale — all included in the engineered prompt without you typing them.
Reference existing content and assets
Mention a content piece (by title or ID) or attach reference assets — the engineered prompt includes their context.
BYOK across providers
OpenAI, Gemini, others configured via the encrypted vault. Switch providers per session. You pay providers directly.
Lands as a real asset
Generated images are real assets — namespaced, brand-scoped, tag-able, attachable to content.
Persistent and resumable
Sessions auto-title from the first message and persist across visits. Come back tomorrow and continue iterating.
Your AI keys. Your bill. No markup.
Canvas routes calls to OpenAI (DALL-E), Gemini (Imagen), and other configured providers using your key from the encrypted per-brand vault. m18t never holds the key in plain text, never resells tokens, never takes a cut. You see actual provider costs; you can switch providers any time.
Free during beta because there's nothing to mark up. When paid plans arrive, they'll meter on what the workspace is worth, not on what your AI provider charges you.
Where Canvas stands.
Solid today
- — Two-stage prompt-engineer + image-gen pipeline
- — Brand context auto-injection
- — Persistent multi-turn sessions
- — Generated images land in asset library
- — DALL-E and other providers supported
Rough today
- — Default flow lands assets as "deprecate" (intermediate); promote-to-permanent is a manual click
- — AI safety / content filtering is light
Coming
- — Template gallery (cover layouts, social formats)
- — More image providers
- — Image-to-image (edit existing generations)
Frequently Asked Questions
Generate brand-consistent imagery.
Bring your OpenAI / Gemini key. m18t handles the rest.