OpenAI
OpenAI provides GPT Image 2 and the GPT Image 2.5 pair (Flare and Sunburst) for images, and GPT text models for planning.
Get a key
Create a key at platform.openai.com/api-keys and paste it into ⚙ Settings → OpenAI.
Like Gemini, image generation needs a billing-enabled account — a first-call
429means billing, not a rate limit.
Models
- GPT Image 2 — text-to-image and image-to-image. Set the aspect ratio and quality on the node.
- GPT Image 2.5 Sunburst — the quality tier: higher image quality than GPT Image 2, stronger subject preservation, OpenAI's pick "where editing precision matters most". Same aspect and size knobs, and a longer quality menu: low · medium · high · xhigh · max.
- GPT Image 2.5 Flare — the speed tier: a small model with image quality comparable to GPT Image 2, much faster. Same knobs and the same five-step quality menu. Use it to explore, then render the keeper on Sunburst.
GPT Image 2 stays first in the menu and the default for new nodes (and for the Director's proof sheet) for now. Without an OpenAI key, both 2.5 models also run through OpenRouter: the aspect ratio and the full quality menu come through, the size stays at about 1K, and masks need the OpenAI key.
What GPT Image 2 and 2.5 cost
GPT Image 2 is token-billed, so the real price depends on size × quality × aspect ratio. Brut ships a measured square-baseline table (from under a cent at 1K low up to ~$0.71 at 4K high) and shows the estimate before any paid run. GPT Image 2.5 Flare and Sunburst bill at the same token rates ($8/M image input, $30/M image output, per OpenAI's model pages) but the quality tiers are shifted: 2.5 max bills exactly what GPT Image 2 bills at high (1K $0.21 · 2K $0.43 · 4K $0.71), 2.5 high bills about GPT Image 2's medium (1K $0.054), and low / medium / xhigh sit around them (1K: $0.007 / $0.015 / $0.095). Same output for less, or better output for the same money, your pick. Flare and Sunburst bill identically at every tier, so Brut ships the same fully measured table for both. Things to know:
- Non-square is often much cheaper. OpenAI's token accounting can bill a 16:9 4K image at a fraction of a square 4K one (we've measured ~$0.15 vs ~$0.71 on GPT Image 2 at high quality; on 2.5, 16:9 high billed 0.50× / 0.40× / 0.57× the square price at 1K / 2K / 4K, and at 4K a 5:4 image billed 0.82×, 3:2 0.65×) — so treat the estimate as an upper ballpark when your aspect isn't square.
- Edits add a little on top. Measured on 2.5 at 1K high: an input image adds about $0.007 (a 20 MP render about $0.013), a second input about $0.009, an inpaint mask about $0.0035.
- The ledger holds the truth. Every run records the exact usage-priced amount OpenAI reported, never the estimate — check the spend panel for what a generation really billed.
Text / planning models
- GPT-5.4 Mini, GPT-5.5 for Refine and the cinema agents when you choose OpenAI as the planner.
- GPT-5.6 family — three text tiers with a reasoning dial: Sol ($4/M in · $20/M out — promotional through 2026-11-21, the deepest), Terra ($2/M in · $12/M out, balanced), Luna ($0.20/M in · $1.20/M out, cheap and fast). Available everywhere text models are picked: Text → Text, the cinema agents, and Marcel's model lanes.
- GPT-6.1 Sol — OpenAI's new middle tier, "near-Astra performance for complex work at a lower cost": $2/M in · $10/M out (cached input $0.10/M; prompts over 272K input tokens bill $4 in / $15 out, and Brut's estimates account for it), 1M-token context, image inputs, reasoning dial low → xhigh (default medium; no none on this one). On your own OpenAI key Marcel can advise on this model but not act on the canvas; through OpenRouter he can. GPT-6 Sol stays listed.
- GPT-6 Sol and Luna — the two GPT-6 tiers under Astra: Sol ($2/M in · $10/M out, strong reasoning at half of GPT-5.6 Sol's price) and Luna ($0.10/M in · $0.50/M out, the cheapest text model on the OpenAI key). 1M-token context, image inputs, reasoning dial none → xhigh (their default is medium). There is no GPT-6 Terra. Both also run via OpenRouter when you have no OpenAI key; on your own key Marcel runs them with reasoning set to none (see below).
- GPT-6 Astra — OpenAI's frontier planner: 1M-token context, reasoning dial low → xhigh, $10/M in · $50/M out (long-context prompts bill more). Excellent for the hardest treatments and as a brain for Marcel's advice. One honest limit: on your own OpenAI key Marcel can advise on this model but not act on the canvas; through OpenRouter he can (switch the OpenAI provider off in Settings). Full support on your own key is on the roadmap.
The reasoning dial (GPT-5.6 and GPT-6)
GPT-5.6 and GPT-6 models can think before answering, and Brut exposes the dial: none · low · medium · high · xhigh (leave it on default to let OpenAI pick). Higher settings give deeper answers and cost more — reasoning tokens are billed as output tokens, so an xhigh answer can spend several times the tokens of the visible text. The dial appears on the Text → Text node, on the Director (and the legacy crew agents), and — for Marcel's brain lane — in ⚙ Settings; always only when the selected model actually supports it. Changing it re-plans, like any input change.
Marcel on GPT-5.6 and GPT-6 Sol / Luna. With your own OpenAI key, Marcel runs these models with reasoning set to none, because OpenAI only lets them act on the canvas at that setting; Settings shows it fixed. Through OpenRouter the dial stays free. Text → Text and the Director keep the full dial. GPT-5.5 and GPT-5.4 Mini have no dial.
Inpainting with a mask
OpenAI takes an Inpaint mask as its native mask input. The mask steers where the change goes, but it doesn't lock the rest: GPT Image 2 and 2.5 redraw the whole image, so the area outside the mask comes back close to the original, not pixel-identical. OpenAI's image guide says so: "Masking with GPT Image is entirely prompt-based. The model uses the mask as guidance, but may not follow its exact shape with complete precision." When the rest must stay pixel-exact, stack the result over the original in a Layers node and mask it to the region you changed.
Edits can lose a few edge pixels. An edit can lose up to 15 pixels at its edges so its size matches what OpenAI renders; nothing is stretched.
The output is the input's size. The result comes back at your input's size with a mask, or at the input's shape at the size you pick (1K / 2K / 4K).
Notes
- A plan that comes back cut off is never passed on half-written: you get the full plan or a clear error.