OpenVINO™ 助你在英特尔 ®GPU 上随心创作

openlab_4276841a 更新于 1年前

作者:武卓

注:它也可在 CPU 上运行! :)

最近,AIGC(即AI Generated Content,是指利用人工智能技术来生成内容)真的是火出了天际。除了被挤到服务器满负荷的chatGPT,另一个也颇受瞩目的领域当属AI作画了。利用开源的一类“扩散(diffusion)”模型,你可以随时用AI进行绘画创作。这么火爆的扩散模型,我们的OpenVINO™当然也是可以对它进行优化,并在英特尔® GPU上进行画作生成的加速的。具体怎么操作呢?全部的代码我们仍然开源在OpenVINO Notebooks仓库中,具体可参考(https://github.com/openvinotoolkit/openvino_notebooks/tree/main/notebooks/225-stable-diffusion-text-to-image)。那么接下来,我们就为大家划划重点,一起来看看有哪些重要的步骤、以及生成的画作效果如何吧。

在这个代码示例中,我们采用了Stable Diffusion模型,将模型转换为 OpenVINO 中间表示 (IR) 格式,以便它在英特尔® GPU 上获得高效运行。另外,通过将 FP32 模型压缩到 FP16,我们将模型大小减少了一半(接近一半),而且运行所需的 RAM/VRAM 现在也少了很多。最重要的是,由于加入了英特尔® Xe 矩阵扩展(XMX),GPU 处理速度也获得了显著提升。

以下是我运行这个 Notebook 得到的一些结果,非常有趣。借助英特尔锐炫™ A770m独立显卡,我可以实现大约每秒 6.0 次的迭代(未使用调试模式)。这意味着生成一幅下面的高质量图像通常只需不到 10 秒钟。

图1(a-c)在基于 OpenVINO Notebooks 和英特尔锐炫™ A770m 的平台上,通过“Stable Diffusion”模型文本转图像功能生成的结果。

除了由文本生成图像进行AI作画,我们的代码示例还包括了图像转图像示例,可以将照片转为水彩画。

看完了以上的AI作画的结果,你有没有心动、想自己动手试试呢?接下来,我们来看看你需要哪些主要步骤,就能在自己的机器上运行我们这个Stable Diffusion的notebook代码示例了。

首先,这是 OpenVINO Notebooks的仓库。它具有您今天完成演示所需要的一切。

openvino_notebooks/notebooks at main · openvinotoolkit/openvino_notebook****>

如果您希望只启动一个 notebook,如 Monodepth notebook,请运行以下命令。在浏览器中,选择...

github.com

Stable Diffusion位于 225-stable-diffusion-text-to-image 文件夹下

在notebook代码示例 中,我们不仅介绍了著名的文本转图像管道,还加入了图像转图像生成管道。但它的真正意义是什么?我们如何运行它?

管道


如何安****>

如需安装 OpenVINO Notebooks,您可参照此处的说明(适用于 Windows):https://github.com/openvinotoolkit/openvino_notebooks/wiki/Windows

如果您是 Linux 用户,可点击此链接:https://github.com/openvinotoolkit/openvino_notebooks/wiki/Ubuntu

总体而言,您可实施以下几步。

安装 Python 3.10.x。(或下方内容)并创建一个虚拟环境

python3 -m venv openvino_env
source openvino_env/bin/activate #for linux


对目录实施 Git 克隆

git clone --depth=1 https://github.com/openvinotoolkit/openvino_notebooks.git
cd openvino_notebooks


安装所有的库和依赖项

pip install -r requirements.txt


运行 Jupyter Notebook

jupyter lab notebooks

运行所有单元格并等待 =)


现在,查看代码。我们切实地优化 PyTorch 管道,并使用 OpenVINO 执行代码。


首次下载和转换可能需要一点时间。完成之后,您将得到一组 IR 文件。为了方便,我已在这里将这些预训练的优化模型更新到 huggingface(https://huggingface.co/bes-dev/stable-diffusion-v1-4-openvino),大家可以直接下载使用

bes-dev/stable-diffusion-v1-4-openvino at main

我们正通过开源和开放科学推动人工智能的发展和普及。

huggingface.co


现在,如果您有幸使用英特尔锐炫™独立显卡,您便可将下图中设备名称的代码改为“GPU”。默认情况下,它使用“ AUTO”,并会自动切换至检测到的 GPU。

让它在 GPU 上运行

自动插件。它先使用 CPU,然后自动切换至 GPU。


在这一步中,我把步骤设置为 30。理想情况下,我将使用 50,以提供最好看的结果。通过修改输入文本,您可以在这里生成不同的场景。如果想得到非常酷的图像,您可以试试社区整理的一些实用提示。https://mpost.io/best-100-stable-diffusion-prompts-the-most-beautiful-ai-text-to-image-prompts/

最后,我们还生成了 GIF 文件,以便您可视化展示各步骤的情况。

最终结果。


图像转图像管道

现在,如果继续运行 notebook,您会看到我们也可以使用提示来“影响”最终图像的显示效果。我们在此处提供了一个将照片转换为水彩画的示例。

根据初始图像和提示生成图像。这样可得出基于指导的结果。

图像转图像结果。


结论

当下,如果您想了解“Stable Diffusion”的工作原理,以及英特尔硬件的加速方式,OpenVINO Notebooks 无疑是首选。如果您有任何疑问或想要展示您的一些最佳成果,请在这里或通过我们的 GitHub 讨论板发表评论! 祝您编码快乐。

https://github.com/openvinotoolkit/openvino_notebooks/discussions
#iamintel

0个评论