用好这几个参数,你也能 SD 做好图

CFG Scale 提示词相关性

CFG Scale 是 Classifier Free Guidance scale 的缩写,他是一个可以控制模型多大程度上遵循你提示词的参数,简单来讲就是提示词相关性。

  • 1 - 大概率会忽略你的提示词

  • 3 - 更有创造性

  • 7 - 在提示词和 AI 自由创作之间的平衡

  • 15 - 更加遵守提示词

  • 30 - 严格遵循提示词

下面是一些 CFG scale 不同数值的图片案例

建议:从 7 开始,如果你想让它更加遵循提示词,可以提高这个值。

Sampling steps 采样步数

随着采样步数的提高,图片质量也会提升。通常情况下,使用 Euler 采样器和采样步数 20 已经足够生成高质量、锐利的照片。虽然当采样步数更高的时候,图片仍然会有一些细微变化,但是图片也会变得不一样,并且质量并不一定会更高。

建议:20 步。如果你觉得图片质量低,适当调高一些。

Sampling methods 采样方法

你可以选择各种各样的采样方法,这取决于你使用的是什么GUI。它们只是解决扩散方程的不同方法。它们应该可以给出相同的结果,但由于数字上的偏差,可能会略有不同。但由于这里没有正确的答案,唯一的标准是图像看起来不错,采样方法的准确性不应该是你关心的问题。

并且所有的采样方法是平等的。下面是不同采样方法的处理时间。

下面是不同采样方法,采样步数 20 步之后的图片。

在社区里有很多关于采样方法的讨论,有些生成不同的采样方法对应特定的风格。这没有了理论依据。我的建议保持简单

  • 采样方法:Euler

  • 采样步数:20

建议:Euler

Seed 种子

随机种子决定了初始的噪声模式,从而决定了最终的图片。

设置为 -1 意味着每次都适用随机种子,当你想要生成新图片的时候,它很有用。另一方面,固定下来这个值会导致在每一次生成时,都会使用相同的图片。

如果你想用某个种子,如何找到这个值呢。在日志框里,你可以看到类似这样的东西:

复制这个值到种子输入框。如果你每次生成了不止一张照片,第二张图片的种子会在第一张上面加 1,以此类推。或者,你可以点击种子便遍的回收按钮复用上一张图片的种子。

建议:设为 -1 用来探索新图片,当相对某一张图片做精修的时候,固定那张图片的种子。

Image size 图片尺寸

代表输出图片的尺寸。因为 Stable Diffusion 是用 512x512 的图片训练的,所以设置人像或者风景图片的时候,可能会产生意想不到的问题。如果可能,尽量保持这个值

建议:保持 512x512

Batch size 批量尺寸

批量尺寸时至每次生成图片的数量。因为最终图片非常依赖随机种子,每次生成多张图片是一个不错的主意。这样的话,你就对当前的提示词能做什么有一个比较好的感觉。

建议:设置为 4 到 8

Restore faces 人脸修复

Stable Diffusion 经常会生成有问题的人脸和眼睛,这已经是大家默认的秘密了。人脸修复是一个后置的处置方法,使用特别训练过的 AI 来修复面部。

可以在 设置 Setting 选项卡,在 Face restoration model,选择 CodeFormer

下面两个例子,你能看出来开启人脸修复前后的变化。

建议:在生成带人脸图片的情况下,勾选它。

以上就是 SD 常见的参数介绍,AI绘画SD整合包、各种模型插件、提示词、AI人工智能学习资料都已经打包好放在网盘中了,有需要的小伙伴文末扫码自行获取。

写在最后

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

若有侵权,请联系删除
  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C语言中,可以使用以下方法实现多个任务读写SD卡: 1. 使用互斥量(Mutex)或信号量(Semaphore)等机制来保证读写SD卡的互斥性。在每个需要访问SD卡的任务中,创建一个互斥量或信号量,并在读写SD卡的代码段前后加锁和解锁操作。例如: ```c #include <stdio.h> #include <pthread.h> // 互斥量 pthread_mutex_t sd_mutex; // 读写SD卡的任务 void *sd_task(void *arg) { // 获取互斥量 pthread_mutex_lock(&sd_mutex); // 读写SD卡的代码 // 释放互斥量 pthread_mutex_unlock(&sd_mutex); return NULL; } int main() { // 初始化互斥量 pthread_mutex_init(&sd_mutex, NULL); // 创建多个读写SD卡的任务 // ... // 等待任务结束 // ... // 销毁互斥量 pthread_mutex_destroy(&sd_mutex); return 0; } ``` 2. 将SD卡读写的任务单独放到一个任务中执行,其他任务通过消息队列或事件机制将需要读写SD卡的请求发送给该任务。例如: ```c #include <stdio.h> #include <pthread.h> #include <semaphore.h> // 信号量 sem_t sd_sem; // 读写SD卡的任务 void *sd_task(void *arg) { while (1) { // 等待信号量 sem_wait(&sd_sem); // 读写SD卡的代码 // 发送结果给请求任务 // ... } return NULL; } // 请求SD卡读写的任务 void *request_task(void *arg) { while (1) { // 发送请求给SD卡任务 // ... // 等待结果 // ... } return NULL; } int main() { // 初始化信号量 sem_init(&sd_sem, 0, 0); // 创建SD卡读写任务 // ... // 创建请求SD卡读写的任务 // ... // 等待任务结束 // ... // 销毁信号量 sem_destroy(&sd_sem); return 0; } ``` 这两种方法都需要注意互斥性和同步性,避免多个任务同时访问SD卡造成冲突和数据错误。同时,还需要考虑SD卡访问的可靠性和性能问题,根据具体需求选择合适的读写方式和算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值