如何用ComfyUI生成自己的卡通农场?


前言

近两年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生成自己的卡通农场,总结一下:风格要求比较高的组件,我们就主要采用抠图+图生图的方法进行画风控制;风格较为平常的,就主要采用调整提示词与参数的方法,最后进行一定的手工处理,我们基本都能生成自己想要的风格。

致谢

感谢微链(宁波)智能科技有限公司对本工作的支持,祝愿公司蓬勃发展、一路长虹。

ComfyUI是一个用于训练模型的开源工具,它基于PyTorch和Transformers库。下面是使用ComfyUI训练模型的一般步骤: 1. 安装ComfyUI:首先,你需要安装ComfyUI库。你可以通过pip命令来安装:`pip install comfyui`。 2. 准备数据集:在使用ComfyUI训练模型之前,你需要准备一个合适的数据集。数据集应该包含输入文本和对应的标签。确保数据集的格式符合ComfyUI的要求。 3. 创建模型配置文件:在使用ComfyUI训练模型之前,你需要创建一个模型配置文件。这个配置文件包含了模型的参数设置,如模型类型、隐藏层大小、学习率等。你可以根据自己的需求进行配置。 4. 编写训练脚本:使用ComfyUI进行模型训练需要编写一个训练脚本。在脚本中,你需要指定数据集路径、模型配置文件路径以及其他训练相关的参数。你可以使用ComfyUI提供的API来加载数据集、构建模型、定义损失函数和优化器等。 5. 开始训练:运行训练脚本,开始训练模型。ComfyUI会自动加载数据集、构建模型,并在每个epoch结束时计算损失并更新模型参数。你可以根据需要设置训练的epoch数和批次大小。 6. 保存模型:训练完成后,你可以保存训练好的模型。ComfyUI提供了保存模型的API,你可以指定保存路径和模型名称。 以上是使用ComfyUI训练模型的一般步骤。具体的实现细节和参数设置可以参考ComfyUI的官方文档。祝你使用ComfyUI训练模型顺利!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值