Image and video mode processes a static file — a photo or a pre-recorded clip — and writes the result to disk. Unlike live mode it is not real-time: Deep-Live-Cam reads every frame, applies the face swap pipeline, then re-encodes the output with ffmpeg. This mode supports both an interactive GUI workflow and a fully headless CLI pipeline suitable for batch jobs or automation.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/hacksider/Deep-Live-Cam/llms.txt
Use this file to discover all available pages before exploring further.
Supported formats
mimetypes module. Files with a image/* MIME type go through the image pipeline; files with video/* go through the video pipeline.
GUI workflow
Select a source face
Click Select a face and choose the image containing the face you want to use as the swap source. A 200 × 200 thumbnail appears in the source drop zone.
Select a target
Click Select a target and choose the image or video you want to process. For videos, the first frame is displayed as a thumbnail.
Configure options
Adjust toggles and sliders in the Options and Refinement cards before starting. Key options for image/video mode are described below.
Click Start
Click Start. A save dialog prompts you for the output file path. Processing begins immediately after you confirm.
Headless CLI mode
Providing-s and -t (or -o) arguments activates headless mode — no GUI is shown and processing starts immediately:
The README notes that CLI mode is “unmaintained”. The
-s/-t/-o flags work, but some newer GUI-only features (face mapper, per-face opacity) are not accessible from the CLI.Video processing pipelines
Deep-Live-Cam chooses between two internal video pipelines depending on the active options:- In-memory pipeline (default)
- Disk-based pipeline (map_faces)
When
--map-faces is not enabled, Deep-Live-Cam uses process_video_in_memory(). Frames are read directly from an ffmpeg pipe, processed in RAM, and encoded to the output file without writing any per-frame PNGs to disk. This is significantly faster than the disk-based path because it eliminates all intermediate I/O.Audio handling
| Flag | Default | Behaviour |
|---|---|---|
--keep-audio | True | Muxes the original audio track from the source video into the output with ffmpeg -map 1:a:0. |
| (no flag) | — | If --keep-audio is omitted, only the video stream is written. |
FPS options
Video encoder and quality
| Encoder | --video-encoder value | Notes |
|---|---|---|
| H.264 | libx264 | Default. Hardware-accelerated to h264_nvenc (NVIDIA) or h264_amf (AMD) when available. |
| H.265 / HEVC | libx265 | Smaller files; hardware-accelerated to hevc_nvenc or hevc_amf when available. |
| VP9 | libvpx-vp9 | Browser-native; always software-encoded. |
--video-quality accepts an integer from 0 to 51 (default 18). Lower values produce higher quality and larger files. The value maps to CRF for CPU encoders and to the -cq parameter for NVIDIA NVENC.
Output path behaviour
When-o points to a directory, the output filename is derived automatically:
-s alice.jpg -t scene.mp4 -o /output/ produces /output/alice-scene.mp4.
When -o specifies a file path, that exact path is used.
Image processing
For image targets, Deep-Live-Cam copies the target to the output path first, then runs each frame processor in-place:NSFW filter
Pass--nsfw-filter to skip processing any target that is detected as containing inappropriate content:
Processing ignored! and no output file is written.
Keeping temporary frames
--keep-frames, the extracted PNG files in the temporary directory are not deleted after encoding. The temp directory path follows the pattern: