添加快速防护算法适配 #40

Merged
hnu202326010204 merged 1 commits from lianghao_branch into develop 2 weeks ago

@ -376,6 +376,12 @@
"perturbation_code": "style_protection",
"perturbation_name": "风格迁移防护",
"description": "Style Transfer Protection - 保护艺术作品免受风格模仿"
},
{
"perturbation_configs_id": 10,
"perturbation_code": "quick",
"perturbation_name": "快速防护算法",
"description": "Quick Protection - 基于PID的快速防护算法训练步数少、速度快适合快速测试"
}
]
}
@ -383,6 +389,7 @@
**说明**
- `perturbation_configs_id=7,8` 仅适用于人脸数据集(`data_type_id=1`
- `perturbation_configs_id=9` 仅适用于艺术作品数据集(`data_type_id=2`)且**必须**指定 `target_style` 参数
- `perturbation_configs_id=10`(快速防护算法):基于 PID 的快速版本,训练步数 120vs 标准 PID 的 1000步长 0.01vs 0.002),适合快速测试和演示
**错误响应**
- `401 {"error": "无效的用户身份标识"}`
@ -1880,6 +1887,11 @@ Authorization: Bearer <token>
## 文档更新记录
### 2026-01-01 快速防护算法功能更新
- [GET /api/task/perturbation/configs](#get-apitaskperturbationconfigs):新增 `quick`快速防护算法配置项ID=10基于 PID 算法的快速版本,训练步数 120标准 PID 为 1000步长 0.01(标准为 0.002),适合快速测试和演示场景。
- 算法配置列表总数更新:从 9 种算法增加到 10 种算法。
- 完善算法配置说明:明确快速防护算法的性能特点和适用场景。
### 2025-12-20 风格迁移防护功能更新
- [GET /api/task/perturbation/configs](#get-apitaskperturbationconfigs)更新算法配置列表新增9种算法的完整信息及适用范围说明。
- [GET /api/task/perturbation/style-presets](#get-apitaskperturbationstyle-presets)**新增接口**用于获取风格迁移防护算法的4种预设风格梵高/康定斯基/毕加索/巴洛克)。

@ -223,8 +223,8 @@ def _run_real_algorithm(script_path, conda_env, algorithm_code, task_id,
f"--class_data_dir={class_dir}",
f"--eps={float(epsilon)}",
])
elif algorithm_code in ['pid', 'anti_face_edit']:
# PID 和防人脸编辑参数结构
elif algorithm_code in ['pid', 'anti_face_edit', 'quick']:
# PID、防人脸编辑和快速防护参数结构
cmd_args.extend([
f"--instance_data_dir={input_dir}",
f"--output_dir={output_dir}",

@ -73,6 +73,7 @@ class AlgorithmConfig:
'dreambooth': os.getenv('CONDA_ENV_DREAMBOOTH', 'pid'),
'lora': os.getenv('CONDA_ENV_LORA', 'pid'),
'textual_inversion': os.getenv('CONDA_ENV_TI', 'pid'),
'quick': os.getenv('CONDA_ENV_QUICK', 'pid')
}
# 模型路径配置
@ -254,6 +255,19 @@ class AlgorithmConfig:
'guidance_scale': 7.5,
'seed': 42
}
},
'quick': {
'real_script': os.path.join(ALGORITHMS_DIR, 'perturbation', 'pid.py'),
'virtual_script': os.path.join(ALGORITHMS_DIR, 'perturbation_engine.py'),
'conda_env': CONDA_ENVS['quick'],
'default_params': {
'pretrained_model_name_or_path': MODELS_DIR['model2'],
'resolution': 512,
'max_train_steps': 120,
'center_crop': True,
'step_size': 0.01,
'attack_type': 'add-log'
}
}
}

@ -65,7 +65,8 @@ def init_database():
{'perturbation_code': 'glaze', 'perturbation_name': 'Glaze算法', 'description': 'Protecting Artists from Style Mimicry by Text-to-Image Models'},
{'perturbation_code': 'anti_customize', 'perturbation_name': '防定制生成', 'description': 'Anti-Customization Generation - 专门防止人脸定制化生成'},
{'perturbation_code': 'anti_face_edit', 'perturbation_name': '防人脸编辑', 'description': 'Anti-Face-Editing - 专门防止人脸图像被编辑'},
{'perturbation_code': 'style_protection', 'perturbation_name': '风格迁移防护', 'description': 'Style Transfer Protection - 保护艺术作品免受风格模仿'}
{'perturbation_code': 'style_protection', 'perturbation_name': '风格迁移防护', 'description': 'Style Transfer Protection - 保护艺术作品免受风格模仿'},
{'perturbation_code': 'quick', 'perturbation_name': '快速防护算法', 'description': 'Quick Protection - 基于PID的快速防护算法训练步数少、速度快适合快速测试'}
]
for config in perturbation_configs:

Loading…
Cancel
Save