From Nim
Generate or edit images and videos with Nim. Use when the user says "generate an image", "make a picture / poster / logo / wallpaper", "edit / restyle / remix this image", "make a video", "animate this photo", "image-to-video", "turn this into a clip", "give me variations / options", or asks for any visual asset from a prompt or a reference. Discovers the right Nim model with models_explore, follows its generationContract exactly, uploads references with media_upload, and submits with generate_image / generate_video. Supports text-to-image, image editing, text-to-video, and image-to-video. NOT for: code, text/chat answers, or audio-only tasks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nim:nim-generateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate and edit images and videos through the Nim MCP. One skill for both: model
Generate and edit images and videos through the Nim MCP. One skill for both: model discovery is shared, and the only real branch is image vs. video.
16:9, 1080p) as-is.get_credit_balance before a deliberately expensive
run (high resolution, long video, large batchSize).generate_image / generate_video return no link. Get the
result by polling get_generation_status and report only the URL it actually returns.models_explore with action: "recommend", the user's
intent as query, type: "image" or "video", and input: "image" when a
reference will be supplied. For video, pass minDurationMs if the user named a
length.action: "search" / "list".action: "get" on the chosen model_id to read its exact
generationContract. This is the source of truth for which params are allowed.media_upload, run the returned curl_example against the local path or
Claude attachment, then pass the response file_url in fileInputs.generate_image or generate_video and pass only params the
generationContract allows. Submit model_name alongside model_id for clearer
user-facing status.generate_image / generate_video start an async job and
return no result and no link. You are running in a terminal client (Claude Code /
Codex) that does NOT render the Nim generation widget — so you must poll
get_generation_status with the returned workflowId / promptId until finished /
failed / cancelled, then deliver the final media URL from that response.
generate_image).generate_video).fileInputs
(choose an image-input video model via input: "image").Pass a param only when the selected model's generationContract lists it.
| Param | Applies to | Notes |
|---|---|---|
prompt | both | Required. Carry the full creative intent. |
model_id | both | Required. Always from models_explore. |
fileInputs | both | Nim file URLs from media_upload. Required for edit / image-input / image-to-video models. |
requestedAspectRatio | both | e.g. 16:9, 9:16, 1:1. |
resolution | both | e.g. 1080p, 2K — only values the contract offers. |
mediaLength | video | Input duration in ms (5000, 8000). |
fps, keepSound | video | Only when the model supports them. |
seed | both | Omit or -1 to randomize; reuse a value to reproduce. |
batchSize | both | 1–4 variations in one call. Use for ideation / options. |
When the user wants options, directions, or "a few ideas," set batchSize (2–4) so Nim
returns several takes from one request, each with a randomized seed. Present them as a
set to compare, not as a single answer.
Surface the returned error / errorCode plainly. Don't silently retry with changed
params — ask the user first, unless they already told you to iterate.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub nim-video/skills --plugin nim