by lemomo-ai
Claude Code plugin: turn one still image into a ~5 s seamless looping animation (MP4, GIF, WebP, Live Photo). · 把一张图做成约 5 秒的无缝循环动图。
# Add to your Claude Code skills
git clone https://github.com/lemomo-ai/lemo-wakeSee how lemo-wake compares with popular alternatives.
lemo-wake is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by lemomo-ai. Claude Code plugin: turn one still image into a ~5 s seamless looping animation (MP4, GIF, WebP, Live Photo). · 把一张图做成约 5 秒的无缝循环动图。. It has 50 GitHub stars.
lemo-wake's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/lemomo-ai/lemo-wake" and add it to your Claude Code skills directory (see the Installation section above).
lemo-wake is primarily written in Python. It is open-source under lemomo-ai on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh lemo-wake against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
把你的照片叫醒 Wake your image.
一张图进去,一段约 5 秒、无缝循环的动图出来。 One picture in, a seamless loop of about five seconds out.
▶ 去作品墙看看 See the gallery · ▶ Logo 动效 Logo Motion
English | 中文
中文用户请看这里:完整中文说明 README.zh-CN.md English readers: keep reading below.
Give Claude Code one picture and say "make it move". You get a loop of about 5 seconds whose end joins its start seamlessly. Photos, portraits, posters, illustrations, logos, charts, stickers, Xiaohongshu covers and chat screenshots all work.
It is not a filter. Claude first reads the image, takes it apart into text, shapes, objects, people and light, rebuilds the pieces in code and choreographs a short film for this one picture. It then renders the frames in a headless browser, joins the end back to the start and encodes the result.
中文简介
把一张图交给 Claude Code,说一句“让它动起来”,就能拿到一段约 5 秒、首尾无缝相接的动图。照片、人像、海报、插画、Logo、图表、表情包、小红书封面、聊天截图都可以。
这不是套滤镜。Claude 会先读懂画面,把文字、图形、物体、人物和光拆开,用代码重建,再为这张图编排一段专属的动作。最后在无头浏览器里逐帧渲染,把结尾接回开头,编码出片。
How it works 流程
Built and tuned for Claude Code. Other agents (Codex, for example) can read the skill too, but the results are not guaranteed.
As a Claude Code plugin (recommended). In a terminal (both lines can be pasted at once):
claude plugin marketplace add lemomo-ai/lemo-wake
claude plugin install lemo-wake@lemo-wake
Or inside Claude Code, one line at a time (run the first, then type the second):
/plugin marketplace add lemomo-ai/lemo-wake
/plugin install lemo-wake@lemo-wake
Then restart Claude Code, or run /reload-plugins.
As a plain skill (without the upload and layers commands):
git clone --depth 1 https://github.com/lemomo-ai/lemo-wake
cp -R lemo-wake/skills/wake ~/.claude/skills/lemo-wake
You can also put it in a project's .claude/skills/lemo-wake.
Give Claude an image and say "make it move". No command needed. Or use the commands:
| Command | What it does |
|---|---|
/lemo-wake:wake <image> |
Make a film from an image |
/lemo-wake:layers <image> |
Split an image into layers (PSD + PNG) |
/lemo-wake:upload |
Share a film to the gallery |
With a plain skill install, the command is /lemo-wake <image>.
Layers. /lemo-wake:layers, or just "split this into layers" / "give me a PSD": each person, object and text block on its own transparent layer, the background behind them filled in, plus a depth map. You get layers.psd (Photoshop, Affinity, Procreate, or free in the browser at Photopea), the PNG layers and a layers.json with positions and stacking order (After Effects, Figma, game engines). People are kept whole, text stays pixels, and large hidden areas come out soft, since nothing is generated. It also reuses the parts of a film you already made.
How cleanly a picture splits depends on the picture, so the result is not guaranteed. If something is off, just tell the agent what you want, for example "put the two people on separate layers", "keep the flowers with the vase" or "clean up the edge of the hair", and it will redo that part.
Before it starts, Claude asks once: which size (your image's own size by default, or another ratio such as 16:9, 9:16 or 1:1) and which formats. Say "go" to take the defaults. Every format comes from the same frames, and more can be added later without re-rendering.
| File | Default | Size | For |
|---|---|---|---|
<name>.mp4 |
yes | output size, no audio | Posts on WeChat Moments, Xiaohongshu, Douyin, Instagram, X |
<name>.gif |
yes | at most 5 MB, under 1080 wide | Chats on WeChat, QQ, Weibo |
<name>.webp |
on request | output size, about 8 MB | Web pages, GitHub, the gallery |
<name>-sticker.gif |
on request | long side 240 px, at most 500 KB | A WeChat custom sticker |
<name>.pvt |
on request, macOS only | a 3 s Live Photo, still at output size | iPhone Photos, then Xiaohongshu or Moments |
Why several: most chat apps and phone galleries don't play animated WebP, social platforms want MP4 for posts, and GIF works everywhere but is heavy. If a platform has another limit, such as "GIF under 2 MB", tell Claude.
The Live Photo is a .pvt bundle (Finder shows it as one file). AirDrop that one file to your iPhone and it lands in Photos as a Live Photo. Sending the photo and the video inside it separately gives you a photo and a video.
Photos with a long side over 2560 px are rendered at 2560 to keep it fast. Ask for full resolution if you need it.
On first use Claude runs node scripts/doctor.mjs in the skill folder (skills/wake/). With --fix it installs what is missing.
| Needs | Size | How |
|---|---|---|
| Node.js 18 or later | Install it yourself | |
| ffmpeg and ffprobe | brew install ffmpeg, sudo apt install ffmpeg or winget install Gyan.FFmpeg |
|
| uv (runs the Python scripts) | brew install uv, or see https://docs.astral.sh/uv/ |
|
Headless Chromium and playwright-core |
About 190 MB | node scripts/doctor.mjs --fix, or use an installed Chrome with CHROME=<path> |
| Python packages (Pillow, NumPy, OpenCV, onnxruntime) | About 150 MB | Downloaded automatically on first use |
| Xcode Command Line Tools (Live Photos only, macOS) | xcode-select --install |
Tested on macOS. Linux and Windows should work. If a step fails, Claude works out what is missing.
Small models that run locally on the CPU cut out objects and people, fill the space behind them and estimate depth. Most films get better with them: that is what lets things leave their place and really move. Nothing is downloaded until you say yes once, usually in the first question before a film starts.
| Model | What it does | Size | Source | License |
|---|---|---|---|---|
| Depth Anything V2 Small | Depth map for 3D parallax | 99 MB | onnx-community/depth-anything-v2-small | Apache-2.0 |
| BiRefNet-lite | Cuts out the main subject | 224 MB | onnx-community/BiRefNet_lite-ONNX | MIT |
| MODNet | Portrait matting with fine hair | 26 MB | Xenova/modnet | Apache-2.0 |
| MobileSAM (2 files) | Picks one element by point or box | 44 MB | Acly/MobileSAM | MIT |
| LaMa | Fills the hole behind a moved object | 208 MB | Carve/LaMa-ONNX | Apache-2.0 |
About 600 MB in all. Every file is checked by sha256.
Asked once. Before the first film that needs a model, Claude tells you which one, what it is for, how big it is, where it comes from and where it will be stored, and asks once. Your answer is saved. If you say no, Claude finds a compromise in code and still finishes the film.
Where they are stored. With a plugin install, in ~/.claude/plugins/data/<plugin-id>/models/, kept across updates and removed on uninstall. With a plain skill install, in models/ in the skill folder. Set LEMO_WAKE_MODELS=<folder> to use another folder.
Commands. Run them in skills/wake/, or just ask Claude:
scripts/models.py # status
scripts/models.py fetch all --yes # download everything now
scripts/models.py consent yes|no # change your answer
Hugging Face is often unreachable from mainland China. Use the mirror. Files are still checked against the same sha256:
HF_ENDPOINT=https://hf-mirror.com scripts/models.py fetch all --yes
To use the mirror for every download, add it to ~/.claude/settings.json:
{ "env": { "HF_ENDPOINT": "https://hf-mirror.com" } }
If a download fails, Claude also tries a mirror on its own. For other slow downloads:
UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simplenpm config set registry https://registry.npmmirror.comCHROME=<path>depth_anything_v2_small.onnx, birefnet_lite.onnx, modnet.onnx, mobile_sam_image_encoder.onnx, sam_mask_decoder_multi.onnx and lama_fp32.onnx, and put them in the models folderThe gallery is not only for our samples. You are welcome to add your own films. Community films sit on the same wall as the samples, with an orange "Community" badge in the corner of the card and the author's name. The gallery also has a "Community" filter that shows only shared films.
How to share