02-图像生成的领域模型
图像生成的领域模型——为什么同一描述画出来不一样,以及怎么让它一致
一句话
自然语言确定的是「是什么」(一个区域),而不是「具体长什么样」(一个点)。从语言到图像必须经过领域模型:不要让自然语言直接控制像素,而是先让语言变成一个可操作的「世界模型」,最后才交给绘制器。
一、为什么同一描述画出来不一样
给十位画家同一句描述:「一位二十岁左右的少女,黑色长发,穿白色连衣裙,站在湖边,夕阳下微笑。」最终十张画,一眼就知道是同一个人设,但又明显不是同一个人。
第一层:自然语言只描述了少量特征
一句描述只包含几十个信息点(性别、年龄、发型、衣服、场景、时间、表情),而一张图片包含几万个连续变量(脸型、下巴宽度、鼻梁高度、嘴唇厚度、肩宽、衣服褶皱、光照方向……)。自然语言只规定了几十个,还有大量自由度没有约束。
第二层:每个人脑中的默认值不同
没有说明的信息,画家会自动补全。「黑色长发」有人想到及腰长发,有人想到齐肩长发。「微笑」有人画 🙂,有人画 😊。每个人都把未指定的信息用自己的经验填满。
第三层:人的经验库不同
日本画师天天看动漫,脑中「少女」是大眼睛、小鼻子、V 脸;欧美画师天天看真人,脑中「少女」是高鼻梁、深眼窝。即使提示词一样,脑中的默认模型不同。
第四层:语言本身就是抽象
「树」没有指定高度、品种、树叶数量、树皮颜色。语言天然是压缩信息。
第五层:AI 也是这样工作的
扩散模型:Prompt「A beautiful girl」只固定了 girl 和 beautiful,其它全部随机采样。所以才有 Seed(随机种子)——Prompt 固定的是大方向,Seed 固定的是细节(那些没有描述的信息如何补全)。
第六层:为什么整体还是很像
自然语言提供的是约束条件:限制搜索空间 → 所有符合条件的图片集合 → 随机选择其中一个。
1 | 自然语言 → 高层语义(必须满足) |
自然语言确定的是「是什么」,而没有完全确定「具体长什么样」。 这正是同一描述能够对应无数幅不同但又相似的图片的根本原因。
二、自然语言能否唯一确定角色
理论上可以,实际上几乎做不到。 原因有两个层次:
第一层:描述不够细(最常见)
「一个二十岁的少女」当然画出来千差万别。不断增加描述(鹅蛋脸、双眼皮、杏眼、鼻梁高度 32mm、左眼角有痣……),不同人的结果会越来越接近。增加约束,可以不断缩小可能的角色集合。
第二层:自然语言本身不是精确坐标(更根本)
「眼睛大」什么叫大?「漂亮」「高」「年轻」「微笑」都没有统一标准。自然语言很多词其实是模糊集合(fuzzy set),而不是精确数值。
如果全部改成精确数据呢
改成参数语言(脸宽 152.34mm、眼睛长 31.2mm、鼻梁高 19.3mm……),再加三维骨骼、材质、光照、相机参数——另一位画家完全可以画出几乎一样的人。因为这时候已经不是普通自然语言,而是参数语言,本质上就是一个三维模型的数据。
三种表达能力:
1 | 自然语言 「漂亮少女」——信息很少 |
角色是高维空间中的一个点
一个角色可以理解成位于一个极高维空间中的一个点。自然语言更像是在说「我要这个区域里的角色」——描述的是一个区域,而不是一个唯一的点。只有当描述不断增加、把每一个自由度都固定下来时,区域会不断缩小,最终收敛到几乎唯一的角色。
自然语言是为了在人与人之间高效交流,而不是为了唯一编码现实。它天然会抽象、压缩、泛化。
三、角色设计文档的五层结构
UI 规格书不适合描述角色形象——它关注按钮宽度 120px、字体 16pt,目标是让界面一模一样。角色设计关注的是角色本身。
按信息层级拆分:
| 层级 | 作用 | 是否容易产生歧义 |
|---|---|---|
| 高层语义 | 角色是什么 | 较大 |
| 中层描述 | 各部分外观 | 中等 |
| 底层参数 | 精确尺寸、比例、颜色 | 很小 |
| 参考素材 | 图片、草图、三视图 | 几乎没有 |
| 最终资产 | 3D 模型、PSD、SVG 等 | 没有 |
1 | 角色设计文档 |
很多公司真正依赖第四层(参考素材)——因为一句「鹅蛋脸」不同人理解仍然不同,直接放参考图,所有人都会向同一目标靠近。
与软件架构的对应
- 高层语义 ≈ 需求文档(要做什么)
- 外观规格 ≈ 设计文档(应该长什么样)
- 参数文档 ≈ 接口/数据结构规格(把歧义变成精确、可验证的数据)
- 最终资产 ≈ 编译后的程序
更完整的对照:
| 软件开发 | 角色设计 |
|---|---|
| 需求 | 高层语义 |
| 软件架构 | 风格、比例、外观设计 |
| 接口/API | 参数规范 |
| UML/设计图 | 草图、三视图 |
| 源代码 | 最终绘制、建模 |
| 编译产物 | 图片、模型资产 |
比例是关系,不是普通参数
「眼睛宽 32mm」是参数;「眼睛宽 ÷ 脸宽」是比例,它属于关系。真正决定角色感觉的是比例:Q 版 1:1、正常动漫 1:6、真人 1:7.5、超模 1:8.5 头身比。动漫角色很多不是五官不同,而是比例完全不同。
八层完整拆解
如果越来越完善,角色设计会变成八层:
1 | 角色设计 |
几何关系(比例、结构)值得单独成层
这里还可以再加一个概念,它能解释很多 AI 和美术制作流程:
1 | 高层语义(为什么) |
几何关系(比例、结构)描述的是各部分之间的关系,而不是各部分自身的属性——很多角色即使五官参数接近,只要比例不同,整体印象就截然不同。
四、从语言到图像的可执行领域模型
关键原则
不要让自然语言直接控制像素,而是让自然语言先变成一个可操作的「世界模型」,最后才交给绘制器。
链路示例
1 | 「一个戴红帽子的男孩」 |
每一层都可以单独测试、修改和替换。例如用户后来说「把帽子改成蓝色」——不需要重新理解整句话、重新画整个人物,只需要修改 Hat.color = blue,然后重新执行后面的渲染阶段。
领域对象拆解(以「一个20岁的黑发女孩站在樱花树下」为例)
1 | 第一层:实体 Person / Tree / Dress / Sun / Ground |
这种思想很像 CAD 或游戏引擎:Scene → GameObject → Transform → Mesh → Material → Texture。
两条路线
1 | 路线A(领域对象驱动): |
路线 A 每层可测试、可修改、可替换;路线 B 更接近主流扩散模型。真正值得做的最小原型甚至不需要 AI 绘画模型:先限定一个非常小的领域——「自然语言 → 简单 2D 卡通人物 → Pillow PNG」,把整个链路跑通,再逐渐增加人体、姿势、服装、光影和风格。
最大的难点:同一个领域对象有几千种画法
领域对象方案最难的环节不是「拆出对象」,而是:
如何从「领域对象」生成一张自然、漂亮的人物图。
例如 Eye → 怎么画? 有很多种:动漫、写实、水彩、厚涂、像素风、Q 版。同一个 Eye 对象,最后可能有几千种画法。所以需要:
1 | Eye → Style → Renderer → Image |
而不是:
1 | Eye → Image |
领域对象定义「是什么」(眼睛、位置、大小),风格(Style)定义「用什么画法呈现」(动漫/写实/水彩),渲染器(Renderer)负责把两者变成像素。三层缺一不可——这就是链路里 Style 那一层存在的理由,也是「为什么同一描述画出来不一样」在领域对象方案里的另一面:对象是稳定的,风格是不稳定的。
五、素描模型:结构、形状、比例、约束与修正
结构、形状、比例、约束共同定义目标;绘画是在不断比较与修正中逼近目标。
画画不是「画一笔 → 下一笔 → 完成」,更像是:
1 | 目标模型 → 画 → 比较 → 修正 → 再比较 → 再修正 → 不断逼近 → 完成 |
四个要素
- 结构(Structure):它是怎么搭起来的——人体骨架/关节/胸腔/骨盆;杯子圆柱/厚度/底部
- 形状(Shape):外轮廓长什么样——圆/方/三角/S 形轮廓
- 比例(Proportion):各部分之间的关系——头身比/肩宽/眼距/手掌长度
- 约束(Constraints):哪些东西不能错——两只眼睛应在同一水平附近;同方向平行边朝同一消失点汇聚;发色必须保持黑色
第五项:比较(Comparison)
画家画一条线后会一直问:是不是长了?是不是短了?是不是歪了?比较之后才修正。
它更像控制系统
1 | 目标 → 当前结果 → 误差 → 修正 → 误差越来越小 → 完成 |
这和软件里的调试、机器人控制甚至自动驾驶都有相似之处:不是一开始就做到完美,而是不断检测误差并修正。
结构、形状、比例、约束并不是「素描」独有的,它们是所有绘画(素描、色彩、油画、数字绘画、建模,甚至 AI 生成)的共同基础。 不同的只是后续增加了颜色、材质、光照等信息。
六、表达型 vs 生产型绘画
两个维度不要混
- 第一维:画什么(目标)——风格:写实、动漫、美漫、卡通、抽象、水墨、像素风
- 第二维:怎么画(方法)——实现流程:线稿流程、厚涂、色块塑形
为什么写实训练强调结构
因为写实有客观标准:现实世界。苹果在那里,可以不断比较比例、结构、明暗、透视。
抽象不是不用结构,而是约束改变了
蒙德里安只有横线、竖线、红黄蓝,但仍有约束:只能水平竖直、颜色不能乱、块面比例要平衡。动漫人物眼睛不符合真人,但在动漫自己的世界里比例是一致的——不是没有结构,而是结构不同。
两种目的
| 类型 | 目标 | 约束 | 例子 |
|---|---|---|---|
| 表达型(Expression) | 表达思想 | 很少,自由度很高 | 抽象艺术、水墨写意、表现主义、儿童画 |
| 生产型(Production) | 交付资产 | 很多(后面还有建模/动画/程序/商业使用) | 游戏角色、动画角色、漫画人物、UI 插画、概念设计 |
生产型需要三视图、比例、结构、参数,因为建模师、动画师、绑定师都要继续使用。这也是计算机产业大量采用生产型方法的原因——它更符合协作、迭代和资产生产的需求。
七、画画没有唯一的实现流程
真正固定的是设计产物(Design Artifacts),而不是绘画顺序(Implementation Process)。
- 画家A:草图 → 线稿 → 上色 → 阴影
- 画家B:大色块 → 直接塑形 → 细节
- 画家C(油画):直接铺颜色 → 边画边改
- AI:噪声 → 逐步去噪 → 成图
实现流程完全不同,但最终结果一样。因为设计描述的是最终状态(What),实现描述的是达到最终状态的方法(How),这两个本来就是独立的。
真正稳定的是信息层:
1 | ① 建立整体 → ② 建立结构 → ③ 建立比例 → ④ 建立体积 |
绘画训练在训练什么能力
- 一味模仿训练的是「观察→复制」能力:图片 → 观察 → 分析形状 → 控制手 → 画出来。它没有训练「脑海 → 分析 → 设计 → 创造 → 画出来」,所以很多人看着能画,离开图片就不会。
- 凭记忆画总是模糊:因为人的记忆不是照片,你记住的是「猫 → 四条腿 → 两个耳朵 → 尾巴」,不是精确尺寸。
- 画不出直线还能学会画画:可以。画画真正要求的不是「每一笔都完美」,而是「能不断修正」。手抖不是最大问题,真正的问题是不知道正确应该长什么样。
- 物体总是不受控制地变形:原因不是手,而是没有建立约束。新手想到哪画到哪越画越歪;高手先建圆 → 中心轴 → 上下两个椭圆 → 左右宽度一致 → 再细化。
真正训练的是四种能力
1 | ① 观察 看到这个角其实是 47°,不是 60° |
绘画能力可以拆成四个独立模块
1 | ① 看懂(Observation) |
很多人误以为自己「不会画」,其实可能只是其中某一个模块比较弱:有的人手很稳但比例判断差;有的人比例判断很好但线条控制不熟练。把这些能力拆开训练,通常比笼统地一直临摹更容易发现问题和改进。
为什么美术老师让学生练几何体
练直线、圆、方块、球体、立方体、圆柱不是为了以后画方块,而是训练:手的控制能力(线条是否稳定)、眼睛的测量能力(比例是否准确)、脑子的空间建模能力(把复杂物体拆成简单体)。人物、动物、建筑最后都可以分解成基础几何体。
画画的实现方法:五种画法
不同流派、不同媒介、不同目标会混在一起显得乱,但按专业绘画教学,最经典的是这一条线稿流程(动漫、插画最常见):
1 | ① 构图 → ② 大形 → ③ 比例 → ④ 结构 → ⑤ 草稿 → ⑥ 线稿 |
- 学院派素描:构图 → 比例 → 结构 → 轮廓 → 大明暗 → 中间灰 → 细节 → 调整(几乎没有颜色)
- 厚涂:构图 → 颜色大块 → 颜色塑形 → 体积 → 光照 → 细节(没有线稿,第一步就是大坨颜色)
- 油画:底色 → 大色块 → 塑形 → 细化 → 罩染
- AI:Prompt → 噪声 → 去噪 → 细化 → 放大 → 修图
为什么网上每个人步骤不同?因为省略与内化:新手画眼睛要先画圆 → 十字;高手直接画眼睛——不是不知道比例,而是比例已经内化了。建议学最完整版本,因为它可以对应任何画法:不同画法真正变化的主要是实现流程(是否需要线稿、是否先上色),而前面的设计阶段(角色设定、比例、外观)基本共通。
绘画 IDE:流程驱动的工具
目前主流软件几乎都是自由创作工具(打开 → 空白画布 → 随便画),而不是流程驱动工具。软件开发不会打开 VS 直接写代码,而是需求 → 架构 → 接口 → 编码 → 测试,都有产物;画画几乎还是「打开 PS → 开始画」。
现状的四类软件:
1 | ① 自由画布(绝大多数) PS / Krita / Clip Studio / Procreate:打开→空白画布→随便画,软件不检查比例 |
一个真正流程化的软件可能长这样:
1 | 角色项目 |
每一步都有输入、输出,可以回退、审批、比较。更进一步结合 AI:进入「比例」软件自动检查(肩宽 ✓ / 腿长 × / 头身比 ✓ / 眼距 ✓);进入「配色」自动生成十种方案;进入「线稿」自动检测左右是否对称,提醒「左手比右手短 12%」。
与软件架构一致:需求=概念设定;架构设计=外观/风格/比例;数据结构/API=参数/配色/约束;编码=草图/线稿/上色;测试=比例/透视/颜色检查;调试=修正/重绘;发布=成品导出。目前大多数绘画软件相当于直接给了你一个「代码编辑器」,却没有把前面的需求、设计和后面的检查整合进来——这更像是在设计一个「创作操作系统(Creative IDE)」,管理整个创作过程:左侧项目树、每阶段明确输入输出、AI 负责检查约束而不是直接替你画完。
最终总结
绘画是「设计模型 → 实现 → 反馈修正」的系统。设计阶段确定「画什么、什么不能变」;实现阶段选择「怎么画」;反馈阶段判断「现在画出来的东西是否符合设计」。
这也解释了为什么高手看起来「随便画」——他们不是没有步骤,而是把大量步骤内化成了自己的视觉模型和判断能力。
与其他线的关系
- 与绘制与图像线:本线讲「画什么、怎么保证一致」(模型层),绘制线讲「用什么画」(工具层)
- 与领域模型主题:领域模型是业务世界的压缩描述;本线是图像世界的压缩描述——同一种「语言→模型→执行」结构
- 与认知与语言主题:认知与语言主题(09/01)讲语言的信息密度(几十个高层特征 vs 几万个变量);本线把这句话落到图像生成的具体链路
- 与设计主题:角色设计文档五层就是内容槽位在图像领域的应用;素描四要素是「结构/形状/比例/约束」在设计上的体现
- 与工程控制主题:绘画的「设计→实现→比较→修正」就是反馈闭环在绘画上的形态
