Midjourney video skill
Midjourney video skill is a free agent skill maintained by Scopeful. It teaches an AI coding agent such as Claude Code, Cursor, Windsurf or Codex how to drive this tool correctly, so you do not have to re-explain it every session. Every published Scopeful skill is free and the install command is public, with no sign-in required. Install it with No install required, Midjourney is a web/Discord product at midjourney.com. Scopeful also tracks hand-verified USD pricing for 39 AI creative tools at https://www.scopeful.org/tools.
Generate, extend, and loop video with Midjourney's image-to-video.
Tags: video, image-to-video, v7
Install
No install required, Midjourney is a web/Discord product at midjourney.comReference
name: midjourney-video description: Use this skill whenever the user wants to generate, extend, or loop a video using Midjourney's image-to-video feature. Triggers include any mention of "Midjourney video", "MJ video", "animate this image", "--video", "--motion", "--loop", "--bs", "--end", "extend video", "looping video", or asking to turn a still into a clip. Do not trigger for video generation on other platforms (Kling, Runway, Veo, Higgsfield), for those, use their dedicated skills if available.
Generate Midjourney videos cleanly
Midjourney's video feature is image-to-video, not text-to-video. You feed it a starting frame (usually an MJ-generated image), optionally a text prompt, and it produces a 5-second clip. Then you can extend it up to 21 seconds total in 4-second chunks.
It is expensive compared to images and cheap compared to dedicated video models like Veo or Kling. Quality is mid-tier, better than the Higgsfield Free or Wan 2.5 baseline, worse than Veo 3.1. The killer feature is the identity continuity: a video extended from an MJ image preserves the original aesthetic in ways no other model matches today.
When to use Midjourney video, when not to
Use MJ video when:
- The user already has a MJ image they love and wants to animate it
- The user wants a short editorial clip (5–10 s) with strong stylistic continuity from a still
- The user is on Standard+ plan and HD (720p) output is fine
- Cost matters more than ultimate motion quality
Do NOT use MJ video when:
- The user needs photoreal complex motion (use Veo 3.1 or Kling 3.0)
- The user wants > 21 seconds in one piece (MJ caps at 21 s; chain a longer model instead)
- The user wants text-to-video with no starting image (MJ is image-to-video only)
- The user is on Basic plan and wants HD. Basic is SD-only
How to generate a video
There are two paths: midjourney.com (web) and Discord. The agent's output should target the user's platform.
On midjourney.com (recommended)
- Open any image in the gallery, every MJ image has Animate Image buttons below it.
- Pick one of:
- Animate Auto. generates immediately using the source image's prompt
- Animate Manually. opens the Imagine bar so you can adjust the prompt
- Loop. generates a looping video (start frame = end frame)
- The job runs in the background; the result appears in the Create page.
For user-uploaded images: click the image icon in the Imagine bar, drag the uploaded image into the Starting Frame slot. A text prompt is optional.
In Discord
<image_URL> <prompt_text> --video
The image URL goes first, then the text prompt, then --video. The image must be online, host on Discord first if the user has a local file.
If the user already has a Midjourney image upscaled in Discord, they can use the Animate (High motion) / Animate (Low motion) buttons directly under it.
The video-specific parameters
Video generations ignore most regular image parameters. Only these work:
| Param | Purpose | Values |
|---|---|---|
--motion low |
Subtle camera + character movement (default) | flag |
--motion high |
Big camera moves, large character motion (more glitch risk) | flag |
--raw |
Reduce MJ's creative flair, follow prompt more literally | flag |
--loop |
Reuse the start frame as the end frame (creates a loop) | flag |
--end <URL> |
Use a different image as the end frame | URL |
--bs N |
Batch size, how many video variations to generate | 1, 2, or 4 (default 4) |
--video |
Required in Discord when using a custom image URL | flag |
That's it. Trying to put --ar, --stylize, --sref, --oref on a video prompt does nothing. The aspect ratio is inherited from the starting image. The style is inherited from the starting image.
GPU costs, read this before generating
MJ video is significantly more expensive than images. Memorize this table:
| Resolution | Batch 4 (default) | Batch 2 | Batch 1 |
|---|---|---|---|
| SD (480p) | 8 GPU-min | 4 GPU-min | 2 GPU-min |
| HD (720p) | 26 GPU-min | 13 GPU-min | 7 GPU-min |
Key implication: HD video is 3.25× more expensive than SD. The agent should default-recommend SD for exploration and only switch to HD when the user has picked the final shot.
Per-clip USD cost on Standard plan ($0.0333 per GPU-min):
- SD batch-of-4: $0.27 (4 clips for that)
- SD single clip (
--bs 1): $0.07 - HD batch-of-4: $0.87
- HD single clip (
--bs 1): $0.23
If the user is on Basic plan ($0.05 per GPU-min), all numbers go up 50%.
Plan gating, also memorize
- Basic plan: SD only, Fast mode only. No Relax video.
- Standard plan: SD + HD in Fast mode. No video Relax.
- Pro / Mega plans: SD + HD in Fast. Unlimited Relax SD video (queue-waited, but free from the budget).
Recommend Relax SD on Pro+ for experimentation. Switch to Fast HD for final.
Extending videos
A single video starts at 5 seconds. You can extend it up to 4 more times, gaining 4 seconds per extension, max 21 seconds total.
Each extension costs the same as the initial video. A 21-second HD clip = 5 video jobs × 26 GPU-min = 130 GPU-min ≈ $4.33 on Standard. Tell the user before they start chaining.
Two extension modes (web UI buttons or Discord buttons):
- Extend Auto. uses the original prompt
- Extend Manual. lets you edit the prompt mid-sequence (great for changing what's happening in the clip without losing visual continuity)
Looping and end frames
--loop reuses the start frame as the end frame. Use this for: subtle scene loops, ambient backgrounds, parallax-style breathing motion. The result genuinely loops cleanly.
--end <URL> uses a different image as the end frame. MJ interpolates between the two. Use this for:
- Morph effects (start frame: object 1, end frame: object 2)
- Transition stings between two scenes
- Reveal animations (start: empty room, end: same room with character)
Either flag goes at the end of the prompt with the other video params.
Motion settings, when to pick which
--motion low (default):
- Subjects mostly still, subtle camera drift
- Best for portraits, product shots, atmospheric scenes
- Lower risk of glitchy artifacts
- Pick this for first attempt every time
--motion high:
- Big camera moves (pans, zooms), large body motion
- Best for action scenes, dramatic reveals
- Higher risk of warping or temporal artifacts
- Pick this when low motion produces something too static
If both look bad, the starting image is probably the problem. Re-generate the still first.
Aspect ratio is inherited
The video inherits the starting image's aspect ratio. The exact pixel dimensions:
| Starting AR | Video AR | SD pixels | HD pixels |
|---|---|---|---|
| 1:1 | 1:1 | 624×624 | 960×960 |
| 4:3 | ~4:3 | 720×544 | 1104×832 |
| 2:3 | 2:3 | 512×768 | 784×1168 |
| 16:9 | ~16:9 | 832×464 | 1280×720 |
| 1:2 | 1:2 | 448×880 | 672×1360 |
For social-platform deliverables, generate the starting image at the target AR first:
- TikTok / Reels / Shorts:
--ar 9:16on the still → video stays vertical - YouTube / web:
--ar 16:9 - Square Instagram:
--ar 1:1
What to deliver to the user
For an MJ video request, the agent should return:
- Setup confirmation. which starting image they're animating, on which platform
- The pasteable command (Discord) or the click sequence (web)
- Motion + batch recommendation. usually
--motion low --bs 1for first attempt - Estimated GPU cost in min + USD on the user's plan
- Downstream options. extend / loop / re-render with different motion
Example output:
**Animating your fisherman image** (1280×720, HD on Standard plan)
**Discord:**
```
https://your-image-url.jpg moody push-in, gentle fog rolling, fisherman keeps mending nets --motion low --bs 1 --video
```
**Or on midjourney.com:** open the image, click **Animate Manually**, paste the prompt above (without the leading image URL or `--video`).
**Cost estimate:**
- HD, batch-of-1: ~7 GPU-min ≈ $0.23 on Standard
- HD, batch-of-4: ~26 GPU-min ≈ $0.87 (recommended for first pick)
- SD equivalent batch-of-1: 2 GPU-min ≈ $0.07 (recommended for cheap exploration)
**Likely follow-ups:**
- Extend by 4 s if you like the first 5 s (~7 more GPU-min)
- Add `--loop` to make it loop seamlessly
- Switch `--motion low` → `--motion high` if it's too static
Downloading + sharing
Right-click any video on the Create or Organize page to get three download options:
- Download for Social. optimized encoder, less compression on platforms like Instagram/TikTok. Use this for posting.
- Download Raw Video. the original, best quality. Use this for editing in Premiere/DaVinci.
- Download Gif. animated GIF. Use this only for messaging contexts.
In Discord, right-click only downloads the raw file.
Frequent failures and how to recover
- "My video looks frozen".
--motion lowis too low; try--motion high. If that's also static, the source image has no implied motion direction; pick a more dynamic still. - "The character morphs into a different person".
--motion highover-warps; drop tolow. Or the source image had ambiguous anatomy (hands, faces in profile). - "It generates SD even though I'm on Standard". the user didn't set Video Resolution in More Options → Settings panel. SD is the global default.
- "My batch of 4 has 1 great clip and 3 bad ones". that's expected. Use
--bs 1next time for the same prompt to spend less burning bad variants, or rerun the great one with--motion highfor a variant.