AI绘画入门(八)——水墨山水直出!SD进入XL时代

金刚葫芦叔

<p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1"><a href="https://www.meipian.cn/4ve43nw2" target="_blank" style="background-color:rgb(255, 255, 255); font-size:18px;">上节课</a>咱们介绍了提示词的基本机制和书写方式,现在就到了实战检验学习成果的时候。话说美女虽好,看太多也难免审美疲劳,咱们今天就换个口味,来生成一幅水墨山水画吧。</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">首先要做的,依然是选择底模,之前葫芦叔推荐过的模型大多是基于SD1.5环境运行的,这次,就让我们跟随技术发展潮流,点击SDXL标签,选择最近风头正盛的SDXL1.0模型来做个尝试:</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">选择完成后可以看到底模选框右下角多出了一个以前没有的复选框SDXL Refiner,这是XL版本特有的第二模组,采用图生图的形式对图像进行二次优化,但有时也会产生反效果,这里我们先不去勾它。</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">继续往下输入提示词,我们这次想要的是一幅水墨山水画,那么首先当然要有山和水啦。由于吐司集成了提示词补全插件,它对中文其实是有一定识别能力的,这里我们就输入“山”,系统会自动弹出一个下拉选框,里面罗列的都是和山有关的提示词并在右侧给出了对应的中文解释。点击选择我们需要的词,也就是第一个,mountain。</p> <p class="ql-block"><br></p><p class="ql-block ql-indent-1">这里需要说明的是,如果不从列表中选择而是直接输入中文“山”,系统在最后生图的时候其实也会尝试进行翻译。但比起从补全列表中选择,这种硬翻译极有可能向SD传递错误或不准确的信息,继而导致成像质量下降和图像优化困难,所以<span style="color:rgb(237, 35, 8);">不到万不得已最好不要直接使用中文输入</span>。</p> <p class="ql-block ql-indent-1">接下来,根据水墨山水画的常见特点,我们依次输入 mountain(山),water(水), tree(树木), bridge(桥),boat(船),词与词之间用逗号分隔开;由于这次加载的是XL1.0版本的底模,而上节课讲过的冷板凳三兄弟都是基于1.5版本运行的,在这里并不适用,所以反向提示词里我们还是写一些基本的质量控制词,如下图:</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">继续向下滑动查看其他参数,会发现图片大小发生了神奇的变化,虽然还是竖长方、横长方和正方形三种预设,但分辨率却由原来的512*768、768*512、640*640增加到了768*1152、1152*768、1024*1024,自定义分辨率甚至可以达到1536*1536!前面的课程里咱们刚说过SD中原始图像分辨率不能超过1024*1024,怎么一转身就被啪啪打脸了呢?</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">原因很简单——SD升级了。和其它所有软件一样,虽然开源了,但作为官方的Stability AI也还在不断的对SD进行迭代更新,例如我们之前演示时使用的SD1.5版本,就是初代SD的最终版本(前面还有v1.0、v1.1、v1.2、v1.3、v1.4),也是流传最广、生态最完善的一个版本。而这次推出的SDXL系列实际上是SD的第三代产品——等等,怎么直接就从第一代跳到第三代了?二代去哪了?嗯…二代当然是存在的,只不过被大家选择性忽略掉了😌</p><p class="ql-block ql-indent-1"><br></p> <p class="ql-block ql-indent-1">继1.5版本之后,官方曾先后推出过v2.0、v2.1两个大版本以及数个小版本的更新,成像质量尤其是风景和建筑类内容的表现也得到了明显改善,那为啥没人用呢?原因很多,比如提示词书写体系大幅改变导致用户不习惯,再比如因为版权争议删除了大量内置的名人肖像和艺术家风格,但最重要的其实只有一点——<span style="color:rgb(237, 35, 8);">它大砍了NSFW内容</span>。</p><p class="ql-block ql-indent-1">NSFW,not safe for work的简写,翻译过来就是“不宜用于工作场合”,听不懂?再换个词儿,18禁,包括但不限于政治、色情、血腥、暴力等内容,这回懂了吧😎。为啥不直接说18禁呢,不是葫芦叔非要整洋词儿,而是因为——SD不认识18禁,但NSFW它可是认识的。在SD中,NSFW属于特征描述词中一个特殊的存在,它更像一个开关,放在反向提示词里可以让你的成像内容健康和谐,可要是放到正向提示词里…咳,好像又说了什么不该说的╰(  ̄﹏ ̄)╯</p> <p class="ql-block ql-indent-1">总之,Stability AI作为亲爹,既怕担责又觉得自己应该把孩子向健康阳光的方向引导,没想到外面这些社会人压根不买账,一个个满脑子就想关上门画个小涩图或者拿着懂王的脸去整活儿,你不支持NSFW那我就继续玩我的1.5版本——就这样,第二代SD虽然在技术上取得了突破,但在社群传播层面却是一败涂地。</p> <p class="ql-block ql-indent-1">于是Stability AI痛定思痛,把这次推出的第三代SD更名为SDXL,重新恢复了对NSFW内容的支持,加上横跨两个世代(其实也就过了半年😅)的技术架构升级和成像表现优化,除了插件、模型这些环境生态仍需时间来完善,其他方面已经呈现出全面碾压1.5版本的态势,许多业态可能也会随之发生变化。</p> <p class="ql-block ql-indent-1">那么如何才能使用XL1.0版本的SD呢?很简单,就像刚才我们做过的一样,<span style="color:rgb(237, 35, 8);">直接在模型分类里选择SDXL标签下面的模型</span>就可以了,选完底模以后LoRA啥的都会自动匹配,不支持XL版本的LoRA你就是想选也选不了,其它设置则和以前版本差不多,且由于目前ControlNet等高级插件的支持都还在路上,用户只需要把关注焦点放在底模、LoRA和提示词上,对新手小白的友好度直接拉满,至于实际效果,咱们接着往下一试便知。</p> <p class="ql-block ql-indent-1">图像大小我们仍然选择第一个竖屏预设,采样方式选择最下面的DPM++2M SDE Karras,其它保持默认,直接拉到最下面点击在线生成。</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">这次等待的时间明显比我们前两次生图时要长,SDXL在提升成像质量的同时对硬件的要求和系统资源的消耗也相应提高了(想要在本地部署的webUI上玩转XL版本,至少需要12G以上的显存)。图像生成完毕后,可以看到我们输入的元素确实都有了,整体构图和色调表现也还不错,但这明显更像照片而不是什么水墨画。</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">啥原因呢?当然是因为我们没告诉SD需要的是水墨画啦~AI可不会玩什么猜领导心思的过家家游戏,想要什么就得老老实实说出来ψ(`∇´)ψ,所以现在点击上方的工作台标签回到创作界面,在提示词输入框里增加ink painting(水墨画),再运用上节课学过的语法添加一个0.8权重的雾气增加点气氛:(fog:0.8),再来生成一次:</p> <p class="ql-block"><br></p><p class="ql-block ql-indent-1">你看,这下是不是就有内味儿了呢?大致的效果出来了,接下来就是快乐抽卡和微调优化的时间了,比如将采样次数增加到30,提示词相关性降低到5来改善整体画质和色调,</p> <p class="ql-block"><br></p><p class="ql-block">再比如添加muted colors(柔和的颜色)来为画面增加色彩,</p> <p class="ql-block"><br></p><p class="ql-block">或者切换成横向画布以增加构图空间。</p> <p class="ql-block"><br></p><p class="ql-block ql-indent-1">最后,再来试试SDXL的自然语言识别能力。我们用浏览器打开百度翻译(chatGPT是更好的选择,如果你有的话),输入以下内容:</p><p class="ql-block ql-indent-1">一叶扁舟泛于清澈的湖面,两岸草木繁茂郁郁葱葱,周围群山起伏层峦叠嶂</p><p class="ql-block ql-indent-1">然后把得到的翻译结果复制粘贴到提示词输入框(记得先把原来的删了),再次点击生成。</p> <p class="ql-block ql-indent-1"><br></p><p class="ql-block ql-indent-1">怎么样?是不是发现SD这孩子语文水平大有进步呢?如果你也是英文苦手,就快去使用这种方法享受文生图的乐趣吧~</p>