中文Stable Diffusion模型太乙使用教程

中文Stable Diffusion模型太乙使用教程

太乙模型介绍

在线体验地址: http://taiyi.aiartwork.online/

  • 太乙模型,首个开源的中文Stable Diffusion模型,基于0.2亿筛选过的中文图文对训练。

生成内容一直被视为 AI 领域中最具有挑战性的能力,最近大火的 AI 绘画背后,是 Stable Diffusion 模型的开源,催生了众多 AI 绘画的应用,得益于 Stability AI 的开源精神,这一创变推动了整个以英文为主的下游文生图生态的蓬勃发展。

然而在国内,目前大部分团队主要是基于翻译 API + 英文 stable diffusion 模型进行开发,但由于中英文之间所得存在文化差异导致遇到中文独特的叙事和表达时,这种模型就很难给出正确匹配的图片内容。因此,IDEA 研究院认知计算与自然语言研究中心(IDEA CCNL)开源了第一个中文版本的 stable diffusion 模型”太乙 Stable Diffusion”,让中文的世界真正拥有具备中国文化内核的 AIGC 模型。

入门手册(如何写一个优秀的提示词)

avatar

avatar

懒人简洁版

提示词 Prompt:

不能出现中文的标点符号,比如中文的逗号,中文句号。并且需要赋予这幅画某种属性。

如:长河落日圆, 4k壁纸

反向提示词 Negative prompt:

一些负面词汇

通用反向提示词:广告, ,, !, 。, ;, 资讯, 新闻, 水印
画幅大小设置为512×512最佳。

一些基础准备

以下实验的随机种子均为:1419200315

avatar

一个逗号引发的水印

我们来看看什么都不改会是咋样的。

日出,海面上
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

可以看到,其实是会出现水印,以及画幅不满的问题的。

avatar

那我们把中文逗号换成英文逗号呢?

日出, 海面上
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

!!!神奇的事情出现了,水印消失了!

会不会是标点符号的问题?所以我在上述是英文逗号的基础下,添加一个中文的句号作为结尾。

avatar

没错,神奇的事情出现了,水印回来了,而且位置一模一样。

我甚至可以弄出更多的水印,比如加中文的感叹号。

日出, 海面上!
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

所以,一个重要的结论为,中文的标点符号是和水印有着某种强相关的联系的!

因此,我们输入提示词时,应该不用任何中文标点符号。

反向prompt negative

基本上就是把一些不好的词全加进去。

我们的原图为:

日出, 海面上
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

日出, 海面上
Negative prompt: 广告
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

加上了广告之后,画面的表现力要好一些,比如图5的山的轮廓更好了。

根据之前的一些经验,把中文标点都放上去

日出, 海面上
Negative prompt: 广告, ,, !, 。, ;
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

细节更多了点

日出, 海面上
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

所以,我们的反向提示词选择: 广告, ,, !, 。, ;, 资讯, 新闻, 水印

赋予某种属性(4k壁纸, 插画, 油画等)消除白边

我们的原图为:

日出, 海面上
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

我们添加了某种属性,比如 4k壁纸 之后:

4k壁纸

日出, 海面上, 4k壁纸
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

interesting!图3的白边不见了!

一个可能的解释是,我们的训练数据中,用的是resize的方法来调整输入的图片,而这样做,对于边长小于512的图,会自动保留白边。而这也就导致了我们的生成会有。但是一旦给这幅画赋予了某种属性,就可以避免这件事了。

(注,我试过3k壁纸和8k壁纸,都不行,估计是语料是真的没有。我试过 壁纸,这个prompt看起来不高清。)

试试看别的属性

插画

日出, 海面上, 插画
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

插画,其实是什么画风都有,但是总体来说是画。

油画

日出, 海面上, 油画
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

虽然图3出现了画框,但是一幅油画,包括了画框也是正常。

水彩

日出, 海面上, 水彩
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

素描

日出, 海面上, 素描
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

增加细节

ok,我们回退一下。

日出, 海面上, 4k壁纸
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

我们希望更多的细节呢?

复杂

日出, 海面上, 4k壁纸, 复杂
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

可以看到,复杂是一定作用的,所有图的细节都增加了。

精细

日出, 海面上, 4k壁纸, 精细
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

精细 的做法反而是把不少细节都选择了平滑处理。过度更加柔和。

高清

日出, 海面上, 4k壁纸, 高清
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

只多了一点点细节,图2的海面上多了光斑,这么一说也许是光影效果好了一些。

画幅(512×512)

不同的画幅也会影响生成的内容和质量。

参考自:https://huggingface.co/blog/stable_diffusion

avatar

在stable diffusion中也有这个相关的发现,512*512是最好的画幅。

我们看看正常的:

512*512

日出, 海面上, 4k壁纸
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 512x512, Model hash: e2e75020, Batch size: 6, Batch pos: 0

384*384

日出, 海面上, 4k壁纸
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 384x384, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

低画幅会导致画面莫名撕裂,出图非常毛躁。

256*256

如果我们进一步降低画质,会非常非常撕裂:

日出, 海面上, 4k壁纸
Negative prompt: 广告, ,, !, 。, ;, 资讯, 新闻, 水印
Steps: 20, Sampler: PLMS, CFG scale: 7, Seed: 1419200315, Size: 256x256, Model hash: e2e75020, Batch size: 6, Batch pos: 0

avatar

引用

1
2
3
4
5
6
@misc{Fengshenbang-LM,
title={Fengshenbang-LM},
author={IDEA-CCNL},
year={2021},
howpublished={\url{https://github.com/IDEA-CCNL/Fengshenbang-LM}},
}

更多教程

太乙绘画使用手册1.0 https://docs.qq.com/doc/DWklwWkVvSFVwUE9Q