image-to-video
Skill444 starsChanged 9 days agoMITView on GitHub
FFmpeg-based video creation from image and audio.
- Installs packages
We split this skill into the rules it gives an agent
3 rules. 0 are common, 0 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 43
Check FFmpeg: ffmpeg -version.
- Very specific: line 44
Verify both input files exist with absolute paths and non-zero size.
- Very specific: line 60
Use the user's output path or derive from audio filename (/same/dir/filename.mp4).
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Image to Video Skill
Combine a static image with an audio file to produce an MP4 via FFmpeg. Supports resolution presets, audio visualization overlays, and batch processing. For image generation, use image-gen.
Deep References
| Signal | Load | Why |
| FFmpeg filter graphs for visualization modes | references/ffmpeg-filters.md | Scale/pad, showwaves, showspectrum, overlay filters |
Phase 1: VALIDATE
- Check FFmpeg:
ffmpeg -version. If missing, stop with install instructions. - Verify both input files exist with absolute paths and non-zero size. Supported: PNG/JPG/JPEG/GIF/WEBP/BMP (image), MP3/WAV/M4A/OGG/FLAC (audio).
- Determine parameters from the user's request -- do not default to static when the user requested a visualization.
| Preset | Dimensions | Platform |
1080p | 1920x1080 | YouTube HD (default) |
720p | 1280x720 | Standard HD |
square | 1080x1080 | Instagram, social |
vertical | 1080x1920 | Stories, Reels, TikTok |
Visualization modes (off unless requested): waveform, spectrum, cqt, bars.
Gate: FFmpeg installed, both files exist, parameters resolved.
Phase 2: PREPARE
Use the user's output path or derive from audio filename (/same/dir/filename.mp4). Verify directory is writable.
Phase 3: ENCODE
Defaults: libx264 preset medium, CRF 23, yuv420p, 192k AAC.
python3 $HOME/vexjoy-agent/skills/content/image-to-video/scripts/image_to_video.py \
--image /path/to/image.png --audio /path/to/audio.mp3 \
--output /path/to/output.mp4 --resolution 1080p --visualization staticBatch mode (matched pairs in workspace/input/):
python3 $HOME/vexjoy-agent/skills/content/image-to-video/scripts/image_to_video.py \
--process-workspace --visualization waveformGate: Script exits 0.
Phase 4: VERIFY
FFmpeg can exit 0 but produce a corrupt file. Always probe:
ffprobe -v error -show_entries format=duration,size -show_entries stream=codec_name,width,height \
-of default=noprint_wrappers=1 /path/to/output.mp4Confirm video duration matches audio (within 1s). Report: file path, size, duration, resolution, visualization mode.
Error Handling
| Error | Cause | Solution |
| FFmpeg not found | Not installed | apt install ffmpeg or brew install ffmpeg |
| Image/audio not found | Wrong or relative path | Use absolute paths; check with ls -la |
| FFmpeg filter errors | Minimal build lacks showwaves/showcqt | Install full FFmpeg; fall back to --visualization static |
| Cannot determine audio duration | Corrupted audio file | Test with ffprobe; convert: ffmpeg -i input -acodec pcm_s16le output.wav |
Other versions14 projects use a version of this.
Word for word · 1
- notque/vexjoy-agent★ 444100% same
Edited · 0
None found.
Wrote their own version · 13
- eachlabs/skills★ 46same name
- prime-skills/runcomfy-agent-skills★ 41same name
- meitu/meitu-skills★ 33same name
- genmedia-labs/skills★ 26same name
- PrunaAI/pruna-skills★ 20same name
- aiagentwithdhruv/skills★ 16same name
- runcomfy-com/skills★ 16same name
- agentspace-so/runcomfy-skills★ 4same name
- SamurAIGPT/muapi-claude-code★ 4same name
- 439436269-ctrl/video-pipeline-skills★ 1same name
3 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use image-inpainting, flux-2-klein and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
prime-skillsSkillimage-inpainting
Mask-driven image inpainting on RunComfy via the `runcomfy` CLI. Routes to Tongyi MAI Z-Image Turbo Inpainting (the dedicated inpainting endpoint with mask, strength, and control-scale) and to identity-preserving edit models (Nano Banana 2 Edit, GPT Image 2 Edit, FLUX Kontext Pro) when a mask isn't available and the region must be described instead. Use for object removal, watermark removal, region replacement, blemish cleanup, and any controlled local edit where a binary mask defines the target area. Triggers on "inpaint", "inpainting", "image inpaint", "remove from image", "fill region", "mask-driven edit", "remove watermark", "remove object", "patch the photo", "fill the hole", or any explicit ask to edit a specific masked region of a still.
Also in 4 projects that use this
agentspace-soSkillflux-2-klein
Generate images with Flux 2 Klein (Black Forest Labs' distilled fast variant of Flux 2) on RunComfy — bundled with the model's documented prompting patterns so the skill gets sharper output than naive prompting against the same model. Documents Flux 2 Klein's strengths (sub-second latency, multi-reference brand styling, declarative subject-first prompts), the step-count strategy (4–8 for fast iteration, ~25 for polish), the 9B vs 4B variant trade-off, and when to route to Flux 2 Pro / Seedream 5 / GPT Image 2 instead. Calls `runcomfy run blackforestlabs/flux-2-klein/9b/text-to-image` (or `/4b/`) through the local RunComfy CLI. Triggers on "flux 2 klein", "flux-2-klein", "flux klein", "BFL flux 2", or any explicit ask to generate with this model.
Also in 4 projects that use this
agentspace-soSkillflux-kontext
Edit images with Flux 1 Kontext Pro (Black Forest Labs' precise local image-edit model) on RunComfy — bundled with the model's documented prompting patterns so the skill gets sharper output than naive prompting against the same model. Documents Flux Kontext's strengths (single-reference precise local edits, strong prompt control, consistent high-fidelity outputs), the schema (single image + prompt), and when to route to Nano Banana Edit / GPT Image 2 edit / Flux 2 Klein instead. Calls `runcomfy run blackforestlabs/flux-1-kontext/pro/edit` through the local RunComfy CLI. Triggers on "flux kontext", "flux-kontext", "flux 1 kontext", "kontext", "BFL kontext", or any explicit ask to edit with this model.
Also in 4 projects that use this
prime-skillsSkillace-step
Generate, inpaint, and outpaint music with ACE Step on RunComfy via the `runcomfy` CLI. ACE Step is StepFun-AI's open-weights music foundation model — tag-driven composition (genre, mood, instruments), multilingual lyrics with section markers, 5 s to 4 min stereo output, $0.0002–0.0003 per second (≈ 27× cheaper than ElevenLabs Music). Four endpoints: ACE Step text-to-audio (the default), ACE Step 1.5 text-to-audio (50+ language lyrics, refined structured-lyric handling), ACE Step audio-inpaint (regenerate a time range inside an existing track), ACE Step audio-outpaint (extend an existing track before or after). Triggers on "ace step", "ace-step", "acestep", "ACE music", "open music model", "cheap AI music", "inpaint audio", "audio inpaint", "extend music", "audio outpaint", "lengthen track", "music with tags", or any explicit ask to generate or edit music with ACE Step.
Also in 3 projects that use this
- +3 more from agentspace-so
- +5 more from prime-skills
In this repository64 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- assessmentSkill
- dataSkill
- business-opsSkill
- code-qualitySkill
- comment-qualitySkill
- condenseSkill
- joy-checkSkill
- content-engineSkill
- contentSkill
- headlinesSkill
- image-genSkill
- series-plannerSkill
- topic-brainstormerSkill
- video-editingSkill
- writingSkill
- domainSkill
- cli-designSkill
- frontendSkill
- frontend-slidesSkill
- jev-designSkill
- webgl-card-effectsSkill
- game-asset-generatorSkill
- game-devSkill
- game-trailerSkill
- motion-pipelineSkill
- browser-jev-automationSkill
- cve-source-checkSkill
- deploySkill
- endpoint-validatorSkill
- headless-cron-creatorSkill
- kubernetesSkill
- githubSkill
- accountsSkill
- auto-dreamSkill
- building-with-jevSkill
- codexSkill
- docs-sync-checkerSkill
- doSkill
- dSkill
- grill-jevSkill
- toolkitSkill
- workflow-helpSkill
- debuggingSkill
- plant-seedSkill
- processSkill
- pr-workflowSkill
- quickSkill
- testingSkill
- with-anti-rationalizationSkill
- workflowSkill
- worktree-agentSkill
- programmingSkill
- architecture-deepeningSkill
- codebase-analyzerSkill
- markdown-converterSkill
- news-collectionSkill
- researchSkill
- roastSkill
- The first 60 shown.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

