wordpress meta key/贵州二级站seo整站优化排名
大家好,我是设计师阿威
想要入门 AI 绘画,首先需要了解它的原理是什么样的。
其实很早就已经有人基于深度学习模型展开了对图像生成的研究了,但在那时,生成的图像分辨率和内容都非常抽象。
直到近两年,AI 产出的图像内容的质量变高、而且有一定的艺术价值,这时它才算正式拥有了理解人类所表达的意思去作画的能力。
虽然把这个过程称之为 “AI 绘画”,但实际上它并不是像人类画图一样,打草稿、勾线描边、上色、细节加工等等、按部就班的去完成一幅画作的。
AI 另辟蹊径地采取了一个人类不曾设想过的途径去画画:Diffusion(扩散)。我们可以先看一下 AI 绘画的过程:
你已经看到了扩散的过程了,但可能很多同学其实还是一知半解。
如何用通俗易懂的方式去理解扩散呢 ?
这是一幅在计算机图像处理界最为传奇的一张照片 —— 莱娜图(莱娜・瑟德贝里):
如果让你把这幅画用二次元动漫风重新绘制一遍,你会怎么做呢?
现在尝试着把你的眼睛眯到直撑一条缝去看图片,她是不是变得模糊了:
保持这个状态,想象她正在逐渐变的二次元,随后慢慢睁开眼睛:
现在这幅画已经变得完全不同了。
其实这就是一个扩散模型工作的基本流程了:
在这个例子里,你可以把自己代入到执行绘画指令的 AI 角色:
-
首先你需要对图像通过增加噪声的方式进行 “扩散”(分散特征信息),也就是让它在你脑海中变得更模糊(就像眯着眼睛的你)
-
当内容模糊了以后,你就有更充分的想象空间从原本的图像形态中抽离:
- 提取你之前看过的二次元图像的特征(深度学习)
- 和当前图像的特征建立关联、糅合
-
对你脑海中加工过的图像进行去噪(逆向扩散),使它在二次元的方向上逐渐变得清晰
-
当你睁开眼睛的时候,这副图像就已经被你根据二次元的形象重新绘制过了
这个原理可以为我们在后面 AI 绘画的实操阶段提供理论基础和指导思想。当然这个过程被简化过了,实际上代码层面的实现远比这个复杂得多,但现阶段也并不需要知道得太多。
AI绘画工具SD 的安装
现在是 AI 百花齐放的时代,我相信你之前肯定听过甚至了解过 Midjourney、 Stable-Diffusion (下文简称 SD) 等一些知名的作画工具。
其实目前市面上大多数商业 AI 绘画工具,其实都是基于 SD 开发的,主要是因为在 SD 全面开源之后,在社区出现了大量丰富的模型,而且通过算法迭代,它将 AI 绘画的精细度提上了一个新的台阶,可以在民用级显卡的电脑上、并能在秒级时间内完成图片产出。
现在 SD 已经可以非常轻松地绘制出各种风格的作品,比如动漫风、插画立绘、国风、水墨风、3D 建模,甚至是照片级的拟真图像,而且借助 LoRA、ControlNet 等衍生功能,SD 还可以做到精准控制美术风格、角色细节、姿势动作构图等。
而社区的优势是商业产品很难具备的,而且商业产品需要考虑各种出图限制(费用、网速、内容等),所以我最终选择了 NovelAI —— 它是在以 SD 为底层框架的基础上、兼顾用户体验而产生的一款完全免费的产品,支持图形化管理版本、模型、绘画管理等:
配置要求
-
系统: Windows(Win10+) 或 Mac
-
显卡: 8G 以上的独显(优先 Nvidia)
显卡是影响出图的最核心因素:
-
显存:直接影响能否出高分辨率的图片(512x512 都画不出,怎么画高清?)、无法加载太多模型限制出图、甚至可能爆内存中止绘制。后期会影响训练规模。
-
性能:直接影响出图效率。AI 绘画其实就是抽卡的过程,很多时候不会一次就得到想要的图片的,需要反复尝试去修改参数。效率太低的显卡几分钟才出一张图,会把你的兴趣耗光的
各显卡绘制同一张图片的时间
SD 安装步骤
-
预装: CUDA
-
预装:python 3.10.X(目前最优版本是 3.10.8)
-
预装: Git
-
下载 秋葉aaaki 大佬的 novelai-webui-aki-v4.X 整合包(已正式命名为 “绘世”),解压后通过 A启动器.exe 一键启动即可(视频有详细安装指引)。这个 安装包 功能齐备、方便后期更新管理,最适合新手使用。
-
安装包下载请扫描获取哦
- 注意事项:
- SD 安装路径不要在系统盘,路径尽可能短,绝对不要有中文、空格、特殊字符
- SD 所在的盘符至少有 50GB 以上的空间(后续放入的模型动辄 2G-7G/个,总大小可能几十上百 GB)
模型安装步骤
假设你的SD 安装位置在 %SD。
你在启动前,需要检查 %SD/models/Stable-diffusion/ 目录是否为空,这个目录是存放 AI 绘画主模型的目录,SD 要求必须至少要有一个主模型才能运行。
所以如果目录为空,可以先去 huggingface(或者看上方扫描)下载这两个热门模型放到目录下:
-
SD 官方基础模型:stable-diffusion-v1-5
-
二次元风格模型:AbyssOrangeMix3(海外非常受欢迎的,昵称 “深渊橘”)
【模型是什么?】
了解了AI绘画是怎么生成画面的,那么AI 是从哪里学会画出各种绘画风格的呢?
其实 AI 出图的经验,就来自一些使用图片素材训练出来的大模型。
不同的模型可以给你的作品带来完全不同的画面内容和画风,这也是 AI 阅片无数的底气所在。
可以把模型类比成一本字典,AI 拿着汉语字典、英语字典,就能根据你给它的提示词去翻字典,从而画出国风、欧美风的图片。
更多的AI绘画大模型可以看文末扫描获取哦
认识 SD WebUI
A启动器 的界面就不过多介绍了,主要是用于 SD 版本和模型下载/管理器,操作很简单,按钮的功能就是字面的意思,用几次就理解了。
第一次使用如果怕麻烦,直接点击右下角的 一键启动 就好,它会自动运行 SD 程序启动,并在浏览器打开一个 SD WebUI 页面。
如果没有自动打开,可以访问:http://127.0.0.1:7860/
SD WebUI 是我们以后作画的主要操作页面,它集成了许多在代码层面非常繁琐的功能,并将里面的各项参数的条件转化成了非常直观的选项数值与滑块。
目前开源社区里面 90% 以上的拓展插件都是基于 SD Web UI 去研发的,所以很有必要学会怎么使用它。
参考下图,SD WebUI 界面可以大概分为 5 个区域:
-
模型选择区: 选择作画的模型
-
功能选择区: 选择如何作画
-
参数输入区: 根据喜好设置作画的 “命令” 参数
-
图像输出区: AI 根据设定的 “命令” 绘图的位置
-
异常输出区: 绘图过程中出现异常的显示位置
模型选择区
在界面左上角有一个名为 “stable defusion 模型” 的下拉框,如果你刚刚有下载我所推荐的两个模型,可以从下拉列表找到它们。
前面安装时也提到过了,模型的存储目录在 %SD/models/Stable-diffusion/,现在先记住这个目录就可以了,它是你以后新增更多模型的固有基地。
当有新模型添加到这个目录,点击下拉框旁边的刷新按钮,就可以看到新的模型了。
切换新的模型时需要等待十几秒加载,然后就可以使用了。
功能选择区
【文生图 & 图生图】
-
文生图:利用提示词生成图片
-
图生图:利用提示词和参考图片、生成图片
这是两种最基本的绘画基本方式,在后面的系列会展开说明。
【附加功能】
目前主要对图片进行 AI 放大处理,它可以让你生成更清晰的大图。
【图片信息】
查询已生成图片的提示词、模型、参数、随机种子等信息。当别人分享他所绘制的图片给你时,会很有用。
【图库浏览器】
每次 AI 在生成一批图片后,都不需要人工保存,这些图片会自动保存到 %SD/outputs/ 对应的目录下。
但是 SD WebUI 提供了一个更方便的 图库浏览器 功能,在这里面可以按照类目查看到通过不同方式生成出来的图像。
如果想要把它导出来,就像在浏览器里保存一张图片一样右键另存为即可。
而且图库浏览器还有许多妙用,例如可以直接查看图片的生成信息、快速对图片进行图生图局部重绘等等。
【Tag反推(Tagger)】
当我们从网上拿到一张不知来源的图片想用来当图生图的参考素材时,就可以利用这个功能反推提示词,以便把生成的图片限制在一定的范围内。
例如我在开头介绍原理时重回的莱娜图,就是借助反推功能生成了莱娜的提示词
然后再借助二次元模型 深渊橘和 LoRA 插件对她进行重绘。
我们可以看看,如果没有提示词,其他参数保持一致,在单纯图生图的情况下 AI 就会完全放飞自我,很有可能画出来的就是另一个东西了:
【设置】
在这里可以设定各种和绘图过程相关的选项,例如图像的保存路径、采样参数等等。
现阶段刚入门还不熟悉,维持一切默认一般就不会出问题。
在本系列的后面用到时会提及相关的配置项。
【扩展】
这里主要是用来安装和管理一些额外的插件的。
为什么有些大佬的 SD WebUI 和你的长得不太一样,功能也多了许多,就是这里在搞怪。
有些安装到你 SD WebUI 里的插件会在界面添加额外的标签,例如【可选附加网络(LoRA 插件)】就是要安装 sd-webui-additional-networks 这个插件才会出现的。
在本系列的后面用到时会提及相关的插件安装。
感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。
AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。
一、AIGC所有方向的学习路线
AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、AIGC必备工具
工具都帮大家整理好了,安装就可直接上手!
三、最新AIGC学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、AIGC视频教程合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

相关文章:

AI绘画Stable Diffusion 零基础入门 —AI 绘画原理与工具介绍,万字解析AI绘画的使用教程
大家好,我是设计师阿威 想要入门 AI 绘画,首先需要了解它的原理是什么样的。 其实很早就已经有人基于深度学习模型展开了对图像生成的研究了,但在那时,生成的图像分辨率和内容都非常抽象。 直到近两年,AI 产出的图像…...

jenkins添加ssh证书
1、生成ssh密匙:windows生成ssh密匙-CSDN博客 2、添加添加ssh凭证:jenkins路由地址为:/manage/credentials/store/system/domain/_/ 点击添加凭证 选择第二个,将生成的私匙 id_rsa 里边的内容赋值到密钥,id留空自动…...

C++--accumulate介绍
在C中,accumulate是一个用于对容器中的元素进行累加操作的函数模板,位于 头文件中。它允许你对容器(如vector或array)中的元素进行累加运算,并返回累加的结果。 源代码展示 template<class InputIterator, class …...

C++写一个线程池
C写一个线程池 文章目录 C写一个线程池设计思路测试数据的实现任务类的实现线程池类的实现线程池构造函数线程池入口函数队列中取任务添加任务函数线程池终止函数 源码 之前用C语言写了一个线程池,详情请见: C语言写一个线程池 这次换成C了!…...

【SASS/SCSS(一)】选择器
Sass 是一门高于 CSS 的元语言,它能用来清晰地、结构化地描述文件样式。 而SCSS是SASS引入的语法,是CSS的超集,所以所有CSS有效的使用在SCSS中都生效 一、回顾CSS选择器 通用选择器 *元素选择器类选择器,.classNameID选择器&am…...

详细解析Kafaka Streams中各个DSL操作符的用法
什么是DSL? 在Kafka Streams中,DSL(Domain Specific Language)指的是一组专门用于处理Kafka中数据流的高级抽象和操作符。这些操作符以声明性的方式定义了数据流的转换、聚合、连接等处理逻辑,使得开发者可以更加专注…...

C++中链表的底层迭代器实现
大家都知道在C的学习中迭代器是必不可少的,今天我们学习的是C中的链表的底层迭代器的实现,首先我们应该先知道链表的底层迭代器和顺序表的底层迭代器在实现上有什么区别,为什么顺序表的底层迭代器更加容易实现,而链表的底层迭代器…...

3.5、matlab打开显示保存点云文件(.ply/.pcd)以及经典点云模型数据
1、点云数据简介 点云数据是三维空间中由大量二维点坐标组成的数据集合。每个点代表空间中的一个坐标点,可以包含有关该点的颜色、法向量、强度值等额外信息。点云数据可以通过激光扫描、结构光扫描、摄像机捕捉等方式获取,广泛应用于计算机视觉、机器人…...

Qt-事件与信号
事件和信号的区别在于,事件通常是由窗口系统或应用程序产生的,信号则是Qt定义或用户自定义的。Qt为界面组件定义的信号往往通常是对事件的封装,如QPushButton的clicked()信号可以看做对QEvent::MouseButtonRelease类事件的封装。 在使用界面组…...

数据结构 day3
目录 思维导图: 学习内容: 1. 顺序表 1.1 概念 1.2 有关顺序表的操作 1.2.1 创建顺序表 1.2.2 顺序表判空和判断满 1.2.3 向顺序表中添加元素 1.2.4 遍历顺序表 1.2.5 顺序表按位置进行插入元素 1.2.6 顺序表任意位置删除元素 1.2.7 按值进…...

Kubernetes面试整理-如何进行滚动更新和回滚?
在 Kubernetes 中,滚动更新和回滚是管理应用程序版本的常用操作。滚动更新允许您逐步替换现有的 Pod 实例,以便在不中断服务的情况下部署新版本。回滚则是在新版本出现问题时恢复到之前的版本。 滚动更新 通过 Deployment 进行滚动更新 1. 创建一个 Deployment: 下面是一个…...

flutter ios打包 xcode报错module ‘xxx‘ not found
flutter ios打包 xcode报错module ‘xxx’ not found 如果已经在androidstudio中成功运行了flutter build ios --release。 那么可能是你使用xcode打开的是ios/Runner.xcodeproj文件。 你关掉xcode,重新打开ios/Runner.xcworkspace/文件。然后重新archiveÿ…...

LLM 构建Data Multi-Agents 赋能数据分析平台的实践之④:数据分析之三(数据展示)
概述 在先前探讨的文章中,我们构建了一个全面的数据测试体系,该体系遵循“数据获取—数据治理—数据分析”的流程。如何高效地构建数据可视化看板,以直观展现分析结果,正逐渐成为利用新兴技术提升效能的关键领域。伴随业务拓展、数…...

Elasticsearch 批量更新
Elasticsearch 批量更新 准备条件查询数据批量更新 准备条件 以下查询操作都基于索引crm_flow_info来操作,索引已经建过了,本文主要讲Elasticsearch批量更新指定字段语句,下面开始写更新语句执行更新啦! 查询数据 查询指定shif…...

【Pytorch笔记】张量
torch.Tensor() 是 PyTorch 库中用于创建张量的一个函数。在 PyTorch 中,张量是多维数组,它们可以存储在 CPU 或 GPU 上,并且支持自动求导,这使得它们非常适合进行深度学习和科学计算。 张量可以在Python list形式下通过 torch.T…...

查找json中指定节点的值,替换为指定的值
有时我们封装好的实体转化成的json字段的值和第三方要求的不一样,比如我们字段的值是字符串,我们需要使用int类型的值,就需要将这个键的值转化成int类型。 比如将以下 convulsionNumber字段中字符串的值“一次”替换为0 {"convulsionT…...

Android 14 开机时间优化措施
Android开机优化系列文档-CSDN博客 Android 14 开机时间优化措施汇总-CSDN博客Android 14 开机时间优化措施-CSDN博客根据systrace报告优化系统时需要关注的指标和优化策略-CSDN博客Android系统上常见的性能优化工具-CSDN博客Android上如何使用perfetto分析systrace-CSDN博客A…...

【QGroundControl二次开发】二.使用QT编译QGC(Windows)
【QGroundControl二次开发】一.开发环境准备(Windows) 二. 使用QT编译QGC(Windows) 2.1 打开QT Creator,选择打开项目,打开之前下载的QGC项目源码。 编译器选择Desktop Qt 6.6.3 MSVC2019 64bit。 点击运…...

[C/C++入门][变量和运算]4、带余除法
给定被除数和除数,求整数商及余数 看到这个题,我们都知道C的除法运算符 /,默认是不带余数的。那现在要求带余数,需要能够想到% %,是C获取余数的方法:比如5/22; 5%21;%得到的是除后的余数。 #inc…...

常用优秀内网穿透工具(实测详细版)
文章目录 1、前言2、安装Nginx3、配置Nginx4、启动Nginx服务4.1、配置登录页面 5、内网穿透5.1、cpolar5.1.1、cpolar软件安装5.1.2、cpolar穿透 5.2、Ngrok5.2.1、Ngrok安装5.2.2、随机域名5.2.3、固定域名5.2.4、前后端服务端口 5.3、NatApp5.4、Frp5.4.1、下载Frp5.4.2、暴露…...

防火墙NAT地址转换和智能选举综合实验
一、实验拓扑 目录 一、实验拓扑 二、实验要求(接上一个实验要求后) 三、实验步骤 3.1办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 3.2分公司设备可以通过总公司的移动链路和电信链路访…...

Android获取当前屏幕显示的是哪个activity
在 Android 中,要获取当前屏幕显示的 Activity,可以使用以下几种方法: 方法一:使用 ActivityManager 获取当前运行的任务信息 这是一个常见的方法,尽管从 Android 5.0 (API 21) 开始,有些方法变得不太可靠…...

JVM:自动垃圾回收
文章目录 一、C/C的内存管理二、Java的内存管理1、方法去的回收2、堆回收(1)引用计数法和可达性分析法(2)五种对象引用(3)垃圾回收算法 一、C/C的内存管理 在C和C没有自动垃圾回收机制,一个对象…...

【填坑指南】PHP8报:Unable to load dynamic library ‘zip.so’ 错误
1.原因分析 这种情况多数发生在PHP安装时因为各种原因失败后,残余的库与最后安装的PHP版本不兼容导致的。 2.我的路径 一开始我按照以前摸索出来的安装PHP7.3的成功经验来编译方法安装PHP8.3,发现以前的套路已经失效了。反复重装PHP8.3失败后…...

鸿蒙语言基础类库:【@system.notification (通知消息)】
通知消息 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口[ohos.notification]。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import notification fro…...

1.JavaWeb开发简介(Tomcat安装使用+Servlet简介)
文章目录 一.web开发简介1.概念:2.特点:3.常用技术:4.服务架构5.web应用开发模式6.HTTP协议1)概念:2)HTTP最基本的过程是:3)IP/域名4)HTTP协议请求方式 7.JavaWeb的相关技术8.Java Web服务器 二、安装配置Tomcat1.简介2.Tomcat目录结构 三.Servlet的入门应用1.使用步骤2.使用注…...

xxl-job 动态创建一次性定时任务
文章目录 需求一、考虑方案二、实现思路三、代码实现3.1 引入xxl-core 核心包3.2 远程调用3.2.0 yaml3.2.1 配置类3.2.2 入参3.2.3 任务返回实体3.2.4 任务调用 3.3 cron生成器3.4 handler实现3.4 测试 踩坑 需求 类似预约会议,设置提醒 添加数据记录(…...

网页制作技术:概念、现状与展望?
网页制作技术:概念、现状与展望? 李升伟 网页制作技术是指用于创建和维护网站的一系列技术和方法。 概念: 它涉及多个方面,包括使用 HTML(超文本标记语言)来构建网页的结构和内容,使用 CSS&…...

Kafka Producer之数据重复和乱序问题
文章目录 1. 数据重复2. 数据乱序 为了可靠性,Kafka有消息重试机制,但是同时也带来了2大问题 1. 数据重复 消息发送到broker后,broker记录消息数据到log中,但是由于网络问题,producer没有收到acks,于是再次…...

Java前后端分离开发的步骤以及注意事项
在现代Web应用程序开发中,前后端分离是一种常见的架构模式。这种模式将前端(用户界面)和后端(业务逻辑和数据处理)分开独立开发和部署,从而提高开发效率、代码的可维护性和团队协作能力。本文将介绍Java前后…...