colorize について
colorizeは、画像、動画、モーションフォトを、色が現れるアニメーション付きのMP4に変換するコマンドラインスキルです。複数のメディアを処理し、エフェクトや出力設定を調整したいユーザー向けです。
主な機能
- 01画像、動画、モーションフォトの処理
- 02複数の入力を1本のMP4に結合
- 03リビール効果とパラメーターの調整
- 04利用可能な動画音声の保持
- 05ffprobeによる出力検証
活用シーン
- 01静止画をリビール動画に変換
- 02動画素材にリビール効果を適用
- 03複数の写真や動画を1本のMP4に結合
- 04出力エフェクトの設定を調整
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ vibe-motion/ skills --skill colorizeインストール後、Claude Code で/colorizeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlscripts/colorize.pyrequirements.txt詳細
Colorize
ワークフロー
- ユーザーからの入力(画像、動画、Live Photos)を収集します。絶対パスを使用してください。
- スキルのディレクトリを特定し、依存関係を一度インストールします(「要件」を参照)。
- 入力と出力パスを指定して、
scripts/colorize.pyを実行します。 VALIDATION=PASSとOUTPUT_VIDEO=<absolute path>が出力されるまで待ちます。- 返信の前に見た目を確認する場合は、
ffmpegで数フレームを抽出します。 - 出力パスと使用した設定を返します。
クイックスタート
skill_dir=""
for base in "${AGENTS_HOME:-$HOME/.agents}" "${CLAUDE_HOME:-$HOME/.claude}" "${CODEX_HOME:-$HOME/.codex}"; do
if [ -d "$base/skills/colorize" ]; then
skill_dir="$base/skills/colorize"
break
fi
done
[ -n "$skill_dir" ] || { echo "colorize skill not found under ~/.agents, ~/.claude, or ~/.codex"; exit 1; }
python3 -m pip install -r "$skill_dir/scripts/requirements.txt"
python3 "$skill_dir/scripts/colorize.py" "/abs/path/photo.jpg" -o "$(pwd)/out/photo_colorize.mp4"
エージェントがこの SKILL.md を含むディレクトリをすでに把握している場合は、そのディレクトリを skill_dir として使用してください。
入力
| 入力 | 処理内容 |
|---|---|
画像(png jpg jpeg webp heic heif avif bmp tif) | 静止画として扱います。表示効果は --duration 秒続き、その後、静止画の状態で --hold 秒間保持されます。 |
動画(mp4 mov m4v webm mkv avi gif) | 各ソースフレームの動きを保ちます。最初の --duration 秒間に表示効果が適用され、その後は動画の最後まで効果適用後の状態が続きます。音声も保持されます。 |
| iPhone Live Photo | 静止画(IMG_0001.HEIC または .JPG)を渡してください。同じ名前の .MOV が隣にある場合は、音声とともに自動的に使用されます。同じ結果を得るには、.MOV を直接渡してもかまいません。 |
| Android モーションフォト | .jpg を渡してください。埋め込み MP4(Google の MP.jpg / MVIMG、Samsung)は自動的に抽出されます。 |
| 複数の入力 | 入力順にレンダリングされ、1 つの MP4 に結合されます。各入力にそれぞれ表示効果が適用されます。 |
--still を使用すると、Live Photo またはモーションフォトの動画を無視し、静止画のみをアニメーション化します。
よく使うコマンド
# One photo, 2 s reveal + 0.5 s hold
python3 "$skill_dir/scripts/colorize.py" photo.jpg --hold 0.5 -o out/photo.mp4
# Live Photo (IMG_0001.MOV next to it is picked up)
python3 "$skill_dir/scripts/colorize.py" IMG_0001.HEIC -o out/live.mp4
# Video: slower 3 s reveal, keep the first 6 s
python3 "$skill_dir/scripts/colorize.py" clip.mov --duration 3 --max-length 6 -o out/clip.mp4
# Several images and videos as one vertical reel
python3 "$skill_dir/scripts/colorize.py" a.jpg b.heic c.mov --size 1080x1920 -o out/reel.mp4
# Stronger spin and a little more glow
python3 "$skill_dir/scripts/colorize.py" photo.jpg --set angle=0.09 --set bloom=0.7 -o out/strong.mp4
オプション
| オプション | デフォルト | 説明 |
|---|---|---|
-o, --output | <first input>_colorize.mp4 | 出力 MP4 のパスです。 |
--duration | 2 | 表示効果の長さ(秒)です。 |
--hold | 0 | 画像のみ:静止画の状態で保持する秒数です。 |
--fps | 30 | 出力フレームレートです。 |
--size WxH | 最初の入力のアスペクト比、長辺は --max-edge 以下 | 出力サイズを指定します。他の入力は中央で切り抜いて合わせます。 |
--max-edge | 1920 | --size が指定されていない場合の長辺の上限です。アップスケールは行いません。 |
--max-length | クリップ全体 | 動画:この秒数まで再生します。 |
--still | オフ | Live Photo/モーションフォトの動画を無視します。 |
--mute | オフ | 音声を削除します。 |
--set KEY=VALUE | — | エフェクトパラメーターを 1 つ上書きします(複数回指定できます)。 |
--params file.json | — | 複数のエフェクトパラメーターを上書きします。 |
--crf | 17 | x264 の品質です。値を小さくするとファイルサイズが大きくなり、鮮明になります。 |
エフェクトパラメーター
デフォルト値は、静止画に対する Jianying のエフェクトスタックに合わせて調整されています。--set で変更できる主なパラメーターは次のとおりです。
| キー | デフォルト | エフェクト |
|---|---|---|
angle | 0.0503 | ラジアルブラーの弧の角度(ラジアン)です。値が大きいほど効果が強くなり、符号で方向が決まります。時間とともにゼロになります。 |
focus_scale | 0.9 | シャープな中央ディスクの最終的な幅です。値が大きいほど、端の効果が早く収まります。 |
motion | 0.70 | 水平方向のモーションブラーの強さです。時間とともにゼロになります。 |
blur_power | 1.0 | ブラーの減衰カーブです。値が大きいほど早く消えます。 |
front_speed | 0.63 | 色のスイープ速度です。 |
edge | 0.24 | カラーとモノクロの境界の柔らかさです。 |
bloom / rays | 0.54 / 0.29 | ソフトなグローと放射状の光線の強さです。 |
softness | 2.3 | 残留するソフト化の度合いです。0 が最もシャープです。 |
saturation | 0.98 | 最終的な彩度です。 |
center_x, center_y | 0.5 | UV 座標での回転中心です(y 軸は上向き)。 |
動作
moderngl経由で OpenGL 3.3 を使用して GPU 上でレンダリングします(ヘッドレス Linux では EGL にフォールバック)。ffmpegを使用して H.264yuv420pBT.709 の MP4 にエンコードします。- 出力は、スマートフォンの動画に含まれる回転メタデータも含め、最初の入力のアスペクト比と向きに従います。
ffmpegにzscaleがある場合、HDR(HLG/PQ)動画は SDR にトーンマッピングされます。- HEIC/AVIF 画像には、
pillow-heif、macOS のsips、または HEIF に対応したffmpegが必要です。 - いずれかの入力に音声がある場合、結合後もクリップの同期が保たれるよう、すべてのセグメントに AAC トラックが含まれます(画像の場合は無音です)。
--durationより短い動画では、最後に効果が完全に収まるよう、表示効果の時間が短縮されます。ffprobeで出力のサイズ、長さ、音声を検証した後、VALIDATION=PASSを出力します。
必要条件
numpy、moderngl、Pillow(scripts/requirements.txt)を含む Python 3.9 以降。pillow-heifは任意ですPATH上にffmpegとffprobeがあること- OpenGL 3.3 に対応した GPU またはドライバー(macOS、Windows、デスクトップ Linux、または EGL を使用する Linux)
macOS で moderngl をソースからビルドする必要がある場合:CXXFLAGS='-std=c++11' python3 -m pip install moderngl。
コメント
Markdown 対応