flickies

flickies is a video toolkit in one Docker container: lipsync (LatentSync 1.5, Wav2Lip), face restore (GFPGAN v1.4), and plain ffmpeg operations (trim, concat, transcode, scale, mux audio, extract audio, thumbnail grid, ffprobe metadata). You POST a JSON body and get a video back, over REST on port 8000 or as MCP tools at /v1/mcp.

It is the video sibling of audiolla (audio) and talkies (speech): same JSON contract, same async-job model, same bind-mounted /data, same :latest and :latest-cuda split. No account, no cloud. Models download from Hugging Face on first use and stay on your disk.

Install

docker run -d --name flickies \
  -v "$HOME/flickies-data:/data" \
  -p 127.0.0.1:8000:8000 \
  psyb0t/flickies:latest

Use psyb0t/flickies:latest-cuda with --gpus all for LatentSync 1.5 and usable lipsync speed. Getting started walks through the first request.

You want to

You want to Read
Run it and make the first request Getting started
Pick an image, mount data, prefetch or stage weights Deployment
Look up an environment variable Configuration
Call an endpoint, poll a job, verify a webhook REST API
Choose a lipsync engine, understand licenses and VRAM Engines
Drive it from an LLM agent MCP and agents
Use the Go or Python client Generated clients
Read the logs, trace a request Logging
Put it on a network Security
Fix an error Troubleshooting
Change the code Development

What runs where

Feature CPU image (:latest) CUDA image (:latest-cuda)
ffmpeg ops and info yes yes
Wav2Lip and Wav2Lip-GAN yes, slow (needs FLICKIES_ENABLE_NONCOMMERCIAL=1) yes (needs FLICKIES_ENABLE_NONCOMMERCIAL=1)
GFPGAN face restore yes, runs on the CPU yes
LatentSync 1.5 no, its libraries are not in the image yes

The project is WTFPL. The models and some vendored code have their own licenses: see Engines and THIRD_PARTY.md.