Raw schema
{
"type": "object",
"properties": {
"image": {
"type": "string",
"description": "img_… id of a previous generation"
},
"instruction": {
"type": "string",
"description": "What to change"
},
"model": {
"type": "string",
"default": "nano-banana-2"
},
"aspect_ratio": {
"type": "string"
},
"resolution": {
"type": "string",
"enum": [
"1K",
"2K",
"4K"
],
"description": "Output tier; defaults to the source image's"
},
"overlay": {
"oneOf": [
{
"type": "string",
"const": "default",
"description": "Apply your saved brand kit (set with PUT /v1/brand-kit)"
},
{
"type": "object",
"description": "Optional brand overlay composited into a corner after generation. Provide EITHER text OR logo_id (an uploaded brand logo), not both.",
"properties": {
"text": {
"type": "string",
"description": "Handle to render, ≤64 chars, single line (mutually exclusive with logo_id)"
},
"logo_id": {
"type": "string",
"description": "A logo uploaded via POST /v1/logos (mutually exclusive with text)"
},
"logo_style": {
"type": "string",
"enum": [
"sticker",
"shadow",
"outline",
"none"
],
"description": "Logo treatment (logo_id only). RECOMMENDED default \"sticker\": crisp die-cut border + drop shadow, legible on any photo. \"shadow\": drop shadow only (use when the logo already contrasts the scene). \"outline\": border only, flat cut-out. \"none\": bare logo, its own alpha only (use only for a pre-processed logo on a controlled background)."
},
"position": {
"type": "string",
"enum": [
"top-left",
"top-right",
"bottom-left",
"bottom-right"
],
"description": "default bottom-right"
},
"font": {
"type": "string",
"enum": [
"space-grotesk",
"inter",
"jetbrains-mono"
],
"description": "text only; default space-grotesk"
},
"weight": {
"type": "number",
"enum": [
400,
500,
700
],
"description": "text only; default 700"
},
"size": {
"type": "string",
"enum": [
"s",
"m",
"l"
],
"description": "text cap-height or logo width; default m"
},
"color": {
"type": "string",
"description": "text only; \"auto\" (default) or #RRGGBB"
},
"opacity": {
"type": "number",
"description": "0.2–1.0, default 0.9"
},
"margin": {
"description": "\"safe\" (default) or a non-negative px number"
}
}
}
]
}
},
"required": [
"image",
"instruction"
]
}