Skip to main content
Glama

generate_with_face

Generate a NEW image of the SAME PERSON/character as an existing photo or portrait — dress them differently, move them somewhere else, make an avatar. This is the tool for "here is my photo, now put me in a suit / in a park", and also the ONLY tool for "generate another picture of ".

Pass exactly ONE of:
  character: the name you gave a character via create_character_from_description
  or create_character_from_photo(..., name=...). Looked up in your own list —
  see list_characters(). This is the normal way once a character has a name.
  photo_media_id: a mediaId directly (create_character_from_photo's
  `portrait_media_id`, or any earlier generate_image media_id) — for a one-off
  face you haven't registered as a named character.
prompt: describe the NEW scene/outfit and say it is the same person, e.g.
"the same man, now in a navy suit in a bright office".

Why this and not entity_id/character_slot_index: a character's Flow CARD is not
what carries resemblance into a NEW scene — the reference image itself does
(verified live, repeatedly). Combining entity_id with an image reference in the
same call also fails outright (HTTP 500). So this always generates from the
reference image alone, never from entity_id — that is deliberate, not a
workaround to fix later.

project_id: put the result into a project made with create_project instead of the
account's default one. photo_media_id itself stays account-bound, as always.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modelNoNARWHAL
aspectNoIMAGE_ASPECT_RATIO_LANDSCAPE
promptYes
characterNo
project_idNo
photo_media_idNo
include_previewNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the annotations, the description discloses important behavioral details: the tool generates from the reference image alone, never from entity_id, and that combining entity_id with an image reference fails outright. It also notes that photo_media_id remains account-bound. This is meaningful behavioral context that the annotations (readOnlyHint=false, destructiveHint=false) do not capture.

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?

The description is longer than average but well-structured with clear sections and bullet-like formatting. The core purpose is front-loaded, parameter semantics are grouped logically, and the 'why not entity_id' rationale earns its place because it prevents a known failure. Only minor redundancy keeps it from a 5.

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

Completeness4/5

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

For a 7-parameter tool with no output schema, the description covers the critical selection logic, the one-of requirement, failure modes, and project placement behavior. It does not discuss return values or job handling, but given that the tool has no output schema and openWorldHint=true, the description is sufficiently complete for an agent to invoke it correctly.

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 description coverage is 0%, so the description carries the burden. It compensates well for the key parameters: character vs photo_media_id is explained in depth, prompt gets explicit guidance with an example, and project_id is clarified. Model, aspect, and include_preview are left to their enum/default values, which is acceptable but not fully documented.

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?

The description states a specific verb and resource: 'Generate a NEW image of the SAME PERSON/character as an existing photo or portrait.' It gives concrete examples ('put me in a suit / in a park') and explicitly claims to be the 'ONLY tool' for generating another picture of a previously created character, clearly distinguishing it from siblings like generate_image and generate_character_image.

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?

The description gives explicit when-to-use guidance ('This is the tool for...') and tells the agent exactly why not to use entity_id/character_slot_index, including a hard failure mode ('HTTP 500'). It also explains the two mutually exclusive input paths (character vs photo_media_id) and when to choose each, leaving little to inference.

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.