Identity is a layer that has to be learned.
Generic image models such as Nano Banana 2 and 2.1, GPT Image 2 and 2.5, Qwen Image 2, Flux 2 Dev, Flux 2 Pro, and Seedream 5.0 Pro have different strengths: world knowledge, text rendering, aesthetic defaults, cost profile. They’ve all shipped in roughly a year and the frontier keeps moving. What every one of them is missing is personal knowledge of a specific person. That’s what Phota’s identity layer adds. The identity layer composes on top of whichever base model you pick — so you choose the generic model that best fits your use case, and Phota handles identity for you. For more background, see Every Frontier Model Can Be Personalized for You. You select the base model per request with thebase_model parameter. Identity preservation is applied automatically
whenever a trained profile is referenced.
Supported models
See Pricing for the exact rates.
If you omit
base_model, requests run on Nano Banana 2.
We plan to make Nano Banana 2.1 (
nb2.1) the default base model in a future release. To keep running on Nano
Banana 2 after that, pass base_model: "nb2" explicitly.Where base_model applies
/edit— acceptsbase_model. Defaults tonb2./generate— acceptsbase_model. Defaults tonb2./enhance— does not acceptbase_model. Enhancement is pinned to Nano Banana 2 at 2K.
Custom resolution (GPT Image models only)
On/edit and /generate, set custom_resolution to an exact "WIDTHxHEIGHT" string:
"3840x2160" and "2880x2880"
sit exactly on the ceiling; "3840x2176" is over it, and "4096x1376" exceeds the edge limit.
Sizes above 3,686,400 pixels are reserved at the 4K rate and settle on actual usage, like every other size.
Omit resolution and aspect_ratio when using custom_resolution. The custom size replaces the default "1K"
tier; combining it with "2K", "4K", or any explicit aspect_ratio is rejected. Other base models reject
custom_resolution with HTTP 400. The existing resolution presets remain available, including their larger sizes.
Custom sizes also work with async: true and response_mode: "urls".
Quality tier (GPT Image models only)
/edit and /generate accept an optional quality parameter — "auto", "low", "medium", or "high" — when
base_model is gpt-image-2, gpt-image-2.5-sunburst, or gpt-image-2.5-flare. Omitting it lands on "auto".
gpt-image-2.5-sunburst and gpt-image-2.5-flare also accept "xhigh" and "max".
GPT Image 2 rejects these two tiers with HTTP 400. Sending quality with any other base model returns HTTP 400. Billing is token-driven, so lower tiers produce fewer
output tokens and cost less per request.
Example: pick a base model explicitly
Next steps
Pricing
Per-image and token-metered rates for every supported base model.
Profiles guide
Create and manage profiles for identity preservation.
Quickstart
Walk through the full workflow with code examples.
