文章将向大家展示作者Neilson Koerner-Safrata 如何使用Sprite-Diffuser为《帝国时代II》(AoE II)添加自定义文明建筑。在此过程中,他将使用Stable Diffusion生成器创建定制的建筑模型。
一、视觉探索
- 截图转换:首先,作者尝试在《帝国时代II》截图上使用图像转换(img2img)。这里使用的是Stable Diffusion生成器。作者用Alpaca在Photoshop中处理整个游戏截图,观察模型如何处理图像的形状和纹理,并尝试不同的风格。
- Caspar David Friedrich基准测试:接下来,作者使用isometric视角引导网络输出图像,并尝试获得在光照、颜色、形状和纹理方面的一致结果。
![](https://aibackup.com/wp-content/uploads/2023/05/AoE2.gif)
![](https://aibackup.com/wp-content/uploads/2023/05/AoE0085-1-1024x819.png)
二、Sprite-Diffuser
- 创建文明:为了生成建筑,需要512×512的图像。幸运的是,《帝国时代II》中的建筑贴图比这要小一半,所以不需要调整大小。以下是第一批尝试的结果。
这些建筑都是在Photoshop中挑选和清理过的。为了获得更多样化的效果,作者将图像转换的强度设置得很高,但这导致了光照、比例和细节程度的差异很大。
- 使用Control Net和Loopback优化输出:为了在保持高转换强度的同时获得一致的结果,需要使用Control Net系统,通过输入线稿、深度或分割图来引导生成过程。
使用Loopback技巧,可以让生成的图像在相同的提示下重新生成,从而实现对形状、纹理和颜色的创新调整。
最终采用的技术是结合Control Net和Zoe Depth Estimation,进行两次Loopback,每次保留原始图像的15%。
![](https://aibackup.com/wp-content/uploads/2023/05/Civilization-1024x373.gif)
三、提示
提示是整个过程中最重要的部分。以下是一个示例:
-
Shape:描述建筑的形状,例如 “isometric exterior of a”。这可以引导模型创建具有透视视图的建筑物。
-
Descriptor:描述建筑的历史或文化背景,例如 “ancient Roman”。这有助于模型了解建筑的风格和特征。
-
Subject:表示建筑的类型,例如 “Barracks”。这是您需要为每个建筑物更改的字段,如 “Archery Range”、”Market” 或 “House”。
-
Style:描述建筑的艺术风格,例如 “in the style of Giovanni Paolo Panini“。您可以尝试不同的艺术家或风格以获得独特的建筑效果。
-
Emphasis:强调建筑的某些特征,例如 “3D roman architecture, greco-roman stone and pillars with intricate stonework and roofs”。这会让模型关注特定的细节和元素。
-
Modifiers:对图像的颜色、分辨率、光照等进行调整,例如 “desaturated, 8k, bright sunny natural lighting, trending on artstation”。这有助于控制输出图像的整体效果。
Stable Diffusion无法直接生成透明图像。可以在提示中强制使用纯色背景,然后使用ImageMagick创建透明填充。
四、结果
![](https://aibackup.com/wp-content/uploads/2023/05/sprite-diffuser-gif-full-1024x596.gif)
五、其他实验和思考
自定义建筑和微调:可以反转过程,为原有建筑创建新风格,或使用微调的《帝国时代II》模型为原有风格创建新建筑。
灰盒转换为图像:使用Unity项目,可以为建筑、地面和树木应用ADE20k数据集的分割图。
使用Control Net和对象分割,可以实现快速搭建环境艺术。
六、总结
通过使用Sprite-Diffuser、Stable Diffusion生成器和Control Net,作者展示了如何为《帝国时代II》创建自定义文明建筑模型。尽管在一些细节上还有改进空间,但这种方法为游戏添加了新的可能性,使得游戏的世界更加多样化。
更多细节请访问项目地址:https://www.engine.study/blog/modding-age-of-empires-ii-with-a-sprite-diffuser