3分钟把一张图变成可编辑的PSD分层文件:开源工具LayerDivider上手全记录
【免费下载链接】layerdividerA tool to divide a single illustration into a layered structure.项目地址: https://gitcode.com/gh_mirrors/la/layerdivider
上周帮朋友救急,处理一张插画,光是按元素抠图层就耗掉一个下午。朋友笑我是"手艺人",我却笑不出来——直到我遇到了 LayerDivider,一个能把单张图片自动转换为可编辑PSD分层文件的开源工具,才真正从这类重复劳动里解脱出来。
设计师的"周一噩梦":一张图,抠了一整天
先说说那个让我想吐槽的场景。你大概也遇到过类似的活儿:甲方丢过来一张图,说"帮我把每个元素都拆出来,做成能单独改的图层"。听起来简单,做起来全是体力活——魔棒、钢笔、套索轮番上阵,边缘抠不干净要一点点补,颜色相近的区域更是噩梦。等一张图抠完,一天没了,眼睛也快没了。
更气人的是,这种活儿没有技术含量,只有时间成本。它本质上就是"机械地把像素按颜色、按形状归类",而这恰恰是计算机最擅长的事。
遇到LayerDivider:这款免费图片分层软件到底做了什么
LayerDivider 解决的就是上面这个痛点。你只需要丢给它一张图,它会在几秒到几分钟内(取决于图片复杂度和电脑配置),吐出一个结构清晰的 PSD 文件:每个颜色区域、每个独立物体都被拆成单独图层,图层有统一命名,打开就能改。
而且它不用联网、不用注册、不收费,模型和依赖装好之后可以完全离线运行——对在意隐私、不想被订阅制绑架的设计师来说,这一点非常加分。
它是怎么做到的?说白了,它内置了两套"拆图思路",对应两类完全不同的图片。
如何把一张图拆分成多个图层:两条路线任你选
路线一:按颜色拆,适合插画和UI
这条路线用的是图像聚类算法,理解起来并不难:它把图里每个像素的颜色都登记在册,再把颜色接近的像素归成一个"组",最后把每个组提炼成扁平色块图层。归组时用的是专业的 CIEDE2000 色彩差异公式,用来判断"这两个颜色算不算同一种",比肉眼判断还要稳。
细节上也做得很贴心:合并完色块后会对图像做一次平滑处理,让图层边缘不那么生硬;每个色块还会用该区域的平均色重新填涂,保证最终效果干净利落。
路线二:按物体拆,适合照片和复杂场景
如果图里有好几个独立物体——比如一堆商品、一张角色立绘——光按颜色拆可能不够用。这时候 LayerDivider 会调用 Segment Anything(就是那个知名分割模型),先把画面里的独立物体逐个"圈"出来,再围绕每个物体单独生成图层。
简单概括:一条路线负责"把调色板摊开",另一条负责"把画面里的人或物一个个请出来"。
此外它还有个很实用的输出选项:普通模式只生成基础图层;复合模式会额外生成高光层、阴影层等效果图层,配合屏幕、正片叠底这类混合模式,编辑自由度更高。
一键把图片拆分成图层的方法:我的实测三步
光说不练没意思,我直接拿项目自带的样例图跑了一遍。下面这张就是输入图:一张白底、四个纯色元素的简单插画。
点击生成按钮之后,工具输出了下面这个结果——每个元素都被拆开,并标注了对应的图层名,Red、Blue、Green、Yellow,一眼就能对上号:
整个过程就三步:
- 打开界面:Windows 用户先跑一遍
install.ps1安装环境,之后用run_gui.ps1启动,浏览器访问localhost:7860就能看到操作面板。 - 上传图片、选模式:在面板里上传图片,按图片类型选择按颜色拆还是按物体拆,其余参数保持默认也能出不错的效果。
- 点按钮、下载PSD:点击生成,等处理完成后把输出的 PSD 文件下载下来,直接用 Photoshop 打开继续编辑。
不想在本地折腾环境的话,项目还附带了一个 layerdivider_launch.ipynb 笔记本,在 Colab 这类在线环境里顺序执行单元格,同样能拿到一个可用的界面。
新手第一次使用需要准备什么
说实话门槛不高,但有些东西提前准备好能少踩坑:
- Python 3.10 及以上 + Git,这是本地安装的基础;
- 核心依赖是 OpenCV、scikit-learn、Gradio、pytoshop 这些,安装脚本会自动帮你装好,不用手动一个个来;
- 按物体分割的路线需要下载 Segment Anything 的预训练权重,文件比较大,首次运行会自动下载,耐心等一等;
- 建议先从简单、纯色、轮廓清晰的图片试起,跑通流程之后再挑战复杂插画和照片。
效果不满意?几个亲测有效的调参小技巧
默认参数已经够用,但如果分层结果不合心意,记住这几个"旋钮"就够了:
- 层分得太粗:把初始聚类数量调大,图层会切得更细;
- 颜色太杂、层太多:把色彩合并阈值调高,相近的颜色会被更积极地合并;
- 边缘太生硬:把平滑强度调大一点,色块边缘会更柔和;
- 元素没拆开:换用按物体分割路线,并适当调低最小区域阈值,让小物件也能被识别出来。
想在代码里直接用也很简单,核心处理函数就一个,传入图片和几个数字参数即可:
from ldivider.ld_processor import get_base df = get_base(input_image, loops=2, cls_num=15, threshold=8, size=5)参数含义和界面上的滑块一一对应,调整起来非常直觉。
图片转PSD分层工具适合谁用
- 插画师:把一张成品插画拆成可编辑图层,改配色、调局部毫不费力;
- 游戏美术:角色、道具、场景素材的分层,省掉大量重复抠图时间;
- UI设计师:界面组件、图标批量拆分,搭建设计系统时很省事;
- 电商与运营:产品图按元素拆解,做活动素材时自由度更高。
一句话:只要你的日常工作里出现过"把一张图拆成很多层"的需求,它就值得你花十分钟装来试试。
写在最后:开源的意义
回到开头那个下午。朋友后来问我,工具不会出错吗?当然会——复杂照片、大面积渐变,它不一定能一次到位。但它把"从零抠一整天"变成了"拿默认结果微调十分钟",这个量级的差距,就是工具存在的意义。
更难得的是,LayerDivider 是开源的。如果你懂点 Python,完全可以按自己的需求改造算法,或者给项目提需求、修 bug。想体验的话,先把它克隆到本地:
git clone https://gitcode.com/gh_mirrors/la/layerdivider拿一张最普通的图片开始吧,亲眼看看它如何把"拆图"这件苦差事,变成几秒钟的事。
【免费下载链接】layerdividerA tool to divide a single illustration into a layered structure.项目地址: https://gitcode.com/gh_mirrors/la/layerdivider
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考