作者: 段忠杰、刘冰雁、汪诚愚、邹心怡、黄俊
概述
在过去几年中,随着AI生成内容(AI Generated Content,AIGC)的快速发展,Stable Diffusion模型在该领域崭露头角。阿里云机器学习PAI团队为推动这一领域的发展,参考了Stable Diffusion的模型结构,结合中文语言的特点,通过大量对模型预训练数据的处理和过滤,以及训练过程的优化,提出了PAI-Diffusion中文文图生成模型,实现了图像生成质量的大幅提升和风格多样化。PAI-Diffusion模型的Pipeline不仅包含了标准的Diffusion Model,还集成了中文CLIP跨模态对齐模型,使得模型能够生成符合中文文本描述的各种场景下的高清大图。此外,我们也推出了PAI的自研Prompt美化器BeautifulPrompt,赋能Stable Diffusion类应用一键出美图。
我们在这次的工作中,将PAI-Diffusion中文模型家族扩展到多种应用场景,支持文生图、文图生图、图像修复、LoRA、ControlNet等多种常见功能。为了更好地与开源社区互动,我们将12个PAI-Diffusion中文模型(包括基础模型、LoRA、ControlNet等)全部开源,并支持用户自由下载和使用,与开发者一起共同推动AI生成内容技术的发展,创造出更有创意和影响力的作品。此外,PAI-Diffusion中文模型对应两个推理工具也在开源社区推出。其中,Chinese Diffusion WebUI作为Stable Diffusion WebUI的插件与PAI-EAS无缝兼容,支持5分钟内一键在PAI-EAS拉起中文AIGC应用;Diffusers-API也完美支持中文模型的快速部署和推理。
在下文中,我们详细介绍PAI-Diffusion中文模型家族及其工具Chinese Diffusion WebUI和Diffuser-API的使用。
多场景的PAI-Diffusion中文模型家族
我们利用海量中文图文对数据,训练了如下12个模型,包括基础模型、LoRA、ControlNet等,模型列表如下:
上述所有模型都可以在我们的Hugging Face Space进行下载,我们的模型也可以通过ModelScope进行调用。模型生成的效果如下所示:
下面给出了三个PAI-Diffusion中文模型的应用场景:
应用场景一:输入草稿图和对应的Prompt,生成精细的艺术图画。
应用场景二:污染破损的古诗词绘画图像的修复,即image in-painting。
应用场景三:为国风游戏绘制中国古代室内场景。
为了尽可能提升模型输出图像的质量,我们搜集海量开源的图文对数据集,包括大规模中文跨模态预训练数据集WuKong、大规模多语言多模态数据集LAION-5B等。此外,我们也搜集了大量不同领域、不同场景的数据集,用于扩展PAI-Diffusion中文模型家族的应用场景。我们针对图像和文本进行了多种清洗方式,筛选掉低质量数据。具体的数据处理方式包括NSFW(Not Safe From Work)数据过滤、水印数据去除,我们也使用CLIP分数和美观值分数评分,过滤CLIP分数和美观值分数较低的数据,保证生成图像的语义一致性和质量。为了适配中文语义场景,我们的CLIP Text Encoder采用EasyNLP自研的中文CLIP模型(https://github.com/alibaba/EasyNLP)进行建模,使得模型更懂中文语言。
PAI-Diffusion中文模型部署工具
本节详细介绍PAI-Diffusion中文模型对应的两个开源工具。Chinese Diffusion WebUI作为插件与PAI-EAS无缝兼容,支持5分钟内一键拉起中文AIGC应用;Diffusers-API通过API形式支持中文模型的快速部署和推理。
Chinese Diffusion WebUI
由于Stable Diffusion WebUI无法原生支持中文模型,我们开发了Chinese Diffusion WebUI,作为Stable Diffusion WebUI的插件提供给用户。它提供了图形划的用户界面,使用户(尤其是没有编程经验的设计师)可以使用PAI-Diffusion中文模型的多种功能,例如文生图、图生图、图像风格迁移、图像编辑等。Chinese Diffusion WebUI的界面如下图所示:
为了方便用户在PAI-EAS上使用Chinese Diffusion WebUI,我们的插件也支持了两种模式:单机版本和集群版本,用户可以根据需求和资源选择不同的模式。在单机版中,用户在独占的节点上使用Chinese Diffusion WebUI,特别方便个人设计师的使用。集群版利用PAI的弹性推理服务,实现并行处理,高效利用和共享计算资源,从而实现了更高的资源利用率。
此外,Chinese Diffusion WebUI也可以在非PAI-EAS环境下使用,用户只需要在下载Chinese Diffusion WebUI插件,放置在标准Stable Diffusion WebUI的插件目录下就可以实现本地的使用了。
Diffusers-API
Diffusers-API是阿里云机器学习PAI团队开源的、基于Diffusers的文图生成云服务SDK。用户可以直接基于本项目提供的镜像,在PAI-EAS上部署各种Diffusion相关服务,例如文生图、图生图、LoRA、ControlNet等。Diffusers-API还基于PAI-Blade对模型进行了推理优化,降低推理流程的端到端延迟 2.3 倍,同时可显著降低显存占用,超过TensorRT-v8.5等业内SOTA优化手段。
在Diffusers-API中,我们使用StableDiffusionLongPromptWeightingPipeline作为默认的推理接口,以支持带有权重的、无长度限制的英文Prompt。然而,Diffusers默认的推理接口无法无缝支持中文文本的处理。我们扩展了StableDiffusionLongPromptWeightingPipeline,根据载入模型的Text Encoder,自动检测语言,并且进行适配,使得无需修改Diffusers-API的任何接口的条件下,支持社区Stable Diffusion和PAI-Diffusion中文模型的一键部署,其HTTP请求体示例如下:
{
"task_id" : "001",
"prompt": "一只可爱的小猫咪",
"negative_prompt": "模糊",
"cfg_scale": 7,
"steps": 25,
"image_num": 1,
"width": 512,
"height": 512,
"use_base64": True
}
部署PAI-Diffusion中文模型的步骤详见这里。
总结
通过先前的PAI-Diffusion中文模型的开源,我们成功提升了图像生成质量和风格多样化,并实现了中文文本描述下各种场景的高清大图生成。此外,我们还推出了自研的Prompt美化器BeautifulPrompt,为Stable Diffusion类应用提供了一键美图的能力。在本次的工作中,我们不仅将PAI-Diffusion中文模型家族扩展到多种应用场景,还全面开源了12个PAI-Diffusion中文模型,包括基础模型、LoRA、ControlNet等。我们的工作希望为开发者们提供更多的创作可能性和创新机会,共同推动AI生成内容技术的发展,创造出更有创意和影响力的作品。此外,我们还推出了两个开源工具,Chinese Diffusion WebUI和Diffuser-API,提供便捷的使用体验。Chinese Diffusion WebUI作为插件与PAI-EAS无缝兼容,支持用户在5分钟内快速搭建中文AIGC应用;而Diffusers-API则完美支持中文模型的快速部署和推理。我们期待与开发者们共同推动AI生成内容技术的前进。