Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FurColor Studio

License Platform

FurColor Studio 是一个面向兽装活动摄影的、本地优先 AI 批量后期工作站。4.0 将兽装主体检测、项目内匿名分组、真人脸隐私复核、参考样片驱动调色、主体分层曝光、逐图眼睛蒙版、水印、人工质检和可校验交付串成一条完整流程。

当前版本是摄影师辅助工具,不是无人值守的最终交付系统。真实照片只应在本地工作站处理,商业交付前必须人工复核。

它能做什么

  • 从 JPG、JPEG、ARW 原片目录建立项目并生成本地缩略图;
  • 使用正选或反选模式提前淘汰废片;
  • 从同名手修参考 JPG 自动建立基础参考清单;
  • 可选使用 Fursee YOLO 检测兽装主体与新增人脸候选,并在单个项目内生成匿名兽装分组;
  • 融合 YuNet、人工记忆与兽装框证据,减少兽耳误打码,同时把单模型人脸结果保留给人工复核;
  • 分析中性区域、全局曝光、白毛高光与黑毛细节,再对兽装头部做保守的羽化局部曝光;
  • 为每张照片分别标注大小、形状、角度不同的兽装眼睛;
  • 批量完成 V4 风格映射、眼睛增强、隐私处理和可选水印;
  • 通过四项强制人工质检后生成 JPG、ZIP、manifest.json 和 SHA-256 清单。

五分钟安装并启动

前提

  • Windows 10/11;
  • Git;
  • 一个已经存在的照片根目录,例如 D:\Photography

新用户:复制整个代码块到 PowerShell

把示例目录替换成你自己的照片根目录,然后粘贴运行:

$repo = Join-Path $HOME 'FurColor-Studio'
if (Test-Path -LiteralPath $repo) {
  throw "目标目录已存在:$repo。不要继续运行旧脚本,请先阅读下方目标目录已存在说明。"
}
git clone https://github.com/PWJCSqiushan/FurColor-Studio.git $repo
if ($LASTEXITCODE -ne 0) { throw '克隆失败,安装已停止。不要进入旧目录继续执行。' }
Set-Location -LiteralPath $repo
powershell -ExecutionPolicy Bypass -File '.\install_local.ps1' -AllowedRoots 'D:\Photography' -InstallPython -DownloadFaceModel -Launch

多个照片根目录使用英文分号:

powershell -ExecutionPolicy Bypass -File '.\install_local.ps1' -AllowedRoots 'D:\Photography;E:\Events' -InstallPython -DownloadFaceModel -Launch

安装脚本会自动完成:

  1. 寻找 Python 3.12/3.11;找不到时通过 winget 为当前用户安装 Python 3.12;
  2. 创建独立 .venv
  3. 安装锁定依赖;
  4. 写入仅限本机的路径白名单 .env
  5. 从 OpenCV 官方仓库下载固定版本 YuNet;
  6. 验证模型 SHA-256;
  7. 运行环境自检;
  8. 打开 http://127.0.0.1:8899

YuNet 目录采用 MIT License,模型来源和校验值见 第三方声明。OpenCV 官方也将该模型作为 FaceDetectorYN 的下载来源。OpenCV 文档

可选:启用 4.0 兽装主体智能层

基础安装完成后,仍可使用原有轻量流程。若要启用 Fursee 双类别检测、匿名分组和主体分层曝光,请先自行取得完整模型包,再运行:

powershell -ExecutionPolicy Bypass -File '.\install_fursee.ps1' `
  -ModelDirectory 'D:\Models\Fursee-Package'

ModelDirectory 可以指向权重目录本身,也可以指向包含权重的资料包根目录。安装器会:

  1. 创建独立 .venv-fursee,不修改基础 .venv
  2. 安装锁定的 CUDA 12.8 PyTorch、Ultralytics 与 Transformers;
  3. 在有限目录深度内查找完整的四文件权重组合;
  4. 对约 1.27 GB 权重逐文件核对尺寸和 SHA-256;
  5. 只把本机模型路径写入被 Git 忽略的 .env,不会复制或上传权重。

默认面向 NVIDIA GPU;没有兼容显卡时可加 -CpuOnly,但批量速度会明显下降。首次安装需要下载数 GB 依赖,不能按“五分钟”估算。模型、论文、许可证和固定哈希见 第三方声明

已安装用户

以后启动只需要:

Set-Location '.\FurColor-Studio'
& '.\run_local.ps1'

更新代码后重新同步依赖:

git pull
& '.\install_local.ps1'

环境有问题时:

& '.\doctor.ps1'

第一次项目:从原片到交付

1. 准备文件夹

推荐把原片、参考、分析、草稿和交付完全分开:

D:\Photography\2026-Event\
├─ Originals\       # 相机原片,禁止覆盖
├─ References\      # 你在 Lightroom 中手修并导出的参考 JPG
├─ Analysis\        # FurColor 分析报告和配方
├─ Drafts\          # AI 修图草稿
└─ Delivery\        # 最终交付包,由程序生成

先在 Lightroom 中手修至少一张有代表性的照片并导出 JPG。参考 JPG 必须与对应原片同名,例如:

Originals\DSC01151.ARW
References\DSC01151.jpg

项目表单里的“参考样片清单”可以留空,FurColor 会从同名原片/手修 JPG 自动生成基础清单。高级用户也可以选择自定义 JSON。

2. 新建项目

打开“新建项目”,依次填写或点击“浏览”:

字段 填什么 是否必需
项目名称 活动名或交付批次
原片目录 Originals
手修参考目录 References 是,至少一组同名参考
分析结果目录 Analysis
修图输出目录 Drafts
水印 PNG 透明背景签名,可留空
参考样片清单 留空自动生成,或选择高级 JSON
选片模式 正选或反选

系统会拒绝让分析/输出目录与原片目录重叠,避免覆盖原片或重复扫描。

3. 选片

  • 反选模式:默认处理全部照片,只把明确标成“废片”的照片排除。适合保留率较高的活动摄影。
  • 正选模式:只有明确标成“保留”的照片才进入后续步骤。适合大量连拍和严格精选。
  • 默认:恢复到当前模式的默认行为。

选片结果会同时控制分析、人脸复核、眼睛标注、渲染和交付,不会再弹出已淘汰的数百张照片。

4. 按顺序处理

flowchart LR
    A[选择图片源] --> B[正选或反选]
    B --> C[兽装主体分析]
    C --> D[隐私与参考分析]
    D --> E[人工人脸复核]
    E --> F[逐图眼睛蒙版]
    F --> G[V4 草稿渲染]
    G --> H[四项人工质检]
    H --> I[ZIP + manifest + SHA-256]
Loading

不要跳步:

  1. 已启用 Fursee 时点击“分析主体”,生成兽装框、匿名分组和新增人脸候选;
  2. 点击“开始分析”,融合主体证据、隐私候选和参考样片;
  3. 点击“打开人脸复核”,把候选标成真人脸或兽装误检;
  4. 点击“标注兽装眼睛”,为每张照片分别绘制轮廓;
  5. 点击“开始渲染”,生成 V4 AI 草稿;
  6. 用图片浏览器检查草稿;
  7. 完成四项质检并生成交付包。

人脸记忆至少需要 2 个 human 和 2 个 fursuit 标签才会启用;它只校准候选概率,不能替代人工隐私判断。

5. 四项交付质检

后端会强制确认,少一项都不能生成交付包:

  • 背景真人脸、镜面和屏幕反射;
  • 兽耳误打码与眼睛蒙版边缘;
  • 白平衡、白毛高光、黑毛细节和主体曝光;
  • 水印、胸牌、二维码和最终裁切。

交付包包含成片、ZIP 和 manifest.json。清单记录选片模式、人工质检声明、文件大小和逐文件 SHA-256。

网页工作台操作流程

FurColor 的网页工作台把每个项目分为“建立项目 → 选片 → 主体分析 → 人脸复核 → 眼睛蒙版 → 渲染 → 质检交付”七步。先打开 http://127.0.0.1:8899/;本地工作站模式可直接选择“暂不登录,继续本地工作”,注册账号后新项目会绑定到账号,便于未来迁移服务器。

操作界面会在“主体智能”页展示模型状态、分析数量、人脸候选和匿名分组;项目照片与真实工作台截图均不随公开仓库发布,以保护客户和活动素材隐私。

1. 建立项目

点击“新建项目”,按四步填写活动名称、原片目录、同名手修参考 JPG、分析目录和输出目录。每个路径都用“浏览”选择;系统只会授权你明确选择的目录。第四步勾选“不覆盖或删除外部原片”后保存,系统会扫描照片但不会修改源文件。

2. 先完成选片

进入“选片”后,逐张选择“保留”“废片”或“默认”。反选模式默认处理未标记照片,正选模式只处理明确保留的照片。缩略图直接来自当前项目的本地照片或同名 JPG 代理;如果源盘断开或相机 RAW 未被本机解码器支持,界面会清楚提示而不会误删照片。

3. 使用主体分析辅助保留决策

点击“运行主体分析”。完成后,“主体智能”页会显示分析数量、兽装主体数量、人脸候选和匿名分组。每个分组提供主体代表裁剪和关联原片预览,可整组保留、整组废片或恢复默认。分组只在当前项目内有效,不对应真人身份。

4. 人脸复核并返回主流程

在“处理流程”运行“影调与隐私分析”后,打开“人脸复核”。新开的本地复核页用于把候选标记为“真人脸”“兽头误报”或“不确定”。完成后必须点击“保存复核并返回工作台”:它会保存标注、关闭复核服务并自动回到工作台的处理流程页。

5. 眼睛蒙版、渲染和交付

“眼睛蒙版”支持逐图旋转椭圆或多边形标注;完成时同样使用“保存并返回工作台”。之后运行渲染,检查 AI 草稿。最后在“质检交付”确认隐私、蒙版、曝光/颜色和水印/裁切四项,系统才会生成交付目录、ZIP 与带 SHA-256 的 manifest.json

6. 遇到问题时

  • 缩略图无法显示:确认原片盘仍已挂载,并对项目目录重新点击“浏览”授权;同名 JPG 可作为 RAW 预览回退。
  • 人脸或眼睛复核停留在独立页面:点击“保存并返回工作台”,不要直接关闭窗口。
  • 任务失败:在“处理流程”的任务日志查看错误码与建议;模型、参考样片和项目目录必须保持可访问。

本地隐私边界

  • 完整版默认只监听 127.0.0.1
  • 云端 demo 没有照片上传、路径读取或处理 API;
  • .env、照片、模型、项目级兽装特征、人脸反馈、眼睛标注、数据库和交付文件均被 Git 忽略;
  • 安装时配置的根目录和本机原生选择器明确选过的目录可以访问;授权记录只保存在本地,敏感系统目录始终拒绝;
  • 不要使用 git add -f 绕过保护。

常见问题

destination path 'FurColor-Studio' already exists

这表示克隆没有发生。不要忽略 fatal 后继续进入该目录,否则可能运行到旧版脚本。

先检查现有目录是否是真正的 Git 仓库:

git -C "$HOME\FurColor-Studio" log -1 --oneline
git -C "$HOME\FurColor-Studio" remote -v

如果两条命令都正常,直接更新:

Set-Location "$HOME\FurColor-Studio"
git pull --ff-only
if ($LASTEXITCODE -ne 0) { throw '更新失败,请停止安装并检查上方错误。' }
& '.\install_local.ps1'

如果提示“没有任何提交”、不是 Git 仓库或目录里只是旧文件,先备份再重新克隆:

Set-Location $HOME
$backup = 'FurColor-Studio_backup_' + (Get-Date -Format 'yyyyMMdd_HHmmss')
Rename-Item -LiteralPath '.\FurColor-Studio' -NewName $backup
git clone https://github.com/PWJCSqiushan/FurColor-Studio.git
if ($LASTEXITCODE -ne 0) { throw "克隆失败;旧文件仍安全保存在 $backup" }
Set-Location '.\FurColor-Studio'

提示 Path is outside FURCOLOR_ALLOWED_ROOTS

新版支持安全的动态多磁盘授权。请对原片、参考样片、分析、输出、水印和清单字段分别点击一次“浏览”:

  1. Windows 原生选择器中选中的目录会立即授权;
  2. 水印和 JSON 清单会授权其所在目录;
  3. 授权记录保存在本机 runtime/authorized_roots.json,重启后仍有效;
  4. 不同字段可以位于不同硬盘或移动硬盘;
  5. .ssh.aws.git、AppData、credentials 等敏感目录不能授权。

如果希望在安装阶段一次授权多个固定根目录,也可以使用英文分号:

& '.\install_local.ps1' -AllowedRoots 'D:\Photography;E:\Events'

不要把整个系统盘加入白名单;移动硬盘盘符改变后,用“浏览”重新选择即可。

提示找不到参考样片

确认 References 中至少有一张 JPG,并与 Originals 中的 JPG/ARW 使用相同文件名主体。

提示缺少 YuNet

& '.\install_local.ps1' -DownloadFaceModel

winget 误报 Python 已安装或安装卡住

如果电脑里已经有 Python 3.11/3.12,但启动器没有发现,可直接指定 python.exe。这只用指定的解释器创建项目独立环境,不会修改原环境:

& '.\install_local.ps1' `
  -PythonPath 'C:\path\to\python.exe' `
  -AllowedRoots 'D:\Photography' `
  -DownloadFaceModel -Launch

8899 端口被占用

关闭旧 FurColor 窗口,或修改 .envFURCOLOR_PORT。不要把本地完整版绑定到 0.0.0.0

PowerShell 阻止脚本运行

只对本次命令使用绕过策略:

powershell -ExecutionPolicy Bypass -File '.\install_local.ps1' -AllowedRoots 'D:\Photography' -DownloadFaceModel -Launch

当前限制

  • 白平衡、主体曝光、双模型人脸融合和匿名分组仍需要跨会场、灯光和兽装造型积累真实验证集;
  • 眼睛增强目前保留逐图人工蒙版,尚未用未经充分验证的自动眼部模型替代;
  • 匿名分组可能合并相似兽装或拆散同一兽装,只用于项目内选片辅助;
  • RAW 输出是派生 JPG,不直接修改 Lightroom Catalog;
  • 首次 GPU 环境安装需要下载约 3.3 GB 的 PyTorch wheel 和其他依赖;
  • 服务器版本是无照片的产品演示,不是多人在线修图 SaaS;
  • 公开发布或商业交付前仍必须由摄影师完成人工复核。

开发与测试

py -3.12 -m venv .venv
& '.\.venv\Scripts\python.exe' -m pip install -r requirements-dev.txt
& '.\.venv\Scripts\python.exe' -m pytest -q
& '.\.venv\Scripts\python.exe' scripts\security_audit.py

更多文档:

License

FurColor 原创源代码采用 Apache License 2.0。用户照片、水印、活动素材、私有标注、训练数据、人脸记忆和未随仓库分发的模型权重不自动包含在该授权中;Fursee、Ultralytics YOLO、DINOv3 及其衍生权重继续受各自条款约束,详见 第三方声明

v4.1 账户与服务器边界

v4.1 新增了本地可选、服务器强制的账户基础:邮箱规范化、scrypt 密码哈希、HttpOnly 会话 Cookie、CSRF 校验、登录限速、改密后全设备退出,以及账号注销时仅清理 FurColor 自有元数据。外部原片、参考图和输出目录不会因注销而删除。

FURCOLOR_MODE=server 会强制认证,并完全禁用本地文件选择器与客户端路径提交。当前服务器模式只提供账户、项目隔离、健康检查和部署边界,尚未包含上传、对象存储、异步队列、邮件验证或线上修图;不要把它当作已完成的云端照片服务。部署前请阅读 v4.1 部署边界

About

Local-first AI post-production workflow for privacy-sensitive fursuit event photography

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages