Skip to content

animate#

Right-click a message -> Apps -> animate

animate turns a still image into a short video clip. The image becomes the first frame and the model invents the motion from there. It is the one-click version of /render, with the frame already chosen for you and most of the knobs hidden.


Before the menu opens#

Four checks run in order. Any of them failing means nothing opens.

Check What happens on failure
Bot access Access denied.
Backend gate While the render backend is set to the API, animate is VIP and admin only: API video rendering (MiniMax H3) is VIP-only. If no MiniMax key is configured: The MiniMax API key isn't set up yet. Ask an operator. On the local backend there is no gate beyond bot access
An image โŒ No image found in that message.
Video system loaded โŒ Video generation isn't available right now. (this one fires after you press ๐ŸŽฌ Animate, not before)

The backend is a switch the maintainer flips. If animate suddenly starts refusing you, it was probably moved to the API, where the renders are billed to their own account -- which is exactly why the gate exists. See /render.

Videos and GIFs can be animated too: their first frame is extracted and used as the starting frame, so you can effectively re-animate a clip from its opening shot.


The option panel#

Header ### ๐ŸŽฌ Animate โ†’ Video with the subtitle turns this image into a short clip (it becomes the first frame). Purple accent, 300-second timeout, yours alone -- anyone else gets This isn't your animate menu.

Control Options Default
Image dropdown Choose which image to animate..., up to 25 entries. Only with more than one image The first image
Aspect ratio... Match input, 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 Match input
Resolution... 0.4 MP (draft), 0.7 MP (default). VIP and admin also get 1.0 MP (~768P) and 3.7 MP (~2K) 0.7 MP
Duration... 2s, 3s, 5s, 8s, 10s. VIP and admin also get 12s and 15s 3s
Enhance: On / Off Toggle, green when on On
๐ŸŽฌ Animate Blue. Opens the prompt modal --
Cancel Grey. Replaces the panel with Cancelled. --

A live summary line sits between the dropdowns and the buttons:

aspect: match input ยท res: 0.7MP ยท duration: 3s ยท enhance: on

Every change rebuilds the panel in place, so the summary always reflects what will actually run.

Aspect ratio#

Match input does not mean "one of the seven presets that is closest". It reads the source image's real pixel dimensions and passes those through as the ratio, so a 1216x832 picture animates at 1216:832 rather than being snapped to 16:9.

That only works when Discord tells Eimi how big the image is. Attachments always report their dimensions; embeds, stickers and images pulled out of Eimi's own result cards often do not, and when the dimensions are unknown Match input silently falls back to 16:9. If the shape matters, pick a ratio explicitly.

Resolution and duration#

Both are hard tiers, and the panel only ever offers the ones your tier allows -- options you cannot use are not rendered rather than being shown greyed out.

Tier Resolution Duration
Everyone with bot access 0.4 MP or 0.7 MP up to 10 seconds
VIP and admin also 1.0 MP and 3.7 MP up to 15 seconds

The cap is also enforced after the fact. A regular user's megapixel value is snapped to whichever of 0.4 and 0.7 is nearest, and the duration is clipped to 10 -- a disallowed value is quietly corrected, never rejected with an error.

These numbers exist because video is by far the most expensive thing on the GPU. A 3.7 MP 15-second clip occupies the card for a long time, and there is one card.

Enhance#

On by default. It rewrites your motion prompt into the timeline format the video model expects, describing what happens across the clip rather than what the scene looks like. Turn it off if you already know how to write for the model, or if the rewrite keeps changing your intent.

Enhance runs on top of an auto-written prompt too, so leaving the prompt blank and leaving Enhance on is a normal combination.


The prompt modal#

Titled Animate, with a single optional paragraph field:

Field Required Max Placeholder
What should happen? (optional) No 2000 characters Leave blank and I'll invent the motion from the image

Leaving it blank is a genuine feature rather than a fallback. Eimi looks at the frame, works out what could plausibly move in it, and writes a motion prompt paced to the clip length you picked. If that step fails -- the vision model is down, or the image could not be read -- it falls back to a generic gentle natural motion in the scene, slow cinematic camera push-in rather than refusing.

Pressing ๐ŸŽฌ twice quickly is guarded, so you cannot open two modals and queue two jobs.

Describe motion, not appearance

The first frame already fixes what everything looks like. Spend the prompt on what changes: "she turns to face the camera and smiles", "slow push-in as the rain gets heavier". Camera moves count as motion, and so does sound -- the model writes the audio from your prompt too.


What you get back#

The job goes into the normal queue with a queue card, and finishes as an MP4 at 24 fps with its own synced audio baked in. The sound is written alongside the picture by the same model, not added afterwards.

Unlike tweak and waldo, the result is not posted as a reply to the image you right-clicked. It arrives as its own message. Whether that message is public or only visible to you is decided by the original right-click, as everywhere else.

The seed is random on every run and is not exposed anywhere in the menu. If you want a repeatable render, use /render with an explicit seed.

No queue-limit check on this path

/render refuses to start when you already have your maximum number of jobs waiting. animate does not run that check. The global and per-channel queue limits still apply.


Local and API paths differ in one visible way#

Local backend API backend
Who can use it Anyone with bot access VIP and admin only
How the image travels Downloaded, flattened to a single-frame PNG, uploaded to the GPU machine The Discord image URL is handed to MiniMax directly
Exotic formats HEIC, AVIF, TIFF and animated WebP are decoded and normalised first Whatever MiniMax can fetch and read
Failure to read the image Couldn't Read Image / I couldn't download that image to animate. Try again. Only reached when the prompt is blank and the frame needs describing

On the local path an upload failure gives Upload Failed / Couldn't hand the image to the render backend. Try again.


How it relates to /render#

animate is a shortcut into the same pipeline as /render. The difference is scope.

animate /render
Starting image The one you right-clicked, always the first frame Optional first_frame attachment
Last frame Not available last_frame, for interpolating between two images
Reference images Not available Up to three reference slots
Aspect ratio Seven choices plus Match input Any W:H ratio or WxH pixel size
Resolution Two or four preset tiers Any megapixel value, snapped to your tier
Duration Five or seven preset lengths Any value, clipped to your tier's maximum
Seed Not exposed, always random seed parameter
Prompt Optional, auto-written when blank Required
Enhance Toggle, defaults on enhance parameter, defaults from your AI features setting
Personal queue limit Not checked Checked

The tier caps are identical on both paths: 0.7 MP and 10 seconds for everyone, 3.7 MP and 15 seconds for VIP and admin.

Reach for animate when a picture is already in the channel and you want it moving. Reach for /render when you need to control frames, references, seed or exact sizing.


See also#

  • /render -- the full video command, the model and the backends
  • tweak -- edit the still image before animating it
  • describe -- read the image back as text
  • Queue -- where the job waits and why video is slow
  • Right-click menus
Categories: Menus | Render | Queue