Textual Inversion:三五张图让StableDiffusion换画风

参考:How to use embeddings in Stable Diffusion

Embedding指的是Textual Inversion(TI)的结果,能用于让Stable Diffusion(SD)绘制新物体,或是新画风(画风相较于HyperNetwork学习能力较差。

1. Embedding是什么

Embedding指的是TI的结果。TI能在不修改模型的情况下给模型定义新的关键词。它吸引人的点在于:只用三五张图片就能够给模型“注入”新风格、新物体

1.1 Textual Inversion为什么有效

让SD画出新物体或者新风格,这其他微调方法也能做到。TI的惊人之处在于它在不修改模型的情况下做到这点。论文中对TI的工作流程图示如下。

通过textual inversion为新token S*找到新embedding

新物体/画风定义模型中没出现过的新关键词。就像prompt中的其他关键字一样,这个新关键字会被转化为token(数值)。每个token会被转换为唯一的embedding,以用于图像生成。
TI能用已知的词汇贴切地描述一个新概念,找到最能代表新关键字的embedding,而无需更改模型的任何部分。

1.2 Embedding的举例:

告诉模型什么是“toy cat”


利用已知的boat、backpack等概念描述toy cat

1.3 怎么得到新Embedding(还没看完)

详见paper。

为了得到新概念的embedding ,需要使用了 3~5 张具有不同的背景或姿态的图像,通过最小化图像重建损失进行优化(类似Latent Diffusion Model的训练)。

2. 到哪里找现成Embedding

  • HuggingFace的Stable Diffusion Concept Library中有大量自定义关键词的Embedding。
  • Civtai上搜textual inversion也能找到Embedding。

3. 如何使用Embedding

  • 在线接口
    Stable Diffusion Conceptualizer :无需下载,就能试用Embedding
    (这里的Embedding不能在别的模型上用)
  • 在stable-diffusion-webui中使用
    从 Concept Library下载Embedding并重命名为关键字(例如,marc_allante一种画风),放在stable-diffusion-webui/embeddings文件夹。
    重启会看到Loaded a total of 1 textual inversion embeddings.
    prompt中添上(marc_allante:1.2)就能绘制该风格的图了。
    注意
    1. prompt中的关键字错一个字符就会让Embedding失效
    2. SD v1和v2的Embedding是不互通的
    3. 可以用(keyword:weight)的形式控制关键词强度(详见各种prompt技巧),关键词强度可以是负值(等同于方括号[unwated objects])。

你可能感兴趣的:(Textual Inversion:三五张图让StableDiffusion换画风)