点击↑上方↑蓝色“编了个程”关注我~

这是Yasin的第 89 篇原创文章

最近随着Chat GPT的大火,AI绘画也火了起来。尤其是midjourney(以下简称mj),能够通过文本关键词生成AI图片,还能指定各种风格,简直是我们这种又菜又爱玩的福音。
下面是我用mj随便画的一些图:

mj上手比较容易,我这里就不详细讲了,感兴趣的同学可以去b站或者抖音搜索,有较多的教程。友情提示:「使用mj需要科学上网」。
在了解mj的过程中,我又了解到另一款AI绘画工具,叫stable diffustion(以下简称sd)。发现相比于mj,sd有以下的优势:
本地运行,不用科学上网:下载完对应的资源后,就不用科学上网了;
开源免费:sd是开源免费的绘画平台,而mj是收费的,每个账号有免费的额度,可以画几十张图;
高度定制化:sd有开源的各种模型和插件,也可以自己训练风格、局部修改、细节调整,甚至可以用自己的照片、宠物的照片高度定制化属于自己期望风格的AI绘画。
所以今天整理一下sd上手的基本资料,供大家参考。
sd是一个AI绘画平台,底层是各种AI绘画模型(其中以SD模型为base),上层是UI界面。
首先需要安装sd的web界面。是一个github开源项目,地址是:GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI。
对于mac os M系列的芯片而言,有专门的安装文档:Installation on Apple Silicon · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub
安装过程比较慢,需要下载大量的python资源,可以用这个命令设置python源为国内清华大学的,这样下载速度会快很多:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装完web界面后,可以下载对应的sdk模型。应该是内置了sd 1.5的,不过2.0对风景类型的有一些优化,也可以安装一个2.0和2.1的,后面可以随时切换。
还有一个叫easy diffusion的网站,号称能一键安装,但我自己实操下来中途安装失败了,没有找到解决办法,所以还是自己去上面的github地址安装的。
安装好后,运行webui.sh就可以启动了。打开界面一般长这样:
大概解释一下:
模型选择:可以选择官方的模型,或者自己加载的第三方模型,比如我目前这个就是社区里面基于sd1.5训练的二次元风格模型。点击旁边的刷新按钮可以刷新刚刚安装好的模型。
操作类型,比较常用的就是文字到图片,图片到图片。后面的有些是训练的插件,不展开讲。
提示词:生成图片最重要的部分,就是用文字来描述自己的需求,其中又有负面提示词,用来去掉某些元素。提示词有一些特殊的规则,后面单独开文章讲。
参数设置区,有很多参数。一般画人都会勾选面部修复,然后设置好图片的宽高,自由发挥的程度。越低越自由,越高越贴合你的词,一般推荐7~10。可以设置每批几张、一共跑几批。
图片操作区,可以把生成好的图片保存,或者发到图生图进行后续处理。
sd官方的模型就是上面安装页面的1.5, 2.0, 2.1这些,也可以去huggingface.co 这个网站下载。
而社区模型比较推荐的是civitai.com这个网站。里面有大量的别人训练好的模型或者Lora,有各种风格。虽然我不知道为什么基本都是妹子的模型...

这里解释一下模型和Lora的大概区别:
模型:基于sd原本的模型,通过大量的图片训练后的模型,可以理解为换了一个画家。
Lora:基于sd原本的模型,训练后的插件,可以结合模型使用,可以理解为加了一层ps。
一般模型比较大(几个GB大小),而Lora比较小,通常在MB级别。还有其他的模型类型,但是我自己一般比较常用的就是基础模型和Lora。具体模型的原理和区别这里也不展开讲了。
这里推荐几个模型或者插件:
二次元:anything-v3
国风:中国古风游戏角色模型,具有2.5D质感
dreamlike: 接近的mid风格,颜色艳丽,比较炫酷,插画的感觉
真人风格:protogen
因为SD目前在一些细节处理上还不够成熟。所以有一些社区的插件来解决这类的问题,比较出名的就是controlnet。
简单来说你可以通过一个草图或者一张已有的图片来控制生成的图片的大体位置和形状。用来控制生成图片的姿势和布局非常有用。
controlnet在b站上有不少的课程,可以学习使用姿势:

sd还可以用图片训练属于自己风格的模型(比如画出来的妹子都是你训练的图片的脸型,画出来的狗都跟你训练的狗的图片类似)。也是集成进了web-ui,使用起来比较方便。这块我也还没具体用过,等后面用到了再详细介绍吧。
下面是同一组词,同一个参数,在不同模型下生成的图片:
prompt: lora:cuteGirlMix4_v10:1 1 girl, sitting posture, desk, books, backpack, school uniform, big eyes, smile, looking upward, frontal view
black prompt: ((disfigured)), ((bad art)), ((deformed)),((extra limbs)),((close up)),((b&w)), wierd colors, blurry, (((duplicate))), ((morbid)), ((mutilated)), [out of frame], extra fingers, mutated hands, ((poorly drawn hands)), ((poorly drawn face)), (((mutation))), (((deformed))), ((ugly)), blurry, ((bad anatomy)), (((bad proportions))), ((extra limbs)), cloned face, (((disfigured))), out of frame, ugly, extra limbs, (bad anatomy), gross proportions, (malformed limbs), ((missing arms)), ((missing legs)), (((extra arms))), (((extra legs))), mutated hands, (fused fingers), (too many fingers), (((long neck))), Photoshop, video game, ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, mutation, mutated, extra limbs, extra legs, extra arms, disfigured, deformed, cross-eye, body out of frame, blurry, bad art, bad anatomy,
em... 我还是喜欢真人风格,你呢?

关于作者
我是Yasin,一个爱写博客的技术人
微信公众号:编了个程(blgcheng)
个人网站:https://yasinshaw.com
欢迎关注这个公众号

有没有办法快速将表格格式的ruby哈希打印到文件中?如:keyAkeyBkeyC...1232343451253474456...其中散列的值是不同大小的数组。还是使用双循环是唯一的方法?谢谢 最佳答案 试试我写的这个gem(在表中打印散列、ruby对象、ActiveRecord对象):http://github.com/arches/table_print 关于ruby-如何以表格格式快速打印Ruby哈希值?,我们在StackOverflow上找到一个类似的问题:
电脑启动出现显示器黑屏是一个相当常见的问题。如果您遇到了这个问题,不要惊慌,因为它有很多可能的原因,可以采取一些简单的措施来解决它。在本文中,小编将介绍下面4种常见的电脑启动后显示器黑屏的原因,排查这些原因,快速解决! 演示机型:联想Ideapad700-15ISK-ISE系统版本:Windows10一、显示器问题如果出现电脑启动后显示器黑屏的情况。那么首先您需要检查一下显示器是否正常工作。您可以通过更换另一个显示器或将当前显示器连接到另一台计算机来检查显示器是否存在问题。如果问题仍然存在,那么您可以排除显示器故障的可能性。 二、显卡问题如果您的电脑配备了独立显卡,那么显卡故障也可能是导致电脑
mutationtesting遇到一个问题是它很慢,因为默认情况下您会为每个生成的突变执行完整的测试运行(测试文件或一组测试文件)。加快突变测试的一种方法是,一旦遇到单一故障(但仅在突变测试期间),就停止对给定突变体的测试运行。更好的做法是让变异测试者记住杀死最后一个变异体的第一个测试是什么,并将其首先交给下一个变异体。ruby中是否有任何东西可以做这些事情,或者我最好的选择是开始猴子修补?(是的,我知道单元测试应该很快。显示所有失败的测试在突变测试之外很有用,因为它不仅可以帮助您识别出问题,还可以查明哪里出了问题)编辑:我目前正在对测试/单元使用heckle。如果测试/单元不可能记住
我有两个类:1.Sale是ActiveRecord的子类;它的工作是将销售数据持久保存到数据库中。classSale2.SalesReport是一个标准的Ruby类;它的工作是生成和绘制有关销售的信息。classSalesReportdefinitialize(start_date,end_date)@start_date=start_date@end_date=end_dateenddefsales_in_durationSale.total_for_duration(@start_date,@end_date)end#...end因为我想使用TDD并且我希望我的测试运行得非常快,所
文章目录前言1.AI的发展历程2.我是如何接触到人工智能的概念和产品的3.对于ChatGPT的一点看法4.AI对大学毕业生的职业发展的利与弊5.对于AI的思考和问题前言随着ChatGPT的爆火,生成式AI,大模型的人工智能被越来越多的人注意到,同时他也带来了许多问题。本文将对几方面进行探讨。1.AI的发展历程远古时期在公元前第一个千禧年,中国,印度和希腊哲学家都提出了一些推理的研究理论,比如亚里士多德(Aristotle)进行了演绎推理三段论的完整分析,欧几里得(Euclid)所著Elements是一种形式推理的模型,MuḥammadibnMūsāal-Khwārizmī,发明了代数学,即我们
目录1古彝文与古典保护2古文识别的挑战2.1西文与汉文OCR2.2古彝文识别难点3合合信息:古彝文保护新思路3.1图像矫正3.2图像增强3.3语义理解3.4工程技巧4总结1古彝文与古典保护彝文指的是云南、贵州、四川等地的彝族人使用的文字,区别于现代意义上的彝文,古彝文指的是在民间流通使用的原生态彝文,多达87046字。古彝文的起源距今至少数千年,是世界上最古老的文字之一。对古彝文字集研究有助于理解尚未被翻译成汉文、用字尚未规范化的古籍,更深层、透彻地作用于传统文化保护。古彝文字义对照图(网络资料+邵文苑供图)古籍是不可再生的宝贵资源,应当得到妥善保护。中国的古籍在历史上迭经水火兵燹等自然灾害、
我正在寻找一个快速、无需配置的FTP服务器。完全像Serve的东西或Rack_dav,但对于FTP,它可以通过运行命令来发布文件夹。是否有gem或其他东西可以做这样的事情?解决方案基于Wayne的ftpdgem,我创建了一个快速且易于使用的gem,名为Purvey. 最佳答案 ftpdgem支持TLS,并带有文件系统驱动程序。与em-ftpd一样,您提供一个驱动程序,但该驱动程序不需要做太多事情。这是一个最低限度的FTP服务器,它接受任何用户名/密码,并提供临时目录中的文件:require'ftpd'require'tmpdir'c
给定两个字符串,我想确定它们是否是彼此的变位词。这是我想出的解决方案:#outputmessagesdefanagramputs"Anagram!"exitenddefnot_anagramputs"Notananagram!"exitend#mainmethodif__FILE__==$0#readtwostringsfromthecommandlinefirst,second=gets.chomp,gets.chomp#specialcase1not_anagramiffirst.length!=second.length#specialcase2anagramiffirst==s
快速求三阶矩阵的逆矩阵前言一般情况下,我们求解伴随矩阵是要注意符号问题和位置问题的(如下所示)A−1=1[ ][−[ ]−[ ]−[ ] −[ ]]=A−1=1[ ][ M11−[M12] M13−[M21] M22−[M23] M31−[M32] M33]⊤\begin{aligned}&A^{-1}=\frac{1}{[\\]}\left[\begin{array}{cccccc}&-[\\]&\\-[\\]&&-[\\]\\\\&-[\\]&\\\end{array}\right]=\\\\&A^{-1}=\frac{1}{[\\]}\left[\b
以前我们经常打趣说:***,你out了!当然了,玩笑成分居多。但是如果作为一名技术人员,现在还没有听说过ChatGPT,那么你可能真的“out”了。比尔·盖茨说,ChatGPT的重要性堪比互联网的发明,甚至它“将改变我们的世界”。ChatGPT得到科技界大佬的如此推崇,那么,ChatGPT到底是什么?ChatGPT是2022年11月底,美国OpenAI公司推出的一款人工智能聊天机器人。两个月后,ChatGPT的月活用户已经突破1亿,成为有史以来增长速度最快的消费者应用程序。ChatGPT功能极其强大,它能够通过学习和理解人类的语言进行对话,还能根据上下文进行互动,实现像人类一样的聊天交流。除了