AI 编译器系列(六)《Stable Diffusion 在 InfiniTensor 推理框架中的适配与工程实践》

AI 编译器系列(六)《Stable Diffusion 在 InfiniTensor 推理框架中的适配与工程实践》 目录Stable Diffusion 介绍Stable Diffusion 概述扩散模型概念Stable Diffusion 架构1. 模块划分2. U-NET结构3. DIT结构工作流1. 文生图2. 图生图3. 图像重绘4. 可控生成Stable Diffusion 在 InfiniTensor 推理框架中的适配推理前准备1. 环境搭建2. 模型下载3. 模型导出为 ONNX 文件4. 模型预处理推理过程结果展示总结本文介绍 Stable Diffusion 的基本概念、工作原理及其在 InfiniTensor 推理框架中的适配。Stable Diffusion 介绍Stable Diffusion 概述•定义基于扩散模型的生成式人工智能技术主要用于文本生成图像支持图像生成图像、局部重绘等多种任务。•特点通过潜在空间逐步去噪将随机噪声还原为高质量图像降低计算成本支持在普通消费级 GPU 上运行。•应用领域艺术创作、游戏与影视、广告设计、科研探索等。扩散模型概念•正向扩散从有序到无序的固定加噪过程由预定义的噪声调度控制。•反向扩散从无序到有序的去噪过程模型学习如何逐步去除噪声。•DDPM论文介绍扩散模型的鼻祖提及正向和反向扩散的步骤数。Stable Diffusion 架构1. 模块划分•文本语义编码将自然语言描述转化为数值表示建立文本与图像的语义对齐。•迭代去噪生成在潜在空间中逐步处理扩散信息通过 U-NETScheduler 结构实现。•空间重建解码使用 VAE Decoder 将潜空间运算结果解码成实际图片。2. U-NET结构3. DIT结构DiT 采用纯 Transformer 结构作为去噪网络与 Stable Diffusion 中常见的 U-Net 架构不同代表了扩散模型在结构设计上的另一条技术路线。工作流1. 文生图2. 图生图• 图像输入通过 VAE Encoder 将输入图像转化为潜变量。• 噪声注入在特定时间步加入高斯噪声。• 迭代去噪复用文生图的去噪过程结合文本条件预测噪声。• 图像生成通过 VAE Decoder 生成新图像。3. 图像重绘4. 可控生成• 控制图提取从输入图像中提取边缘检测图、人体姿态图等控制图。• 条件注入通过零卷积将控制图信息注入到 U-NET 结构中实现语义和结构的双重控制。Stable Diffusion 在 InfiniTensor 推理框架中的适配推理前准备1. 环境搭建2. 模型下载3. 模型导出为 ONNX 文件4. 模型预处理推理过程•1. 输入准备创建批处理输入字典指定prompt、batchsize、steps、guidance scales 等参数。•2. 初始化常量参数从 diffuser 库中获取潜在空间大小、是否做 CFG 操作、潜在空间通道维度等参数。•3. 模型初始化根据配置文件初始化文本编码器、U-NET/DIT 模块、tokenizer、scheduler等。•4. 推理执行• 文本预处理调用文本编码器在部分模型配置下可能包含多个编码器提取文本特征并进行必要的特征对齐。• 时间步生成根据输入步骤数生成时间序列。• 潜在变量初始化随机生成潜在空间变量。• 迭代去噪根据时间步和文本嵌入逐步去除噪声更新潜在变量。• 图像生成通过 VAE Decoder 生成最终图像进行后处理如颜色空间转化和归一化逆变换。结果展示总结本文详细讲述了 Stable Diffusion 的基本概念、工作原理及其在 InfiniTensor 推理框架中的适配过程。通过这节课让大家理解 Stable Diffusion 这一类的模型的整个工作流。