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

为了得到新概念s*的embedding v*,需要使用了 3~5 张具有不同的背景或姿态的图像,通过最小化图像重建损失进行优化(类似Latent Diffusion Model的训练)。
L_{LDM} := \mathbb{E}_{z\sim\mathcal{E}(x), y, \epsilon \sim \mathcal{N}(0, 1), t }\Big[ \Vert \epsilon - \epsilon_\theta(z_{t},t, c_\theta(y)) \Vert_{2}^{2}\Big]

2. 到哪里找现成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])。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容