Stability.ai 一周多前发布了 Stable Diffusion 2.0 模型。这是继 8 月 Stable Diffusion 1.4 版本以来最大的更新。但在 AI 图像生成模型激烈的竞争局面下,看起来社区并不买账。SD 2.0 在 Reddit 上招来群嘲,人们抱怨,SD 旧版本的 prompt,在 2.0 下不仅不再管用,甚至效果明显有倒退,生物体结构扭曲错乱,质感奇怪。拿来跟讨巧又低门槛的 Midjourney v4 一比较,简直是场噩梦。
社区甚至有了 “阴谋” 的猜想,先于官方发布的 2.0 开源模型是 Emad / SD Team 放出来的非常基础的模型版本,它们还有一个艺术超模型集 hypernetwork/model set,但不会公开,而是用于自有商业服务 DreamStudio 或拿来卖 API。社区想用好东西,得靠自己动手 finetune 
。
我对 SD2 的第一印象也跟社区差不多,不小的挫败和失望。过去珍藏的prompt 跑完能看的不多。但抛弃旧思路,经过几组的 prompt 实验后,我又信心大振,发现了 Stable Diffusion 2.0 的很多亮点和优势。

fine-art photography of a Clear crystal cube, floating highly on the sky, the tumultuous sea, Arctic Ocean, sunset, magic time, HDR, Minimalism, artistic, atmospheric, Centered symmetrical composition, conceptual design, futuristic, cinematic, hyper-detailed, 8K wallpaper -H 960 -S 3033668822



下面是我花了大概 4 个小时实验结果和经验分享。我使用的生成服务用的是 我和家属 @virushuo 一起开发的 DFserver(基于 Huggingface Diffusers 实现的分布式 backend AI pieline server)的 discord bot。
本文中每张图都提供了 prompt 和 seed (见 image caption), 都是我原创的,欢迎大家在其基础上还原生成,做更多探索。需要注意的是,我用的是 diffusers + 2.0 模型, 同样的 seed 在 Dreamstudio 上可能结果会不一样。
所有结果都是纯 prompt 生成,无 init image,无后期,也没使用 negative prompt (用了可能更好玩)。
所有图的生成参数:
CGS: 9
Steps: 25
Size: 769 * 1024 or 768 * 960
SD2.0 最大改进,基础模型提供了更高的分辨率 (从 512 增加到 768 px),用更少的步数就能达到很好的结果(从 50 steps 减少到 25 ),图像质量和细节的丰富程度上也有了显著的提升。尤其突出的是对 光源、阴影、投影、物体表面的漫反射及环境反射、景深这些指标的处理,超越目前市面上的所有模型。
比如下面这三张海面上的透明晶体,橙色落日的光照如何在水面和晶体表面及内部形成漂亮的反射及折射,如何不同地作用于高透明水晶体和半透明的冰块,以及透明水晶球上准确的球面化变形处理。



下面一组实验是水下场景的生成。水下场景的渲染和水体仿真在 CG 领域是皇冠级别的难度。AI 生成 能做到这个程度令我很吃惊。抛开复杂的光照处理和水波反射,水下奔马那张甚至能看出来浮力的影响。
可能你会觉得目前为止跑出来的结果都有一些过饱和的倾向,过于 HDR 了,但这个问题还是可以通过调整 prompt、使用 negative prompt、或后期处理一下,拉低曲线或饱和度。





SD 1.5 的 prompt 照搬到 2.0 后,能幸存的很少。所以 SD2 的 prompt engineering 可能需要不同的尝试思路。很明显,过短和过长的 prompt 在 SD2 里都是不好用的。你不可能用像在 Midjourney v4 里那样,用 “Fire fox chibi” 这么短的词就跑出来漂亮结果;也无需采用之前常见的做法,靠大量堆叠 “修饰词” 或 “参考艺术家” 来拼盘随机出一个结果。
也可以不再使用 trending on artstation, 500px 这类 “向AI神灵的祈祷词”,亲测加不加对结果没啥影响。
我实验下来的感受是,SD2 对修饰词的响应,较之前版本,更为敏感和准确。这意味着它能提供更高的可控性,更精细。这让带着目标性的 prompt 设计变得更可行,更有的放矢,从蒙眼炼金的时代走出。这对于喜欢挑战的玩家,无疑是个礼物。
下面四张是我实验黑色液体金属材质(liquid metal, dark)纹理的生成。
第一张看起来像打了强光的亮光厚涂丙烯媒介,不是很符合我预期。

第二张,我加上了修饰词 flowing, Ribbon-like shine,感觉有点丝滑过头了。

liquid metal, flowing, dark, Ribbon-like shine, hyper-detailed, photorealistic, studio light, amazing texture -S 9363724119
下面两张我又增加了修饰词 Solidified lava,比较接近我想要的效果。
我感觉 SD2 对 这三次修饰词增加的响应还挺敏感的,肉眼可见的改变还挺明显。
此外,我也没有堆叠 rendering 类的修饰词,没加上一堆 3D 引擎。


下面三张是我对一张黑白沙丘摄影 prompt 的渐进优化,种子是相同的。第一张出来的构图我很喜欢,想保留。但沙浪的对比太假了。我就加了 “perfect brightness and contrast balance” 试试,出于意料的管用了(第二张)。但沙浪的曲线又抖动了,我又加了 “ Extremely artistic curve ” (第三张)。
实验次数不多,可能添加这两个修饰词的改善效果有运气成分。但的确让我看到 精细 editting 的可能性。



下面这组实验是我观察对不同艺术家风格的响应。6 张同主题冰山风景画,只更换了艺术家。
Michael Whelan 是色彩明快构图简洁的奇幻题材插画大师。
Bruce_Pennington 是风格复古、喜欢浓墨重彩的科幻插画艺术家。
Chesley Bonestell 是异星地貌和太空题材的插画家,笔触豪放。
Andreas Rocha 则是游戏和概念设定领域的数绘艺术家,风格更现代轻快(我很喜欢用他)
新版对艺术家风格响应还是挺敏感的,对用什么艺术家可能出什么效果变得更可预测,这都让有目的性的 prompt 实验及设计都变得可行。嗯,所以 SD2 里,我就没再使用过 3 位以上的艺术家啦。






fine-art watercolor landscape painting of Iceberg cliffs, Arctic Ocean, sunset, magic time, by Andreas Rocha, Minimalism, artistic, atmospheric, masterpiece, darker shadow, high contrast, golden ratio composition, hyper-detailed -W 960 -S 9252202207
下面这一组测试的是配色修饰词,艺术家参考都是 Kaethe Butcher 的钢笔肖像画。随便写了 红蓝、黄蓝、青 vs 熟赭 这几个撞色风格,结果意想不到的准确,而且艺术感很强呢。
作为肖像,面部解剖的准确度不错,竖幅也没跑出上下两张脸。下面4张结果是从总共不到 20 次生成里挑选的。




下面两组实验的是干湿两种绘画媒介,油画和水彩。不同媒介的笔触属性和边缘渲染特征、对画布/纸表面的模拟,都挺惊艳的。对透明玻璃器皿和铜器的描绘我很喜欢。
在油画媒介上,柠檬表皮模拟了油画颜料的龟裂纹理。而水彩媒介,最后一张上,干湿画法的模拟都很到位。



我自己画水彩的,反正下面这张我很难看起来是原作扫描件还是AI生成的。

这组还是油画 vs 水彩这两种古典 fine-art 媒介的对比,风景主题的。虽然参考的艺术家 Andreas Rocha 是只画数绘的大师





SD2 发布后的一个争议是,社区发现其训练集集里移除了有争议的名人肖像。用名人作为关键词生成的肖像特征不再明显,(是的,可能 在 2.0 里你们再也跑不出来长着美人鱼尾巴的 Emma Watson 或 Gal Gadot 了,但奥巴马好像还是可以的)。
但我想是,如果需要的话,需要任何一个人的肖像特征生成,都是很容易通过自定义 finetune 来取得的。作为一个基石型的开放模型,我个人认同 SD 的做法,在伦理争议多考虑一点,把有争议的数据从训练集里越早排除掉越好。
我对名人再加工没什么兴趣,但倒是版画风格试了艺术史上几张著名的脸,特征鲜明得很,一看就能猜出来它们都是谁。




这组实验了不同的自然材质的细节表现力:冰块、雪地、沙地、海浪、海浪的泡沫。


fine-art landscape and nature photography of Undulating sand dunes in Death Valley, HDR, artistic, Minimalism Photography, sand wave, cloudy sky, magic time, golden shining, atmospheric, depressing, photography by Erez Marom, golden and Ultramarine color, masterpiece, golden ratio composition, 500px, 8K, wallpaper, -H 1024 -S 3097727685

fine-art landscape and nature photography of ocean, Stunning Photos of breaking Ocean Wave, close-up view, High-speed photography, HDR, artistic, Minimalism Photography, cloudy sky, magic time, sunset, golden shining, atmospheric, depressing, masterpiece, golden ratio composition, 8K, wallpaper, -H 1024

接下来我还会接着实验 SD 2.0 更多风格的生成,以及 depth2img、inpainting 模型和自定义 finetune,分享给大家。
AI 生成模型想要作为专业化工具进入更严肃应用领域,能使用草稿图引导来控制配色及构图、迭代时需要的精细编辑功能,低门槛的模型 finetune,在这三个方向上的成熟,是重要条件。

最后以一张 不朽的 Adam Ansel 的 月升大峡谷收尾,谢谢观看,这是我用 SD2.0 跑出来的第一张成功结果。
上一次更新里,我提到了我刚发布了一个 专为 AI 艺术家和爱好者们设计的 APP —— Kalos.art。访问文章链接:AI 终于能为我挣钱了
我今天发布的图片都发布在了我的 Kalos 账号,大家如果需要购买这些作品的使用授权,欢迎点击阅读原文。或者 只是支持一下,来我充个电、点个赞哦。
其它有用的链接:
我跟家属开发的 开源分布式 AI 模型 pipeline 后端服务—— DFserver : https://github.com/huo-ju/dfserver
Stable Diffusion 2.0 已开源的模型:https://github.com/Stability-AI/stablediffusion
Stability.ai 的官方付费 AI 图像生成在线服务: https://beta.dreamstudio.ai
Huggingface Diffusers: https://huggingface.co/docs/diffusers/index
一、RIPV2协议简介 RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对
我在我的Sinatra应用程序中使用Hash#to_xml。在我转向actviesupport3.0.0之前,它一直有效activesupport在3.0.0的使用有区别吗?例如这很好用gem'activesupport','2.3.5'require'active_support'{}.to_xml和gem'activesupport','3.0.0'require'active_support'{}.to_xml生成:NoMethodError:{}的未定义方法“to_xml”:哈希 最佳答案 当您需要时,ActiveSuppo
ActiveRecord似乎定义实例方法的方式与attr_accessor不同。attr_accessor似乎没有为我新定义的属性定义super方法:classSomeClassattr_accessor:some_attributedefsome_attributesuperendend>>some_class=SomeClass.new>>some_class.some_attributeNoMethodError:super:nosuperclassmethod`some_attribute'for..鉴于ActiveRecord明确定义了一个super方法:classSomeC
目录1.1访问Cisco路由器的方法1.1.1通过Console口访问路由器1.1.2通过Telnet访问路由器1.1.3终端访问服务器1.2终端访问服务器配置命令汇总1.1访问Cisco路由器的方法 路由器没有键盘和鼠标,要初始化路由器需要把计算机的串口和路由器的Console口进行连接。访问Cisco路由器的方法还有Telnet、WebBrowser和网络管理软件(如CiscoWorks)等,本节讨论前2种。1.1.1通过Console口访问路由器 计算机的串口和路由器的Console口是通过反转线(Rollover)进行连接的,反转线的一端接在路由器的Console口上,另一
我正在就Ruby语言和环境向.NET(C#)开发团队进行一系列演讲。我把它当作一个机会来强调Ruby相对于C#的优势。首先,我想在进入环境之前专注于语言本身(RoR与ASPMVC等)。你会介绍Ruby语言的哪些特性? 最佳答案 我刚才在一个.NET用户组做了一个关于IronRuby的演讲,遇到了类似的问题。我关注的事情是:鸭子打字。没有什么比ListstringList=newList()更愚蠢的了;表达力强,语法简洁。简单的事情,比如省略括号、数组和散列文字等(结合鸭子类型,你会得到string_list=[]这显然更好)。所有的
文章目录一、用户二、用户分类1、普通用户2、超级用户3、系统用户三、用户相关文件1、/etc/passwd文件2、/etc/shadow文件四、用户管理命令1、useradd2、adduser3、passwd4、usermod5、userdel一、用户Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。在Linux系统中,任何文件都属于某一特定用户,而任何用户都隶属于至少一个用户组。用户名(username):每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系
(我已经问过这个问题atRubyForum,但没有得到任何答案,所以我现在交叉发布)根据我的理解,下面的代码是等价的Ruby1.9及更高版本:#(1)casewhenxbbarelsebazend#(2)ifxbbarelsebazend到目前为止,出于习惯,我一直会使用(2)。有人能想到出于某种特殊原因,为什么(1)或(2)“更好”,或者只是品味问题?澄清:一些用户反对,这个问题只是“基于意见”,因此不适合这个论坛。因此,我认为我自己说得不够清楚:我不想开始讨论个人编程风格。我提出这个话题的原因是:令我惊讶的是,Ruby提供了两种截然不同的语法(target-lesscase和if-
在阅读here时,我一直在寻找新乘客5的性能测试。它变得更快。我试图找到其他资源来证实这一点,但没有成功。有没有人尝试安装它并看到区别? 最佳答案 Passenger5在自定义选择的基准测试中得分更高,因为它有一个内置的缓存层(“turbocaching”),可以避免在短时间内为相同的请求实际运行您的应用程序代码;它不会使您的实际应用程序代码运行得更快。此缓存层仅在某些受限情况下处于事件状态,并且在绝大多数实际情况下不太可能提供太多好处。如果您不小心,缓存层实际上可能最终会破坏您的应用程序-我演示了几个securityvulnera
我即将将我的测试自动化语言从Java更改为Ruby(我有一份新工作,其中Ruby更适合技术堆栈)。我在Java和Webdriver方面有很多经验,但可以看到Watir和Capybara等包装器在Ruby中的使用似乎比直接访问WebdriverAPI更多。我对使用此类库的关注是性能。我通常会尝试将第三方网格(例如Saucelabs)集成到我的测试框架中,但了解到selenium网络元素对象的缓存很重要,因为不断查找元素会对性能产生影响。如果我使用像Capybara这样的库,我会失去控制缓存策略的能力吗?我之前调查过Geb,发现该框架不断地重新创建网络元素而不是缓存,并且它在更改该行为方面
文章目录实验要求实验思路IP地址规划路由实验配置R1上配置R2上配置R3上配置R4上配置R5上配置R6上配置R7上配置R8上配置R9上配置R10上配置R11上配置R12上配置实验测试R10pingR4的环回R10pingR12的环回R10pingR1实验要求R4为ISP,其只能配置IP地址;R4与其他所有直连设备间均使用公有IP;R3-R5/6/7为MGRE环境,R3为中心站点;整个OSPF环境IP基于172.16.0.0/16划分;所有设备均可访问R4的环回;减少LSA的更新量,加快收敛,保障更新安全;全网可达实验思路IP地址规划公网IP随便配置,这里我R3-R4的网段为34.1.1.0/2