flow_entity
Create or update character entities by binding preset voices and completed images, enabling zero-credit audio and character generation. List available preset voices and track entities locally.
Instructions
Google Flow character entities (角色实体, ZERO-CREDIT). Create/update CHARACTER entities and bind a preset voice for later audio/character generation. Create: tRPC flow.createEntity {projectId, collectionId:""} (empty string passes zod — no collection needed); update: PATCH /v1/flow/entities with dotted updateMask (displayName / characterInfo.audioReferences=[{presetVoiceId}] / characterInfo.imageReferences=[{workflowId}]). Entity images attach via imageMediaIds (completed image mediaIds from flow_generate_image; the workflowId mapping is resolved automatically from project workflows). 30 preset voices are star-named (achernar/charon/kore/…) with descriptions — list them via action=voices or flow_status preset_voices.
LIMITATION (honest): Flow has NO entity read endpoint (projectContents has no entities key; collections REST is CORS-blocked in page context) — only entities created via this tool are tracked, in a local mirror ~/.media-gen-mcp/flow-entities.json (aligned with flow-project.json precedent). action=list returns the mirror, not a server query.
WHEN: 角色卡 / 建角色 / character entity / bind voice / 角色绑定语音 / 绑定形象图.
NEXT: generate the character image first (flow_generate_image), then flow_entity(action=create, displayName=…, imageMediaIds=[…], presetVoiceId=…) wires it up; all operations are 0-credit.
Multilingual triggers: 角色 · 实体 · character · entity · voice binding (zh/en).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | create = new CHARACTER entity (+optional displayName/presetVoiceId/imageMediaIds in one call); update = rename/rebind an entity from the local mirror (entityId required); list = local mirror records (Flow has no entity read endpoint); voices = 30 preset voices (id/displayName/description). | create |
| entityId | No | action=update: the entityId from action=create's response (local mirror lookup). | |
| displayName | No | Character name (e.g. 江雪 / Lin). Server default "Untitled Character". | |
| imageMediaIds | No | Completed image mediaIds (from flow_generate_image / flow_status) to attach as the character's look — resolved to workflowIds automatically. | |
| presetVoiceId | No | One of the 30 preset voices (action=voices lists them; e.g. charon). Validated before submit — a typo fails fast with S301. |