终极图像分层指南:如何把一张插画自动拆成可编辑的 PSD 图层

📅 发布时间:2026/8/15 20:02:09
终极图像分层指南:如何把一张插画自动拆成可编辑的 PSD 图层
终极图像分层指南如何把一张插画自动拆成可编辑的 PSD 图层【免费下载链接】layerdividerA tool to divide a single illustration into a layered structure.项目地址: https://gitcode.com/gh_mirrors/la/layerdivider这张图晚上就要交付了客户却要求把前景、背景、高光全部拆成独立图层。这是很多插画师、UI 设计师和游戏美术的日常噩梦。手动抠图一张中等复杂度的插画往往要花上一两个小时碰到边缘发丝、半透明阴影更是折磨。LayerDivider就是为解决这个痛点而生的开源工具输入一张图片它能在几分钟内自动输出结构清晰、可直接编辑的 PSD 分层文件——你可以把每一层拿去调色、替换、重绘而不用再对着钢笔工具一像素一像素地磨。下面这份指南会带你从这工具到底怎么工作一路走到我自己的机器上跑起来全程零门槛。接单画师的噩梦一张插画要拆多久先看一个典型场景。设计师小林接到一张角色立绘的二次修改需求需要单独调整衣服颜色、头发的明暗、背景的氛围光。原图只有一张扁平 JPG所有元素糊在一起。她需要做的事包括圈出头发选区、调整颜色把阴影和高光分别存成图层再把背景和角色主体分离。整个过程要在 Photoshop 里反复切换选区工具、羽化、蒙版一版改下来至少 40 分钟而且每次只改一个局部效果还容易留下生硬的边缘。LayerDivider 给出的答案完全不同把图丢进去选择分层模式点一下Create PSD然后拿结果。下图左边是原始输入右边是分层标注后的效果每个图形元素都被独立识别并标记它凭什么能自动分层一个分拣彩色积木的故事要理解 LayerDivider 的工作原理你可以把一张插画想象成一大堆散落的彩色积木每块积木代表一个像素。目标是把颜色相近的积木收进同一个盒子里一个盒子就是一个图层。真实的处理流水线是这样的对应项目 README 里的 8 步处理内容像素聚类用 MiniBatchKMeans 算法把所有像素按 RGB 颜色值分组。所谓聚类就是让计算机自己找出哪些像素颜色看起来是一伙的。相似色合并用 CIEDE2000 色彩差异公式衡量两个色团到底有多接近低于阈值的直接合并。CIEDE2000 是国际通用的色彩感知差异标准比简单的 RGB 差值更接近人眼判断。边缘平滑对图像做模糊处理让图层边缘不至于像锯齿一样生硬。重绘与迭代每个色团用其区域内模糊后的平均色重新填色然后重复上述步骤若干轮直到分层结构稳定。生成图层最终得到一组 base基础图层再根据基础层与原始图的色彩差异进一步算出高光、阴影等效果图层。整个过程就像把积木反复分类、整理、再分类最后每一盒积木颜色都足够统一就能独立成层了。两种分层策略按图选择LayerDivider 内置了两套完全不同的分层引擎选错模式效果会差很远模式适用图像核心算法典型参数适合的人color_base_mode色块分明的插画、UI 图标、扁平设计MiniBatchKMeans CIEDE2000 聚类loops1init_cluster10ciede_threshold5需要按颜色拆层、批量处理 UI 组件segment_mode含多个独立对象的复杂场景、角色立绘Segment Anything 模型SAM逐对象分割pred_iou_thresh0.8min_mask_region_area100需要按物体而非颜色分离打个比方色彩模式像按颜色分拣积木适合给红色部分单独改个色这种需求对象分割模式像给每个玩具拍照建档适合把这个角色整个人抠出来这种需求。在 Web 界面上这两个模式通过divide_mode下拉框切换。对象分割模式多一步操作——需要先点一次Segment让 SAM 生成对象遮罩再点Create PSD完成分层色彩模式则可以一步到位。五分钟跑通本地环境Windows 用户准备 Python 3.10.8 和 Git 之后复制下面的命令克隆项目并完成安装git clone https://gitcode.com/gh_mirrors/la/layerdivider cd layerdivider安装脚本会自动完成三件事创建 Python 虚拟环境、安装 requirements.txt 里的全部依赖、下载 SAM 分割模型sam_vit_h_4b8939.pth约 2.4GB仅对象分割模式需要。首次安装只需执行# 首次安装自动建虚拟环境、装依赖、下载模型 .\install.ps1 # 之后每次使用一键启动图形界面 .\run_gui.ps1浏览器会自动打开localhost:7860的 Gradio 界面上传图片即可开始分层。如果你的 Python 是通过py启动器管理的改用install_with_launcher.ps1它会用py命令而不是python命令来创建虚拟环境。用代码精细控制分层结果不想用图形界面LayerDivider 的所有核心能力都暴露成了 Python 函数可以直接在你的脚本里调用。下面这段代码演示了色彩聚类模式的一个完整配置from ldivider.ld_processor import get_base import cv2 image cv2.imread(input.png, cv2.IMREAD_UNCHANGED) df get_base( imgimage, loops2, # 聚类-合并-重绘的迭代轮数 cls_num15, # 初始聚类数量越大分得越细 threshold8, # CIEDE2000 合并阈值越小越严格 size5, # 模糊核大小越大边缘越柔和 h_split256, # 背景分离时的横向分块数 v_split256, # 背景分离时的纵向分块数 n_cluster500, # 背景分离用的聚类数 alpha100, # 背景判断的透明度阈值 th_rate0.1, # 色块被判定为背景的比例阈值 bg_splitTrue # 是否先自动分离背景 )返回的df是一个 pandas 数据框每个像素一行带着label属于哪个图层和重绘后的颜色值。再配合ld_utils.save_psd就能把它写成真正的 PSD 文件。图层组织方式也支持两种normal模式输出 base、bright、shadow 三层结构composite模式则叠加 screen、multiply、subtract、addition 四种混合图层后期可编辑性更强代价是 PSD 文件更大。四个参数搞定 90% 的调优需求分层效果不满意时优先动这四个旋钮比盲目调一堆参数更高效参数作用调大调小init_cluster初始聚类数量图层更碎、更细图层更少、更粗ciede_threshold色团合并阈值容易合并相近色图层变少严格保留色差图层变多blur_size模糊强度边缘更柔和可能糊掉细节边缘锐利可能发毛loops迭代轮数分层更稳定耗时变长速度快结果粗糙参考方向简单插画用init_cluster8~12、loops1复杂场景提到init_cluster15~20、loops2~3。UI 组件这类色块清晰的图保持默认值就够用。新手最容易踩的三个坑第一个坑Segment 模型没下载完就点生成。对象分割模式依赖 2.4GB 的 SAM 权重文件网络差时下载会很久。如果首次运行等了很久多半是在下载模型而不是在计算可以留意终端日志进度条。第二个坑切到 segment_mode 却忘了先点Segment。该模式需要先生成对象遮罩并缓存再基于遮罩构建图层。直接点Create PSD会报找不到遮罩文件的错误。顺序是Segment → Create PSD。第三个坑对输出 PSD 体积没预期。composite模式一个元素会生成最多 5 个图层base/screen/multiply/subtract/addition元素一多文件就会明显膨胀。只是简单改色就选normal需要精修光影再上composite。这不是终点向更聪明的分层进化LayerDivider 目前的分层哲学是先按颜色/对象拆开再按亮度差异补效果图层这套思路对扁平插画和游戏立绘已经非常能打。而项目本身也留出了明显的进化空间分割模型可以替换成更强的新一代实例分割模型实现语义级的图层自动命名聚类与分割两条管线也可以融合——先用 SAM 找出对象再在每个对象内部按色彩细分。如果你想亲手试试现在就打开终端克隆仓库跑一遍run_gui.ps1用一张自己手头的插画压压惊。觉得好用就顺手点个 Star或者把调出来的最佳参数写成 issue 分享给作者——开源工具的生命力正是来自每一个真实使用者的反馈。分层不再是设计流程里最枯燥的一环把时间留给创作本身吧。【免费下载链接】layerdividerA tool to divide a single illustration into a layered structure.项目地址: https://gitcode.com/gh_mirrors/la/layerdivider创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考