本地AI图像处理工具SnapOtter

简介

什么是 SnapOtter ?

SnapOtter 是一个开源的自托管图像处理工具,在单个 Docker 容器中提供 45+ 图像处理工具和本地 AI 功能。它可以帮助用户在本地完成各种图像操作,包括调整大小、裁剪、压缩、转换、添加水印、颜色调整、矢量化、制作 GIF、查找重复照片、生成证件照等,所有图像都保存在本地,永不离开你的设备。它拥有简洁的网页界面,方便快速编辑,并配备了完整的 REST API 以实现自动化和集成。

主要特点

  • 45+ 图像工具:调整大小、裁剪、压缩、转换、水印、颜色调整、矢量化、创建 GIF、查找重复、生成证件照等
  • 本地 AI :背景去除、图像放大、老照片修复和上色、物体消除、面部模糊、面部增强、OCR 文字提取,全部在本地硬件运行,无需互联网
  • 工作流 Pipeline:将多个工具链接成可重用的工作流,支持无限步骤,无限批量处理
  • REST API :每个工具都可通过 API 访问,支持 API 密钥认证,交互式文档位于 /api/docs
  • 单容器部署 :一个 docker run 命令即可运行,无需 RedisPostgres 等外部服务
  • 多架构支持 :支持 AMD64ARM64IntelApple SiliconRaspberry Pi
  • 隐私优先:图像永远不会离开你的机器,只收集匿名产品分析数据,可在设置中随时关闭
  • 开源免费 :基于 AGPLv3 协议开源,可免费使用和修改

应用场景

  • 摄影师/设计师:批量处理作品集,统一调整尺寸、水印、格式
  • 内容创作者:批量处理视频封面、社交媒体配图
  • 企业用户:本地处理敏感图片(合同、证件、产品),满足合规要求
  • AI 开发者 :需要 API 接口为 AI Agent 提供图片处理能力
  • NAS 用户 :将 NAS 变成图片工作站,在家中任何设备上访问

SnapOtter 是一个功能强大的本地图像处理中心,特别适合需要在私有环境中处理大量图像的用户。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 snapotter,选择第一个 snapotter/snapotter,版本选择 latest

本文写作时,latest 版本对应为 1.16.0

docker 文件夹中,创建一个新文件夹 snapotter,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/snapotter/data /data 存放数据库、AI模型、用户文件(持久化)

可选:如果需要临时处理文件,也可以添加 /tmp/workspace

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
1349 1349

环境

可变
AUTH_ENABLED true
DEFAULT_USERNAME admin
DEFAULT_PASSWORD admin
SKIP_MUST_CHANGE_PASSWORD false

环境变量说明

  • AUTH_ENABLED - 是否启用登录认证,设为 false 可禁用登录
  • DEFAULT_USERNAME - 首次运行的管理员用户名
  • DEFAULT_PASSWORD - 首次运行的管理员密码(首次登录后会被强制要求修改)
  • SKIP_MUST_CHANGE_PASSWORD - 跳过强制修改密码

命令行安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
docker run -d \
  --name snapotter \
  --restart unless-stopped \
  -p 1349:1349 \
  -v $(pwd)/data:/data \
  -v $(pwd)/workspace:/tmp/workspace \
  -e AUTH_ENABLED=true \
  -e DEFAULT_USERNAME=admin \
  -e DEFAULT_PASSWORD=admin \
  -e STORAGE_MODE=local \
  -e SKIP_MUST_CHANGE_PASSWORD=false \
  snapotter/snapotter:latest

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
services:
  SnapOtter:
    image: snapotter/snapotter:latest
    container_name: snapotter
    restart: unless-stopped
    ports:
      - "1349:1349"
    volumes:
      - ./data:/data                # Database, AI models, user files
      - ./workspace:/tmp/workspace  # Temp processing (auto-cleaned)
    environment:
      - AUTH_ENABLED=true
      - DEFAULT_USERNAME=admin
      - DEFAULT_PASSWORD=admin
      - STORAGE_MODE=local
      - SKIP_MUST_CHANGE_PASSWORD=false
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:1349/api/v1/health"]
      interval: 30s
      timeout: 5s
      start_period: 60s
      retries: 3
    shm_size: '2gb'
    logging:
      driver: json-file
      options:
        max-size: "50m"
        max-file: "5"

然后通过 SSH 登录到您的群晖,执行下面的命令:

bash 复制代码
# 新建文件夹 snapotter 和 子目录
mkdir -p /volume1/docker/snapotter/{data,workspace}

# 进入 snapotter 目录
cd /volume1/docker/snapotter

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:1349 即可进入登录界面

因为设置了 SKIP_MUST_CHANGE_PASSWORD=false ,所以系统会强制要求修改默认密码

弹出提示,帮助改进 SnapOtter,选择 Not right now 关闭匿名产品分析

登录之后的主界面

可以切换到 Grid 模式,功能看起来更清晰

选择你需要的工具,然后处理你的图片,老苏试了一下 Text Watermark,不能用中文,估计是容器内缺字体

访问 /api/docs 可以查看完整的 REST API 文档

注意事项

  1. 共享内存 :容器默认设置 shm_size: 2gb,这是 Python ML 模型共享内存的必需配置,不建议更改
  2. 端口占用 :默认端口为 1349,如遇冲突可修改为本机未被占用的端口
  3. 隐私保护:所有图像处理在本地完成,不会外传,但在设置中可关闭匿名产品分析
  4. GPU 加速 :如需 GPU 加速,可以参照 https://github.com/snapotter-hq/SnapOtter/blob/main/docker/docker-compose-gpu.yml

参考文档

SnapOtter - A Self Hosted Image Manipulator

地址:https://github.com/snapotter-hq/SnapOtter
SnapOtter Docker 镜像

地址:https://hub.docker.com/r/snapotter/snapotter
SnapOtter 官方文档

地址:https://docs.snapotter.com
SnapOtter 官方网站

地址:https://snapotter.com

相关推荐
感谢地心引力1 分钟前
在codex里面使用Deepseek-v4,支持mac和windows双系统
windows·gpt·macos·ai·codex·deepseek
搬砖的小码农_Sky8 分钟前
AI Agent:macOS Sequoia 部署 OpenClaw 完整教程
人工智能·macos·ai·人机交互
笨蛋©7 小时前
2026年质量管理指南:泡泡图(Bubble Drawing)与自动化检验计划实战
ai·数字化·cad·质量管理·制造业
企服AI产品测评局8 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化
aicat_cn10 小时前
从预测未来到控制未来:机器人世界模型全景综述
ai·大模型
心疼你的一切11 小时前
高效内容生产:如何实现规模化创作
大数据·人工智能·ai·ai编程·ai写作
AI 小老六11 小时前
Claude Code 如何压缩上下文:Microcompact、Prompt Cache 与 cache_edits 工程拆解
数据库·人工智能·ai·语言模型·架构·系统架构
Apache StreamPark12 小时前
Flink生产环境实战:从Demo到稳定运行的破局之道
ai·flink
“码”力全开12 小时前
打破芯片与协议壁垒:基于 Docker + 边缘计算的 GB28181/RTSP 视频智能管理平台架构设计与源码交付方案
docker·音视频·边缘计算
imbackneverdie13 小时前
深耕医学科研智能化十年,MedPeer打造新一代AI生物医学科研操作系统
大数据·人工智能·ai·信息可视化·数据分析·aigc·科研