别再只拿一张图:Style2Paints 线稿分层上色指南
【免费下载链接】style2paintssketch + style = paints :art: (TOG2018/SIGGRAPH2018ASIA)项目地址: https://gitcode.com/gh_mirrors/st/style2paints
Style2Paints 是一个 AI 线稿上色工具,它沿着画师的"平涂→渐变→阴影"流程输出可编辑的 PSD 图层,而不是一张合成死图。本文带你快速跑通线稿 AI 上色的最快路径,看懂它的输入体系、拆层机制与许可证边界。
它解决的是什么问题
做过 AI 上色的人都遇到过同一个抱怨:不管跑得多好,最后只给你一张 JPG。想改裙子颜色?重新画。想调阴影?做不到。合成图是个黑盒,动不了。
而画师真正的上色流程是分层的:先出草稿,再平涂,然后加渐变和细节,最后铺阴影。对应的文件结构是 lineart 层 + flat color 层 + gradient 层 + shading 层,每一层都能单独改。
Style2Paints V4 的定位,就是把 AI 塞进这条标准工作流里——每一步都产出独立的分层结果,而不是单一文件。它输出的不是 JPG/PNG,是可以直接拖进绘画软件继续加工的 PSD 图层。
五分钟跑起来
最省事的路线是官方 V4.5 免安装二进制版(Windows x64):从 README 给出的 Google Drive 或百度网盘渠道下载,解压后双击运行即可。不用装 CUDA,不用配 Python,体验上就像启动一个普通视频游戏。
想啃源码的话,仓库里 V4.5 与 V4 的服务端实现都齐全,可以用git clone https://gitcode.com/gh_mirrors/st/style2paints拿到全部代码。源码跑动的硬件门槛是 CUDA 10.0 + CuDNN 7 + Python 3.6。
V4.5 源码路线:先装依赖,再把软件包style2paints45beta1214B.zip里的模型文件(inception.net、gau.npy、refs.net等)放进s2p_v45_server/nets/目录,然后启动:
pip install opencv-contrib-python==4.1.0.25 pip install tensorflow_gpu==1.14.0 pip install bottle==0.12.10 pip install tqdmcd s2p_v45_server python Style2PaintsV45_source.pyV4 源码路线:进入 V4/s2p_v4_server/ 目录,pip install -r requirements.txt装完依赖后执行python server.py。
两个版本都监听 8233 端口,服务就绪后浏览器打开http://127.0.0.1:8233/index.html就能开始上色。新手常慌的一点:启动时刷出WARNING:tensorflow:No training configuration found in save file...这类日志,README 明确说了这是正常现象,忽略即可。
你能喂给它什么
输入是"一必选、三可选",每项控制的东西各不相同:
线稿(必选)。唯一必填项,上色对象本身。服务端会为每次上传建立独立会话,保存 1024/512/256 三档分辨率的线稿,供后续请求复用。
提示色点(可选)。在画布上点几个彩色点,AI 就把对应区域往那个颜色靠。这是最关键的干预通道。工程上限:单次请求超过 500 个点会被服务端直接拒绝;落盘时 y 坐标会被翻转(1 - y),属于内部坐标约定,使用时无需关心。
颜色风格参考图(可选)。代码里叫face。不指定就从内置参考库选,也可以上传自己的图。服务端把它的饱和度放大两倍(s_enhance系数 2.0),再降采样成 14x14 的全局提示,整张图的色调就往你给的参考偏。不传的话,配色由模型自由发挥。
光源位置与颜色(可选)。决定渲染阶段的阴影朝向与色温。不传则走默认光照,只影响最后一步的观感。
它怎么把一张图拆成几层
"输出 PSD 图层"不是营销话术,它对应管线上一个个真实的处理阶段,每个阶段各产出一部分结果。
线稿预处理:闭区域填充
上传后服务端先调用double_fill做 trapped-ball fill:把线条围出来的封闭区域全部找出来,切分成连通块。算法在 V4/s2p_v4_server/linefiller/ 子模块(trappedball_fill.py、thinning.py等)里,填充结果压缩成sketch.fill文件,之后所有请求共享。这些区域是后面平涂的几何先验——哪个区域填什么颜色,基本由这一步框定。
粗上色 careless:先出大感觉
go_head融合两类条件:降采样到 14x14 的全局风格参考(global_hint),以及把局部色点画进四通道提示图(RGB + alpha)形成的 local hint。网络输出第一版上色。这一步对应画师的"平涂"环节,产出前两类输出:自动颜色平铺无线条版、带黑线版。
精上色 careful:在平涂之上做细化
go_render拿上一阶段的平涂结果(flat_careless)当条件,配合inception提取的特征做渲染级精化。内部是一条多级后处理管线:按线稿建稀疏矩阵做全局优化,导向滤波平滑,HDR 三区间映射校正明暗,l0Smooth平涂化,最后回到 YUV 空间与原图做亮度融合。这一阶段覆盖第三到第五类输出:自动上色无线条、带黑线、带彩色线条,外加 smoothed / flat / blended 等形态变体。
颜色分解:自动平涂到 PSD 图层
要得到真正独立的"平涂色层",服务端把上色结果的色彩用MiniBatchKMeans(8)聚成 8 个代表色,再由get_ini_layers把每个色块投影成一张 RGBA 图层(颜色 + alpha 覆盖关系),最后improve_layers反向重建一次,消掉层间误差。8 张 RGBA 能拼回完整结果——这就是"固有色层"可以单独导出、拿去改色的机制。
光照渲染:一套简化 Blinn-Phong
渲染前依次经go_mat(抠像)、shade_fill(阴影填充)、go_norm(法线估计),产出 matting、depth、normal 三张中间层,最后small_render合成光照。参数是简化版 Blinn-Phong:环境光amb = 0.55、平行光Plight = 0.8、高光系数ks = 0;R/G/B 三通道分别用 1.35 / 1.50 / 1.58 的菲涅尔幂次,模拟冷色高光、暖色漫反射的材质感。光源颜色、高度(h乘 600 换场景单位)、四象限方向d都来自客户端参数。这一步交付最后两类输出:自动渲染分离图层、渲染后的完整上色图。
V4.5 的模型架构速览
7 个 Keras 模型在make_graph启动时全部加载,分工明确:
| 模型文件 | 角色 |
|---|---|
tail.net | 线稿预处理 / 提线 |
reader.net | 读取特征,提供全局色彩统计 |
head.net/neck.net | 上色主网络(head 管大局,neck 管细化) |
inception.net | 渲染阶段特征提取 |
render_head.net/render_neck.net | 渲染精化的两段网络 |
另有nets/gau.npy提供预计算高斯核用于平滑,nets/refs.net是内置参考风格图库。推理采用分块滑窗:大图切成 64 像素的块,每块带 20 像素对称 padding 重叠,逐块推理再拼接——原因很直白,控制显存。
输出怎么用
把 7 类输出对工作流步骤:
- 自动颜色平铺、无线条——固有色/底色层,方便改色;
- 自动颜色平铺、带黑线——可直接用的平涂状态;
- 自动上色、无线条——渐变结果;
- 自动上色、带黑线——日常最常用的一张;
- 自动上色、带彩色线条;
- 自动渲染(分离图层)——阴影相关的独立图层;
- 自动渲染后的完整上色图——最终合成。
这些分层天然是 PSD 形态,拖进画师软件就能继续加工,不用再抠线稿、再上色。
质量分级上,项目给了三档:只传线稿、选风格、放光源,结果直接可用,叫全自动;需要点几个色点纠正,叫半自动;半自动但纠正点少于 10 个,叫几乎全自动。README 展示的样例约一半全自动、其余全部几乎全自动,且都能在 15 次点击以内达成。交互逻辑就是"点了、改了、再点":点得越准,精化阶段越贴合你的意图。
版本选择与许可证边界
先说版本:V5 还在 preview、未正式发布,当前稳定主线是 V4 与 V4.5。如果你奔着 V5 去,不必再装 V4/V4.5;反过来,要现在就用的工具,拿 V4.5 就行。
学术脉络很短一行:V1 发表于 ACPR 2017,V3 发表于 TOG 2018,V5(Project SEPA)发表于 CVPR 2021。
许可证三条规则记牢:
- 全部代码以 Apache-2.0 发布,可自由修改分发;
- 所有预训练模型权重与二进制发行版保留全部权利;
- AI 上色产出的图片归你所有,不附加任何额外许可证,商用可。
提醒一句:生产环境部署时,模型权重与官方二进制需要单独向项目方获取授权。
小结
Style2Paints V4/V4.5 的核心设计只有一句话:不替代画师,而是贴着画师的工作流走。线稿加上可选的提示点、风格参考、光照参数,经过闭区域填充、两阶段粗精上色、KMeans 颜色分解与简化光照渲染,最终产出能直接流入真实上色流程的分层资产。这套"分层资产"思路,也正是理解 V5(Project SEPA,CVPR 2021)Split Filling 机制的起点。
【免费下载链接】style2paintssketch + style = paints :art: (TOG2018/SIGGRAPH2018ASIA)项目地址: https://gitcode.com/gh_mirrors/st/style2paints
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考