npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@scopeful/midjourney-video

v1.0.0

Published

Use this skill whenever the user wants to generate, extend, or loop a video using Midjourneys text-to-video or image-to-video features. Triggers include any mention of Midjourney video, MJ video, animate this image, --video, --motion, --loop, --bs, --end,

Readme


name: midjourney-video description: Use this skill whenever the user wants to generate, extend, or loop a video using Midjourney's text-to-video or image-to-video features. 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 prompt/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 supports both Native Text-to-Video (up to 10 seconds at 60fps natively) and Image-to-Video. It produces high-quality video that strongly preserves the Midjourney aesthetic.

It is expensive compared to images and cheap compared to dedicated video models like Veo or Kling. The killer feature is the identity continuity: a video generated in MJ preserves the V8/V8.1 aesthetic in ways no other model matches today.

When to use Midjourney video, when not to

Use MJ video when:

  • The user wants Native Text-to-Video generation directly from a prompt
  • The user already has a MJ image they love and wants to animate it (Image-to-Video)
  • The user wants a short editorial clip (5–10 s) with strong stylistic continuity
  • The user is on Standard+ plan and HD (720p) output is fine

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 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)

  1. For Text-to-Video, simply type your prompt and append --video.
  2. For Image-to-Video, open any image in the gallery — every MJ image has Animate Image buttons below it.
    • 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)
  3. 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

Text-to-Video: <prompt_text> --video

Image-to-Video: <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 respect standard image parameters which shape the initial frames and overall style. Parameters like --ar, --stylize, and --sref DO work for video by shaping the initial frames and generation.

Adding --hd improves video output sharpness by providing better starting frames.

| 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 | Flag to enable video generation | flag | | --ar W:H | Aspect ratio for Text-to-Video | W:H | | --sref URL | Style Reference for shaping the look | URL | | --hd | Improves sharpness of the starting frames | flag |

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 or 10 seconds. You can extend it up to 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 prompt or starting image is probably the problem. Re-generate first.

Aspect ratio

For Text-to-Video, specify the aspect ratio with --ar. For Image-to-Video, 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, target the AR appropriately:

  • TikTok / Reels / Shorts: --ar 9:16
  • 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:

  1. Setup confirmation — Text-to-Video or which starting image they're animating, on which platform
  2. The pasteable command (Discord) or the click sequence (web)
  3. Motion + batch recommendation — usually --motion low --bs 1 for first attempt
  4. Estimated GPU cost in min + USD on the user's plan
  5. Downstream options — extend / loop / re-render with different motion

Example output:

**Generating your video** (1280×720, HD on Standard plan)

**Discord:**

```
moody push-in, gentle fog rolling, fisherman keeps mending nets --ar 16:9 --hd --motion low --bs 1 --video
```

**Or on midjourney.com:** Paste the prompt above.

**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 if you like the first clip (~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.