除了SD Web UI 或comfyUI,还有更简单的运行SDXL的方法吗?

想要从你的机器上生成令人惊叹的 AI 图像吗?你可能知道SD WebUI 或者 comfyUI,如果不想安装这些终端软件,又想快速体验,最快的方式是什么?本次以Stable Diffusion XL为例,它是当前最优秀的本地图像生成器之一,一起快速生成图片吧!

注意:你需要一张良好的显卡。至少需要 4G 的 VRAM;如果有 8G 或更多则效果会更好。

这里将在 Linux 系统上使用 Stable Diffusion XL。如果你使用 WSL,那么在 Mac 或 Windows 上的操作步骤相同。

步骤 1:创建 Python 虚拟环境

建立一个 Python 虚拟环境。这有助于管理依赖项并保持项目的整洁。

python -m venv stablediff

激活虚拟环境:

source stablediff/bin/activate

应该在prompt之前看到环境的名称,以确保它已经生效:

步骤 2:安装依赖项

接下来,需要安装依赖项:

pip install invisible_watermark transformers accelerate safetensors xformers

最后,安装 diffusers,因为它会降级软件包以确保一切协同工作:

pip install diffusers

现在已经准备好创建你的 Python 文件并生成一些图像了!

步骤 3:创建一个简单的生成器

创建一个名为 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")

步骤 4:运行它!

现在运行文件并获得一个酷炫的图像!

你应该在提示下看到类似以下的内容:

现在将会生成一张图像(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技术,添加小助手

  • 22
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值