Local ai video pipeline
Skill bokuwalily/claude-code-skills/skills/local-ai-video-pipeline
75 battle-tested Claude Code skills from shipping 20+ apps solo — macOS, Next.js, Vercel, iOS/Expo, Cloudflare, Phaser, local AI media & more
npx -y skills add bokuwalily/claude-code-skills --skill local-ai-video-pipelineAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
無料ローカルでAI動画を作る時(静止画→動画クリップ→連結)。ComfyUI/RealVisXL静止画にffmpegでKen Burnsモーションを付けて繋ぐ。ffmpegがbashのwhile-readループのstdinを食う罠に当たった時も。
SKILL.md
2.8 KB, 943 tokens by cl100k_base, as published. Nobody here has run it
Procedure
実装正典: ~/dev/ai-video-factory(07-pc-automation)。generate.sh scenes/x.txt [--bgm f] [--fps 30]。
構成(流用可):
- 静止画:
lib/comfy_txt2img.py "<prompt>" out.png [seed]— ComfyUI API(127.0.0.1:8188)/RealVisXL V5.0/1344x768。先にcd ~/dev/comfyui && .venv/bin/python main.py --port 8188 &。初回~145秒。 - モーション(Tier1・追加DL不要):
lib/kenburns.py still.png clip.mp4 [dur] [fps] [motion] [W] [H]— ffmpeg zoompanでパン/ズーム。motion=zoom_in|zoom_out|pan_left|pan_right|pan_up|pan_down|auto。 - モーション(Tier2・opt-in):
lib/svd_img2vid.py still.png clip.mp4— SVD img2vid(本物の生成モーション)。要svd_xt.safetensors9.5GB(未DLなら手順表示で停止)。MPSで数分/クリップ。 - 連結:
lib/stitch.py out.mp4 clip1 clip2 ... [--bgm f] [--xfade 0.6]— xfadeクロスフェード+BGMはloudnorm整音+末尾フェード。
シーン定義(1行1シーン): <英語prompt> :: <秒> :: <motion>(::以降省略可・#コメント)。
Pitfalls
- 🔴 ffmpegがwhile-readのstdinを食う:
while read line; do ffmpeg ...; done < fileだと ffmpeg が標準入力からfileの残り行を読み取り、1呼び出しごとに1行飛ぶ(2行目以降が欠落)。必ずffmpeg -nostdin ...(または</dev/null)。subprocessでも同じ。これが今回の主因だった。 - zoompanのジッター/crop失敗: プリスケールがcropサイズ未満だと "Invalid too big or non positive size"。
scale={W*2}:{H*2}:force_original_aspect_ratio=increase,crop={W*2}:{H*2}で出力比2倍へ拡大してからzoompan、で両方解決。 - ComfyUI 8188 残存プロセス衝突:
lsof -nP -iTCP:8188 -sTCP:LISTEN -t | xargs kill -9。 - SDXLは日本語不可: テロップは後段でPIL等で乗せる(senior-tube方式)。
- 配信用BGM: 権利フリーのみ(music-labの自作MIDI等)。AI生成物は「AI生成」と明示。実在人物なりすまし・アダルト量産はやらない。
Verification
ffprobe -v error -show_entries format=duration:stream=width,height,nb_frames -of default=noprint_wrappers=1 out.mp4- 尺の検算: xfade連結の総尺 = Σdur − (clips−1)×xfade。例 4+3.5+4 − 2×0.6 = 10.3s。
- 静止画はReadで目視(ダミー/壊れでないか)。全シーン数=stills数=clips数を確認(ffmpeg stdin罠の検出)。
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most video audio skills give in 943 tokens
Counted across 622 of the 795 authors here whose files we hold, read 2026-08-07
- Read individual rule files for detailed explanationsin 21 of 622, across 10 files
- Render final videoin 13 of 622, across 6 files
- Use WAV PCM 16kHz mono audio formatin 12 of 622, across 3 files
- Use this skill when dealing with Remotion codein 11 of 622, across 4 files
- Save generated audio to a WAV filein 11 of 622, across 4 files
- Handle conversion errors gracefullyin 10 of 622, across 6 files
- Add captions to videos alwaysin 10 of 622, across 4 files
- Generate music from text descriptions using MusicGenin 9 of 622, across 2 files
- Do not skip pipeline layersin 9 of 622, across 3 files
- Do not make one tool do everythingin 9 of 622, across 3 files
- Use Azure Document Intelligence for complex PDFsin 9 of 622, across 4 files
- Never ask the user to paste their full API keyin 9 of 622, across 3 files
Said here and by no other author read
- start ComfyUI before generating images
- generate still images from text prompts
- add motion to still images with ffmpeg
- concatenate clips with crossfade and background music
- define scenes in a text file
- pass the nostdin flag to ffmpeg in scripts
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.