昨天刷小红书刷到一个视频,说现在 ChatGPT 能直接生成分层的 PSD。这要是真的,那做海报、改素材、就方便多了,照着试了下,记录一下。

剧透一下:直接让 ChatGPT 一条龙搞定分层 PSD,目前不太行。但折腾了半天发现,如果换个思路,其实还是有办法用上 AI 来帮你做素材的,下面慢慢说。

视频里教的方法


视频里教的方法不复杂:

1. 模型必须选 Thinking(5.5),普通的不行。
2. 让GPT生成一张图(或者上传一张图),让它把里面的元素一个个拆出来,要求保持各元素的相对位置不变,每个元素单独出一张图。要白色底,不要伪透明底。
3. 拆完之后,让 ChatGPT 调用 Photoshop(现在是能连的),把这些图拼成一个 PSD。

看着是挺顺利的。

第一次尝试:默认走流程


我让它生成了一张三亚旅行海报让它拆。GPT 思考了一会,给我吐了一堆 PNG 出来,最后打包成了一个 PSD 文件。

PSD 是给我了,分层也确实分了。但是……

首先,预览图和透明 PNG 图层压缩包这个无法下载。(可以再次聊天让它提供下载链接)



其次,PSD文件是给了,分层也分了。但是元素的位置也不对。这个也还行,大不了我自己摆摆。

位置是错乱的

但是元素有**明显的白边**,抠图根本没抠干净,有些还抠多了。所以无法拿来直接用。这样还不如自己抠,就让 ChatGPT 拆图就行了。它确确实实是给拆了图。

GPT告诉我一个技巧,可以让它生成跟主体不包含的颜色背景,这样更好抠图。

抠图没抠好

**而且根本不是在操作 Photoshop**

我翻了下它的思考过程,发现更逗的事——它压根没用 Photoshop。所谓”连接 PS”在这一步完全没派上用场。

它的实际流程是这样的:

- 先检查环境里有没有 psd_tools、pytoshop 这种能写 PSD 的 Python 库,结果都没装。
- 然后发现 ImageMagick 在,就决定用 ImageMagick 来拼 PSD。
- 抠白边那步是用 PIL + OpenCV 写了个 Python 脚本,原理是 HSV 阈值判断 + 边缘 floodFill,再做一点膨胀腐蚀去 fringe(白边)。
- 最后 convert layer1.png layer2.png ... out.psd 一把梭,输出 PSD。

所以本质上它是在**用代码模拟一个分层 PSD**,不是真的在调用 Photoshop 的能力。这就解释了为什么白边抠不干净——脚本里那个阈值方法对纯白背景还行,但只要边缘有抗锯齿、半透明过渡,或者元素本身就带点浅色,就会留一圈白。这是算法层面的限制,不是参数调一调就能解决的。

ImageMagick 拼出来的 PSD 跟 PS 原生导出的也有差距。图层属性、调整图层、智能对象这些都没有,就是一堆光栅图层叠在一起,仅此而已。

第二次尝试:明确要求用 AI 抠图


不甘心,又试了一次。这次我在指令里明确要求:

- 不准用阈值法(HSV、floodFill 这些)
- 必须用 rembg 这种基于深度学习的抠图工具
- PSD 必须用 psd-tools 写,不接受 ImageMagick

GPT 这次是真的去装 rembg 了,还装上了 psd-tools,比第一次靠谱不少。但翻它的思考过程,发现新的坑:

**rembg 装上了,但跑不起来**。它依赖的 pymatting 库里有 numba JIT 编译,沙箱环境里编译挂了,import 直接失败。

更妙的是,GPT 看到 rembg 起不来之后,**没有再尝试别的 AI 抠图方案**(比如 transformers 加载 BRIA 的 RMBG-2.0),而是自己写了一套”软 alpha 蒙版”——本质上还是颜色距离阈值,只不过换了个数学公式,再套个高斯模糊做羽化。

它在生成的 manifest 里还很贴心地标注:”no HSV threshold or floodFill”。意思是”我没违反你的规则哦”。但你品,你细品。

**最后的结果是这样**:

PSD 里确实有 10个图层,但每个图层都是**带着大块背景的矩形或椭圆区域**,元素根本没被真的分离出来:

- 蓝色文字层里带着整片天空
- 三个圆形景点是直接用椭圆蒙版套上去的,底下”南山文化旅游区”那行字完全没被识别成独立元素,是跟着椭圆顺手带的

把这 10 个”图层”叠起来,刚好还原成原图。所以从视觉上看好像没问题,但只要你点开 PSD 单独看每一层,就会发现这压根不叫分层,只是把一张图切成了 10 块拼图而已。

中场总结:问题到底卡在哪


到这里基本可以判定:用 ChatGPT 在它的代码沙箱里**从一张现成的图反向拆分出分层 PSD**,目前是行不通的。

瓶颈不在 ChatGPT 的”思考能力”,而在它的运行环境:

1. 抠图模型起不来(rembg 在它那个 Python 3.13 沙箱里跑不动)
2. 没有外网,没法调云端的抠图 API
3. 模型不会主动尝试别的方案,遇到第一个 AI 抠图工具失败就退回到阈值法
4. 哪怕你明确禁止它用阈值法,它也会换个名字(”软蒙版”)继续用

第三次尝试:换个思路,从零生成


既然”拆图”这条路走不通,我换了个思路:**让 GPT 不要拆,让它从零画**。

让它生成一个全新的老虎机 UI,然后它就自己用代码画矢量图形,每个元素自己一层。

结果竟然还不错。

PSD 给我了,10 个图层,每个图层都是透明的——圆角矩形按钮、文字、星星,全是它自己用 PIL 一笔一笔画出来的。每一笔都画在指定的透明画布上,所以图层之间天然就是分离的,根本不存在”抠图”问题。



更逗的是,因为 PIL 不支持写 PSD,psd-tools 又出了点状况,它居然**直接按 Adobe PSD 文件格式规范,用 struct.pack 一个字节一个字节地手写 PSD 二进制**。8BPS 那个魔术字节、图层记录、通道数据、合成预览全都按规范拼出来。这个操作有点离谱但又挺合理——既然没有库能用,那就读规范自己写呗。

所以分两种情况看


> ChatGPT 生成分层 PSD 这件事,取决于你是从无到有创造,还是从有到无拆解:
>
>
>
>
> 从无到有(让 GPT 生成一个全新的 UI 设计):可行,效果不错。因为每个图层都是它用代码绘制出来的,天然分层。
>
>
>
> 从有到无(给 GPT 一张图,让它拆成 PSD):目前不行。卡在抠图模型上。

但从零生成也有局限:风格被 PIL 的能力限制死了。圆角矩形、纯色填充、简单渐变可以,但你想要的那种”质感丰富、有材质纹理、有真实光影”的设计风格,PIL 画不出来。所以它给我的老虎机 UI 看起来是”程序员审美”的扁平风格,不是设计师审美的精致风格。

第四次尝试:把 AI 当素材生成器


那如果我**只让 AI 生成单个高质量素材**,然后**自己在 PS 里拼**呢?

这条路走通了。流程是这样的:

1. 给 GPT 一张参考图,告诉它整体风格
2. 让它分别生成你需要的每个素材:宝箱、按钮、图标、特效等等。每个素材单独生成,不要求位置对齐
3. 你自己在 Photoshop 里手动排版

ChatGPT 给我生成了一份很详细的素材清单。该说不说,它拆元素其实很在行。然后因为它一次最多生成10张图片。所以它给分了组,让我按照分类,一组一组地生成图片。



结果还不错,生成的图片一组一组,挺好。但是——你还是得抠图。

最终结论


| 你想做的事 | 可行性 | 备注 |
|---|---|---|
| 把已有的图精确转成可编辑 PSD | 不行 | 抠图模型在沙箱里跑不动 |
| 让 GPT 重画一张分层 PSD | 半行 | 这个要看情况,不是百分百成功的 |
| 让 GPT 用代码画几何风格 UI | 行 | 但风格扁平 |
| 让 GPT 生成单个素材,自己拼 | 行(推荐) | 走这条路 |

**最实在的工作流:**

- 生成阶段:用 ChatGPT 生成单个素材(让它输出白底而不是假”透明背景”)
- 抠图阶段:本地用 PS 的”色彩范围”,或者直接 remove.bg / rembg
- 拼装阶段:自己在 PS 里拖图层,组合成最终 PSD

让 AI 一条龙搞定,至少现在还差得远。但 AI 当个高质量素材生成器还是挺好用的,就是要懂得怎么把它输出的东西收拾干净。

原帖地址


小红书:@香菇白菜小笼包

Rate this post