如果你玩AI绘画超过一个月,大概率经历过这种崩溃瞬间:同一句提示词,同一个模型,白天生成的是干净利落的手绘线稿,晚上再跑就变成厚涂油画;只是想给角色换套衣服,结果连画风和构图一起换了,五张图放一起像五个不同的人画的。这不是你提示词写得不好,而是“画风”这件事在AI绘图里本来就是一坨混沌变量。最近我一直在折腾一个叫 HandRaw-Style 的开源项目,它把 327 种手绘风格、165 种排版、36 种配色全部编号化,用三位数字就能锁定一套完整视觉语言。说白了,就是给AI画图装了一个“风格刻度尺”,你说要几号风格,它就不给你跑偏到几号隔壁。
这篇文章我会从它到底解决了什么痛点、三组编号是怎么设计的、怎么接进实际工作流、再到翻车排查,完整过一遍。适合正在做批量插画、统一角色设定、或者跟我一样被“每次画风都飘”折磨到想砸电脑的人。不写源码级教学,但会让你看完就能照着用。
1. AI画图飘忽不定的根因,不只是“随机种子”的锅
先说个反直觉的事:画风飘不飘,和模型质量关系不大,和你的控制粒度关系很大。默认情况下,你用自然语言描述“我想要手绘感、淡彩、带点纸质感”,这段描述进入文本编码器之后,会被拆成几百上千个语义碎片。模型理解“手绘感”的方式,和你理解“手绘感”的方式根本不是一回事。它可能把“手绘”理解为线条抖动,也可能理解为颜色不饱和,甚至可能理解成画面里有纸纹。于是同一个描述,在不同的采样步数、不同的随机种子、甚至不同的提示词顺序下,都会落在完全不同的“风格解释”上。
这就是典型的“语义宽度”问题。自然语言描述天然是模糊的,而模糊输入必然带来批量输出不稳定。很多时候你以为自己在控制风格,其实只是给模型提供了一个风格的大致方向,它每次都会在这个方向附近自由发挥,飘是必然的。
1.1 画风漂移的三个典型场景
我实际工作中最常遇到三种情况。第一种是同一套提示词隔天再跑,效果对不上。不是模型更新了,是随机种子、采样器状态、VAE、甚至显卡精度都变了,画风跟着变了。第二种是批量生成同一系列素材,比如一套绘本需要几十张风格统一的插图,单张看都不错,放一起就露馅,线条粗细不一致,上色逻辑混乱,像每个角色都被不同画师画过。第三种是跨内容复用,同一个角色设定,想让他做不同动作、换不同场景,结果换内容的时候把画风也换了,最后只能靠反复叠负面提示词去“堵漂移”。
这三个场景的共同点是:你需要的不是一个“好画风”,而是一个“能被反复调用的稳定画风”。自然语言做不到这一点,因为语言本身没有标准刻度。
1.2 编号化为什么能治“飘”
HandRaw-Style 的思路其实特别朴素:既然自然语言描述风格不可靠,那就别描述,改用编号。每个编号背后不是一句提示词,而是一整套预先绑定好的视觉特征组合,里面包含线条形态、纹理方案、笔刷逻辑、明暗处理方式、纸张/材质偏好等。你只需要在生成时写sk-047这样的编号,模型就会优先按这套特征输出。
我试过之后最大的感受是:编号化本质上是把“风格解释权”从模型手里收回来,交还给一套固定规则。它有点像印刷行业里用 Pantone 色号代替“深蓝色”这个模糊说法。你说“深蓝色”,不同印刷厂能给你印出五十种蓝,但你说“Pantone 19-4052”,全世界印出来都是同一个蓝。AI绘画也一样,sk-047就好比一个风格色号,它能告诉你预期是什么,而不是等模型自己发挥。
2. 327 种风格、165 种排版、36 种配色,这三组数字到底怎么设计的
我第一次看到这个项目时也纳闷:有必要做327种风格吗?是不是堆数量?用下来才明白,这327不是随意堆的,而是按“媒介、笔触、材质”三个维度交叉组合出来的。比如同样是铅笔素描,硬铅、软铅、彩铅、炭铅、自动铅,出图质感完全不同。同样是水彩,湿画法、干画法、留白胶、撒盐纹理,性格也完全不同。每种风格背后都对应一套能触发的纹理逻辑和笔触参数,不是只换一个风格标签。
更关键的是,这套编号不是固定在单一底模上的。作者在项目里提供了一个风格映射表,你把当前用的模型类型填进去,它会自动匹配相近的特征描述。也就是说,同样的编号在不同底模上不一定效果一字不差,但风格气质会保持在一个可接受的范围内。这一点后面讲兼容性问题时还要细说。
2.1 风格编号体系速览
我按自己的理解把编号体系整理成了一个大类结构,方便记忆:
| 前缀 | 含义 | 举例 |
|---|---|---|
| sk | 素描/速写类 | sk-047 炭笔速写 |
| dr | 线稿/手绘线稿类 | dr-018 钢笔淡彩线稿 |
| wt | 水彩/水墨类 | wt-033 宣纸晕染 |
| mb | 马克笔/硬笔类 | mb-006 酒精马克笔平涂 |
| ps | 粉彩/蜡笔类 | ps-021 油蜡笔颗粒质感 |
这个表格只是我自己的归纳,实际项目的编号体系更细,还包含纸纹、布料、木版画、铜版画这些比较偏门的类别。对于普通使用者,常用的其实集中在素描、水彩、马克笔、钢笔线稿这几大类,其他偏门风格属于“偶尔用一次但必须有”的角色。
需要注意的是,编号不是一个简单的标签字符串,它在底层会关联一个风格触发权重表。比如sk-047不仅仅告诉你“这是炭笔速写”,还规定了线条粗细抖动范围、排线方向偏好、擦痕残留程度,甚至画面留白比例的默认值。这些参数会在生成时自动注入到风格控制模块里。
2.2 排版编号:不是“构图模板”,是“视觉阅读路径”
165种排版编号是我认为这个项目最有价值的部分,因为它解决的是另一个大问题:AI经常把主体画很大、居中、周围空一片,或者反过来,主体小到看不见。排版编号把常见构图思路固化成了可调用项,每个编号包含主体大小、位置、留白区域、视线引导方向、对应适合的成品形态(比如封面、海报、手机壁纸、长图)。
举几个实际会用到的:
ly-015:大量留白,主体偏右下,适合做情绪类插画。ly-032:Z型视线引导,主体分布在三个焦点上,适合做长图分解动作。ly-078:居中对称,主体占画面60%左右,适合做头像、LOGO草图。ly-113:对角线分割,背景倾斜线引导,适合做运动感强的海报。
排版编号和风格编号是独立的,这意味着你可以把水彩风格从封面构图中拎出来,单独换一个构图编号,而不会影响画风。这是我觉得最讨喜的设计:风格归风格,构图归构图,互不污染。
2.3 配色编号:不是36个色值,是36组“色彩关系”
36种配色数量看起来不多,但仔细看会发现它设计的不是36个颜色,而是36组色彩关系。每组关系里包含了主色倾向、辅色范围、点缀色的使用比例,以及明暗对比度的倾向值。比如编号cl-04是低饱和暖色系,主色偏暖灰,辅色是类似大地色的邻近色,点缀色不超过画面10%。而cl-21是高饱和互补色组合,强调撞色张力,适合儿童绘本和潮流插画。
实际使用中,配色编号不会直接给你一串HEX值往提示词里塞,因为AI对具体色值的理解非常弱。它的做法是:在后台生成一个参考色板图,同时把对应的颜色形容词和色彩关系描述注入到提示词里。这样等于从两个层面对颜色进行控制:一个靠视觉参考,一个靠语义描述。我实测下来,单靠提示词写“暖色调”远不如配一个色板参考图来得稳定,尤其是当画面里有多个主要物体时,色板能明显压制住模型乱配色的问题。
3. 把它接进实际工作流,我有三种用法
HandRaw-Style 不是那种装完就一劳永逸的插件,它更像一套“风格控制协议”,需要你根据自己的使用习惯选接入方式。我把自己的三种用法都试了一圈,这里直接说结论。
第一种是纯提示词触发,适合不想折腾插件的人。把编号直接写进正向提示词,比如(sk-047:0.9), (ly-015:0.8), (cl-04:0.7),它就生效了。这种方式最轻量,但效果会受提示词顺序影响,权重数字也要微调。第二种是参考图引导,适合追求高一致性的人。用项目生成的一张编号风格样图作为参考图,配合结构控制模块锁定边缘和构图,出图效果会明显更稳。第三种是直接接到节点式工作流里,把风格编号做成一个选项节点,方便批量切换测试。
如果只是玩玩,第一种就够了。如果是做绘本、插画集、批量头像这类需要稳定风格的项目,我强烈建议至少用到第二种,参考图带来的提升不是一点半点。
3.1 锁定风格码,只变内容
我日常用得最熟练的操作套路,总结起来就是一句话:“先锁风格,再动内容”。具体步骤是:
- 固定风格编号和排版编号,不轻易改。
- 固定一个基础种子范围,比如把种子范围锁定在 1000-1050 之间,这样每张图在构图起稿阶段不至于完全跳脱。
- 只修改内容主体关键词,比如人物、背景物件、动作。
- 如果某一类内容反复输出不稳定,再微调内容关键词的权重,而不是去动风格编号。
这套操作最适合画统一角色。举个例子,我需要画一个戴围巾的小男孩,场景分别是他走路、吃饭、看书。我会先跑一张基准图确定他的脸型、发型、围巾颜色,然后在这张图的参数基础上,只替换“动作”和“场景”描述,其他全部保持不动。配合参考图模式,最后三张图放一起,哪怕仔细看细节,也会觉得是同一个作者同一天画的。
这里有个容易被忽略的细节:种子范围固定之后,不是每次都要用同一个种子,而是每次生成完发现构图有问题时,优先在原种子上加一,而不是重新随机一个种子。反复跳随机种子是画风崩坏的放大器,尤其当提示词本身还带着风格编号时,新种子会把风格特征重新洗牌一遍。
3.2 三个编号发生了冲突,谁让位?
风格、排版、配色三个编号同时存在时,偶尔会出现打架的情况。最常见的是配色编号和风格编号冲突,比如选了低饱和水墨风格,又选了高饱和撞色配色,出来的图会非常脏。这时候我的处理顺序是:
- 风格编号优先级最高,它是画面的“底料”,动它等于换一道菜。
- 排版编号其次,构图出问题可以小幅调整,不建议频繁换。
- 配色编号排最后,因为颜色是最容易在后期修正的,生成后PS或者重新抽卡都行。
如果你发现三编号组合怎么调都不对,大概率不是单个编号的问题,而是组合本身就不兼容。这时候别硬调权重,直接把配色编号换一组会更省时间。好比你做菜选定了川菜底料,就别硬加大量糖去改成上海口味,重新选底料才是正路。
4. 实操案例:用三个编号生成一套统一绘本角色
空谈理论没意思,这里放一个我最近实际跑过的案例,完整还原从需求到出图的过程。需求很简单:一套水彩风绘本角色的三种动作,画面要整洁,暖色调,构图主体占中间偏下。
我选的编号组合是wt-033(宣纸水彩晕染)、ly-078(居中偏下、主体占画面60%)、cl-12(温暖低饱和的米黄主色加橙色调点缀)。底模用的是主流的开源绘图模型,采样步数28,CFG 控制在7,种子固定在 1024。
提示词大概长这样:
(wt-033:0.95), (ly-078:0.85), (cl-12:0.8), a little boy wearing a knitted scarf, walking on a country road, soft watercolor texture, loose brush strokes, warm and cozy atmosphere, simple background, best quality, masterpiece负面提示词里照常规放进低清晰度、模糊、多余手指、浓重油画感这些常见项,另外加了一条“厚涂,高饱和荧光色”,用来防止颜色编号被风格压制后走偏。
第一轮出图效果整体已经不错,三张图风格基本统一,线条是水彩晕开的感觉,没有出现明显的厚涂笔触。不过有一个问题:人物占画面比例偏大,脚下空间被裁掉了,正好是我选的排版编号默认主体占比偏高的结果。这时我没有改排版编号,而是把种子从1024调到1025,同时把“walking”改成了“taking a step”,重新跑了四张,选了一张动态自然、边缘留白合适的做最终稿。
4.1 怎么判断“不飘”是真的不飘
这里要提醒一句:偶尔两张图像同一个画师画的,不算统一。真正的稳定必须经得住三连问:
- 同一套编号,换不同内容,风格特征还一致吗?
- 同一套编号,隔三天再跑,线条和上色逻辑还能对得上吗?
- 同一套编号,只动排版编号不动风格编号,能看出“同一个画师换了个构图”吗?
我自己的测试方式是先跑五张“不同物品同风格”的图,比如茶杯、猫、树、房屋、汽车,风格编号完全一致,看它们是否都带着同样的线稿脾气和色彩倾向。如果五张里有三张看起来像两个作者,那说明风格模块没吃住,检查权重和参考图设置。如果五张风格统一但构图全乱,那问题在排版编号没生效,检查是不是被其他提示词干扰了。
4.2 黄金规则:“三固定一变”
说到底,我在大量测试后总结出的规则就五个字:三固定一变。
- 固定风格编号。
- 固定排版编号。
- 固定基础种子区间。
- 只变内容主体。
这一条已经帮我完成了三套完整的连载插画,没有再出现过画风失控。什么时候可以打破这个规则?当你就是想故意探索风格边界的时候。比如你在做风格测试、抽盲盒、找视觉方向,那可以放开变量,让模型在风格编号的前提下自由发挥,说不定能撞出惊喜。
记住一个原则:控制变量不是束缚,是让你在乱流里找到可复用的确定性。你想让输出稳定,就必须减少变量的数量,而不是增加更多控制手段。
5. 常见问题与排查经验汇总
最后这部分是压箱底的排查经验,很多是文档里压根不会写的东西。我把问题按出现频率从高到低列在下面,你可以直接当速查表用。
| 问题现象 | 可能原因 | 解决思路 |
|---|---|---|
| 风格编号写了像没写,出图还是默认写实感 | 风格权重太低或被底模风格压倒 | 把编号权重提到0.9以上,或添加一张风格样图作参考图 |
| 排版编号导致主体畸形或构图奇怪 | 排版编号与提示词中的位置描述冲突 | 删除提示词里“居中”“全身”这类方位词,只留内容主体 |
| 颜色编号没生效,画面还是灰蒙蒙 | 缺少色板参考图,色彩关系只靠语义传递失效 | 使用项目生成的色板图,配合结构控制模块一起引导 |
| 同一套编号换底模后完全变味 | 风格编号与底模特征匹配度低 | 查映射表,不同底模下使用不同前缀或手动调权重 |
| 和其他轻量化微调模块叠加后风格错乱 | 多个风格控制器互相干扰 | 同时只启用一个风格控制器,编号走提示词,微调模块专职控制内容特征 |
| 出图偶尔还是飘,说不出哪不对 | 随机种子跳变幅度过大 | 改为固定种子区间,每次只微调数值而非全部重新随机 |
排查时我还有个小技巧:一旦结果飘,不要急着改提示词。先把风格编号单独拿出来,配一个最简单的描述,比如“一只杯子”,跑一张纯风格测试图。如果这张图都飘了,问题出在风格控制本身;如果这张图没问题,再逐步把内容关键词加回去,找到那个让画风崩塌的元凶关键词。很多情况下是内容词里的风格倾向描述和编号冲突了,去掉就好。
下面再分享几个容易忽略的坑:
- 编号权重写太高反而会崩。有人觉得风格权重设成1.2效果更强烈,实际上超过1.0后会出现纹理过重、线条糊成一团的情况,0.8到0.95是舒适区。
- 不要同时使用两套编号系统。比如既用HandRaw-Style的风格编号,又在提示词里写“极简扁平”“水彩肌理”这类强风格词,模型会被拉扯,结果往往是两边都不讨好。
- 配色编号适合在生成前定,不适合生成后靠负面提示词换色。你真想改色,直接换配色编号重跑,比硬写“不要绿色”有效得多。
- 如果项目有配套风格模块,务必要把模块版本和索引文件一起更新,只更新一边会导致编号失效。
我个人现在最推荐的使用姿势是:把 HandRaw-Style 当成团队项目里的“画风字典”,而不是单一插件。设计组定好一套编号组合作为基础风格,然后大家出图时只要引用同一套编号,不管谁跑、底模是哪个版本,都能大体保持统一风格。这个思路在半年前完全不可想象,风格控制基本靠高手的经验老手的那种“心头一颤”的直觉。现在有了编号化规范,新手也能直接上手,而且出错时知道往哪儿排查。
话说回来,327种风格、165种排版、36种配色,说到底cover不了所有视觉可能性,但它给了你一个值得信赖的起点。真正的高手不是被编号框住,而是把编号当成地图,知道自己站在哪一格,往哪个方向偏一格就是另一种气质。这种可控的探索,比每次都随机开盲盒要踏实得多。