Generating media
Short answer: Ask the AI in any chat and it can generate images, speech, music, and video (including image-to-image and image-to-video) through OpenRouter’s hosted media models. Generation always runs through OpenRouter and needs an OpenRouter API key, but it works no matter which provider the chat itself is on: a chat running on local Ollama or Ollama Cloud generates media too, as long as that key is configured.
What can the AI generate?
Each of the four media types is a tool the AI calls mid-conversation (generate_image, generate_speech, generate_music, generate_video), and each one is backed by a model you can configure per chat, separately from the model you’re chatting with. Find them under the Models & Search tab of Chat Configuration, as Image Generator, Speech Generator, Music Generator, and Video Generator rows. Nothing is preselected: the first time the AI calls one of these tools, the permission box asks you to choose a model before you allow it, even when auto-approval is on.
- Images: text-to-image, saved as PNG. For image-to-image, attach, drag, or sketch an image onto your message (or point at one already in the workspace) and describe the change; the AI edits, restyles, or varies it instead of starting from a blank prompt.
- Speech: text-to-speech. Each chat has a default voice; ask for a different one (“read that in a deeper voice”) and the AI passes it through as a one-off override.
- Music: a description (genre, mood, instruments, tempo, and optional lyrics) becomes a track. It’s the slowest of the four and best-effort: if nothing comes back, ask again rather than expecting an automatic retry.
- Video: text-to-video, and image-to-video: pass a starting image and the AI animates from it. Generation is asynchronous: the tool call returns immediately and the finished clip appears in the chat as a placeholder that turns into a player, usually within a few minutes. Only one video renders at a time app-wide; you can cancel from the bubble itself or from the Activity bar, and an in-progress job survives an app restart or a workspace switch.
Studio mode owns media generation by default, but any mode can reach for it mid-turn; you don’t need to switch modes just to ask for an image.
How do I generate media?
- Just ask. The first time you ask for a given type, the permission box for the tool call asks you to pick the model: choose one from the quick dropdown, or open Browse all models… for the full picker, which lists cost and Zero Data Retention alongside every model. Tick Default for this chat to keep your choice for the rest of the chat. To set it ahead of time instead, open Chat Configuration → Models & Search and fill in the Image / Speech / Music / Video Generator row you want.
- Ask for what you want in plain language: “generate a picture of a lighthouse at sunset,” “turn this into a 9:16 vertical video,” “make a 30-second lo-fi track.” The AI calls the matching tool and the result renders inline in the chat.
- For image-to-image or image-to-video, attach or drag the source image onto your message first (or name a file already in the workspace), then describe the change.
- Media generation shows the same plain-language approval banner as any other tool call. With auto-approval on it runs without asking, except that a call with no model chosen always stops at the banner until you pick one.
Good to know
- The chat’s own provider doesn’t matter. What these tools need is an OpenRouter API key, not an OpenRouter chat model. Configure the key once and a local Ollama or Ollama Cloud chat generates images, speech, music, and video exactly like an OpenRouter chat does; the request routes to OpenRouter while your conversation stays on the model you picked. With no OpenRouter key configured, the generation tools don’t appear in any chat.
- Agents and workflows can generate image, speech, and music too. An unattended run has no permission box to ask through, so the agent editor (and the workflow editor, for an AI step) requires a model in its Media models panel for each kind the agent can generate before it will save. An agent saved before that rule, with none set, reports the tool as not configured and generates nothing. Headless runs are also held to a per-run and a per-day budget cap (default 50 generations/day, in Settings), because unattended generation spends real money on your OpenRouter key. Video generation is chat-only.
- Generated files save automatically into the workspace’s
BuildPerchfolder (images toimages/, speech and music toaudio/, video tovideo/) and show up immediately in the matching gallery view. See Galleries & saving media. - Zero Data Retention covers media generation through its own sub-toggle, Apply to media generation, which is on by default. With both on, every media request carries the flag, and a model with no zero-retention endpoint is refused before anything is sent; turn the sub-toggle off to use any media model while chat keeps the flag.
- Media generation always needs an OpenRouter key, because OpenRouter is where the media models run. Editing media you already have (trimming, captioning, cleaning up audio) runs locally instead; see Local media editing.