Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FurColor Studio

License Platform

FurColor Studio 是一个面向兽装活动摄影的、本地优先 AI 批量后期工作站。v4.1 将导入、选片、兽装合集、人脸隐私决定、眼睛蒙版审核、影调渲染与合集导出整理为一条严格顺序、可回退复核的七步流程。

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

它能做什么

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

五分钟安装并启动

前提

  • 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'

v4.1 七步操作流程

左侧工作栏就是实际执行顺序;每进入一个步骤,当前环节会高亮,正在运行的分析或渲染会显示进度条与当前文件。

  1. 新建与导入:选择原片、同名手修参考 JPG、分析与输出目录。RAW 预览可缩小,最终输出始终重新读取原文件。
  2. 选片:逐张保留/废片。缩略图无法读取时不会阻塞选片,会显示源盘不可访问提示。
  3. 兽装主体分析:运行 Fursee,查看和命名项目内合集;可移动误归属照片或合并合集。
  4. 人脸隐私决定:检测只是候选。逐脸选择保留、模糊或未决定;仅“模糊”会作用于成片。
  5. 眼睛蒙版与局部增强:生成几何候选后接受、拒绝或编辑;只有已接受/已编辑蒙版参与局部增强。确认样本累计到 500 个后可提交眼睛分割模型训练审核。
  6. 影调渲染复核:自动白平衡/曝光只提供建议。保存批量配方,必要时为单张设置曝光例外,然后运行全分辨率渲染。
  7. 合集导出:选择需要的兽装合集。程序在交付母目录内建立各兽装子目录,导出 JPEG、TIFF、校验清单和 ZIP;未决定人脸仅提示,不阻止导出。

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

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[按兽装合集导出]
Loading

每一步都可回退,但不需要绕行“处理流程”或“质检交付”页面:

  1. 运行主体分析后,可命名合集、移动误归属照片或合并合集;
  2. 人脸检测只生成候选,逐脸选择保留、模糊或未决定;未决定不自动模糊;
  3. 眼睛步骤先生成候选椭圆,接受、拒绝或手动编辑;只有已审核蒙版参与局部增强;
  4. 影调步骤保存可复现的批量配方,也可设置单张曝光例外;
  5. 渲染从原始全分辨率文件重新解码,输出 JPEG 4:4:4 与 16-bit TIFF;
  6. 导出页按兽装合集创建子文件夹,并生成 ZIP 和带 SHA-256 的 manifest.json。未决定人脸仅显示提示,不阻断导出。

网页工作台操作流程

打开 http://127.0.0.1:8899/ 后,左侧栏从上到下就是实际操作顺序。当前环节会高亮,扫描、主体识别、眼睛候选和渲染都会显示进度条、当前文件与失败信息;技术日志只用于详情排障。

  • 01 新建与导入:填写活动名称、原片、同名手修参考 JPG、分析和输出目录;系统只读源照片。
  • 02 选片:逐张保留、废片或恢复默认。RAW 缩略图失败时不会影响选片或删除照片。
  • 03 兽装主体分析:使用 Fursee 生成项目内合集,人工命名、合并或移动误归属照片。
  • 04 人脸隐私决定:候选默认保留原样;仅明确选择“模糊”的候选会被处理。
  • 05 眼睛蒙版与局部增强:自动候选必须审核;可手动新增或编辑椭圆/多边形蒙版。累计 500 个确认蒙版后才能提交眼睛分割模型训练审核。
  • 06 影调渲染复核:自动白平衡和曝光只给建议;保存批量配方或单图覆盖后执行全分辨率渲染。
  • 07 合集导出:勾选需要的兽装合集,得到母目录下的子文件夹、JPEG、TIFF、清单和 ZIP。

遇到问题时,先检查项目路径和参考 JPG 是否仍可访问;如果任务失败,页面会显示可读的提示,展开详情即可查看原始日志。

管理员在确认数据集只含 accepted/edited 蒙版且数量不少于 500 后,可在隔离的 Fursee 环境运行 engine/src/train_eye_segmentation.py。脚本固定划分验证集并输出 IoU 指标;未经审核的候选不会进入训练集或发布模型。

本地隐私边界

  • 完整版默认只监听 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

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages