Loading...
Loading...
Turn photos, videos, and Live Photos into a black-and-white to color reveal clip (单彩渐变 + 动感模糊 + 丁达尔旋焦). The frame starts monochrome and spun, color sweeps in from the left under a horizontal motion blur, and the spin settles from the center outward into a softly glowing full-color frame. Use when users ask for 上色效果, 黑白变彩色, 丁达尔旋焦, 旋焦上色, 剪映上色特效, color reveal, colorize transition, or want this effect on images, iPhone Live Photos (HEIC/JPG + MOV), Android motion photos, or video clips. Outputs H.264 MP4.
npx skill4agent add vibe-motion/skills colorizescripts/colorize.pyVALIDATION=PASSOUTPUT_VIDEO=<absolute path>ffmpegskill_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.mdskill_dir| Input | What happens |
|---|---|
Image ( | Static plate; the reveal lasts |
Video ( | Each source frame keeps moving; the reveal runs over the first |
| iPhone Live Photo | Pass the still ( |
| Android motion photo | Pass the |
| Several inputs | Rendered in order and joined into one MP4. Each input gets its own reveal. |
--still# 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| Option | Default | Meaning |
|---|---|---|
| | Output MP4 path. |
| | Reveal length in seconds. |
| | Images only: seconds to hold the settled frame. |
| | Output frame rate. |
| first input's aspect, long edge ≤ | Force output size; other inputs are center-cropped to it. |
| | Long-edge cap when |
| full clip | Videos: keep at most this many seconds. |
| off | Ignore Live Photo / motion photo video. |
| off | Drop audio. |
| — | Override one effect parameter (repeatable). |
| — | Override several effect parameters. |
| | x264 quality; lower is larger and sharper. |
--set| Key | Default | Effect |
|---|---|---|
| | Spin-blur arc in radians; larger is stronger, the sign sets direction. Decays to zero. |
| | Final width of the sharp center disc; larger settles the edges sooner. |
| | Horizontal motion-blur strength; decays to zero. |
| | Blur decay curve; larger fades faster. |
| | Speed of the color sweep. |
| | Softness of the color/mono boundary. |
| | Soft glow and radial light-ray strength. |
| | Residual softening; |
| | Final saturation. |
| | Spin center in UV (y up). |
modernglyuv420pffmpegffmpegzscalepillow-heifsipsffmpeg--durationVALIDATION=PASSffprobenumpymodernglPillowscripts/requirements.txtpillow-heifffmpegffprobePATHmodernglCXXFLAGS='-std=c++11' python3 -m pip install moderngl