前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >什么是 Stable Diffusion 的负面词汇

什么是 Stable Diffusion 的负面词汇

原创
作者头像
编程扫地僧
发布2025-01-20 11:29:05
发布2025-01-20 11:29:05
10200
代码可运行
举报
文章被收录于专栏:人工智能人工智能
运行总次数:0
代码可运行

在使用 Stable Diffusion 等生成式模型时,负面词汇(Negative Prompts)是一个至关重要但经常被低估的工具。负面词汇指的是输入给模型的反向描述,用来抑制或排除某些不想要的特性。这一工具为生成式模型的输出结果提供了更多的可控性,让用户能够更加精确地塑造生成的内容。

顾名思义,负面词汇是与正面提示(Positive Prompts)相对的概念。正面提示用于描述用户希望生成的内容,而负面词汇则用来明确排除模型生成中的某些特性或风格。

例如,当我们希望生成一幅明亮的、快乐的插画时,可以使用负面词汇功能,指定诸如 dark(黑暗的)、gloomy(阴郁的)等特性。如此一来,模型生成的图片里,会降低出现这些负面词汇所代表的图片特征。

在技术实现上,负面词汇的作用是通过调整生成模型的噪声分布来影响最终结果。在扩散模型的反向过程(从噪声逐步生成清晰图像)中,正面提示和负面提示共同影响着去噪的权重。具体而言:

  • 正面提示对生成过程施加了吸引力,向目标特性靠拢。
  • 负面提示则是一种排斥力,避免生成目标偏离预期。

这些提示通过对文本嵌入(Text Embeddings)进行调整,改变了潜在空间(Latent Space)中的分布,从而影响最终输出。

举个例子,假设我们希望生成一幅森林中的精灵的插画。

  • 正面提示a beautiful forest fairy, glowing, vibrant colors, detailed
  • 负面提示blurry, dark, low quality, distorted anatomy, monochrome

如果没有负面提示,模型可能会生成以下结果:

  • 精灵的脸部可能略显模糊。
  • 图像可能带有不必要的阴影,整体显得偏暗。
  • 颜色可能缺乏层次感,甚至出现单一色调。

加入负面提示后,生成结果可能会更清晰明亮,且符合预期。

以下是一个基于 Stable Diffusion 的代码示例,展示如何使用负面词汇来提升生成质量:

代码语言:python
代码运行次数:0
复制
from diffusers import StableDiffusionPipeline
import torch

# 加载模型
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5")
pipe.to("cuda")

# 正面提示和负面提示
positive_prompt = "a beautiful forest fairy, glowing, vibrant colors, detailed"
negative_prompt = "blurry, dark, low quality, distorted anatomy, monochrome"

# 生成图像
def generate_image(positive_prompt, negative_prompt, seed=42):
    generator = torch.manual_seed(seed)
    image = pipe(
        prompt=positive_prompt,
        negative_prompt=negative_prompt,
        guidance_scale=7.5,  # 越高越倾向正面提示
        num_inference_steps=50,  # 生成步骤
        generator=generator
    ).images[0]
    return image

# 保存结果
image = generate_image(positive_prompt, negative_prompt)
image.save("forest_fairy.png")

上述代码中,negative_prompt 用于精细控制生成结果的特性,确保图像符合用户的期望。

一个很典型的使用 Stable Diffusion 生成人物插画的场景中,我们会经常发现,模型在生成复杂动作场景时,往往会出现解剖学错误,例如人物的手指或关节位置异常。

通过加入以下负面提示:

distorted anatomy, extra fingers, missing limbs

可以显著提升了插画的质量,使得生成的人物动作更加自然协调。

当然在使用负面词汇时,也要注意避免踩坑,最好遵循下面这些原则:

  • 具体化:避免使用笼统的描述词,例如 badpoor,而是明确具体的特性,例如 low resolution, artifacts, wrong proportions
  • 实验与调整:不同的正面提示可能需要不同的负面提示来进行配合,因此需要多次实验,找到最优组合。
  • 理解权衡:过多的负面词汇可能会让模型生成的结果失去创意和多样性,保持适当的平衡尤为重要。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档