训练 embedding
在模型训练前,先在 Settings 中把 Move VAE and CLIP to RAM……选上,然后点击 Apply settings,使之生效。
在 stable-diffusion-webui 目录内,创建一个名为 train 的文件夹,如下图:
然后在 train 文件夹内,创建两个文件夹,分别为 input 和 output,input 放置要处理的原始图片,output 设置为处理完输出的目录。
把预先截切好的图片放在 input 文件中。
然后在 train Tab 页下,选择 Preprocess images,在 Source directory 中输入 input 路径,在 Destination directory 中输入 output 路径。在下方勾选上 Use BLIP for caption,点击 Preprocess,开始处理图片(注意:用于训练 embedding 的图片,最终需要的是 1:1 的比例)。
我们就可以在 output 文件夹内看到处理的结果了,有图片及 caption 文档。
现在,先创建个 embedding 文件,它会自动保存在文件目录结构的 embedding 文件夹内。
接着,我们就可以开始训练了。
在 Embedding 下拉框中,选择刚才创建好的 embedding。
Learning rate 为学习率,值越高,越容易破坏 embedding。如果在训练信息文本框中看到 Loss:nan,那就意味着失败。一般先默认,等熟悉了再去调整参数。也可以在设置中指定多个学习率:0.005:100, 1e-3:1000, 1e-5,这将在前 100 步使用 0.005 的学习率进行训练,然后在 1000 步之前使用 1e-3,然后在结束时使用 1e-5。
Dataset dictory:用于训练的图像目录,就是我们刚才输出到 output 文件夹中的内容。
Log directory:样本图像和部分训练 embeddings 的副本将被写入此目录,默认不改动。
Prompt template file: 包含提示的文本文件,每行一个,用于训练模型。查看 textual_inversion_templates 目录中的文件,了解使用这些文件可以做什么。在训练风格时使用 style.txt,在训练对象 embedding 时使用 subject.txt。可以在文件中使用以下标签:
● [name]:embedding 的名称
● [filewords]:数据集中图像文件名中的单词。
[Filewords] 是提示模板文件的标签,允许您将文件名中的文本插入到提示中。默认情况下,将删除文件的扩展名以及文件名开头的所有数字和短划线 (-)。所以这个文件名:000001-1-a man in suit.png将变成这个文本的提示:a man in suit。文件名中文本的格式保持不变。
Max steps:完成这么多步骤后,训练将停止。一步是指向模型展示一张图片(或一批图片,但目前不支持批处理),并用于改进 embedding。如果您中断训练并在以后的日期恢复它,则步骤数将被保留。这里设置为 10000 步。
Save an image to log directory every N steps, 0 to disable:每 N 步保存一张图片到 log 记录中。
点击 “Train Embedding” 开始训练。
训练完成后,我们回到 txt2img 界面,在 prompt 框中输入提示词,点击 Generate 下方第三个图标,可在提示词输入框下方展开相关的模型,如 embedding,Hypernetwork,Checkpoint,Lora 等,如下图:
点击我们刚才训练好的 "Keanu_Reeves",它会自动加入到提示框内,点击 Generate 按钮,就可以查看模型训练的效果了。