安装Stable Diffusion
网上有许多大神整合的 Stable Diffusion 整合包,这里可以到B站下载秋叶的整合包:https://www.bilibili.com/video/BV1iM4y1y7oA/?spm_id_from=333.337.search-card.all.click
使用整合包
下载并解压完后,可以看到如下的目录
此时双击启动器运行依赖
,即可安装依赖
然后进入sd-webui-aki-v4.7
文件夹,找到启动器,双击即可
打开后如下所示
点击一键启动
,即可启动 Stable Diffusion。之后会在浏览器弹出对应的 web ui,也可以使用 http://127.0.0.1:7860/ 打开,界面如下所示
功能讲解
模型:
左上角的Stable Diffusion模型
表示正在使用的模型,整合包中自带了一个模型,而如果我们需要切换模型,可以参考如下方式
首先到C站下载你喜欢的模型:https://civitai.com/models
然后打开models
文件夹下的Stable-diffusion
文件夹,这个文件夹就是用来存放模型的
将下载好的模型放入文件夹内,然后刷新,即可看到新添加的模型
此时的模型是没有封面的,如果需要封面,可以生成一张图片,然后将这张图片放入刚才的文件夹中,最后把名字命名成与模型同样的名字,如下所示
文生图、图生图:
文生图
和图生图
是两种最常用的绘制方式文生图
就是利用你输入的文本来生成出对应的图像,而图生图
则是利用你上传的图像与你输入的文本来生成出对应的图像
提示词:
我们可以看到有正向提示词
和反向提示词
,正向提示词
就是想要生成的图片的内容提示词,而反向提示词
指的是不希望生成的内容提示词。加入提示词越具体AI思路也越清晰,而两种提示词均只支持英文,因此可以先把中文翻译成英文,再输入进去
常用的正向提示词有:best quality,ultra- detailed,masterpiece,hires,8k,extremely detailed CG unity 8k wallpaper,分别对应最高的质量,超级细节,杰作,高分辨率,8k(分辨率),超级细节的 Unity CG 壁纸;常见的反向提示词有 NSFW, worst quality, low quality, normal quality, lowres,normal quality, monochrome,grayscale, skin spots, acnes,skin blemishes, age spot, ugly, duplicate,分别对应NSFW,最差质量,低质量,正常质量,低分辨率,正常质量、单色、灰度、皮肤斑点、痤疮、皮肤瑕疵、老年斑、丑陋、重复
提示词是可以设置权重的,有两种方式:
① 括号
共有三种括号,分别是圆括号()
、花括号{}
和方括号[]
,在词组两边加上圆括号可以使得权重变为原来的 1.1 倍,加上花括号则是 1.05 倍,加上方括号则是 0.9 倍
② 数字 + 括号
例如(词组:1.5)
,表示权重变成原来的 1.5 倍
出图参数:
宽度
和高度
可以调节图片的分辨率,默认是 512 × 512
采样步数
表示画面的迭代次数,理论上越大画面质量越好,但是如果太大可能会变形,因此一般为 20,算力充足可以考虑 30-40,最低不要低于 10
总批次数
是按照同一组提示词和参数出图的次数,每批数量
是每批次绘制的图像数量
有关其他的细节可以到B站学习:https://www.bilibili.com/video/BV1As4y127HW/?spm_id_from=333.788&vd_source=b9a6a3dbb4871a28097897f1c6538c23
生成诗词背景图
首先是要选择适当的模型,这里我选择的模型是国风4 GuoFeng4 X,下载链接:https://www.123pan.com/s/ueDeVv-9ouI.html。图片的风格如下所示
之后可以将诗词翻译成英文,再输入至正向提示词。示例:落霞与孤鹜齐飞,秋水共长天一色。这里我在翻译成英文后,还加上了一些常用的正向提示词:The setting sun and the lonely wild ducks fly together,the autumn water blends with the sky in one color.,(masterpiece:1.2),best quality,highres,original,extremely detailed wallpaper,drawing,paintbrush,
再加上一些常用的反向提示词:(worst quality:2),(low quality:2),(normal quality:2),lowres,normal quality,
然后将迭代次数调成 25,图片尺寸调成 720 × 1280(对应 720p 竖屏 16:9)
最后点击生成
,结果如下
API调用
如果想要远端跑图,就需要在服务端开启后,客户端调用 API 来生成图像
这里讲解文生图的 API,其他的 API 可以参考 https://zhuanlan.zhihu.com/p/624042359,也可以到项目中的 API 文档查看:http://127.0.0.1:7860/docs
这个整合包中,对应的 API 端口是 7860,而文生图的请求路径是 /sdapi/v1/txt2img,请求方式是 POST,请求体的格式如下
{
"denoising_strength": 0,
"prompt": "The setting sun and the lonely wild ducks fly together,the autumn water blends with the sky in one color.,(masterpiece:1.2),best quality,highres,original,extremely detailed wallpaper,drawing,paintbrush", // 提示词
"negative_prompt": "(worst quality:2),(low quality:2),(normal quality:2),lowres,normal quality", // 反向提示词
"seed": -1, // 种子,随机数
"batch_size": 1, // 每次张数
"n_iter": 1, // 生成批次
"steps": 25, // 生成步数
"cfg_scale": 7, // 关键词相关性
"width": 720, // 宽度
"height": 1280, // 高度
"restore_faces": false, //脸部修复
"tiling": false, //可平埔
"override_settings": {
"sd_model_checkpoint": "4Guofeng4XL_v12.safetensors [9748eda16e]"
}, // 一般用于修改本次的生成图片的stable diffusion 模型,用法需保持一致
"script_args": [], // 一般用于lora模型或其他插件参数
"sampler_index": "Euler" // 采样方法
}
之后使用 Postman 测试即可
返回的格式如下:
{
"images": [...], // 这里是一个base64格式的字符串数组,根据你请求的图片数量而定
"parameters": {
//此处为你输入的body
},
// 返回的图片的信息
"info": "..."
}