先看两张最喜欢的装裱效果(全部由纯本地 CPU 算法 + 本地模型离线生成,不调任何外部 AI API ):


为什么做这个?
现在很多声称“智能相框/排版”的工具,走着走着就变味了:
- 能力被大语言模型锁死:动不动就要求配置 OpenAI/Claude API Key ,没有 Token 就罢工,为了加个框还要把私密照片往云端传;
- 强行绑定 AI 工具链:一旦脱离了特定 AI 环境就无法独立运行,缺乏确定性和鲁棒性;
- 传统工具又极其敷衍:千篇一律的粗暴白底、长镜头名文字重叠溢出、竖图被拉成细长条、二次渲染丢弃 ICC Profile 导致调色发灰。
作为一个拍照的程序员,我想要的是一个完全摆脱大模型捆绑、基于纯本地 CPU 算法 + 本地模型离线生成、真正懂摄影排版美学与极客趣味的独立工具 —— PicFrame。
开源地址:https://github.com/vincentchyu/PicFrame
⚡️ 纯本地 CPU 算法 + 本地模型离线生成驱动的四大装裱方案
无需云端大模型,断网也能秒级批量处理整组照片:
1. 赛博终端与黑客 HUD 遥测仪表舱( 1:1 正方形画幅)
为极客打造的计算机终端装裱。本地动态色温与亮度分析,自动匹配暗黑底板或浅色卡纸,并由本地字符引擎生成带真实色彩的 ASCII 结构画:
- 基于 Sobel 边缘增强与 Block 字符集 实时拟合;
- 100% 忠实保留原片原始画幅,原图作为绝对视觉焦点,参数动态自适应沉底。


2. 现代艺术画册 · 抽象编辑双联
彻底告别传统参数相框。原图无缝拼接经典象牙色(#F3F0E8)面板:
- **空间焦点手稿 (
editorial_guidance)**:纯本地算法提取多焦点彩色准星与建筑手稿网格,解构透视关系; - **几何晶格双联 (
editorial_diptych)**:200 晶格几何肌理拟合与 4 色调色板提炼,排版诗意衬线标题。

3. 经典小红书相机镜头卡片 & 品牌极简水印带
- 小红书卡片:本地 K-Means 色彩聚类提取柔和底色,自动匹配相机/镜头透明图,胶囊化参数;
- 品牌极简水印:忠实保留原片无损画质,底部拼接相机品牌官方矢量 Logo 与参数。


🛠 几个让强迫症极度舒适的工程细节
- 零 云 AI + Agent 绑架 · 纯离线运行:全部图像处理基于 Python 标准库 + Pillow + 本地算法,你的照片永远不会离开你的电脑。
- 终端 Curses 交互界面:输入
python3 generate_photo_cards.py直接启动终端 TUI ,自带 ASCII 线框实时排版预览,不需要起臃肿的 Electron 或 Web 服务。 - 竖图比例自适应:所有双联方案对竖图强制采用「左原图、右画册/HUD 」并排结构,彻底解决竖图又细又长的问题。
- **严格色彩管理 (ICC Profile)**:完整保留源图 ColorSync / sRGB 配置文件,避免二次导出色彩发灰。
- Auto-Fit 动态字阶:智能拆解超长镜头型号,动态缩字防溢出,绝不发生文字撞车。
- 缩略图联系表:批量跑完一个文件夹,自动生成整组缩略图概览(
contact-sheet.jpg)与输出清单(manifest.json)。
🚀 快速上手
环境要求仅需 Python 3 + exiftool:
# 1. 安装 exiftool (macOS 为例)
brew install exiftool ollama olmx
# 2. 克隆并运行
git clone https://github.com/vincentchyu/PicFrame.git
cd PicFrame
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# 3. 启动终端交互式 TUI
python3 generate_photo_cards.py
