InstanceDiffusion 使用教程
项目介绍
InstanceDiffusion 是一款在 CVPR 2024 上即将发表的技术,它为文本到图像的扩散模型增添了精确的实例级控制能力。该模型支持每个实例的自由形式语言条件,并允许灵活地指定实例位置,包括简单的单点、草图、边界框或复杂的实例分割掩模及其组合。与之前的状态-of-the-art(SOTA)方法相比,InstanceDiffusion 在基于框输入的AP50上实现了超过2.0倍的提高,在基于掩模输入的IoU上提高了约1.7倍。
本仓库由第一作者在UC Berkeley期间重现实现了InstanceDiffusion,旨在复现原始论文发现并为学术研究提供资源。请注意,与原论文结果可能存在细微性能差异,主要适用于学术和研究用途。
项目快速启动
环境准备
确保您的系统是Linux或macOS,并且Python版本≥3.8。您需要安装PyTorch≥2.0及配套的torchvision库,推荐通过pytorch.org一起安装以匹配版本。OpenCV≥4.6对于演示和可视化功能是必需的。
conda create --name instdiff python=3.8 -y
conda activate instdiff
pip install -r requirements.txt
运行示例
为了快速体验InstanceDiffusion,您需下载预训练模型并存放在pretrained文件夹下。之后,运行以下命令来生成图像:
python inference.py \
--num_images 8 \
--output OUTPUT/ \
--input_json demos/demo_cat_dog_robin.json \
--ckpt pretrained/instancediffusion_sd15.pth \
--test_config configs/test_box.yaml \
--guidance_scale 7.5 \
--alpha 0.8 \
--seed 0 \
--mis 0.36 \
--cascade_strength 0.4
记得将demo_cat_dog_robin.json替换为您感兴趣的场景配置文件,参数可以根据需要调整。
应用案例和最佳实践
InstanceDiffusion的应用范围广泛,支持从整个实例到部分甚至子部分的图像合成,允许对对象的整体姿态进行隐式调整。例如,使用单一点作为引导,可以生成特定位置的物体图像;通过迭代生成,可以在不改变背景的情况下增删、修改实例的位置或大小。
-
单点生成: 利用单个点定位来生成指定位置的图像。
python inference.py \ --test_config configs/test_point.yaml \ ... -
迭代生成: 重复利用初始噪音和图像描述,逐步增加或调整实例。
-
细节控制: 用户可以基于不同的输入JSON文件,实现更复杂场景的自定义生成。
典型生态项目
InstanceDiffusion在社区中已得到一定应用,比如集成到ComfyUI平台,展示了其在不同应用场景中的灵活性和潜力。开发者和研究人员可以通过定制化的配置文件和数据集,探索更多创造性应用,推动图像生成技术向前发展。虽然本仓库直接聚焦于InstanceDiffusion的实现和实验,但其理念和技术可被融合至更广泛的生成式AI项目中,促进AI艺术创作、产品设计等领域的发展。
本教程提供了InstanceDiffusion的基本操作指南,旨在帮助用户快速上手并深入探索其实力。记住,不断试验不同的配置和案例,能够解锁更多创意可能。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0131
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
AgentCPM-ReportAgentCPM-Report是由THUNLP、中国人民大学RUCBM和ModelBest联合开发的开源大语言模型智能体。它基于MiniCPM4.1 80亿参数基座模型构建,接收用户指令作为输入,可自主生成长篇报告。Python00