文生图(txt2img
)基本参数测试
测试checkpoint
、Batch count
、Batch size
、Seed
、CFG Scale
等基本参数对图片生成过程及图片内容、质量
的影响。
测试环境
环境参数 | 信息 |
---|---|
GPU型号 | NVIDIA Tesla T4 |
显存大小 | 16 GB |
xformers | 启用 |
集成软件 | AUTOMATIC1111 |
基础模型 | meinamix_meinaV10.safetensors [77b7dc4ef0] |
原始参数
在之后的测试中,如果没有特别提及,输入参数将使用如下表的值:
参数 | 值 |
---|---|
Prompt | girl, white hair, wearing dress,lying on the beach, basking in the sun |
Sampling method | DPM++ 2M Karras |
Sampling steps | 20 |
Width | 512 |
Height | 512 |
CFG Scale | 7 |
Seed | -1 |
Batch count | 1 |
Batch size | 1 |
Seed | 4175639649 |
快速导入
复制下面的内容,粘贴到Prompt框中,点击生成按钮下面的读取键,可以快速填写参数
girl, white hair, wearing dress,lying on the beach, basking in the sun
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 4175639649, Size: 512x512
没有提及的参数默认不填
或者不勾选
,这样我们得到原始图:
生成该图消耗的时间及占用的GPU资源:
- | 值 |
---|---|
Time taken | 3.14s |
Torch active/reserved | 2624/3190 MiB |
Sys VRAM | 4272/16128 MiB (26.49%) |
Stable Diffusion checkpoint
Stable Diffusion checkpoint
也就是我们所说的模型,不同checkpoint
对图片质量有巨大的影响。
加入另一组Prompt
进行对比,本来是在沙滩上晒太阳,改为在咖啡店边上喝咖,其余参数和原始参数一致,新的Prompt
如下:
参数 | 值 |
---|---|
Prompt | girl, white hair, wearing dress,sipping coffee by a café |
借助脚本X/Y/Z plot
及Prompt S/R
测试不同checkpoint
对图片质量的影响。相同参数下4个不同checkpoint
的结果:
Batch count
Batch count
指重复执行图片生成脚本的次数。该参数对生成图片的质量没有影响。例如改变Batch count
为4
将消耗相对于原来4倍的时间并且得4批图片,每次执行的显存使用率不会变化。
- | 值 |
---|---|
Time taken | 12.76s |
Torch active/reserved | 2624/3252 MiB |
Sys VRAM | 4278/32511 MiB (26.53%) |
在每个测试结束之后,都默认退回到原始参数,将Batch count
改回1
。
Batch size(512*512情况下)
Batch size
指每次生成的图片数量。测试结果表明在生成512*512图片
时,获取同等数量的图片,调大Batch size
更节省资源。但是过大的Batch size
让人眼花缭乱,所以我倾向于设置Batch size
为4
,以便于肉眼挑选合适的图片进行下一步处理。
在NVIDIA Tesla T4 16GB
上的测试结果:
- | - | - | - |
---|---|---|---|
Batch size | 1 | 4 | 8 |
Time taken(s) | 3.14 | 11.25 | 21 |
Torch active/reserved | 2624/3190 | 2630/3362 | - |
Sys VRAM | 26.49% | 27.55% | 28.13% |
在NVIDIA Tesla V100 SXM2 32 GB
上的测试结果:
- | - | - | - |
---|---|---|---|
Batch size | 1 | 4 | 8 |
Time taken(s) | 1.56 | 4.72 | 8.91 |
Torch active/reserved | 2599/2888 | 2619/3252 | 3160/3432 |
Sys VRAM | 12.39% | 13.51% | 14.12% |
Seed
如果你希望获取相同的图片,那么使用一个确定的Seed
。如果你希望随机获取一张图片,则将Seed
设定为-1
,这样每次生成图片的时候就会随机生成一个Seed
值,这个值可以在界面右下角获取到(生成图片的下面)。
例如,在所有参数,包含硬件条件、软件和模型的版本都一致的条件下,你设定Seed
为4175639649
,点击生成将得到一张和本文完全一致的图片。
CFG Scale
CFG Scale
用于控制模型应该在多大程度遵循你的Prompt
。
如下图所示,当CFG Scale
值为0时,模型自由发挥完全无视你的Prompt
;过高的CFG Scale
对图片质量产生严重影响。
Sampling method
TODO
关于Sampling method
我也没有啥研究,平时基本上都是无脑DPM++ 2M Karras
,AUTOMATIC1111
的wiki也只是给出了一张参照表。
因为Sampling method数量太多,我们宏观上把他们大至分个类然后挑几个典型跑一下。