想要从你的机器上生成令人惊叹的 AI 图像吗?你可能知道SD WebUI 或者 comfyUI,如果不想安装这些终端软件,又想快速体验,最快的方式是什么?本次以Stable Diffusion XL为例,它是当前最优秀的本地图像生成器之一,一起快速生成图片吧!
注意:你需要一张良好的显卡。至少需要 4G 的 VRAM;如果有 8G 或更多则效果会更好。
这里将在 Linux 系统上使用 Stable Diffusion XL。如果你使用 WSL,那么在 Mac 或 Windows 上的操作步骤相同。
建立一个 Python 虚拟环境。这有助于管理依赖项并保持项目的整洁。
python -m venv stablediff
激活虚拟环境:
source stablediff/bin/activate
应该在prompt之前看到环境的名称,以确保它已经生效:

接下来,需要安装依赖项:
pip install invisible_watermark transformers accelerate safetensors xformers
最后,安装 diffusers,因为它会降级软件包以确保一切协同工作:
pip install diffusers
现在已经准备好创建你的 Python 文件并生成一些图像了!
创建一个名为 app.py 或者你喜欢的其他名称的文件。
在那个文件中,导入库:
- from diffusers import DiffusionPipeline
- import torch
接下来,初始化 pipeline 来生成图像。将使用 stable-diffusion-xl-base-1.0 预训练模型。
设置数据类型为 float16 以提高内存效率,并启用 safetensors 的使用:
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, use_safetensors=True, variant="fp16")
把 pipeline 发送到 GPU:
pipe.to("cuda")
提供文本提示,发送给模型。prompt提示词可以写任意所希望的内容。
prompt = "A anthropomorphic poodle riding a dirt bike through the forest"
可能想要添加的一件事是启用 transformers 以提高内存效率:
pipe.enable_xformers_memory_efficient_attention()
现在,可以生成图片啦~
images = pipe(prompt=prompt).images[0]
生成图像后,可以将其保存:
images.save("output.png")
现在运行文件并获得一个酷炫的图像!
你应该在提示下看到类似以下的内容:

现在将会生成一张图像(output.png)!

相当惊艳,不是吗?
你可以使用“专家集合”的模式,使用一个基础模型和一个优化器来获得更高质量的图像:
- from diffusers import DiffusionPipeline
- import torch
- # load both base & refiner
- base = DiffusionPipeline.from_pretrained(
- "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16", use_safetensors=True
- )
- base.to("cuda")
- refiner = DiffusionPipeline.from_pretrained(
- "stabilityai/stable-diffusion-xl-refiner-1.0",
- text_encoder_2=base.text_encoder_2,
- vae=base.vae,
- torch_dtype=torch.float16,
- use_safetensors=True,
- variant="fp16",
- )
- refiner.to("cuda")
- # Define how many steps and what % of steps to be run on each experts (80/20) here
- n_steps = 40
- high_noise_frac = 0.8
- prompt = "A anthropomorphic poodle riding a dirt bike through the forest"
- # run both experts
- image = base(
- prompt=prompt,
- num_inference_steps=n_steps,
- denoising_end=high_noise_frac,
- output_type="latent",
- ).images
- image = refiner(
- prompt=prompt,
- num_inference_steps=n_steps,
- denoising_start=high_noise_frac,
- image=image,
- ).images[0]
这会产生一些不错的结果,你可以调整设置来得到更好的效果。

这是我知道的运行 Stable Diffusion XL 最简单、最低成本的方法。如果你愿意,你也可以使用 Stable Diffusion Web UI 或者comfyUI,它提供了易于访问的许多控件,并允许你轻松地切换模型和优化器。
[1] How to Generate AI Images with Stable Diffusion XL in Five Minutes
https://medium.com/generative-ai-today/how-to-generate-ai-images-with-stable-diffusion-xl-in-five-minutes-7a78c57f4be1
更多精彩内容,请关注公众号:AI生成未来

欢迎加群交流AIGC技术,添加小助手
