Skip to main content
Glama

Generate Image

generate_image

Generate Switch images with one of seven models: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2.1 (Google's newest, up to 14 reference pictures), Nano Banana 2, Nano Banana Pro or Switch Vintage. Nothing older is offered or accepted. When model is omitted it auto-routes by subject: GPT Image 2.5 by default and for typography, screens and storyboards, Switch Pro for swimwear/beach, Switch Ultra for sexier content or face-fidelity work. The Nano Bananas and Switch Vintage are only used when named. Switch Vintage is a film look that works from a character taught beforehand, not from reference pictures. Counts <= 8 render inline in chat; counts > 8 queue to your Switch Studio with progress polling. All images persist to your Studio library and folder. Optional style (e.g. "wellness/warm_amber_tropical", "movie_scene/neon_noir_action") applies a curated photographic stack from the apply_* skill tools.

Input Schema

NameRequiredDescriptionDefault
countNoHow many images to generate. Default 4. <= 8 returns inline, > 8 queues to Studio. Beta limit: max 50 per request — larger asks are capped at 50 and the response says so.
modelNoOptional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2.1, Nano Banana 2, Nano Banana Pro or Switch Vintage. Nothing else is accepted. Switch Vintage works from a character taught beforehand: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description).
styleNoOptional curated style stack from the apply_* skill tools. Format "<skill>/<style_key>", e.g. "wellness/warm_amber_tropical" or "high_fashion_editorial/painterly_renaissance".
subjectYesPlain-English description of what to generate. E.g. "a woman walking through a hotel lobby" or "morning coffee on the balcony, model wearing a robe". Name the creator's staged Studio references as @Image1, @Image2 (their image strip, see get_my_active_references) and they attach automatically; nothing from the strip attaches unless named.
brand_kitNoOptional. The brand kit to send with this picture, by name or id, or "none". Leave out to use the kit chosen in Switch Agent settings (or the default kit).
folder_nameNoOptional Switch Studio folder name. Auto-created if missing. Defaults to the chat-derived title.
aspect_ratioNoImage aspect ratio. auto (Nano Banana with a reference picture only): the new picture keeps the reference picture's own shape. Default 9:16 (vertical, social-friendly), or the shape a chosen style names. Switch Vintage takes 9:16, 16:9, 4:3, 3:4, 1:1, 2:3 and 3:2 as is; any other ratio is mapped to the nearest one it offers.
real_photo_lookNoOptional. Adds the casual real-photo texture (film grain, amateur iPhone feel). OFF by default — only set true when the user asks for the realistic, unpolished look.
face_reference_idsNoOptional, kept for apps that already use it: asset ids from upload_reference_asset to use as the face to keep. Not needed to send a picture of a person; reference_image_urls takes those as they are. Each id is verified server-side (your own untouched original + identity verification) before anything generates or is charged.
reference_image_urlsNoOptional GENERIC references (products, scenery, outfits, style). Each entry accepts EITHER a Switch asset id (from upload_reference_asset / upload_media / list_my_assets) OR a public https url; asset ids are resolved server-side. Pictures of real people go here too, as they are; you never pick a face field.

Output Schema

NameRequiredDescriptionDefault
assetNo
imagesNo
_widgetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / brand_kit
      Added value: +{
      +  "description": "Optional. The brand kit to send with this picture, by name or id, or \"none\". Leave out to use the kit chosen in Switch Agent settings (or the default kit).",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / model / description
      Previous value: -"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2.1, Nano Banana 2 or Switch Vintage. Nothing else is accepted. Switch Vintage works from a character taught beforehand: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."New value: +"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2.1, Nano Banana 2, Nano Banana Pro or Switch Vintage. Nothing else is accepted. Switch Vintage works from a character taught beforehand: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "GPT Image 2.5",
      -  "Switch Pro",
      -  "Switch Ultra",
      -  "Nano Banana 2.1",
      -  "Nano Banana 2",
      -  "Switch Vintage"
      -]New value: +[
      +  "GPT Image 2.5",
      +  "Switch Pro",
      +  "Switch Ultra",
      +  "Nano Banana 2.1",
      +  "Nano Banana 2",
      +  "Nano Banana Pro",
      +  "Switch Vintage"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / aspect_ratio / description
      Previous value: -"Image aspect ratio. Default 9:16 (vertical, social-friendly), or the shape a chosen style names. Switch Vintage takes 9:16, 16:9, 4:3, 3:4, 1:1, 2:3 and 3:2 as is; any other ratio is mapped to the nearest one it offers."New value: +"Image aspect ratio. auto (Nano Banana with a reference picture only): the new picture keeps the reference picture's own shape. Default 9:16 (vertical, social-friendly), or the shape a chosen style names. Switch Vintage takes 9:16, 16:9, 4:3, 3:4, 1:1, 2:3 and 3:2 as is; any other ratio is mapped to the nearest one it offers."
    • changedInput schema / properties / aspect_ratio / enum
      Previous value: -[
      -  "9:16",
      -  "16:9",
      -  "1:1",
      -  "4:5",
      -  "5:4",
      -  "3:2",
      -  "2:3",
      -  "4:3"
      -]New value: +[
      +  "9:16",
      +  "16:9",
      +  "1:1",
      +  "4:5",
      +  "5:4",
      +  "3:2",
      +  "2:3",
      +  "4:3",
      +  "auto"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / aspect_ratio / description
      Previous value: -"Image aspect ratio. Default 9:16 (vertical, social-friendly). Switch Vintage takes 9:16, 16:9, 4:3, 3:4, 1:1, 2:3 and 3:2 as is; any other ratio is mapped to the nearest one it offers."New value: +"Image aspect ratio. Default 9:16 (vertical, social-friendly), or the shape a chosen style names. Switch Vintage takes 9:16, 16:9, 4:3, 3:4, 1:1, 2:3 and 3:2 as is; any other ratio is mapped to the nearest one it offers."
  5. Changed2 schema fields changed
    • changedInput schema / properties / face_reference_ids / description
      Previous value: -"Face reference asset ids from upload_reference_asset (frame_type \"face\"). The ONLY way to use a face/likeness reference. Each id is verified server-side (your own untouched original + identity verification) before anything generates or is charged; a URL or generic upload here is rejected."New value: +"Optional, kept for apps that already use it: asset ids from upload_reference_asset to use as the face to keep. Not needed to send a picture of a person; reference_image_urls takes those as they are. Each id is verified server-side (your own untouched original + identity verification) before anything generates or is charged."
    • changedInput schema / properties / reference_image_urls / description
      Previous value: -"Optional GENERIC references (products, scenery, outfits, style). Each entry accepts EITHER a Switch asset id (from upload_reference_asset / upload_media / list_my_assets) OR a public https url; asset ids are resolved server-side. These are never treated as face references — for a person's face/likeness use face_reference_ids."New value: +"Optional GENERIC references (products, scenery, outfits, style). Each entry accepts EITHER a Switch asset id (from upload_reference_asset / upload_media / list_my_assets) OR a public https url; asset ids are resolved server-side. Pictures of real people go here too, as they are; you never pick a face field."
  6. Changed2 schema fields changed
    • changedInput schema / properties / style / description
      Previous value: -"Optional curated style stack from the apply_* skill tools. Format \"<skill>/<style_key>\", e.g. \"wellness/warm_amber_tropical\" or \"high_fashion_editorial/leibovitz_painterly\"."New value: +"Optional curated style stack from the apply_* skill tools. Format \"<skill>/<style_key>\", e.g. \"wellness/warm_amber_tropical\" or \"high_fashion_editorial/painterly_renaissance\"."
    • changedInput schema / properties / style / enum
      Previous value: -[
      -  "iphone_realism/digital_phone",
      -  "iphone_realism/film_pointshoot",
      -  "iphone_realism/off_duty_intimate",
      -  "movie_scene/neon_noir_action",
      -  "movie_scene/glamour_finance_excess",
      -  "movie_scene/superhero_blockbuster",
      -  "movie_scene/video_game_character",
      -  "movie_scene/generic_action_thriller",
      -  "high_fashion_editorial/testino_glossy",
      -  "high_fashion_editorial/klein_dark_cinematic",
      -  "high_fashion_editorial/inez_vinoodh_hard_flash",
      -  "high_fashion_editorial/leibovitz_painterly",
      -  "high_fashion_editorial/walker_dreamlike",
      -  "high_fashion_editorial/lindbergh_bw_natural",
      -  "high_fashion_editorial/cass_bird_off_duty",
      -  "graphic_editorial_portrait/classic",
      -  "graphic_editorial_portrait/golden_hour",
      -  "travel/hotel_hero",
      -  "travel/rural_property",
      -  "travel/scenic_view",
      -  "travel/drone_aerial",
      -  "travel/lifestyle",
      -  "travel/interior",
      -  "wellness/warm_amber_tropical",
      -  "wellness/hanalei_cinematic",
      -  "wellness/high_key_cyan_beach",
      -  "cinematic_anamorphic/warm_golden",
      -  "cinematic_anamorphic/cool_noir",
      -  "cinematic_anamorphic/moody_desaturated",
      -  "magic_hour_portrait/canon_85mm",
      -  "magic_hour_portrait/hasselblad_80mm",
      -  "product/clean_studio",
      -  "product/lifestyle",
      -  "product/macro_detail",
      -  "product/flat_lay",
      -  "ugc/phone_shot",
      -  "ugc/film_pointshoot",
      -  "ugc/mirror_selfie",
      -  "ugc/car_selfie"
      -]New value: +[
      +  "iphone_realism/digital_phone",
      +  "iphone_realism/film_pointshoot",
      +  "iphone_realism/off_duty_intimate",
      +  "movie_scene/neon_noir_action",
      +  "movie_scene/glamour_finance_excess",
      +  "movie_scene/superhero_blockbuster",
      +  "movie_scene/video_game_character",
      +  "movie_scene/generic_action_thriller",
      +  "high_fashion_editorial/glossy_cover",
      +  "high_fashion_editorial/dark_cinematic",
      +  "high_fashion_editorial/hard_flash_conceptual",
      +  "high_fashion_editorial/painterly_renaissance",
      +  "high_fashion_editorial/dreamlike_fairytale",
      +  "high_fashion_editorial/black_and_white_natural",
      +  "high_fashion_editorial/off_duty_candid",
      +  "graphic_editorial_portrait/classic",
      +  "graphic_editorial_portrait/golden_hour",
      +  "travel/hotel_hero",
      +  "travel/rural_property",
      +  "travel/scenic_view",
      +  "travel/drone_aerial",
      +  "travel/lifestyle",
      +  "travel/interior",
      +  "wellness/warm_amber_tropical",
      +  "wellness/hanalei_cinematic",
      +  "wellness/high_key_cyan_beach",
      +  "cinematic_anamorphic/warm_golden",
      +  "cinematic_anamorphic/cool_noir",
      +  "cinematic_anamorphic/moody_desaturated",
      +  "magic_hour_portrait/canon_85mm",
      +  "magic_hour_portrait/hasselblad_80mm",
      +  "product/clean_studio",
      +  "product/lifestyle",
      +  "product/macro_detail",
      +  "product/flat_lay",
      +  "ugc/phone_shot",
      +  "ugc/film_pointshoot",
      +  "ugc/mirror_selfie",
      +  "ugc/car_selfie"
      +]
  7. Changed1 schema field changed
    • changedInput schema / properties / reference_image_urls / description
      Previous value: -"Optional public image URLs used as GENERIC references (products, scenery, outfits, style). These are never treated as face references — for a person's face/likeness use face_reference_ids."New value: +"Optional GENERIC references (products, scenery, outfits, style). Each entry accepts EITHER a Switch asset id (from upload_reference_asset / upload_media / list_my_assets) OR a public https url; asset ids are resolved server-side. These are never treated as face references — for a person's face/likeness use face_reference_ids."
  8. Changed2 schema fields changed
    • changedInput schema / properties / model / description
      Previous value: -"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2 or Switch Vintage. Nothing else is accepted. Switch Vintage works from a character taught beforehand: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."New value: +"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2.1, Nano Banana 2 or Switch Vintage. Nothing else is accepted. Switch Vintage works from a character taught beforehand: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "GPT Image 2.5",
      -  "Switch Pro",
      -  "Switch Ultra",
      -  "Nano Banana 2",
      -  "Switch Vintage"
      -]New value: +[
      +  "GPT Image 2.5",
      +  "Switch Pro",
      +  "Switch Ultra",
      +  "Nano Banana 2.1",
      +  "Nano Banana 2",
      +  "Switch Vintage"
      +]
  9. Changed1 schema field changed
    • changedInput schema / properties / subject / description
      Previous value: -"Plain-English description of what to generate. E.g. \"a woman walking through a hotel lobby\" or \"morning coffee on the balcony, model wearing a robe\"."New value: +"Plain-English description of what to generate. E.g. \"a woman walking through a hotel lobby\" or \"morning coffee on the balcony, model wearing a robe\". Name the creator's staged Studio references as @Image1, @Image2 (their image strip, see get_my_active_references) and they attach automatically; nothing from the strip attaches unless named."
  10. Changed1 schema field changed
    • changedInput schema / properties / model / description
      Previous value: -"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2 or Switch Vintage. Nothing else is accepted. Switch Vintage is prompt only: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."New value: +"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2 or Switch Vintage. Nothing else is accepted. Switch Vintage works from a character taught beforehand: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."
  11. Changed3 schema fields changed
    • changedInput schema / properties / aspect_ratio / description
      Previous value: -"Image aspect ratio. Default 9:16 (vertical, social-friendly)."New value: +"Image aspect ratio. Default 9:16 (vertical, social-friendly). Switch Vintage takes 9:16, 16:9, 4:3, 3:4, 1:1, 2:3 and 3:2 as is; any other ratio is mapped to the nearest one it offers."
    • changedInput schema / properties / model / description
      Previous value: -"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra or Nano Banana 2. Nothing else is accepted. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."New value: +"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra, Nano Banana 2 or Switch Vintage. Nothing else is accepted. Switch Vintage is prompt only: pass no reference_image_urls or face_reference_ids with it. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "GPT Image 2.5",
      -  "Switch Pro",
      -  "Switch Ultra",
      -  "Nano Banana 2"
      -]New value: +[
      +  "GPT Image 2.5",
      +  "Switch Pro",
      +  "Switch Ultra",
      +  "Nano Banana 2",
      +  "Switch Vintage"
      +]
  12. Changed2 schema fields changed
    • changedInput schema / properties / model / description
      Previous value: -"Optional explicit model. If omitted, auto-routed based on subject content (see tool description)."New value: +"Optional explicit model: GPT Image 2.5, Switch Pro, Switch Ultra or Nano Banana 2. Nothing else is accepted. If omitted, auto-routed to GPT Image 2.5, Switch Pro or Switch Ultra by subject (see tool description)."
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "Nano Banana 2",
      -  "Nano Banana Pro",
      -  "Switch Model",
      -  "Switch Pro",
      -  "Switch Ultra",
      -  "GPT Image 2",
      -  "GPT Image 2.5",
      -  "GPT Image 2.5 Flare",
      -  "WAN 2.7"
      -]New value: +[
      +  "GPT Image 2.5",
      +  "Switch Pro",
      +  "Switch Ultra",
      +  "Nano Banana 2"
      +]
  13. Changed1 schema field changed
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "Nano Banana 2",
      -  "Nano Banana Pro",
      -  "Switch Model",
      -  "Switch Pro",
      -  "Switch Ultra",
      -  "GPT Image 2",
      -  "WAN 2.7"
      -]New value: +[
      +  "Nano Banana 2",
      +  "Nano Banana Pro",
      +  "Switch Model",
      +  "Switch Pro",
      +  "Switch Ultra",
      +  "GPT Image 2",
      +  "GPT Image 2.5",
      +  "GPT Image 2.5 Flare",
      +  "WAN 2.7"
      +]
  14. Changed2 schema fields changed
    • addedInput schema / properties / face_reference_ids
      Added value: +{
      +  "description": "Face reference asset ids from upload_reference_asset (frame_type \"face\"). The ONLY way to use a face/likeness reference. Each id is verified server-side (your own untouched original + identity verification) before anything generates or is charged; a URL or generic upload here is rejected.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / reference_image_urls / description
      Previous value: -"Optional public image URLs to use as face/body/scene references."New value: +"Optional public image URLs used as GENERIC references (products, scenery, outfits, style). These are never treated as face references — for a person's face/likeness use face_reference_ids."
  15. Changed1 schema field changed
    • addedInput schema / properties / real_photo_look
      Added value: +{
      +  "description": "Optional. Adds the casual real-photo texture (film grain, amateur iPhone feel). OFF by default — only set true when the user asks for the realistic, unpolished look.",
      +  "type": "boolean"
      +}
  16. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "_widget": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "asset": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "images": {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  17. Changed1 schema field changed
    • changedInput schema / properties / count / description
      Previous value: -"How many images to generate. Default 4. <= 8 returns inline, > 8 queues to Studio."New value: +"How many images to generate. Default 4. <= 8 returns inline, > 8 queues to Studio. Beta limit: max 50 per request — larger asks are capped at 50 and the response says so."
  18. Changed1 schema field changed
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "Nano Banana 2",
      -  "Nano Banana Pro",
      -  "Switch Model",
      -  "Switch Pro",
      -  "Switch Ultra",
      -  "GPT Image 2",
      -  "FLUX 2 Pro",
      -  "WAN 2.7"
      -]New value: +[
      +  "Nano Banana 2",
      +  "Nano Banana Pro",
      +  "Switch Model",
      +  "Switch Pro",
      +  "Switch Ultra",
      +  "GPT Image 2",
      +  "WAN 2.7"
      +]
  19. First observed

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=false, destructive=false and openWorld=true, so the safety profile is covered. The description adds genuinely useful behavior beyond that: counts <= 8 render inline while > 8 queue to Studio with progress polling, and all images persist to the Studio library and folder. It does not, however, discuss cost/credit implications or what happens on partial failure, and the server-side verification-before-charge detail lives in the schema rather than the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the model list and routing rules, then queueing behavior, then style. Mostly dense and purposeful, but "Nothing older is offered or accepted" duplicates the schema's "Nothing else is accepted," and the model names are enumerated twice (once in prose, once in the enum) which costs space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter generation tool with an output schema, this covers everything an agent needs: model selection policy, the inline-vs-queue threshold, persistence location, and style sourcing. Return-value details are correctly left to the output schema, so nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description earns extra credit because the `model` schema explicitly defers to it ("see tool description") for auto-routing logic, and the description supplies that subject-to-model mapping. It also explains that `style` draws from the apply_* skill tools and gives concrete example keys, adding meaning beyond the bare enum.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource ("Generate Switch images") and immediately enumerates the seven accepted models, which distinguishes it from siblings like generate_video or the apply_* style tools. An agent knows exactly what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing rules: GPT Image 2.5 by default and for typography/screens/storyboards, Switch Pro for swimwear/beach, Switch Ultra for sexier or face-fidelity work, and states the Nano Bananas and Switch Vintage are only used when named. It also states the threshold that selects inline rendering vs Studio queuing, which is the key behavioral fork an agent must decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources