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.
 
 
 
 
 
 
Go to file
hnu202326010204 deebc98ac4
Merge pull request '修复调用微调算法错误' (#43) from lianghao_branch into develop
3 months ago
doc docs: 更新后端api文档 3 months ago
src Merge pull request '修复调用微调算法错误' (#43) from lianghao_branch into develop 3 months ago
.gitignore 将后端test文件夹提交git仓库 3 months ago
README.md 更新项目README文档 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 文档请参考:

默认账户

系统初始化后创建的管理员账户:

用户名 密码 邮箱
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、算法研究、模型微调
金郅博 前端开发、文档撰写
梁浩 后端开发、算法实现
杨博文 文档撰写、后端开发
杨逸轩 前端开发、文档撰写

许可证

本项目仅用于学习和研究目的,不得用于商业用途。