Custom Diffusion 项目使用教程
1. 项目介绍
Custom Diffusion 是一个用于多概念定制文本到图像扩散模型的开源项目,由 Adobe Research 开发。该项目在 CVPR 2023 上发布,旨在通过少量图像(约4-20张)对预训练的文本到图像扩散模型(如 Stable Diffusion)进行微调,从而生成新的概念图像。Custom Diffusion 通过仅微调模型中的关键和值投影矩阵,显著减少了计算时间和存储需求,同时支持多概念的组合使用,如新对象与新艺术风格的结合。
2. 项目快速启动
2.1 环境准备
首先,确保你已经安装了必要的依赖项。你可以使用以下命令克隆项目并设置环境:
git clone https://github.com/adobe-research/custom-diffusion.git
cd custom-diffusion
git clone https://github.com/CompVis/stable-diffusion.git
cd stable-diffusion
conda env create -f environment.yaml
conda activate ldm
pip install clip-retrieval tqdm
2.2 下载预训练模型
下载 Stable Diffusion 的预训练模型:
wget https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
2.3 单概念微调
使用真实图像作为正则化样本进行微调:
# 下载数据集
wget https://www.cs.cmu.edu/~custom-diffusion/assets/data.zip
unzip data.zip
# 运行训练(需要2个GPU,每个30GB)
bash scripts/finetune_real.sh "cat" data/cat real_reg/samples_cat cat finetune_addtoken.yaml <pretrained-model-path>
# 保存更新后的模型权重
python src/get_deltas.py --path logs/<folder-name> --newtoken 1
# 生成样本
python sample.py --prompt "<new1> cat playing with a ball" --delta_ckpt logs/<folder-name>/checkpoints/delta_epoch\=000004.ckpt --ckpt <pretrained-model-path>
3. 应用案例和最佳实践
3.1 单概念定制
通过提供少量图像(如4-20张),用户可以微调 Stable Diffusion 模型,生成特定概念的新图像。例如,用户可以提供几张猫的图像,微调模型后生成不同背景和场景下的猫的图像。
3.2 多概念定制
Custom Diffusion 支持多概念的组合使用。例如,用户可以同时微调一个新对象(如猫)和一个新艺术风格(如木雕),生成具有木雕风格的猫的图像。
3.3 优化权重合并
用户可以通过优化权重合并两个微调后的模型,生成结合两个概念的图像。例如,合并一个微调后的猫模型和一个微调后的木雕模型,生成具有木雕风格的猫的图像。
4. 典型生态项目
4.1 Stable Diffusion
Stable Diffusion 是一个开源的文本到图像扩散模型,Custom Diffusion 基于此模型进行微调。Stable Diffusion 提供了强大的图像生成能力,Custom Diffusion 在此基础上进一步扩展了定制化的功能。
4.2 Diffusers
Diffusers 是一个用于扩散模型的库,支持多种扩散模型的训练和推理。Custom Diffusion 的训练和推理代码也基于 Diffusers 库,用户可以通过 Diffusers 进行更高级的定制和优化。
4.3 Hugging Face Transformers
Hugging Face Transformers 是一个广泛使用的自然语言处理库,支持多种预训练模型的加载和使用。Custom Diffusion 的预训练模型可以通过 Hugging Face Transformers 进行加载和管理。
通过结合这些生态项目,用户可以更灵活地使用 Custom Diffusion,实现更复杂的图像生成任务。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00