基于扩散模型的个性化图像生成¶
一、任务说明¶
本次课程大作业要求你选取 Hugging Face 上已有的一个扩散模型(Diffusion Model),完成一个个性化生成任务(Personalized Image Generation)。例如:
- Prompt 1: a man with a beard and a white shirt.
- Prompt 2: a man wears a tank top and blazer.
在默认设置下,这两个提示语可能会生成两个随机的男性面孔。但如果你进行个性化建模,例如将目标人物设定为布拉德·皮特(Brad Pitt),那么生成的图像中,无论穿着和场景如何,生成的人物应始终保持布拉德·皮特的面部特征。
🔍 你需要完成的核心目标:¶
- 实现将特定人物(如 Brad Pitt)融入到生成模型中。
- 使生成图像在不同 prompt 下仍保持人物一致性。
二、方法设计规范¶
建议按照以下流程进行:
1. 数据收集¶
- 收集目标人物的照片(建议 5~10 张,涵盖多个角度和光照条件)。
- 可参考公开图像数据库,或使用网络爬虫获取。
2. 个性化微调¶
推荐以下个性化方法: - LoRA 微调(参数高效) - Textual Inversion(通过嵌入学习) - DreamBooth(训练目标人物在特定上下文中) - Custom Token 或 Prompt-Tuning 等轻量方法
你可以根据数据量、训练资源灵活选择。
3. 图像生成¶
- 使用自定义 prompt,确保生成图片中的人物保持与训练人物一致。
- 建议使用多样 prompt 验证泛化能力,如添加动作、背景、衣服等描述。
4. 结果评估¶
- 使用量化指标评估个性化程度、保真度与 prompt 一致性(见下文评估标准)。
三、实验实施要求¶
🧪 实验平台¶
- 推荐使用 Google Colab Pro,可提供 GPU 环境。
- 支持使用
diffusers
,transformers
,accelerate
,peft
等 Hugging Face 库。
🧪 评估指标¶
请使用以下指标衡量个性化效果:
指标 | 说明 |
---|---|
Face Distance Score | 人脸特征向量距离,越低代表与目标人物越接近 |
CLIP Score | 图像与文本的一致性得分 |
Number of Faceless Images | 无法识别人脸或不符合目标面孔的图像数量 |
🔁 超参数实验¶
- 必做:
learning_rate
- 可选:
lora_rank
,lora_alpha
,max_train_steps
,prompt token count
等
鼓励你尝试不同的参数配置,并进行分析对比。
四、提交要求¶
请在截止时间前上传以下材料:
- ✅ 完整可运行的代码
- 包含训练与生成过程,确保可在 Colab 上复现。
- 📄 实验报告(PDF)
- 内容包括:
- 方法选择与设计理由
- 数据处理方式
- 训练日志与损失曲线
- 生成图像展示(对比原始 vs 个性化)
- 定量评估(指标表格 + 分析)
- 超参数对比实验结果
五、注意事项¶
- 严禁直接调用 GPT-4o、DALL·E 等商用 API 进行生成,必须完成个性化训练过程。
- 模型微调部分可使用公开预训练权重(如 stable-diffusion-v1-5)。
- 数据集若涉及版权,请在报告中标注来源。
- 所有提交材料必须为原创,如发现抄袭行为,将取消成绩并通报处理。
- 建议保留代码运行记录(如 Colab Notebook),以便查验复现。
六、评分标准(共 100 分)¶
模块 | 分值 | 评分细则 |
---|---|---|
任务完成度 | 20 分 | 正确实现个性化生成流程,完成数据收集、模型训练与图像生成 |
方法设计与实现 | 20 分 | 选用合理的个性化方法并准确实现(如 LoRA、Textual Inversion 等) 结构清晰、训练代码可复现 |
实验设计与多组对比 | 15 分 | 至少进行 3 组超参数对比实验,结果明确、讨论充分 |
生成质量评估指标 | 25 分 | 详见下方评估指标评分细则 |
实验报告质量 | 15 分 | 内容完整、语言清晰、有条理、有对结果的定性/定量分析 |
创新性与扩展性 | 5 分 | 尝试融合新方法、探索新 prompt 工程、构建 demo 或使用 ControlNet 等方法 |
🔬 评估指标评分细则(25 分)¶
指标 | 分值 | 评分方式 |
---|---|---|
Face Distance Score | 10 分 | 平均距离 < 0.8:10 分 0.8–1.0:8 分 1.0–1.2:6 分 ≥1.2:3 分或以下 |
CLIP Score | 8 分 | 平均得分 ≥ 0.30:8 分 0.25–0.30:6 分 0.20–0.25:4 分 <0.20:2 分或以下 |
Faceless Images 数量 | 7 分 | ≤ 2 张:7 分 3–4 张:5 分 5–6 张:3 分 ≥ 7 张:0 分 |
注:请报告中附上每个评估指标的计算脚本或结果截图,以便评分组审核。
❗ 扣分说明¶
- 使用 GPT-4o / Bing Copilot 等直接生成图像且未训练模型:评估部分计 0 分
- 报告缺失关键内容(方法/图像/评估)或数据造假:扣除 20 分及以上
- 抄袭代码或使用他人训练权重:酌情降级或取消成绩
✅ 加分项(总分不超过 100 分)¶
项目 | 加分 |
---|---|
使用 ControlNet、Token Merging、Prompt Mixing 等进阶技术 | +2~5 分 |
提交可交互式 Web Demo(如 Gradio) | +2 分 |
个性化多个角色并实现合照 | +3 分 |
如有问题请及时联系助教或在教学平台留言,祝大家探索愉快!