前言
近两年AIGC行业的快速发展,我们看到了大量模型强大的绘画风格,能够将其广泛地运用到海报制作行业中,但是能否运用这项技术应用在游戏制作上?能否极大地提高制作效率呢?
要想应用在游戏画面制作,就要对其画风统一控制有很高的要求,但我们目前看到的生成效果较好的主要集中在二次元、写实风形象上,所以很难将其拿来就用,往往生成的效果和我们的预期的风格相距甚远。
本文将用ComfyUI尝试生成风格统一的且操作灵活度较高的卡通农场。
提示:以下是本篇文章正文内容,下面案例可供参考
一、任务分析
先看上图,这是我最开始第一个生成的像素农场,是不是乍一看风格也还凑合说得过去,其实说到风格统一,最简单粗暴的方法就是直接让AI生成一整幅图,把里面的小组件(花草树木农田果实等等)都描述提示给他,简单调调参数,让他直接出一整张图,它就能生成风格统一的完整的画面。
这样一来,我们再生成点上图右下角的这些元素,还是很轻松的,这一整张图也就出来了。但是,这样的画面能否应用在真实的游戏场景中呢?我想肯定是不达标的,比如我们在农场里要砍一棵树,由于我们的树是和整个背景一块生成的,所以单独对树做减量一定是很困难很复杂的,灵活度太差,也就满足不了各种各样的操作需求。
所以我们应该先生成一幅预期风格的简单的背景图,越简单越好,越简单我们的操作灵活度就越高,然后在背景图上一点点做增量,最终得到我们拥有100多个可操作元素的卡通农场。
二、使用的ComfyUI模块介绍
1.模型选取
最开始时选取了SDXL1.0这个基础模型+训练lora的方法,期望通过小模型训练的方法来控制生成风格的统一,但在实践了两天后发现,受制于训练集的影响,生成的效果很难控制(有机会写一篇lora训练的心得体会)。最终底模checkpoints选取了juggernautXL_v9,这也是我最近用了SD1.5,SDXL base1.0,dreamshaper_8等等主流模型后发现效果最好的一个。
同时在处理一些需要降低锐化度、去噪的图片,采用SDXL refiner进行进一步处理,对于像背景、树木、农作物等,将其与juggernautXL_v9串联使用。
同时对于图生图的处理工作,采用controlnet网络进行处理,主要采用了Canny Edge提取器,对于图片的边缘纹理提取,当然并不是所有的图生图都要采用controlnet,对不同的生成,需要进行不同的调试。
(不是越复杂越好,有时返璞归真才是效果最好的…)
2.工作流与图片处理工具
首先肯定是上图中最基础的文生图工作流,主要是对提示词进行调整,在没有调好提示词前,batch size我一般设置为2,看看大体风格和预期的符不符合,如果不符合就继续调整;符合后latent image 为1024×1024,batch size设置为6,Queue prompt两三次,应该就有合适的了。
背景去除模块一定是素材生成的刚需了,当然不用上图中ComfyUI的这个插件也可以,可以用其他的工具。
然后是上图中的图生图模块,我把refiner放在这里了,真正处理的时候在这用refiner的需求会更多,就没在文生图那里放,节省点算力…
看着上图工作流有些乱,其实是因为我把基础的图片输入和用controlnet的Canny Edge提取器都放在这个工作流里了,用哪个就把采样器的latent连在哪个上,比较方便调试,调试效率直接提升一倍。
最返璞归真的方法就是把图片直接连在采样器上,这里的denoise降噪参数我一般设置在0.4,参数越小和输入图像越相似,所以调试的时候我一般就用二分法调的比较快,直接逼近你想要的参数区间。
还有就是用controlnet的Canny Edge提取器来控制图生图,这个方法的好处是可以控制图像分辨率的质量,而且可以调整batch size,但是有时会比较天马行空,而且降噪参数不能调的太低,太低就会白花花一片了。
上面就是主要的工作流了,此外我们还需要一个重要的工具——photoshop,不管是对输入的图片还是生成的图片,都能按照我们的想法进行简单的处理,还是挺重要的。
PS:作者这一周的PS工具的应用突飞猛进
三、实现流程
话不多说,我们直接上手生成自己的卡通农场。我将分四个部分来生成,最终组合成预期的卡通农场:背景与装饰物,种植区域与围栏区域,操作界面与果实,房屋与农机。
1.背景与装饰物
首先我们要生成底层的背景,越简单越好,只有道路草坪和基础房屋,我这里选取抠图再生成的方式,来固定住你想要的部分,道路的形状走向等等,再进行图生图AI补全,直到抽到喜欢的背景图。
然后把绿色填充满假装是草坪。
上图就是输入,我希望把图中的道路进行画面固定。输入提示词:A farm surrounded by green grass,cartoon perfect,cartoon soil, concept art, harvest moon, pokemon, artstation, 2d game art, detailed
采样步数设置为50,cfg为7,denoise为0.6。
生成了这张我比较喜欢,接着用refiner降下噪,处理下杂草。
最终我选取的背景图如下。
好的,接下来我们要做的就是在这幅背景图上逐步加入各种素材啦。
我们先为整幅图生成一些装饰物,如树木、石头、草垛、湖泊…
输入提示词如树木:side view down,subject look down,aerial view,a tree with lush, green canopies and light brown trunks, concept art, artstation, 2d game art, perfect, detailed
这里就看大家的喜好了,没什么难度,我们生成的素材不可能十全十美,这里大家就要善用后期工具进行一些微调,得到想要的效果。
把这些装饰物排上去就得到更丰富的下图喽。
2.种植区域与围栏区域
这两个区域应该是整个任务中最难的部分了:种植区域分为土壤、刚种下的苗、生长中的作物、成熟的作物,本次我们生成了小麦与玉米两种作物;围栏区域也就是养家禽的地方,我们设置了三种不同风格的围栏,猪牛羊鸡四种不同动物以及不同的形态。
土地生成提示词:side view down,a piece of cartoon soil, concept art, harvest moon, pokemon, artstation, 2d game art, pixel perfect, detailed
当然这里我们肯定不能一下就生成得到我们想要的、一块一块的土壤,这里我们只能通过剪裁+图生图+后期ps处理的方法,将每块土地排列如下。
接下来我们需要在土地上“插秧”,完成农作物的种植。
以麦穗为例,输入提示词:cartoon,cute,Intensive,Neatly arranged,High,Simple, great,side view down,harvest,A yellow ripe wheat without background,concept art, game item, harvest moon, pokemon, artstation, 2d game art, pixel perfect, detailed shading, inventory,HDR, UHD, 8K,best quality,Professional
然后我们就能得到各样的农作物:
简单处理一下就可以插秧了,结果如下:
完成了种植区域的生成,接下来完成围栏区域的生成。
围栏生成提示词:isometric 3d cube,Stick Figure,cartoon,cute,Intensive,(short:2),Simple, great,side view down,harvest,A farm fence, square, centered, brown fence with light brown land in the middle, artstation, 2d game art, pixel perfect, detailed shading, inventory,HDR, UHD, 8K,best quality,Professional
在生成围栏时我一直控制不了它生成的视角,想让它在视觉上变得大一些,围栏高度矮一些,后来发现只要手动拉宽它就好了…最终微调提示词生成了三种风格的围栏:
然后我们生成一些小动物放进去,这里还是比较简单的:
3.操作界面与果实
完成了上述操作,我们的小农场是不是有些样貌了呢。
下面我们尝试生成一些游戏的操作面板,这里我们采用的是图生图的方式先抠图一个大概的面板样式,之后用图生图的方法,用controlnet固定一下线条风格,然后输入提示词,生成自己喜欢的操作面板:
接下来生成一些面板上的物品,比如香蕉、草莓、苹果等等,这里用juggernautXL直接生成非常容易。输入提示词,如胡萝卜:HDR, UHD, 8K,best quality,Professional,cartoon carrot icon, concept art, game item, harvest moon, pokemon, artstation, 2d game art, pixel perfect, detailed shading, inventory
其他种类我们只要把提示词中的“carrot”替换成相应的品类就好。
这样我们就生成了游戏界面中的操作界面与果实。
4.房屋与农机
完成了上述内容后,我们还需要生成一些游戏界面中的道具与农机设备:比如炼乳场、零售铺、任务面板、信箱、运输车;除草机、翻斗车、蓄水槽等一系列道具,来丰富我们的界面,也让游戏有更多的操作空间。
在这里像零售铺、任务面板这种难以控制风格的道具,我就采用了抠图+图生图的方法来控制其风格,其他则采用正常的文生图方式。
总结
最终我们就完成了用ComfyUI生成自己的卡通农场,总结一下:风格要求比较高的组件,我们就主要采用抠图+图生图的方法进行画风控制;风格较为平常的,就主要采用调整提示词与参数的方法,最后进行一定的手工处理,我们基本都能生成自己想要的风格。
致谢
感谢微链(宁波)智能科技有限公司对本工作的支持,祝愿公司蓬勃发展、一路长虹。