The Logo Generator turns "write me a logo prompt" into a set of choices. Pick a layout, a shape, a style, a feel, and a colour treatment; click a few ideas; read the prompt it writes and change any of it; then generate transparent-background logos, one at a time, on the most precise AI image model the site is allowed. Save the keeper straight into the media library or set it as the site logo.
The problem
Every site needs a logo before it needs anything else, and most small businesses arrive without one — or with a JPG of one on a white square that was never going to work in a header. AI image models can draw a very good logo now, but only when the prompt is good, and "describe your logo" is a blank page nobody knows how to fill. The free sparkles on the Branding page generates a quick pair from a short sentence; it does not teach anyone what makes the difference between a mark that reads at 40 pixels and one that does not.
The fix
A dedicated page under Design → Logo Generator that builds the prompt from dropdowns and business facts the install already holds, shows the text as it changes, and then generates with the settings a logo actually needs — a transparent PNG, a header-shaped frame, and the Sunburst model wherever the install may ask for it.
It is a feature module under app/Features/LogoGenerator/ with no tables of its own: a result is a temporary file until it is saved as a media item, and the existing AI temp-file prune sweeps whatever was never kept.
What the dashboard gets
Design → Logo Generator, in five numbered blocks on the left and the prompt on the right.
- The business — company name, a short "what it is" line (a local bakery), where it is, an optional symbol, and an "about" paragraph. The name, location, and about text are pre-filled from Settings → Business and the AI Knowledge brief (the same fields every other AI surface reads), so nothing has to be retyped.
- The logo — Layout (icon beside the name, wordmark, stacked, badge, icon only) and Shape (a wide 3:1 banner that fits a website header is the default; also landscape, square, and tall), then Style (flat & minimal, classic, geometric, hand-drawn, vintage badge, bold, elegant, playful, clean tech) and Feel (warm, professional, bold, rugged, refined, friendly, calm).
- Colours & surface — use the site's brand colours (the primary and secondary from Design → Branding → Colors are written into the prompt as hex values), one dark colour, one light colour, a custom description, or let the model choose; plus whether the logo will sit on light or dark backgrounds, since a transparent PNG has no background of its own.
- Ideas — clickable refinements that each add one sentence: initials monogram, hidden meaning in the negative space, tool of the trade, local landmark, small tagline line, prints in one colour, no mascots, rounded, sharp. Click again to remove. There is deliberately no "must work as a favicon" option: that constrains the logo to suit a 32-pixel square instead of just making a favicon from the finished logo afterwards, which Branding already does.
- Delivery — one centered logo with generous padding (the default and the safe choice for a header), one logo filling the frame, or a concept sheet of four directions in one image for exploring before spending a generation on the keeper. Detail (medium / high / extra high) and how many to generate (1–4) live here too, with a free-text "anything else".
The prompt is a textarea that rewrites itself as options change, in a fixed order a designer would recognise: the brief line, the layout, the feel and style, the colours, the surface, any ideas, the frame, the delivery, and — always — the transparency instruction. Edit it by hand and the dropdowns stop overwriting it (a Rebuild from options link brings the generated text back); ideas clicked after a hand edit append their sentence instead of regenerating the whole thing.
Above the button the page says exactly what it will send: the model, the frame size, the detail tier, and "transparent PNG". If Sunburst is not on the site's allowed model list it says which model will run instead; if the provider cannot take a transparent-background request (Google, fal.ai), it says the prompt is carrying that on its own.
Results appear one at a time in a gallery. Each card previews the logo on white with a Light / Dark toggle to check contrast, shows the model, frame, and how long it took, and offers Use as site logo, Use as dark-mode logo, Save to library, and Discard. Setting a logo writes the same branding.logo_url / branding.dark_logo_url the Branding page does and clears the public response cache, so the header and footer update everywhere at once. A saved logo lands in the media library's Logos category under the year/month folder like any upload.
When the feature is on, the sparkles button on the Branding page's Logo card opens the Logo Generator instead of the quick modal, so there is one place to go.
How generation works
- Model. The request asks for
gpt-image-2.5-sunburstwhenever the install is allowed it — the managed allowlist on a Managed AI install, the curated shortlist on a self-keyed OpenAI one. A model outside the allowlist is refused by the proxy, so when Sunburst is not allowed the page falls back to the advertised default and says so, rather than failing every generation. This override is per call: the site's own default image model (Settings → AI) is untouched for every other picture. - Frame. The 2.5 models accept any 16-pixel-multiple frame inside their pixel band, so the wide shape really is 1536 × 512. An older model that only knows three preset sizes gets the nearest one.
- Transparency. Every request sends
background: transparentand asks for a PNG, whatever the site's photo settings say — a logo needs an alpha channel, and PNG is what favicon generation and email clients can read. The prompt ends on the same instruction in words for providers that have no background parameter. - Detail.
highby default.maxis deliberately not offered: Sunburst atmaxwas measured at 79 seconds, past the gateway timeout most hosts ship with. - One at a time. Each logo is its own request, chained from the browser, with a running timer and a Stop after this one button. Nothing is queued and no worker is needed.
- Role gate. The Generate button honours the same rule as every other AI image control: on a Managed AI install the lane is Super-only unless the member has opened it to all users; self-keyed providers are never role-gated.
Setup
- Turn on Logo Generator under Settings → Features.
- Make sure an image provider is selected under Settings → AI — Managed AI, or your own OpenAI key. (Google and fal.ai work too, without a guaranteed transparent background.)
- Fill in Settings → Business if you have not: the name, address, and description are what pre-fill the brief.
- Open Design → Logo Generator, add the "what it is" line, and generate.
Limitations
- A concept sheet is for choosing a direction, not for use as-is; the Use as buttons are hidden on it.
- Results are not persisted across page loads. Save what you want to keep; unsaved temp files are pruned by the daily AI temp-file sweep.
- The generator produces raster PNGs. A vector (SVG) version is a designer's job; the PNG is generated at up to 1536 pixels wide, which is more than a site header needs.
- A matching dark-mode recolour, and the favicon, are generated from the Branding page once the logo is set (each has its own sparkles button there) rather than here — both are made from the finished logo, so the logo never has to compromise for them.