You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 months ago | |
|---|---|---|
| doc | 3 months ago | |
| src | 3 months ago | |
| .gitignore | 3 months ago | |
| README.md | 3 months ago | |
README.md
MuseGuard
基于对抗性扰动的多风格图像生成防护系统
MuseGuard 是一个图像版权保护平台,通过对抗性扰动技术防止图像被 AI 模型(如 Stable Diffusion、DreamBooth、LoRA 等)恶意学习和生成。
项目简介
随着 AI 图像生成技术的快速发展,艺术家和创作者的作品面临被未经授权复制和模仿的风险。MuseGuard 提供一套完整的图像保护解决方案:
- 图像加噪防护:在图像中添加人眼不可见的对抗性扰动,干扰 AI 模型的学习过程
- 多算法支持:集成 ASPL、SimAC、CAAT、CAAT Pro、PID、Glaze 等多种防护算法
- 专题防护:针对人脸定制生成、人脸编辑、风格迁移等特定攻击场景的定制化防护
- 效果验证:通过微调测试、质量评估(FID/LPIPS/SSIM/PSNR)、热力图分析验证防护效果
- 异步任务处理:基于 Redis + RQ 的任务队列,支持大规模图片批量处理
技术栈
后端
- Python 3.x + Flask
- MySQL + Redis
- SQLAlchemy ORM
- JWT 认证
- RQ 任务队列
前端
- Vue 3 (Composition API)
- Vite
- Vue Router + Pinia
- Axios
快速开始
环境要求
- Python >= 3.8
- Node.js >= 16.x
- MySQL >= 5.7
- Redis >= 6.0
1. 克隆项目
git clone <repository-url>
cd MuseGuard
2. 后端配置
cd src/backend
# 方式一:使用 conda 环境(推荐,Linux 服务器)
conda activate flask
pip install -r requirements.txt
# 方式二:使用 venv 虚拟环境
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
pip install -r requirements.txt
# 配置数据库(编辑 config/.env)
# 初始化数据库
python init_db.py
# 启动服务(Linux 推荐使用启动脚本)
./start.sh
# 或手动启动
python run.py # 启动 Flask 应用
python worker.py # 启动 RQ Worker(另开终端)
后端服务将在 http://localhost:6006 启动
3. 前端配置
cd src/frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
前端应用将在 http://localhost:5173 启动
目录结构说明
MuseGuard/
├── doc/ # 项目文档
│ ├── process/ # 过程文档
│ │ └── weekly/ # 周报
│ └── project/ # 项目文档
│ ├── 01-需求文档/ # 需求规格说明书
│ ├── 02-设计文档/ # 系统设计文档
│ └── 03-计划文档/ # 项目计划
├── src/ # 源代码
│ ├── backend/ # 后端服务
│ │ ├── app/ # Flask 应用
│ │ │ ├── algorithms/ # 算法实现
│ │ │ ├── controllers/ # 控制器
│ │ │ ├── models/ # 数据模型
│ │ │ ├── services/ # 业务逻辑
│ │ │ └── utils/ # 工具类
│ │ ├── config/ # 配置文件
│ │ ├── static/ # 静态文件/图片存储
│ │ └── uploads/ # 上传文件目录
│ └── frontend/ # 前端应用
│ ├── public/ # 静态资源
│ └── src/ # Vue 源码
│ ├── api/ # API 接口
│ ├── components/ # 公共组件
│ ├── router/ # 路由配置
│ ├── stores/ # 状态管理
│ ├── utils/ # 工具函数
│ └── views/ # 页面视图
└── README.md # 项目说明
功能模块
用户系统
- 用户注册(邮箱验证码验证)
- 用户登录/登出(JWT Token 认证)
- 密码修改、邮箱修改、用户名修改
- 用户配置偏好保存
- 管理员后台(用户管理、系统统计)
图像防护
- 通用防护:支持 ASPL、SimAC、CAAT、PID 等多种算法
- 快速防护:简化流程,使用默认配置快速处理
- 专题防护:
- 防定制生成:防止人脸被用于 AI 定制化生成
- 防人脸编辑:防止人脸图像被 AI 编辑修改
- 风格迁移防护:保护艺术作品免受风格模仿(支持梵高、毕加索等预设风格)
- 扰动强度自定义:可调节 epsilon 值控制扰动程度
- 批量处理:支持多图片同时上传处理
效果验证
- 微调测试:模拟 DreamBooth/LoRA 微调过程,验证防护效果
- 支持从加噪任务创建微调
- 支持自定义数据上传微调(VIP/管理员)
- 支持自定义训练提示词
- 质量评估:FID、LPIPS、SSIM、PSNR 等指标计算
- 热力图分析:Grad-CAM 可视化扰动敏感区域
任务管理
- 任务创建与配置
- 实时状态监控(waiting/processing/completed/failed)
- 任务配额管理
- 结果下载(支持批量打包下载)
- 任务取消
- 历史记录查询
防护算法
通用防护算法
| 算法 | 说明 | 适用场景 |
|---|---|---|
| ASPL | Advanced Semantic Protection Layer | 通用语义保护 |
| SimAC | Simple Anti-Customization Method | 人脸隐私保护 |
| CAAT | Cross-Attention Adversarial Training | 注意力机制干扰 |
| CAAT Pro | CAAT with Prior Preservation | 增强版,保留类别数据 |
| PID | Prompt-Independent Data Protection | 提示词无关保护 |
| Glaze | Style Mimicry Protection | 艺术风格保护 |
专题防护算法
| 算法 | 说明 | 数据类型 |
|---|---|---|
| 防定制生成 | Anti-Customization Generation | 人脸数据集 |
| 防人脸编辑 | Anti-Face-Editing | 人脸数据集 |
| 风格迁移防护 | Style Transfer Protection | 艺术作品数据集 |
风格迁移预设
使用风格迁移防护时,支持以下预设风格:
- 梵高印象派 (van_gogh)
- 康定斯基抽象派 (kandinsky)
- 毕加索立体派 (picasso)
- 巴洛克风格 (baroque)
API 文档
详细 API 文档请参考:
- 后端 API:src/backend/README.md
- 前端接口:src/frontend/README.md
默认账户
系统初始化后创建的管理员账户:
| 用户名 | 密码 | 邮箱 |
|---|---|---|
| admin1 | admin123 | admin1@museguard.com |
| admin2 | admin123 | admin2@museguard.com |
| admin3 | admin123 | admin3@museguard.com |
开发指南
代码规范
- 后端遵循 PEP 8 规范
- 前端遵循 Vue 3 官方风格指南
- 提交信息遵循 Conventional Commits
分支管理
main:主分支,稳定版本develop:开发分支feature/*:功能分支bugfix/*:修复分支
项目文档
| 文档类型 | 位置 | 说明 |
|---|---|---|
| 需求文档 | doc/project/01-需求文档/ | 需求规格说明书、用例文档、前景与范围文档 |
| 设计文档 | doc/project/02-设计文档/ | 数据库设计文档、API 设计文档 |
| 计划文档 | doc/project/03-计划文档/ | 迭代开发计划 |
| 过程文档 | doc/process/weekly/ | 周报与周计划 |
注:文档主要为
.docx格式,需下载后查看
贡献指南
团队名称:软件2302班-深度思考
| 成员 | 贡献 |
|---|---|
| 胡帆 | 项目负责人(PM)、算法研究、模型微调 |
| 金郅博 | 前端开发、文档撰写 |
| 梁浩 | 后端开发、算法实现 |
| 杨博文 | 文档撰写、后端开发 |
| 杨逸轩 | 前端开发、文档撰写 |
许可证
本项目仅用于学习和研究目的,不得用于商业用途。