Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://openflowmcp.com
Added "contact_support" and "support_replies" (49 tools before, 51 now)
Send a message to the openFlow human operator (no Telegram needed). Replies come from a human, usually within hours; read them with support_replies.
Your support thread, including operator replies (from a human, usually within hours). `since` is a unix timestamp: only newer messages.
Added "add_antigravity_start", "add_antigravity_submit", "complete_antigravity_account" and 1 more; changed the definition of "flow_status" (45 tools before, 49 now)
⟨181 unchanged words⟩ copying or pasting. add_account_token is only the fallback. To add an **Antigravity** Google account from inside this chat, use `add_antigravity_start` -> open the URL -> paste the `code` back with `add_antigravity_submit(code, state)`. `support` is the operator's Telegram, the service's only ⟨21 unchanged words⟩
Begin connecting a Google ANTIGRAVITY account (used by the Claude/Gemini models via OmniRoute — not a Google Flow account). Returns `authorize_url` and `state`. The next step is on the USER's side: give them `next_step` wording and the URL, they sign in and press Accept in their browser and hand you the `code=...` value from the antigravity.google/oauth-callback page. Then call add_antigravity_submit(code, state) with the `state` returned here.
Changed the definition of "fetch_media" and "flow_health"
⟨224 unchanged words⟩ (use check_job for that). On storage:generatedthefilesserverarekeepsNOTadeletedlocaloncacheaoftimerresults—and,there
Changed the definition of "create_character_from_description", "edit_video", "fetch_media" and 6 more
⟨9 unchanged words⟩ "enum":["IMAGE_ASPECT_RATIO_LANDSCAPE","IMAGE_ASPECT_RATIO_PORTRAIT","IMAGE_ASPECT_RATIO_SQUARE","IMAGE_ASPECT_RATIO_LANDSCAPE_FOUR_THREE","IMAGE_ASPECT_RATIO_PORTRAIT_THREE_FOUR"],"title":"Aspect","type":"string ⟨51 unchanged words⟩
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨124 unchanged words⟩ with the piece replaced. reference_images_base64: up to35 raw base64 images (no data: prefix);
Added "recast_video"; changed the definition of "edit_video", "extend_video", "generate_video" and 3 more (44 tools before, 45 now)
⟨14 unchanged words⟩ out of the shot", "warmer light", "put the product from the image on the table". Source — ONE of: media_id: id ⟨51 unchanged words⟩ that account. The upload itself costs no credits.20start_seccredits/perend_sec: edit(abra_editonlyisthis piece of theonlysourcemodel(both
Changed the definition of "edit_video"
Rewrite a videothis service already generated,from a plain description:"make the sky stormy", "take thepasser-by out of the shot", "warmer light". Source — ONE of: media_id:theid from a previous generate_video*result. Onlyresultour(OURownOWNvideosgeneration).canJobbe edited
Authorization not required, issuer https://openflowmcp.com
Authorization not required, issuer https://openflowmcp.com
Authorization not required, issuer https://openflowmcp.com
Changed the definition of "generate_video", "generate_video_from_image" and "generate_video_with_reference"
⟨61 unchanged words⟩ "Video Model Key","type":"string"},"voice":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice"},"voice_style":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice Style"},"voice_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice Text"}},"required":["prompt"],"title": ⟨3 unchanged words⟩
⟨186 unchanged words⟩ with create_project instead of the account's default one. voice / voice_style / voice_text: optional narration — same semantics as generate_video_with_reference. Only works with speech-capable Veo 3.1 i2v models.
Changed the definition of "generate_video_with_reference"
⟨154 unchanged words⟩ with create_project instead of the account's default one. entity_id: optional — the entityId of a character you created and voiced with set_character_voice. Only meaningful together with video_model_key="veo_3_1_r2v_lite" (the one r2v model that generates speech natively); for abra_r2v_* models passing entity_id has no effect (and was known to 500 historically). When set with the right model, Flow attaches the character's audioReferences and lip-syncs the generated speech in the assigned TTS voice. The job runs on the character's own Google account (that's where the entity and its audioReferences live) — so an account different from your other calls is normal here, no action needed.
⟨8 unchanged words⟩ ":"Aspect","type":"string"},"entity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Entity Id"},"include_preview":{"default":true,"title":"Include ⟨55 unchanged words⟩
Added "refresh_llm_models"; changed the definition of "chat_claude_sonnet", "chat_gemini_flash" and "chat_gemini_pro" (43 tools before, 44 now)
⟨41 unchanged words⟩ описание инструментов в формате Anthropic tool_use (опционально). account_email: форсировать конкретный Google-аккаунт. account_tag: форсировать аккаунты с указанным тэгом. Returns: {"text": str, "usage" ⟨23 unchanged words⟩
{"properties":{"account_email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Account Email"},"account_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Account Tag"},"max_tokens":{"default":4000,"title":"Max ⟨44 unchanged words⟩
Authorization not required, issuer https://openflowmcp.com
Added "chat_claude_sonnet", "chat_gemini_flash", "chat_gemini_pro" and 1 more (39 tools before, 43 now)
Запрос к Claude Sonnet 4.6 через вашу подписку Anthropic (если подключена) или через подписку Google (Vertex). Поддерживает инструменты (tool_use). Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опционально). max_tokens: максимальное количество токенов в ответе. tools: описание инструментов в формате Anthropic tool_use (опционально). Returns: {"text": str, "usage": {...}}. Если модель решила звать инструмент, дополнительно вернётся "tool_calls": [..…
Быстрый и дешёвый Gemini 3 Flash — для коротких запросов, классификации, извлечения полей из текста. Идёт в вашу подписку Google, наши токены не тратит. Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опционально). Returns: {"text": str, "usage": {"input_tokens": int, "output_tokens": int}}. Raises: MCPError: если ключ невалиден, Google не подключён, или квота исчерпана.
Запрос к Gemini 3 Pro через вашу подписку Google AI Pro. Использует ваш подключённый Google-аккаунт (подключите на /connect-google). Расходует вашу квоту Google, не наши токены. Args: messages: список {"role": "user|assistant", "content": "..."}. system: системный промпт (опционально). max_tokens: максимальное количество токенов в ответе. Returns: {"text": str, "usage": {"input_tokens": int, "output_tokens": int}}. Raises: MCPError: если ключ невалиден, Google не подключён, или квота исчерп…
Added "generate_voice", "list_voices" and "set_character_voice" (36 tools before, 39 now)
Speak `text` aloud with a Gemini TTS voice and return a WAV (24 kHz, mono, 16-bit). Takes ~15-25 seconds. Costs no image/video quota. Russian, English and most other languages work; the voice name only sets the timbre. text: what to say (up to 5000 characters). voice: one of list_voices() (default "Algieba"). style: optional delivery hint, e.g. "calm, slow" or "cheerful". Empty = neutral. project_id: optional, a project from create_project; omit for the account's default. include_preview: also return `wav_preview_b64`, the FIRST 8 KB of the file as base64. …
The 30 Gemini TTS voices usable with generate_voice: name, gender, short description. Gender/description are a rough guide only; any voice reads any language.
Attach a preset Gemini TTS voice to a Flow character for auto-lipsync in future videos. Synthesizes a short reference audio in the chosen voice and attaches its media_id to the character's `audio_references`. This is a ONE-TIME setup per character: any subsequent video generation that references this character will auto-lipsync with this voice (same mechanism Flow Web uses when you set a voice via its UI). Calling it again overwrites the voice. Pass sample_text=null for a short default sample — only the resulting audio is kept as a reference; the content of the text …
Authorization not required, issuer https://openflowmcp.com
Added "list_live_models"; changed the definition of "create_character_from_description", "generate_character_image", "generate_image" and 2 more (35 tools before, 36 now)
⟨31 unchanged words⟩ Display Name"},"model":{"default":"NARWHALBELUGA","enum":["NARWHALBELUGA","GEM_PIX_2","HARBOR_SEAL"],"title":" ⟨27 unchanged words⟩
⟨34 unchanged words⟩ :"string"},"model":{"default":"NARWHALBELUGA
Authorization not required, issuer https://openflowmcp.com
Authorization not required, issuer https://openflowmcp.com
Changed the definition of "add_account_token" and "flow_status"
⟨29 unchanged words⟩ path — no server-side browser, no SSH.HOWPREFERREDTOPATHGET— no oauth_token—handling at all: call flow_status; its `next_step.command` holds a PERSONAL one-line command per OS (mac / linux / win) with the owner's ticket inside. RUNTHISIT YOURSELF in the user'sterminal, doterminal.NOTThesend
Authorization not required, issuer https://openflowmcp.com
Changed the definition of "add_account_token"
⟨93 unchanged words⟩ to log in and press Accept, thentowaitleaveuntil the page hangs on a spinner (normal, the token is already issued), then go BACK to the terminal windowalonerunning the script and press Enter — thepagescriptwillgrabshangtheontokenaonly
Authorization not required, issuer https://openflowmcp.com
Changed the definition of "generate_character_image"
⟨286 unchanged words⟩ entity_id — characters are per-account, same as projects. Pass that account as `account` (optional for a character saved in list_characters(): it is looked up).
{"properties":{"account":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Account"},"aspect":{"default":"IMAGE_ASPECT_RATIO_LANDSCAPE","enum": ⟨44 unchanged words⟩
Certificate changed, valid to 2026-12-22
Authorization not required, issuer https://openflowmcp.com
Changed the definition of "flow_status"
⟨130 unchanged words⟩ give them the URL — a step likelinkingsigningGitHubin happens in THEIR browser and cannot be done ⟨31 unchanged words⟩
Changed the definition of "flow_status" and "upscale_video"
⟨57 unchanged words⟩ the key linked to a GitHub identity,ishowvideomuchpaidoffor.this week's free limit is left (`weekly`). The important field is `next_step`: it is ⟨97 unchanged words⟩
⟨16 unchanged words⟩ Authorization not required, issuer https://openflowmcp.com
Authorization not required, issuer https://openflowmcp.com
Authorization not required, issuer https://openflowmcp.com
Authorization not required, issuer https://openflowmcp.com
Changed the definition of "check_credits", "create_character_from_description", "create_project" and 8 more
Check projects for afarmGoogle account (or all). NOTE: for the ⟨27 unchanged words⟩
⟨85 unchanged words⟩ as you would any image prompt. account:farmGoogle account (and its project) to create the ⟨91 unchanged words⟩
Authorization not required, issuer https://openflowmcp.com
Changed the definition of "add_account_token"
⟨32 unchanged words⟩ server-side browser, no SSH. HOW TO GET oauth_token:the—agentRUNmustTHISfirstYOURSELFrunin thelocaluser'sgrabberterminal,ondotheNOT
Authorization not required, issuer https://openflowmcp.com
Certificate recorded, valid to 2026-10-23
Authorization not required, issuer https://openflowmcp.com
First tool surface recorded: 35 tools
Showing the latest 40 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Finish connecting a Google Antigravity account started with add_antigravity_start. `code` is the value of `?code=...` on the antigravity.google/oauth-callback page the user landed on; `state` is what add_antigravity_start returned. Returns {status, account_id, account_email, requires_project}. By default this also creates the GCP project in one step (`complete=True`) and adds `project_id`. Pass `complete=False` to defer and call `complete_antigravity_account(account_id)` later. If auto-onboarding fails the result keeps `requires_project: true` and carries `onboard…
Finish an Antigravity account started with add_antigravity_submit. Creates the GCP project needed before the account can serve LLM requests. Idempotent — safe to retry; already-onboarded accounts return their project_id.
List the Google accounts you connected for the LLM relay with their tier (Free/Pro/Ultra); refresh=True re-checks the tier with Google. The model is chosen per request (chat tools / relay `model`); pin an account with the `X-Account-Email` header.
⟨12 unchanged words⟩ depth (queued + warming + running jobs)., plus disk state (`disk`: free_gb, below_target, below_floor, refusing_jobs); status is "degraded" when disk is below the floor. Note: the Android emulator is now OFF ⟨14 unchanged words⟩
⟨139 unchanged words⟩ it costs. path: the `download_path` / `first_frame_path` / `last_frame_path` value from a job result (e.g. "/v1/media/<id>.mp4" ⟨163 unchanged words⟩
⟨14 unchanged words⟩ "enum":["IMAGE_ASPECT_RATIO_LANDSCAPE","IMAGE_ASPECT_RATIO_PORTRAIT","IMAGE_ASPECT_RATIO_SQUARE","IMAGE_ASPECT_RATIO_LANDSCAPE_FOUR_THREE","IMAGE_ASPECT_RATIO_PORTRAIT_THREE_FOUR"],"title":"Aspect","type":"string ⟨37 unchanged words⟩
⟨116 unchanged words⟩ , edit-in-place (keeps them pixel-exact). control_images: up to 10 base64 image bytes (no data: prefix) of ⟨469 unchanged words⟩
⟨4 unchanged words⟩ "enum":["IMAGE_ASPECT_RATIO_LANDSCAPE","IMAGE_ASPECT_RATIO_PORTRAIT","IMAGE_ASPECT_RATIO_SQUARE","IMAGE_ASPECT_RATIO_LANDSCAPE_FOUR_THREE","IMAGE_ASPECT_RATIO_PORTRAIT_THREE_FOUR"],"title":"Aspect","type":"string ⟨79 unchanged words⟩
⟨131 unchanged words⟩ PORTRAIT (9:16), LANDSCAPE (16:9), SQUARE, PORTRAIT_THREE_FOUR (3:4) or LANDSCAPE_FOUR_THREESQUARE.(4:3). 9:16 and 16:9 from one camera sharethe vertical FOV, sodepths are identical across aspects. style / extra: ⟨299 unchanged words⟩
⟨6 unchanged words⟩ a given image (i2v — image-to-video).start_image_base64Pass exactly one start: start_image_base64 (rawbase64-encodedbase64 image bytes, no data: URI prefix)prefix.or start_media_id (media_id of one of YOUR finished videos — the clip then starts from that video's `frame`, "last" by default, taken server-side). Mutually exclusive with reference-image (r2v) generation. Chain clips: every finished video carries `last_frame_path` and its media_id, so clip 2 = generate_video_from_image(prompt="...", start_media_id=<clip 1 media_id>), clip 3 the same from clip 2's media_id. The chained job runs on the account that made the source clip. For "make content that looks like this ⟨179 unchanged words⟩
⟨17 unchanged words⟩ "default":null,"title":"Beats"},"frame":{"default":"last","enum":["first","last"],"title":"Frame","type":"string"},"include_preview":{"default":true,"title":"Include ⟨27 unchanged words⟩ ,"title":"Seed"},"start_image_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Start Image Base64"},"start_media_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Start Media Id"},"video_model_key":{"default":"abra_i2v_4s","enum": ⟨47 unchanged words⟩ :"Voice Text"}},"required":["prompt","start_image_base64"],"title":"generate_video_from_imageArguments","type":"object"}
Generate a video using up to37 reference images (r2v — e.g. a consistent ⟨10 unchanged words⟩ (no data: URI prefix), up to3.7 with Omni Flash keys (abra_r2v_*, the default), up to 3 with Veo r2v keys (veo_3_1_r2v_*). Mutually exclusive with start-image (i2v) generation. THIS ⟨66 unchanged words⟩ rather than video, use this and read `first_frame_path` (or `last_frame_path`) off the result once done (via check_job) ⟨194 unchanged words⟩
⟨4 unchanged words⟩ "enum":["IMAGE_ASPECT_RATIO_LANDSCAPE","IMAGE_ASPECT_RATIO_PORTRAIT","IMAGE_ASPECT_RATIO_SQUARE","IMAGE_ASPECT_RATIO_LANDSCAPE_FOUR_THREE","IMAGE_ASPECT_RATIO_PORTRAIT_THREE_FOUR"],"title":"Aspect","type":"string ⟨63 unchanged words⟩
⟨8 unchanged words⟩ ":"Aspect","type":"string"},"end_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"End Sec"},"include_preview":{"default":true,"title":"Include ⟨15 unchanged words⟩ :{"title":"Prompt","type":"string"},"reference_images_base64":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Reference Images Base64"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Seed"},"start_sec":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Start Sec"},"video_base64":{"anyOf":[{"type ⟨26 unchanged words⟩
⟨38 unchanged words⟩ ":"Prompt","type":"string"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Seed"},"video_model_key":{"default":"veo_3_1_extension_lite","enum": ⟨16 unchanged words⟩
⟨192 unchanged words⟩ and the length you passed is used unchanged. seed (all video tools): the result always reports the seed it used. Same seed + same prompt + same inputs = the same clip, so a good take can be re-made. A fixed seed does NOT keep the composition when the prompt changes — use edit_video for that.
⟨42 unchanged words⟩ ":"Prompt","type":"string"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Seed"},"video_model_key":{"default":"abra_t2v_4s","enum": ⟨55 unchanged words⟩
⟨49 unchanged words⟩ ":"Prompt","type":"string"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Seed"},"start_image_base64":{"title":"Start Image Base64", ⟨31 unchanged words⟩
⟨42 unchanged words⟩ ":"Prompt","type":"string"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Seed"},"start_image_base64":{"title":"Start Image Base64", ⟨62 unchanged words⟩
⟨52 unchanged words⟩ Images Base64","type":"array"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Seed"},"video_model_key":{"default":"abra_r2v_4s","enum": ⟨54 unchanged words⟩
Re-make a video with YOUR character in place of the person in it: same camera, movement, gestures, timing and mouth movement, the character's look. character: name from list_characters (its portrait is used as the look). Source — ONE of media_id (a video this service made) or video_base64 (your own clip). who: which person to replace when there are several ("the man on the left"). scene: one sentence about the room/background — helps keep it intact. extra: anything else for the model ("keep the on-screen text"). start_sec/end_sec: recast only that piece (at most 1…
⟨17 unchanged words⟩ ,"type":"boolean"},"media_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Media Id"},"prompt":{"title":"Prompt","type":"string"},"promptvideo_base64":{"titleanyOf":[{"Prompttype":"string"},{"type":"stringnull"}],"default":null,"title":"Video Base64"},"video_model_key":{"default":"abra_edit","enum": ⟨6 unchanged words⟩ type":"string"}},"required":["prompt","media_id"],"title":"edit_videoArguments","type":"object"}
⟨68 unchanged words⟩ "Video Model Key","type":"string"},"voice":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice"},"voice_style":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice Style"},"voice_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice Text"}},"required":["prompt","start_image_base64"], ⟨4 unchanged words⟩
⟨251 unchanged words⟩ other calls is normal here, no action needed. voice / voice_style / voice_text: optional one-shot narration without creating a character. Pass a voice name from list_voices() (e.g. "Algieba") and either a voice_text or embed the spoken line in the prompt between quotes. Mutually exclusive with entity_id — a character already carries its own voice. Only works with speech-capable r2v models (veo_3_1_r2v_lite).
⟨70 unchanged words⟩ "Video Model Key","type":"string"},"voice":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice"},"voice_style":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice Style"},"voice_text":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Voice Text"}},"required":["prompt","reference_images_base64"], ⟨4 unchanged words⟩
⟨30 unchanged words⟩ ..."}. system: системный промпт (опционально). account_email: форсировать конкретный Google-аккаунт. account_tag: форсировать аккаунты с указанным тэгом. Returns: {"text": str, "usage" ⟨16 unchanged words⟩
{"properties":{"account_email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Account Email"},"account_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Account Tag"},"messages":{"items":{"additionalProperties":true," ⟨22 unchanged words⟩
⟨37 unchanged words⟩ опционально). max_tokens: максимальное количество токенов в ответе. account_email: форсировать конкретный Google-аккаунт из вашего пула (например, "user@gmail.com"). Если такого в пуле нет — ошибка. account_tag: форсировать аккаунты с указанным тэгом (round-robin по подмножеству пула; тэги назначаются в кабинете). Returns: {"text": str, "usage" ⟨16 unchanged words⟩
{"properties":{"account_email":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Account Email"},"account_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Account Tag"},"max_tokens":{"default":2000,"title":"Max ⟨29 unchanged words⟩
Получить актуальный список LLM-моделей из каталога OmniRoute. OmniRoute сам опрашивает Google раз в час; `force_live=True` просит релей сходить в Google прямо сейчас (жёсткий rate-limit на стороне релея: не чаще 10 секунд). Полезно, когда клиент видит 404 на недавно добавленную модель. Args: force_live: True — передать `?live=1` на /v1/models и дождаться свежего каталога; False (по умолчанию) — вернуть кэш. Returns: { "models": [...], # OpenAI-совместимый список …
Какие LLM-модели доступны этому ключу прямо сейчас, и какая у ключа квота. Делает два параллельных запроса: GET /llm/models (OmniRoute — список моделей и подключённых Google-аккаунтов) и GET /v1/me (openFlow — plan + квоты). ETag от /v1/me держится OmniRoute'ом в кэше ~5 минут; force_refresh=True добавляет Cache-Control: no-cache, чтобы заставить обновить. Returns: { "accounts": [{"email": "...", "credits": int, "models": [...]}, ...], "models": [{"id": "gemini-3-pro", "label": "..."}, ...], "quo…
⟨17 unchanged words⟩ ids (from GET v1/flow/models, verified 2026-07-25):NARWHALBELUGA = "Nano Banana 2" — the DEFAULT, ~30s (legacy id NARWHAL is accepted as an alias) GEM_PIX_2 = "Nano Banana Pro" — highest ⟨551 unchanged words⟩
⟨47 unchanged words⟩ :"boolean"},"model":{"default":"NARWHALBELUGA","enum":["NARWHALBELUGA","GEM_PIX_2","HARBOR_SEAL"],"title":" ⟨35 unchanged words⟩
⟨29 unchanged words⟩ :"boolean"},"model":{"default":"NARWHALBELUGA","enum":["NARWHALBELUGA","GEM_PIX_2","HARBOR_SEAL"],"title":" ⟨37 unchanged words⟩
⟨99 unchanged words⟩ account returns a clean error. target_resolution: "1080p", "4K" or "4Kfrom_360p" (omni_upsampler_360p -- lifts a 360p draft to normal quality; not yet live-tested). 4K may be locked behind a paid ⟨60 unchanged words⟩
⟨14 unchanged words⟩ "1080p","enum":["1080p","4K","from_360p"],"title":"Target Resolution","type": ⟨8 unchanged words⟩
Live from Google, no credits, use to answer «is this model still working?». Reads Google Flow's own current model catalog (modelConfig: usage keys, per-tier credit prices, durations) and the availability status of each model family, through one of the caller's connected accounts. READ-ONLY: nothing is generated and no credits are spent. Cached for ~1 minute server-side. Use list_models instead for the short curated list of ids this service's tools accept; use this one when you need Google's ground truth (a key that is missing here has been withdrawn upstream). Re…
⟨142 unchanged words⟩ THEIR browser and cannot be done by you. When `next_step` is about connecting a Google account it also carries `command` (personal, per OS): run it for the user in their terminal, it submits the token by itself — no copying or pasting. add_account_token is only the fallback. `support` is the operator's Telegram, the service's only ⟨21 unchanged words⟩
Create a NEW Flow project on one of yourfarmGoogle accounts and return its project_id. Use this to ⟨27 unchanged words⟩ never mix with anyone else's. account — whichfarmGoogle account creates it (see flow_dashboard / check_credits ⟨133 unchanged words⟩
⟨38 unchanged words⟩ be edited — the id belongs to afarmGoogle account's project, so the job is pinned ⟨33 unchanged words⟩
⟨37 unchanged words⟩ extended: the id belongs to a specificfarmGoogle account's project, so the job is pinned ⟨94 unchanged words⟩
The account-pool control panel: for EVERYfarmGoogle account, the real credit balance, subscription tier ⟨72 unchanged words⟩
⟨115 unchanged words⟩ re-tested against the new mechanism either. account:farmGoogle account that owns this entity_id's project. expressions: ⟨60 unchanged words⟩
⟨294 unchanged words⟩ yet that it's safe to drop. account:farmGoogle account that owns this entity_id's project. character_slot_index: ⟨17 unchanged words⟩
⟨19 unchanged words⟩ after portrait/body images exist. account must be whicheverfarmGoogle account's project owns this entity_id.
⟨6 unchanged words⟩ a prior generate_image call) to a higher resolution,via Flow's own Download panel-- the same "1K/2K/4K"picker shown whenchoicedownloadingFlowanoffersimagewhenindownloading. account: theFlowGoogleUI.accountmustwhosebeprojectwhicheverownsfarmmedia_id.account'sDoprojectnotownsguessmedia_idit(generate_imageand do notreturnsaskmedia_idsthescopeduser:tothewhichevergenerate_imageaccountresulthandledyouthatalreadyjobhave--carriesreuseit in the `account_used`samefield -- pass that value verbatim. A media_id only exists inside the project of the accounthere).that produced it, so any other account returns a clean error. target_resolution: "2K" or "4K". Not every image supports upscaling (depends onthethe source model/size) and 4K may be locked behind a paid plan tier on somefarmaccounts --both cases come back as a clean error rather than a crash, so justreport it if thathappens instead of retrying.This is slower than generation (drives a realTakesbrowser,roughly~15-30s)15-30s -- returns ajob_id to poll with check_job ifit'sit is not donewithin ~35s. Returns {"media_id": <new upscaled ⟨7 unchanged words⟩
⟨6 unchanged words⟩ a prior generate_video call) to a higher resolution -- the same "270p/720p/1080p/4K" choice Flow offers when downloading. Needs an active subscription,vialikeFlow'sanyownothergrid-viewvideodownloadoperation,menuand(spends the"270p/720p/1080p/4K"account'spicker).own Flow credits. accountmust:bethewhicheverGooglefarmaccountaccount'swhose project ownsmedia_idmedia_id.(generate_videoDo not guess it and do notreturnsaskmedia_idsthescopeduser:tothewhichevergenerate_videoaccountresulthandledyouthatalreadyjobhave--carriesreuseit in the `account_used`samefield -- pass that value verbatim. A media_id only exists inside the project of the accounthere).that produced it, so any other account returns a clean error. target_resolution: "1080p" or "4K". 4K may be locked behind a paid plan tier on somefarmaccounts -- comes back as a clean error rather than a crash, just report it. Slower than generation(drives a:realitbrowserisforkickedtheoffkickoff,and thenpollspolled like anormal videogeneration)-- returns a job_id to poll with check_job ifit'sit is not donewithin ~40s. Returns {"media_id": <new upscaled ⟨7 unchanged words⟩