Skip to main content

Your Model Directs, H3 Renders

Wolffish can generate video. Ask for a clip in any conversation and the model you are already chatting with writes the brief; MiniMax H3 does the rendering. H3 never appears in the model picker, because you never chat with it — it is a tool your current model calls. Generation is asynchronous. The API hands back a task id and renders for a few minutes, so the result arrives as a task card in the chat rather than as a blocked turn.
Video generation is a service, not a brain. It has its own key under Settings → Services → Video generation and is independent of whichever model you chat with — see Why the key is separate.

Setup

  1. Get a key from the MiniMax platform
  2. Open Settings → Services → Video generation
  3. Paste the key and click Save, then Test connection
The status line reads Ready, Key rejected, or No key set. The agent has its own free check — video_check — which it calls before the first generation of a conversation so an unconfigured service costs you a turn instead of a failed render.

Why the key is separate

MiniMax issues one credential that unlocks both its chat models and its video API, so the value you paste here is the same string you may already have under Settings → Providers → MiniMax. The app never copies one field into the other, and that is deliberate:
  • They are independent decisions. Video generation is a service — like Brave Search or Giphy — not a property of whichever brain you happen to be chatting with. If the keys were shared, switching your chat brain away from MiniMax would silently take video with it.
  • Rotating one never drags the other with it. Revoke a chat key and video keeps working, and the reverse.
A desktop with MiniMax configured as a chat provider can still have video generation unconfigured. That is the expected state, not a bug — paste the key in both places if you want both.

Director Mode

The video model does not read your request. Your selected chat model does, and rewrites it into a full cinematic prompt — subject, action, camera movement, lighting, mood — then chooses duration, resolution, aspect ratio, and which images serve as first frame, last frame, or style reference. That rewriting is where most of the quality lives:
  • It adds the creative detail you left out — light, texture, atmosphere, camera language — because sparse prompts produce flat, generic footage.
  • It picks the technical settings from context, and omits the aspect ratio when you supply an image so the video adopts the picture’s own shape.
  • It names the task, waits for the render, and decides how to present the result.
With director mode on, the agent shows you the exact prompt it sent as a short quoted block — that replay is how you steer the next take. With it off, your words go to H3 exactly as you wrote them, with only obvious framing (“make a video of…”) stripped; the model still picks duration and resolution unless you specify them.
A stronger chat model gets a better video from the identical request. If a clip misses what you pictured, telling your model what to change usually beats rewording the original ask — you are talking to the director, not the camera.

What H3 Can Do

One model, four input modes, combined freely — up to twelve media items in a single request. Output: H.264 mp4 with a generated soundtrack, 24 fps, 768P (≈1344×768) or 2K (≈2560×1440), 4 to 15 seconds. Rendering typically takes one to five minutes.

The Task Card

Because a render takes minutes rather than moments, video_generate returns immediately and a task card appears in the chat on its own:
  • The task id, live status — Submitted, Queued, Running, Done, Failed, Cancelled — and a progress estimate
  • A Cancel task button that stops a queued or running render server-side
  • The finished mp4, downloaded automatically and played inline in the card
The agent is instructed not to narrate what the card already shows: it adds at most a sentence around it.

When a render outlives its turn

If the app restarts mid-render, or the model simply moves on, Wolffish finishes the job on its own. It keeps polling, saves the video, updates the card, and delivers it to the channel the request came from — compressing an oversized clip to fit Telegram or WhatsApp while keeping the original here at full quality.

Attaching Your Own Media

Media you attach is checked and optimized automatically, so nothing needs resizing by hand: The whole request must stay under 64 MB, because attached files ship as base64. Public https:// URLs cost nothing against that budget — which is why the composer’s paperclip grew an Attach media URL option (image, video, or audio). MiniMax fetches the link directly, sidestepping the size limit for large references. When an input breaks a limit that can’t be fixed automatically — a 40-second clip, a 1:6 panorama — the tool says so, and the agent trims or crops with ffmpeg_run before retrying.

Where Videos Live

Generated clips are saved per conversation under generations/video/conv-<id>/ in the workspace, and are deleted along with the conversation. Nothing is re-downloaded: once a task lands, the file is already on disk and the agent delivers that path.

Tools

Delivery is a separate, deliberate step, as everywhere else in Wolffish: in the app the agent calls send_file, on Telegram telegram_send_video, on WhatsApp whatsapp_send_video. Generation alone never puts a file in front of you.
Every generation spends real API credits. The agent runs one task per request unless you explicitly ask for variants, and 2K is both slower and roughly seven times larger than 768P. Start at 768P and re-render at 2K once the take is right.