稳定扩散:使用ONNX运行时和C#生成AI图像

新知榜官方账号

2023-10-04 03:04:31

什么是ONNX运行时?

开放神经网络交换(ONNX)是一种表示AI模型的开源格式。ONNX运行时(ORT)是ONNX模型的运行时,它提供了一个接口,用于加速机器学习模型的消费/推理,与特定于硬件的库集成,以及跨编程语言和框架(如PyTorch、Tensorflow/Keras、scikit)共享模型-learn、ML.NET等。

这意味着你可以:在众多支持ONNX转换的流行机器学习框架之一中训练模型。将你的模型转换为ONNX格式。使用不同于最初训练模型的框架或语言(如C#)加载和使用ONNX模型。

什么是StableDiffusion?

StableDiffusion是一种AI模型,可以根据文本提示生成图像。

StableDiffusion工作原理

尽管稳定扩散背后的理论和创新可能很复杂,但它由相对较少的组件组成。StableDiffusion的主要组成部分是:文本编码器——将文本编码为嵌入;变分自编码器(VAE)–将图像编码和解码为嵌入;U-Net——通常用于图像分割任务的神经网络架构;Scheduler——计算去噪图像嵌入。

在高层次上,使用稳定扩散生成图像的过程包括3个步骤:将文本提示和随机噪声编码为文本和图像嵌入;使用U-Net神经网络和调度程序来减少图像中的噪声(降噪);解码去噪图像。

生成文本和图像嵌入

使用StableDiffusion生成AI图像的第一步是:生成带有随机噪声的图像样本和嵌入。使用ONNX运行时扩展CLIP文本标记器和CLIP嵌入ONNX模型将用户提示转换为文本嵌入。嵌入是文本、图像、音频等信息的数字表示。这种数字表示包含语义。在稳定扩散的情况下,文本和图像被编码到一个嵌入空间中,作为去噪过程的一部分,U-Net神经网络可以理解该嵌入空间。

去噪图像

循环图像和文本嵌入是U-Net模型的初始输入。U-Net模型然后使用文本提示作为条件来降低图像中的噪声(去噪)。然后使用调度程序算法,使用U-Net模型的输出来计算新的图像嵌入。然后将这些新图像嵌入用作U-Net模型的新输入。这个去噪过程重复N步。

解码去噪图像

在图像去噪循环完成后,VAE用于将最终图像嵌入解码回图像。

结束语

现在你已经大致了解了StableDiffusion的工作原理,是时候发挥你的创造力了!要开始使用AI在你的.NET应用程序中生成自己的图像,请查看使用C#和ONNX运行时的推理稳定扩散教程和相应的GitHub存储库。

本页网址:https://www.xinzhibang.net/article_detail-15299.html

寻求报道,请 点击这里 微信扫码咨询

关键词

稳定扩散 ONNX运行时 C# AI图像 机器学习 U-Net

分享至微信: 微信扫码阅读

相关工具

相关文章

相关快讯