Skip to main content
Glama

Generate image (Grok Imagine, GPT Image 2, Seedream V4, Wan, Nano Banana, Flux, Z-Image Turbo)

aetherwave_generate_image

Generates one or more images from a text prompt (T2I) or a text prompt + reference image(s) (I2I). Submits the job, polls until terminal, and returns the final image URLs. Default model is 'grok-imagine-t2i' (fast, 2 images per generation, 6 credits). Use list_image_models to see the full lineup with pricing. For I2I, pass referenceImages as an array of public image URLs and pick a model with I2I support (e.g. 'grok-imagine-i2i', 'wan-2.5-spicy-i2i').

Putting a UGC character in the image

When the user names one of their characters ("put Amy in this T-shirt", "Cade Ellison from behind"), pass character with the name. The tool attaches that character's approved reference pack and identity text for you, and defaults the model to gpt-image-2-t2i. Put the product, garment or location in referenceImages as usual; describe the pose and framing in the prompt. Characters are the member's own creations, not third parties. Call aetherwave_list_characters if you need the names.

Model selection guide (when the user does not specify a model)

Default: grok-imagine-t2i (6 cr, 2 outputs per call, fast, general purpose).

Strong recommendation: when a single high-quality output is what's wanted (most agent / one-shot workflows), prefer gpt-image-2-t2i (9 cr @ 1K / higher @ 2K, single deterministic image, best general quality across realism, illustration, typography, and composition; supports up to 2K resolution and most aspect ratios including auto). This is the front-runner for serious creative output where you don't need to pick from 6 variations.

Pick a different model when the prompt has these signals:

  • "single best result" / "one image" / production / no time to pick from variations -> gpt-image-2-t2i (9 cr, 1 output, top general quality)

  • "photoreal" / "photo of" / "realistic" -> gpt-image-2-t2i (9 cr, best general realism), nano-banana-2 (8 cr @ 1K), or z-image-turbo (2 cr, fastest)

  • "highest quality" / "premium" / no budget -> gpt-image-2-t2i at 2K (12 cr), or grok-imagine-quality-t2i (14 cr)

  • Text inside the image (signs, posters, typography) -> gpt-image-2-t2i (strongest lettering of the live models)

  • Album art / cover art -> gpt-image-2-t2i for one strong image; grok-imagine-t2i for 2 variations to choose from; seedream-v4-t2i if 4K wanted

  • Logo or design with embedded text -> gpt-image-2-t2i

  • NSFW / adult / explicit -> wan-2.5-spicy-t2i (auto-tags creation as 18+; routes to adult gallery)

  • Cheapest possible / quick test -> z-image-turbo (2 cr)

  • Multiple variations to compare -> keep grok-imagine-t2i (2 outputs per call) or seedream-v4-t2i with maxImages up to 6

For I2I (reference image provided): prefer the dedicated aetherwave_edit_image tool for "change something in this image" intent. Use aetherwave_generate_image with I2I models only when you specifically want style transfer, premium quality (grok-imagine-quality-i2i), or adult content (wan-2.5-spicy-i2i).

Always pass an explicit aspectRatio (e.g. "1:1" for square album art, "16:9" for video thumbnails, "9:16" for shorts/reels). Some upstream providers reject submissions with no aspect ratio.

Ask the user only when:

  • The prompt contradicts itself (e.g., "highest quality but cheapest")

  • The user requested "the best model" with no context, surface 2-3 options with tradeoffs

  • A single generation would cost more than 20 credits and the user has not confirmed

Returns within ~45 s. If the result has state "running" the job is still rendering: poll aetherwave_get_job with the returned taskId and kind every ~10 s. Pass wait:true ONLY if your MCP client permits tool calls longer than 60 s (most do not). Pass async:true to get the taskId back immediately without waiting.

Input Schema

NameRequiredDescriptionDefault
seedNoSeed for deterministic generation (supported by some models).
waitNoBlock until the job finishes (up to the tool's full budget, 6-15 minutes). ONLY if your MCP client permits tool calls longer than 60 s; most abandon the call at 60 s and lose the taskId. Default false: return within ~45 s and hand back a taskId if still running.
asyncNoSubmit and return the taskId immediately without polling at all. Then poll aetherwave_get_job(taskId, kind).
modelNoModel ID. Defaults to 'grok-imagine-t2i'. Use list_image_models for the full list.
promptYesText description of the image to generate.
characterNoName (or handle) of one of the caller's UGC characters, e.g. 'Amy' or 'Cade Ellison'. Attaches the character's reference pack and identity text, and defaults the model to gpt-image-2-t2i.
maxImagesNoNumber of images to return, billed per image. Only `seedream-v4-t2i` (1-6) and `wan-2-7-image` (1-4) take a count; every other model returns its fixed output and ignores it.
numImagesNoOld name for `maxImages`, still accepted. Use `maxImages`.
resolutionNoOutput resolution. Most models accept '1K' or '2K'; some accept '480p'/'720p'.
aspectRatioNoAspect ratio (e.g. '1:1', '16:9', '9:16'). Pass this explicitly when possible; some upstream providers reject submissions without an aspect ratio. Default ratios vary by model.
negative_promptNoWhat to avoid in the output (supported by some models).
referenceImagesNoArray of public image URLs for image-to-image generation. Required when using an I2I model. A single URL string is also accepted (wrapped as a one-element array).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / character
      Added value: +{
      +  "description": "Name (or handle) of one of the caller's UGC characters, e.g. 'Amy' or 'Cade Ellison'. Attaches the character's reference pack and identity text, and defaults the model to gpt-image-2-t2i.",
      +  "type": "string"
      +}
    • addedInput schema / properties / maxImages
      Added value: +{
      +  "description": "Number of images to return, billed per image. Only `seedream-v4-t2i` (1-6) and `wan-2-7-image` (1-4) take a count; every other model returns its fixed output and ignores it.",
      +  "maximum": 6,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / numImages / description
      Previous value: -"Number of images for models that support multiple outputs."New value: +"Old name for `maxImages`, still accepted. Use `maxImages`."
    • changedInput schema / properties / numImages / maximum
      Previous value: -8New value: +6
  2. Changed2 schema fields changed
    • addedInput schema / properties / async
      Added value: +{
      +  "description": "Submit and return the taskId immediately without polling at all. Then poll aetherwave_get_job(taskId, kind).",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / wait
      Added value: +{
      +  "description": "Block until the job finishes (up to the tool's full budget, 6-15 minutes). ONLY if your MCP client permits tool calls longer than 60 s; most abandon the call at 60 s and lose the taskId. Default false: return within ~45 s and hand back a taskId if still running.",
      +  "type": "boolean"
      +}
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations, which only declare openWorld=true and non-idempotent/non-destructive: it discloses credit costs per model, ~45s typical latency vs a 6-15 minute wait budget, the 60s MCP client hazard that can lose the taskId, the 20-credit confirmation threshold, 18+ auto-tagging and adult-gallery routing, and that aspectRatio is required by some upstream providers. Behavior is consistent with the annotations (a paid, non-idempotent, non-destructive generation job).

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 core behavior, then clearly sectioned headings for character handling and model selection. It is long, and there is redundancy — gpt-image-2-t2i's 9-credit single-output pitch appears both in the bolded recommendation and again in several signal bullets, which could be collapsed.

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?

There is no output schema, yet the description covers the return contract anyway: final image URLs, a `state` of 'running', the returned taskId/kind, and the exact polling recipe with interval and the aetherwave_get_job handoff. For a 12-parameter, 20+ model tool this leaves nothing an agent needs unstated.

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 the baseline is 3, but the description adds real meaning on top: it explains which models honor maxImages (vs. ignoring it), how `character` attaches a reference pack and overrides the default model, that referenceImages accepts a bare string, and that aspectRatio must be passed explicitly. The main gap is that `seed`, `resolution`, and `negative_prompt` are only defined as 'some models' without saying which.

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?

States a specific verb and resource ('Generates one or more images from a text prompt (T2I) or ... + reference image(s) (I2I)') and describes the full lifecycle (submit, poll, return URLs). It also names the sibling that handles the overlapping case ('prefer the dedicated aetherwave_edit_image tool for "change something in this image" intent'), so an agent can separate the two without opening a 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?

Provides an explicit model-selection decision table keyed to prompt signals, a stated default, a fallback to aetherwave_list_image_models, exclusions for I2I ('only when you specifically want style transfer, premium quality, or adult content'), and rules for when to ask the user first. This is about as complete as when-to-use guidance gets.

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