Stable Diffusion 是一种基于深度学习的图像生成技术,能够根据用户提供的文本描述生成图像。它通过训练大量的图像和文本数据,建立一个复杂的神经网络模型,该模型能够理解和生成图像。用户输入的文本描述会被模型解析,并转化为图像生成的指令,从而生成图像。Stable Diffusion 的应用范围非常广泛,不仅可以用于个人创作,还可以用于商业广告、电影制作、游戏开发等领域。它的出现改变了图像生成的方式,使得创作过程更加高效和便捷。随着技术的不断发展,Stable Diffusion 将会在更多领域发挥作用,成为图像生成技术的重要工具。
本文章主要介绍如何使用Stable Diffusion模型进行文本生图,如何配置QAI AppBuilder工具及环境。包括了应用中准备需要处理词汇类型介绍,下载Stable Diffusion模型后如何运行文本生图应用,以及如何启动文生图的Webui应用。通过这些步骤,可以更加熟悉地使用Stable Diffusion模型并进行文生图相关的操作。
前置条件
- 高通 Windows on Snapdragon
- 各平台账号,包括:GitHub、高通 Software Center
操作方法及步骤
1. 快捷使用stable_diffusion文本生成图像应用
- Stable Diffusion v1.5 和 Stable Diffusion v2.1
Stable Diffusion v1.5 和 v2.1 是两个版本的文本生成图像模型,它们在多个方面有所不同。
共同点:两个版本都使用深度生成神经网络,通过去噪与随机噪声生成由文本编码器指导的高质量图像,旨在帮助用户快速生成艺术作品。
区别:v1.5 使用预训练的 CLIP ViT-L/14 文本编码器,而 v2.1 使用 OpenCLIP 文本编码器;v2.1 采用改进的潜在扩散模型,具有两个潜在空间,并使用更广泛和多样化的数据集进行训练,支持更高分辨率和极端纵横比。
用途:v1.5 适用于需要生成高分辨率图像的用户,特别是那些对文本编码器要求较低的应用场景;v2.1 适用于需要更高图像质量、更广泛分辨率支持和更强控制能力的用户,特别是那些需要生成自然景观、人物和流行文化相关图像的应用场景。
优缺点:v1.5 成熟的模型,生成高分辨率图像,但控制能力较弱,支持的分辨率和纵横比较少;v2.1 更高的图像质量,支持负面和加权提示,支持非标准分辨率和极端纵横比,但可能需要更多的计算资源,模型复杂度更高。
模型运行需要依赖Python及QNN环境,需要注意的是,该模型目前仅支持QNN2.24的版本,确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:QAI-AppBuilder快速上手及环境配置
- 打开Powershell终端,在Python虚拟环境中执行运行命令:
- stable_diffusion_v1_5
python stable_diffusion_v1_5\stable_diffusion_v1_5.py --prompt "A big mountain ..."
--prompt:指令参数;需要输入的提示词、文本信息

输出结果:

python stable_diffusion_v2_1\stable_diffusion_v2_1.py --prompt "A big mountain ..."
--prompt:指令参数;需要输入的提示词、文本信息
输出结果:

2. Webui 配置及使用文生图应用
确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:QAI-AppBuilder快速上手及环境配置
- 打开Powershell终端,在Python虚拟环境中执行以下命令安装gradio库:
pip install gradio
- 进入ai-engine-direct-helper\samples\webui目录
cd ai-engine-direct-helper\samples\webui
python StableDiffusionApp.py

运行脚本后,文生图应用会在浏览器中自动启动

提示词 [Prompt]:
提示词指的是希望生成的图片内容中所包含的词汇。
负向提示词 [Negative Prompt]:
“负向词”通常指的是在情感分析或自然语言处理(NLP)中用于识别负面情感或情绪的词汇。而在文生图的应用中,这里表示了被视为不适合的词汇。例如,如果希望生成一个自然风景的图像,可能就会排除“paint”或“picture”,因为它们可能会导致生成的图像看起来像绘画或照片,而不是自然风景。
迭代步数:
迭代步数指的是模型在生成图像时进行的优化步骤数量。更多的迭代步数通常会导致更高质量的图像,因为模型有更多的时间来细化和优化图像细节。然而,更多的迭代步数也会增加计算时间。常见的迭代步数范围是 50 到 1000 步,具体选择取决于生成图像的复杂性和质量要求。
文本指导:
文本指导是输入给模型的文本描述,用于指导图像生成。这个文本描述应该尽可能详细和具体,以便模型能够准确理解并生成符合预期的图像。例如,描述可以包括场景、对象、颜色、风格等细节。
随机数种子:
随机数种子用于控制生成图像的随机性。使用相同的种子值可以确保每次生成的图像一致,而不同的种子值会导致不同的图像。设置随机数种子有助于在重复实验中获得可重复的结果。
图片数量:
图片数量指的是一次生成的图像数量。可以指定生成多张图像,以便选择最符合预期的图像。生成多张图像也有助于比较不同的结果,选择最佳图像。
提示词: A mountain, a meadow, a tent, a white dog running, in high resolution, 4K
负向提示词: paint, picture


作者:
赵世朝(Shizhao Zhao),高通工程师