上个月接了一个角色海报外包,甲方发过来一个写实风格的3D白模,需求写得简单粗暴:出成《绝区零》那一路的赛博二次元角色。我的第一反应是打开Substance Painter,按老一套流程去手绘贴图,结果看了半天模型上那些细碎的装备结构,手上笔刷突然握不住了——按这个精度手绘,光一个头可能就得磨两天。
所以我临时改了一条路:全程不手绘贴图,让AIGC来干重活。用ControlNet锁住白模的结构特征,用二次元风格大模型去重绘材质和色彩,再把AI生成的结果回贴到模型上出图。整个过程跑了三天,最后交付的海报和动态展示,甲方甚至没发现我根本没画过贴图。这篇就把这套“白模转赛博二次元”的完整流程、参数和经验踩坑全部写出来,给正在手绘贴图地狱里挣扎的朋友一个参考。
1. 手绘贴图这个坑,到底坑在哪
1.1 传统流程为什么这么熬人
很多人拿到写实白模,第一反应就是“转二次元而已,不就是把贴图画扁一点、平涂一点吗”。实际动手你会发现完全不是这么回事。
写实模型的贴图流程是PBR链路:BaseColor、Roughness、Metalness、Normal、AO,外加各种细节层,Substance Painter里一个图层一个图层叠。转成二次元风格后,表面上可以省略大量写实细节(毛孔、皱纹、灰尘),但你省掉的每一块细节都得用新的东西补上——二次元的服饰裁缝线、色块分区、外轮廓压边、高光形状,全部要靠手去勾。以一个中型角色为例,我按正常产出速度列过一个明细:
| 环节 | 耗时 | 说明 |
|---|---|---|
| 模型拆UV | 0.5天 | 重新整理接缝,藏在结构线里 |
| 底色填充与二分 | 1天 | 大色块分区,确定固有色 |
| 装备/服饰材质分层 | 2天 | 皮革、金属、发光条分开画 |
| 高光与轮廓光 | 1天 | 二次元的“灵魂”所在 |
| 头面部精修 | 1.5天 | 脸崩一个像素都看得出 |
| AO、法线、粗糙度收尾 | 0.5天 | 保证渲染不灰不脏 |
加起来至少6到7个工作日,这还是手比较快、风格理解到位的情况。一个角色就要一周,一个项目三五个角色就是一个月。问题是,美术外包的价格却并不会因此翻倍,甲方还经常中途换配色方案。这就是“手绘贴图地狱”的真实生态。
1.2 写实模型的细节,在二次元风格里全是噪点
第二个让人崩溃的点是:写实白模本身的建模逻辑,是给写实渲染用的。脸上有皮肤褶皱,衣物有自然下垂的纹理,装备上有大量小零件和倒角。这些在PBR渲染下是“真实感”的来源,但一旦要转成二次元,这些结构全都变成了多余信息。
二次元风格的本质不是“删细节”,而是“提炼结构”。它不是把一个写实模型拍扁,而是重新理解角色的体积、剪影和材质,用更少的笔触去表达。比如一件皮夹克,二次元画法只需要几个明确的明暗色块,但写实模型的表面曲率是连续变化的,直接放二次元灯光下,过渡会显得很“肉”,完全没有漫画那根干净利落的边。
这也是为什么很多人试过“先渲染写实图,再丢给AI直接转二次元”之后,出来的东西总是半生不熟:AI确实把材质和颜色改了,但模型本身的写实曲面信息在里面,导致结果像“穿了二次元衣服的仿真人”。
1.3 绝区零风格到底特殊在哪
要转《绝区零》这种风格,不能只盯着“二次元”三个字。绝区零的美术风格本质是三层东西叠出来的:
第一层是赛博都市的机能感。服饰大面积使用工装、战术背心、机能外套这类元素,线条利落,口袋、织带、拉链的层次很多,整体偏“城市机能风”,不是日系校园风。
第二层是高饱和撞色。画面里经常出现大面积的红色、黑色、白色、柠黄撞在一起,视觉冲击力非常强,而且颜色边界清晰分明,没有太多中间调。
第三层是半写实材质渲染。它虽然长着二次元的头脸,但衣服的皮革、金属、布料是带PBR质感的,有明确的粗糙度和高光,不是传统赛璐璐那种全哑光平涂。
所以这套流程能不能成立,关键就看一件事:能不能让AI在保留白模结构的前提下,把“机能服饰结构”和“高饱和材质”这层皮“焊”上去。这也是为什么我不直接抽卡,而是老老实实走了一遍“白模处理 → 渲染基底 → ControlNet约束 → 生成 → 回贴”的链路。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 用AIGC转写实白模,两条技术路线怎么选
2.1 “秒转”到底转的是图还是模型
动手之前,先想清楚一个本质问题:你拿到写实白模之后,最终要交付的是什么。不同的交付物,技术路线完全是两回事。
要是只交付一张海报、壁纸或者单帧展示图,那属于“出图问题”:你只需要让AI基于白模结构画出一张好图,模型本身不需要有完整的贴图。
但如果是角色展示动画、多角度旋转、甚至进引擎实时渲染,那情况就完全不同了。你需要的不只是一张好看的图,而是一套能贴在UV上、随模型转动的贴图。这属于“建模问题+贴图问题”。
很多新手上来直接抓SD去生成,出了一张超帅的正面图,结果甲方说“转个角度看看”,瞬间就穿帮了——侧面和背面全靠脑补,结构和原模型对不上。
2.2 路线A:纯出图,白模只做结构输入
路线A的核心逻辑是:用3D软件摆好白模,选好角度,渲染出一张结构清晰的基底图,然后把这基底图丢给“ControlNet + img2img”组合,让AI按这个结构重新画一张成品图。
好处是出图快、角度好控制、风格浓度高,单张质量能做到接近原画。缺点是:每换一个角度都要重新生成一次,而且不同角度的结果风格可能会飘,脸的形态也容易不一致。如果只是做海报,这条路线完全够用,而且特别爽。
2.3 路线B:AI生成图回流成贴图
路线B是在路线A的基础上加一步:把AI生成图做可平铺化处理,或者用正视角的生成图直接作为模型的Color贴图或自发光贴图回贴,再配合模型本身的法线信息进行渲染。这一条路线的优势是“模型是立体的”,换角度、转动画时,轮廓和体积始终正确,真正解决了“换角度穿帮”的问题。
缺点也很明显:AI生成图毕竟不是按UV象限画的,直接回贴大概率有接缝和拉伸。所以路线B的难点不在生成,而在“怎么把一张平面作品尽量无感地贴回立体模型上”。
2.4 我最终采用的工具链
我这次实际采用的是“A为主、B为辅”的组合,核心链路如下:
| 环节 | 工具 | 作用 |
|---|---|---|
| 白模预处理 | Blender | 清理拓扑、整理UV、检查法线 |
| 渲染基底图 | Marmoset Toolbag / Blender | 输出灰模多角度图,作为AI的结构输入 |
| AI风格化生成 | Stable Diffusion + ControlNet | 将灰模图转成赛博二次元成品图 |
| 控制结构 | ControlNet Depth + Canny + Lineart | 分别锁深度、轮廓、线稿 |
| 局部修复 | img2img + inpaint | 修复脸部、接缝散乱区域 |
| 贴图回贴 | Blender / PS | 将生成图转为Color图或Emissive图 |
| 后期调色 | Photoshop / Topaz | 锐化、统一色彩、修错线 |
这套工具链最大的特点是:除了最开始的模型清理,后面没有一步需要亲手绘制细节。AI来出图,3D软件来保证结构,我负责的是判断和修改,而不是一笔一笔磨贴图。
3. 白模预处理与渲染基底的准备工作
3.1 模型清理:别让脏数据带偏AI
很多人一上来就直接截图丢给AI,出来效果全是崩的,原因往往出在白模本身。
第一步是检查法线。从别的渠道拿来的模型,法线大概率是乱的,一块反转一块正的。这种模型进渲染器,光影会明显明暗不一致,虽然AI不一定完全理解物理光照,但ControlNet在提取Depth和Canny特征时,会把这种脏数据带来的结构扭曲当成模型特征去学习,生成结果就自带一种“歪楼感”。
第二步是重新整理UV。这一步其实是给路线B(贴图回流)做准备的。接缝一定要尽量藏到服装边缘、装备背后、头发内侧这些结构转折处,千万不要在脸颊正中、大腿正面这种平顺表面上留接缝。AI生成的图回贴后,接缝处的颜色断裂会被裁缝线挡住大半。
第三步是清理多余的细碎结构。写实模型上那些零点几毫米的螺栓、藏在衣褶里的细线,在二次元风格下既画不出来,也不符合风格语言。我一般会在Blender里做一个简化版模型(保持剪影一致,但去掉内部小零件),用来渲染AI生成的基底图;原始高模留给最终渲染时去做置换或细节叠加。
3.2 为什么要用灰模渲染,而不是直接拿材质渲染
这里有个关键决策:给AI看的基底图,一定要用灰模材质(统一的中性灰,无纹理),而不是用模型自带的写实材质。
原因是ControlNet的深度图和线稿提取,本质上是“读结构”的。如果基底图上带着写实材质的高光和纹理,AI会把高光当作服饰图案、把纹理当作结构褶皱,风格化生成的结果会非常乱。灰模图对AI来说是最“干净”的输入:只有纯粹的体积、轮廓和明暗关系。
灯光也要固定。我曾经试过打一个很戏剧化的顶光,结果AI把所有阴影都理解成黑色衣物区域,生成出来的角色像穿了一条剪影黑裙子。建议用三点布光,主光稍稍偏侧,强度适中,让模型表面的明暗过渡平稳。
3.3 批量渲染多角度基底的脚本参考
因为后面对接动画和AIGC出图,很多环节需要多角度图,我写了个Blender脚本,专门用来批量出图,省得每换个角度手动摆相机。核心思路是自动遍历一组相机角度,逐帧渲染。
python复制import bpy
# 设置输出目录与格式
bpy.context.scene.render.image_settings.file_format = 'PNG'
bpy.context.scene.render.film_transparent = False
# 相机组:名称需提前定义好
cam_names = ["Cam_Front", "Cam_Front45", "Cam_Side", "Cam_Back45", "Cam_Back", "Cam_Top45"]
for cam_name in cam_names:
cam_obj = bpy.data.objects.get(cam_name)
if not cam_obj:
print("缺少相机", cam_name)
continue
bpy.context.scene.camera = cam_obj
bpy.context.scene.render.filepath = f"//output/{cam_name}.png"
bpy.ops.render.render(write_still=True)
print("已完成", cam_name)
这个脚本只是基础版,实际用的时候可以再加一个循环来切换姿势或更换镜头焦距。注意输出分辨率尽量统一,我用的是1024x1024,理由放在后面说。
3.4 分辨率选1024灰模图的原因
为什么要格外强调1024这个数字?因为ControlNet的运行机制是基于Stable Diffusion的latent空间,生成分辨率一般固定在512或1024的倍数上最稳。如果你喂一张768x1024的图,AI处理时不会直接缩放然后生成768x1024,而是会在内部缩放到附近的标准尺寸,导致局部结构失真。
所以我所有基底图统一resize到1024x1024。如果真的需要竖构图的成品图,我会在后期“外部放大”(Outpainting或Tile重绘)来处理,而不是让基底图刚一开始就奇形怪状。
4. ControlNet控制下的风格生成:关键参数与实操
4.1 ControlNet用哪几个预处理器,分别控什么
这一步是整个流程的核心,也是最容易乱的地方。我把常用组合拆开讲,大家可以根据白模情况自行选择:
- Depth(深度图):用MiDaS/Zoe提取相对深度,控制角色整体的空间体积和前后遮挡关系。这一层是地基,权重建议0.8到1.0。没有它,AI会把前后关系直接画平。
- Canny(边缘图):把白模图提取成线条图,控制外轮廓和主要内部轮廓。这一层负责“剪影像不像”,权重建议0.6到0.8。权重过高会导致AI完全不敢发挥,画出来的颜色和材质变化像描边;过低又会乱长结构。
- Lineart Anime(二次元线稿):类似Canny,但它提取的线条更偏向二次元线稿,边缘更干净、更适合风格化。对绝区零这种“线条利落”的风格非常友好。如果模型结果太“写实照片感”,可以把Canny换成Lineart。
实测下来,比较稳的组合是:
- Depth + Lineart:用来控制整体结构,结果最不容易乱;
- Depth + Canny + Lineart:结构最稳,但AI的自由度变低,材质容易偷懒;
- 只有Canny:最容易崩,边缘线一糊,整个形象就飞了。
4.2 img2img参数表:抄走就能用
这边给一套我在Blender灰模图基础上实测比较顺的参数,大家可以直接套用:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 采样器 | DPM++ 2M Karras | 线条干净,二次元风格适配 |
| 步数 | 30 | 太少了容易糊,多了浪费时间 |
| CFG Scale | 5.5 | 越高越贴提示词,但会发闷 |
| Denoising Strength | 0.7 | 太低改不动材质,太高结构飞 |
| ControlNet权重 | Depth 0.9 / Lineart 0.7 | 不要全都拉满 |
| ControlNet引导时机 | 从0.4开始 | 让前几步先画大结构再锁细节 |
| 生成尺寸 | 1024x1024 | 不要直接出大图 |
特别说一下Denoising Strength,它大概是这套流程里最值得反复调的一个值。0.7这个数值是我试出来的平衡点:能够保留灰模的结构和轮廓,又给AI足够的空间去重新画材质、颜色、服装纹理。如果你把它拉到0.9以上,AI会开始“自由发挥”,控制力几乎归零,出来的角色可能确实好看,但跟原模型已经没有关系了。
4.3 提示词怎么拆:把绝区零风格“说”给AI听
提示词不是玄学,它是在给AI描述“颜色、材质、结构、风格”四个维度的信息。我这套流程里用的提示词模板大概是这样的:
code复制masterpiece, best quality, stylized anime style, cyberpunk urban fashion,
techwear outfit, high collar jacket, asymmetrical zipper accents,
black jacket with red highlights, silver metal buckles,
glossy leather texture, matte fabric texture, subtle neon trim,
anime face, glowing eyes, dynamic pose, sharp lighting, strong contrast,
vibrant red and black color scheme, white accent lines
拆开来看,我其实分了三层:
- 风格锚点层:stylized anime style / cyberpunk urban fashion / techwear outfit;
- 材质表达层:glossy leather texture / matte fabric texture / subtle neon trim;
- 配色控制层:vibrant red and black color scheme / white accent lines。
这三层缺哪一个,结果都会跑偏。只写风格词,AI给的是一张充满随机感的赛博朋克垃圾堆;只写材质词,角色会像穿了一身机械零件去参加Cosplay。要记住,AI没有“审美判断”,它只会把描述到的元素全部画上去,所以给多少约束,就出多少结果。
负面提示词方面,我长期放着这一串:
code复制photorealistic, realistic skin texture, pores, film grain,
out of frame, bad anatomy, extra fingers, deformed hands,
lowres, jpeg artifacts, watermark, text, logo
尤其要注意photorealistic和realistic skin texture这两个词。写实大模型可能不敏感,但二次元专用模型对这两个词的响应非常强烈,只要没ban掉,结果里掺照片质感的概率很高。
4.4 脸部局部重绘:为什么整图生成的脸一定崩
这是到目前为止我最想强调的一个实操经验:不要让AI在整张图上顺手画脸。
白模灰模图上,脸部的信息量其实很少——没有肤色、没有五官轮廓、没有表情。AI在img2img里看到一张“灰色素面”的脸,它只能靠猜,而猜出来的脸通常会有点恐怖谷。我前几次出图,脸部基本都是“写实五官漂在二次元皮上”的诡异状态,鼻子、嘴、眼睛都是独立乱长的。
正确做法是分两步走:
第一步,先用整图流程生成角色全身或半身图,这时候的目标是把服装、材质、配色定下来,脸崩不崩无所谓,反正后面会改。
第二步,用局部重绘(inpaint),把脸部区域单独圈出来重画。采样参数保持不变,只在提示词里明确加face focus、detailed anime eyes、soft shading这类词。重绘幅度建议0.5到0.6,太高会把面部周围的发型一起改掉,太低又会盖不住原来歪掉的结构。
补一句:重绘脸部的时候,最好把ControlNet关掉或者权重降到0.3。因为ControlNet的Depth是从灰模图提取的,灰模脸部的深度信息非常弱,权重高了反而会干扰局部重绘。
4.5 批量生成与选图标准
AI出图有随机性,如果你想靠运气一张搞定,那后面一定会花更多时间收拾烂摊子。我的习惯是每轮先出6到8张,然后只在“结构准确度”这个维度上选。
选出结构最准的一张后,再去看材质、配色、脸这些细节。因为材质和脸都可以通过局部重绘救回来,但结构一旦错了(比如装备多了一块、腿变成了“反关节”),后面怎么修都别扭。
选图时还有个很刁钻的经验:优先选那些“结构细节过多”而不是“结构细节过少”的图。 AI画多了,你后续可以用重绘或者PS清掉多余元素;但画少了,你只能靠手补,等于又走回手绘贴图的老路了。
5. 三座大山:我踩过的坑与完整排查链路
5.1 坑一:写实脸型怎么都转不成二次元脸
现象非常典型:整张图生成出来后,衣服、鞋子、头发都很二次元,唯独脸是“写实+轻度动画化”的混合体,两股风格在脸上打架。
排查过程是这样的:先检查大模型,发现我用的是通用写实模型,它对“anime face”的响应度很低。于是换成二次元专用大模型,结果脸型好了一些,但服装材质又开始往日系RPG游戏的方向跑,丧失了赛博朋克的质感。
进一步排查,发现根因在ControlNet的权重分配:Depth权重太高,把灰模脸部“写实体积感”挤压到了AI的生成空间里;而Lineart权重太低,没能为脸部提供“二次元线条感”的引导。
最终解决方案是“大模型+权重+局部重绘”三管齐下:
| 调整对象 | 原来的值 | 改后的值 |
|---|---|---|
| 大模型 | 通用写实模型 | 二次元专用模型 + 赛博LoRA |
| ControlNet Depth权重 | 0.9 | 0.7 |
| ControlNet Lineart权重 | 0.5 | 0.8 |
| 脸部重绘 | 无 | 单独inpaint,0.55强度 |
改完的直观感受:脸终于“扁下来”了,五官做到二次元式的简化,同时服装还是保留机能风的厚实感。这个坑我花了大半天才彻底绕出来。
5.2 坑二:AI生成的装备细节和原模型对不上
第二个坑出现在回贴阶段:AI确实画了一堆拉链、口袋、织带,但这些装备在模型上是不存在的。表面上看没什么,但渲染转角度时,拉链和口袋跟着“飘”起来,既不在模型表面,也不在模型体积里,整个模型像是穿了一层无法贴合的外衣。
这就是“用AI出图”和“用AI做资产”的区别。出图时,细节可以凭空带一点;做资产时,AI画的每一个表面细节都要锚定在真实模型上。
我的排查结论是:Canny那一路的控制力不足,导致AI在内部区域“脑补”了太多结构。内部轮廓不要靠Canny去锁,Canny只锁外轮廓和大的服装分割线,内部细节尽量靠提示词去描述。如果想要某些装备细节精确落在模型某个位置,就用局部重绘在这一小块区域单独画,而不是让整图AI自由发挥。
5.3 坑三:贴图回贴后UV接缝爆开
这个是路线B最痛的环节。我第一版操作是把AI生成的正视图整张贴回模型Color贴图,结果转45度角之后,模型变成了一张“印了画的纸板”——边缘、背面全部是拉伸和错误。
根因其实很朴素:AI生成的图是二维画布,而模型的UV展开是三维表面投影,两者的信息天然不对齐。想让AI生成图直接当三维模型的贴图用,需要满足“贴图内容本身不依赖观察角度”的约束,但角色服装有强烈的方向性,这是做不到的。
实际解决方案有几个,我按推荐度排列:
| 方案 | 适用场景 | 质量 |
|---|---|---|
| 多角度分别生成,再合成贴图 | 中低模 | 中等 |
| 正视角生成Color,背面用渲染器全局光照补偿 | 展示类需求 | 中等 |
| 用Tileable材质覆盖大面积区域,AI图只用于自发光/细节层 | 角色面部、服装局部 | 高 |
| 完全不回贴,只做“出图+动画时用投影贴图” | 海报、短视频 | 较高 |
我最终采用的是“局部回贴”方案:把AI生成的服装细节做成Emissive贴图,叠加在写实材质上;脸部和头发保持纯二次元Color贴图;剩下的大块服装区域用程序化材质。这样既保留了二次元的视觉感,又不会让UV接缝在全身上炸开。
5.4 关键参数速查表
为了给不同需求的朋友一个参考,我做了一张从白模到成品的速查表,都是我自己实测过比较能打的数值:
| 环节 | 参数 | 推荐值 / 做法 |
|---|---|---|
| 灰模渲染 | 灯光 | 三点布光,主光偏侧30度 |
| 灰模渲染 | 分辨率 | 1024x1024 |
| 生成 | 采样器 | DPM++ 2M Karras |
| 生成 | 步数 | 30 |
| 生成 | CFG | 5.5 |
| 生成 | Denoising | 0.7 |
| 生成 | ControlNet Depth | 0.7-0.9 |
| 生成 | ControlNet Lineart | 0.6-0.8 |
| 局部重绘 | 脸部区域 | 0.5-0.6 |
| 局部重绘 | ControlNet权重 | 降到0.3甚至关闭 |
| 回贴 | 贴图方式 | 局部Color + Emissive叠加 |
这套参数不是万能钥匙,但作为起点足够稳。后面根据模型的不同,微调的主要是Denoising和ControlNet权重这两个值。
6. 最终效果验证与这套流程的价值
6.1 出图后的验收清单
每次生成批量结果后,我有一套固定的checklist来验收,比直接“看感觉”靠谱得多:
- 正面剪影是否清晰,外轮廓是否和原白模基本一致;
- 服装大体分区是否还在:领子、袖子、下摆有没有乱长;
- 脸部是否有明显的风格撕裂,五官是否完整对称;
- 明暗关系是否和灰模图一致,阴影走向有没有乱;
- 材质层次是否丰富:哑光布、反光皮革、金属分得清吗;
- 整体配色是否有赛博二次元的“撞色感”而不是灰扑扑。
只要有一条明显不过关,就直接回炉调整,不要试图用后期PS糊弄过去。AI时代的流程有个特点:问题越早发现,返工成本越低。等你都调完色了又发现结构错了,不如重新出一版。
6.2 这套流程到底能省多少时间
这次项目的实际数据是:一个中型写实白模,角色带完整服装和装备,从拿到模型到交付成品图,总共用了3天。其中第一天在处理白模和渲染基底上,第二天在批量出图和局部重绘上,第三天在做贴图回流和最终渲染。
对比传统手绘贴图的6到7个工作日,大约是2倍以上的效率提升。如果你只需要出图不做回贴,甚至可以压缩到1天内出结果。这个速度提升的关键不是“省掉了画贴图的时间”,而是“每轮迭代被大大缩短”:手绘贴图改一版要半天,AI流程改一版只要几分钟,清空显存重跑一遍也就一杯咖啡的功夫。
6.3 后续还能往哪个方向扩展
我做完这个项目后,顺手把流程往两个方向扩展了一下,效果都还不错。
一个是批量生成多角色:只要把每个角色的灰模图、提示词角色名、配色主题做成配置表,脚本化调用SD,几十个角色可以一批一批出图,风格还保持统一。这个在游戏前期的角色概念测试阶段特别有用。
另一个是动画投影:把AI生成的贴图按不同角度分别投影到模型上,再配合镜头运动输出短视频,适合做角色展示的短视频素材。这没有真正烘焙贴图,但展示效果足够糊弄住绝大多数甲方。
至于未来这套流程能继续往哪走,我觉得是“AI出图 + 程序化材质”的深度结合:AI负责定义视觉风格,程序化材质负责提供物理正确性,3D模型负责最终结构和体积。到那个时候,美术的价值就不是“画得像不像”,而是“怎么组合AI、材质和模型,才能又快又稳地把脑子里那个角色还原出来”。我个人很期待这种工作方式继续演化。
