immich-automated-selfie-timelapse:基于 Immich 的自拍延时视频生成项目

Automated face extraction, resizing and alignment suitable to make a selfie timelapse video.

分支3Tags14

Immich 自拍延时摄影

从您的 Immich 照片库中生成亲人肖像的延时摄影视频。

利用 Immich 的内置人脸识别功能查找某个人的所有照片,然后通过可配置的处理流程对这些照片进行裁剪、对齐、过滤,并将结果合成为流畅的延时摄影视频。

Main View

Timelapse example

功能特点

  • 人脸检测与裁剪 - 利用 Immich 的人脸识别元数据自动定位并裁剪人脸
  • 人脸对齐 - 根据眼睛位置对所有照片进行对齐,确保延时摄影稳定流畅
  • 头部姿态过滤 - 使用 ONNX 深度学习模型(DMHead)跳过非正面朝向的照片
  • 眨眼检测 - 通过眼睛纵横比分析过滤掉眼睛闭合的照片
  • 模糊检测 - 使用梯度幅度分析(Sobel 算子)丢弃模糊照片
  • 亮度过滤 - 移除过暗或过曝的照片
  • 人脸分辨率过滤 - 跳过人脸过小的照片
  • 照片数量限制 - 按日/周/月限制照片数量,避免繁忙时段的照片过多
  • 时间戳叠加 - 可选择在每一帧上叠加日期
  • 视频合成 - 使用 FFmpeg 自动将处理后的照片合成为 MP4 延时视频
  • Web 用户界面 - 通过内置的 Web 界面配置所有设置并监控进度

Processing

快速开始

Immich API 密钥

为了访问您的 immich 库,本项目需要 Immich API 密钥。
按照以下指南创建一个:https://immich.app/docs/features/command-line-interface#obtain-the-api-key

需要启用以下功能:

  • album.read
  • asset.download
  • asset.read
  • asset.view
  • person.read
  • server.about

注意:建议将此 API 密钥存储在 docker-compose.yml 旁边的 .env 文件中,而不是以纯文本形式保存。

Docker Compose(推荐)

services:
  immich-selfie-timelapse:
    image: arnaudcayrol/immich-selfie-timelapse
    container_name: immich-selfie-timelapse
    user: 1000:1000
    ports:
      - "5000:5000"
    environment:
      - IMMICH_API_KEY=abcdefghijklmnopqrstuvwxyz
      - IMMICH_BASE_URL=http://your-immich-host:2283
    volumes:
      - ./config:/app/config
      - ./output:/app/output
    restart: unless-stopped

Docker 运行

docker run -d \
  --name immich-selfie-timelapse \
  -p 5000:5000 \
  -e IMMICH_API_KEY=your-api-key-here \
  -e IMMICH_BASE_URL=http://your_server:2283 \
  -v ./config:/app/config \
  -v ./output:/app/output \
  arnaudcayrol/immich-selfie-timelapse

然后打开 http://your_server:5000 以访问 Web 界面。

确保对配置文件夹和输出文件夹拥有正确的读写权限。

chown -R 1000:1000 ./config ./output
路径 描述
/app/config 持久化配置文件(config.toml
/app/output 处理后的图像和已编译的延时视频

设置

默认设置较为宽松,因为每个人都是独特的。
请为您正在处理的人像调整图像亮度过滤、眼睛纵横比等参数。

Settings

故障排除

  • 暂不支持 ARM。
  • 处理器必须支持 AVX(DMHead 模型要求)。

补充信息

  • 照片过滤并非 100% 准确,其精度将持续提升。
  • 衷心感谢 Immich 团队及贡献者,是他们让本项目得以实现。
  • 关于贡献:在我最初创建此项目时,曾将其标记为欢迎贡献。但现在我意识到,我并没有想象中那么多时间投入到这个项目中。我对提交 issue 持开放态度,因为这能让我按照自己的节奏来处理。对于拉取请求(PR),我无法保证在合理时间内完成审核。
  • 感谢 thomaslrg 围绕本项目展开的讨论。
  • 感谢大家的 200 300 个 GitHub 星标!

许可证

本项目是开源的,基于 MIT 许可证 发布。

星标历史

Star History Chart

项目介绍

Automated face extraction, resizing and alignment suitable to make a selfie timelapse video.

定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

Rust72.71%
Svelte25.39%
JavaScript1.19%
Dockerfile0.56%
HTML0.09%