• 除了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 或者你喜欢的其他名称的文件。

    在那个文件中,导入库:

    1. from diffusers import DiffusionPipeline
    2. 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.float16use_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)!

    相当惊艳,不是吗?

    使用基础模型和优化器

    你可以使用“专家集合”的模式,使用一个基础模型和一个优化器来获得更高质量的图像:

    1. from diffusers import DiffusionPipeline
    2. import torch
    1. # load both base & refiner
    2. base = DiffusionPipeline.from_pretrained(
    3.     "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16, variant="fp16"use_safetensors=True
    4. )
    5. base.to("cuda")
    6. refiner = DiffusionPipeline.from_pretrained(
    7.     "stabilityai/stable-diffusion-xl-refiner-1.0",
    8.     text_encoder_2=base.text_encoder_2,
    9.     vae=base.vae,
    10.     torch_dtype=torch.float16,
    11.     use_safetensors=True,
    12.     variant="fp16",
    13. )
    14. refiner.to("cuda")
    15. # Define how many steps and what % of steps to be run on each experts (80/20) here
    16. n_steps = 40
    17. high_noise_frac = 0.8
    18. prompt = "A anthropomorphic poodle riding a dirt bike through the forest"
    19. run both experts
    20. image = base(
    21.     prompt=prompt,
    22.     num_inference_steps=n_steps,
    23.     denoising_end=high_noise_frac,
    24.     output_type="latent",
    25. ).images
    26. image = refiner(
    27.     prompt=prompt,
    28.     num_inference_steps=n_steps,
    29.     denoising_start=high_noise_frac,
    30.     image=image,
    31. ).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技术,添加小助手

  • 相关阅读:
    科技的成就(三十)
    人体神经元细胞模式图示,神经元细胞结构模式图
    网络安全的基本概念
    美国马萨诸塞大学研究小组联合发现新晶体管潜在材料!
    nmake简介
    【Python Web】Flask框架(一)快速开发网站
    区块链,得这样练
    Chrome 跨域问题CORS 分析
    SpringSecurity入门到精通
    核心内参: TDR原理及常见问题
  • 原文地址:https://blog.csdn.net/AIGCer/article/details/136796846