English | 简体中文
基于 Zero123Plus 模型的关键点提取探索项目 - 第一阶段研究报告。
Stable123Keypoints 旨在探索 sudo-ai/zero123plus-v1.2 模型在关键点检测任务中的应用可能性。本阶段研究聚焦于在 StableImageKeypoints v1.5 相同架构下,评估 Zero123Plus 预训练权重的直接可用性。
- 基准模型:
sd-legacy/stable-diffusion-v1-5 - 测试模型:
sudo-ai/zero123plus-v1.2 - 网络架构: 保持与
StableImageKeypoints v1.5基本一致 - 对比维度:
- 损失函数收敛情况
- 注意力机制激活模式
- 关键点提取效果
请参考 StableImageKeypoints v1.5 的环境配置要求。
-
克隆项目
git clone https://github.com/SoarCraft/Stable123Keypoints.git cd Stable123Keypoints -
安装依赖
参照
StableImageKeypoints v1.5的依赖安装流程。 -
预处理数据
运行以下命令生成
Zero123Plus的图像抠像结果:python -m datasets.cub_preprocess
-
训练/推理
其余操作步骤与
StableImageKeypoints项目保持一致。
如图所示,在使用 Zero123Plus 模型权重进行训练时,损失函数能够正常收敛,这初步表明模型具备学习能力。
然而,通过对模型被 context 激活后的注意力图进行可视化分析,我们发现了关键性问题:注意力分布呈现发散状态,未能在关键点位置形成预期的集中响应模式。
为排除加载方式的影响,我们进行了以下对比测试:
- 完整加载 Zero123Plus Pipeline: 注意力发散 ❌
- 仅加载 Zero123Plus 权重(不加载 Pipeline): 注意力发散 ❌
- 使用 stable-diffusion-v1-5 权重(相同代码和配置): 关键点提取正常 ✅
在不针对性修改代码的前提下,Zero123Plus 预训练权重无法直接用于关键点提取任务。
尽管模型训练过程中损失函数能够正常收敛,但模型并不对单纯的 context 做出期望的响应。具体表现为:
- ✅ 训练可行性: 损失函数收敛正常
- ❌ 功能有效性: 注意力机制未在关键点位置激活
- ✅ 代码正确性: 相同代码下
SD-1.5权重工作正常
考虑到 Zero123Plus 与 Stable Diffusion v1.5 的模型结构差异较小,我们推断:
Zero123Plus 在预训练过程中引入的特殊操作(如多视角条件注入、参考图注意力等),已经从根本上改变了模型内部权重对 encoder_hidden_states 的处理方式。
这种改变并非简单的特征提取差异,而是涉及到注意力机制的深层重构,使得模型难以像原始 SD 模型那样对纯文本 context 产生空间局部化的响应。
Caution
请勿使用 FP16 精度
使用半精度浮点数会导致显著的精度损失,进而造成模型无法收敛。

