蛐蛐下AI 运行photoshop 脚本的失败经历
ninehua 2025-07-09 16:37 6 浏览
正好最近有图片批处理需求~
针对AI结合各种软件提升工作效率的第一个尝试~
在成功使用
deepseek+豆包+kimi = ppt
deepseek+vscode 代码助手(自动写代码,原项目自带验证和热启动,未加入单元测试)
deepseek+canvas可画 = 海报
之后准备尝试一下deepseek+ps自动化脚本修图~
首先在deepseek里要求photoshop的脚本代码:
提问:写一个photoshop的脚步,用于复制一个图层,抠图去掉背景,photoshop版本2020
然后deepseek经过深度思考给出了代码:
// Photoshop 2020专用抠图脚本
// Save as "CopyAndRemoveBG.jsx"
#target photoshop
try {
// 检查文档状态
if (app.documents.length < 1) {
throw new Error("请先打开图像文件");
}
var doc = app.activeDocument;
var originalLayer = doc.activeLayer;
// 创建副本图层
var copiedLayer = originalLayer.duplicate();
copiedLayer.name = originalLayer.name + "_抠图版";
// 执行智能选区(兼容2020版)
if (doc.selection && typeof doc.selection.selectSubject === 'function') {
doc.selection.selectSubject(); // 2020版支持的核心AI功能
} else {
// 备用选区方案
app.runMenuItem(stringIDToID('autoSelectionTool')); // 触发自动选择工具
}
// 选区优化设置
doc.selection.contract(1); // 收缩1像素
doc.selection.feather(0.8); // 羽化0.8像素
// 添加图层蒙版
var maskResult = copiedLayer.addMask();
// 转换为透明背景
doc.selection.invert();
copiedLayer.applyMask(maskResult); // 应用蒙版
doc.selection.deselect();
// 结果提示
alert("抠图完成!已创建新图层: " + copiedLayer.name);
} catch(e) {
alert("执行错误: " + e.message + "\n行号: " + e.line);
}
还提示了 我要保存成jsx文件,并ps打开图片“文件-脚本-浏览”选脚本文件打开即可。
很贴心~
but按照以上步骤运行代码,ps报错,显示stringIDToID不是函数
于是我在deepseek中继续提问报错该如何解决……
然而,deepseek一贯的神回复来了
于是,开启广撒网的AI询问模式,chatGPT、豆包、文心快码……
都问一遍……
修正代码建议给了不少,比如豆包家的:
try {
// 获取当前活动文档
var doc = app.activeDocument;
// 获取当前选中的图层
var currentLayer = doc.activeLayer;
// 确保当前图层不是背景图层,因为背景图层不能直接编辑
if (currentLayer.kind == LayerKind.BACKGROUND) {
currentLayer = currentLayer.duplicate(); // 复制背景图层以使其成为普通图层
doc.activeLayer = currentLayer; // 激活新复制的图层
}
// 选择当前图层的所有像素
currentLayer.select();
// 创建一个新的图层蒙版
var layerMask = currentLayer.addVectorMask();
// 使用魔术棒工具选择背景(假设背景是单一颜色或易于选择的)
// 由于直接用 getByName 可能在某些环境有问题,这里使用字符串 ID 操作
var magicWandDesc = new ActionDescriptor();
var magicWandRef = new ActionReference();
magicWandRef.putString(stringIDToID("tool"), stringIDToID("magicWandTool"));
magicWandDesc.putReference(stringIDToID("null"), magicWandRef);
executeAction(stringIDToID("selectTool"), magicWandDesc, DialogModes.NO);
// 设置魔术棒工具参数
var tolerance = 32; // 设置容差以适应背景颜色的变化
var contiguous = true; // 只选择连续区域
var selectDesc = new ActionDescriptor();
selectDesc.putUnitDouble(stringIDToID("tolerance"), stringIDToID("unitless"), tolerance);
selectDesc.putBoolean(stringIDToID("contiguous"), contiguous);
executeAction(stringIDToID("magicWand"), selectDesc, DialogModes.NO);
// 反转选择,以便选择前景而不是背景
doc.selection.invert();
// 将选择应用于图层蒙版
var path = doc.pathItems.add();
var points = [];
var bounds = doc.selection.bounds;
points.push({ anchor: [bounds[0], bounds[1]], leftDirection: [bounds[0], bounds[1]], rightDirection: [bounds[0], bounds[1]] });
points.push({ anchor: [bounds[2], bounds[1]], leftDirection: [bounds[2], bounds[1]], rightDirection: [bounds[2], bounds[1]] });
points.push({ anchor: [bounds[2], bounds[3]], leftDirection: [bounds[2], bounds[3]], rightDirection: [bounds[2], bounds[3]] });
points.push({ anchor: [bounds[0], bounds[3]], leftDirection: [bounds[0], bounds[3]], rightDirection: [bounds[0], bounds[3]] });
path.points = points;
path.closed = true;
layerMask.initFromPath(path);
path.remove();
// 清除选择
doc.selection.deselect();
// 保存文档(可选)
// doc.saveAs(new File("/path/to/save/your/image.png"), SaveOptions.PNG, true);
alert("抠图并删除背景完成!");
} catch (e) {
alert('过程中:' + e.message);
}
但是依旧运行报错。
锲而不舍,又试了多次,经过createMask,addMask不是函数,stringIDToID自定义函数报非法参数,charIDToTypeID非法参数
等等~
期间deepseek短暂walkup,给了个修正案:
// Photoshop 2020兼容版抠图脚本
// 保存为"CopyAndRemoveBG_PS2020.jsx"
#target photoshop
try {
// ========== 初始化检查 ==========
if (app.documents.length < 1) {
throw new Error("请打开一个图像文件");
}
var doc = app.activeDocument;
var originalLayer = doc.activeLayer;
// ========== 创建副本图层 ==========
var idDplc = charIDToTypeID("Dplc");
var desc = new ActionDescriptor();
desc.putReference(charIDToTypeID("null"), charIDToTypeID("Lyr "), originalLayer);
executeAction(idDplc, desc, DialogModes.NO);
var copiedLayer = doc.activeLayer;
copiedLayer.name = originalLayer.name + "_抠图版";
// ========== 智能选区核心逻辑 ==========
if (typeof doc.selection.selectSubject === 'function') {
// PS2020支持的AI选择主体
doc.selection.selectSubject();
} else {
// 传统自动选区方案
var idAuto = charIDToTypeID("AuTl"); // 自动选择工具
var desc = new ActionDescriptor();
desc.putEnumerated(charIDToTypeID("TlFn"), charIDToTypeID("TlFn"), idAuto);
executeAction(charIDToTypeID("Slct"), desc, DialogModes.NO);
}
// ========== 选区优化 ==========
doc.selection.contract(1); // 收缩1像素
doc.selection.feather(0.8); // 羽化0.8像素
// ========== 创建蒙版 ==========
var idMk = charIDToTypeID("Mk ");
var desc = new ActionDescriptor();
desc.putClass(charIDToTypeID("Nw "), charIDToTypeID("Chnl"));
desc.putEnumerated(charIDToTypeID("At "), charIDToTypeID("Chnl"), charIDToTypeID("Msk "));
executeAction(idMk, desc, DialogModes.NO);
// ========== 清理选区 ==========
doc.selection.deselect();
// ========== 消除边缘杂色 ==========
var idDfrn = charIDToTypeID("Dfrn");
var desc = new ActionDescriptor();
desc.putUnitDouble(charIDToTypeID("Rds "), charIDToTypeID("#Pxl"), 1);
executeAction(idDfrn, desc, DialogModes.NO);
alert("操作成功!已创建抠图层:" + copiedLayer.name);
} catch(e) {
alert("错误发生在行:" + e.line + "\n错误信息:" + e.message);
}
多次尝试依旧不行~
有没有人操作成功了呢?
相关推荐
- 我常用的三个剪辑工具 免费功能强大 剪辑视频不再求人
-
今天特意写这篇文章分享一下我在用的三个视频剪辑工具,这三个免费,好用,功能强大,包含了我常用的手机上剪辑的视频软件,电脑端剪辑视频的软件。为什么要写这篇文章呢,还得从早上被一些垃圾剪辑软件给套路了,所...
- macOS绝美流动壁纸!如何免费下载和制作?
-
大家好,我是dairy。我们都曾见识过Apple产品壁纸的惊艳,无论是macOS还是iOS设备壁纸,每更新一版系统版本,就会带来一波新的超美作品。从macOSMojave10.14开始,Mac系统...
- 适用于Windows和Mac的10款最佳照片恢复软件(免费&付费)
-
丢失了您的珍贵照片?让我们看看最好的免费和付费照片恢复软件,用于在Windows和Mac上恢复它们。添加图片注释,不超过140字(可选)丢失照片很容易。一个错误的点击,一个贴错标签的SD卡,然...
- Typora开始收费,介绍几款免费的MarkDown编辑器
-
前两天,一场突如其来的新闻,让本来就不富裕的TJ君更是雪上加霜。什么事情呢?Typora,大家一定都在用吧,作为一款主打免费旗号的Markdown编辑器,Typora一直是很多小伙伴的常备工具之一,...
- Mac端想找一个免费好用的视频播放器?不妨看看IINA
-
今天为大家带来的是一款macOS系统下的视频播放软件介绍,它便是IINA,初识这个软件的时候它应该还刚刚上架GitHub,那时候我用的比较多的Mac端视频播放软件还是VLC。其实对于这类软件,相信大部...
- CotEditor - 免费开源好软件推荐!macOS 上轻量好用的纯文本编辑器
-
mac上一款免费好用的纯文本编辑器,平时看看文档,可以满足类似notepad++这样的工具需求。关于CotEditorCotEditor是一款运行在mac电脑上的轻量级、简洁但功能强大的...
- 坚果云 for Mac(网盘工具)中文免费版
-
推荐一款国内很受欢迎的网盘工具,坚果云forMac提供文件自动同步、数据备份、文件共享、文件搜索、下载、文件自动锁定等实用的功能,让你管理文件更加便捷,而且坚果云网盘支持与手机、平板、网页等设备互...
- 微软发布Mac版Office 2016测试版:免费试用
-
微软发布Mac版Office2016测试版:免费试用新浪手机讯3月6日上午消息,微软公司今日发布适用于苹果Mac电脑的Offic办公套装软件,目前是预览版,用户下载后可免费试用60天。从命名就可...
- 《极限竞速:地平线5》下月登陆PS5,实体版缺失引担忧
-
IT之家3月3日消息,《极限竞速:地平线5》将于4月25日登陆PlayStation5平台,但此次发行将仅以数字版形式推出。游戏开发商PlaygroundGames在X...
- PS5《控制:终极版》新增扩充内容和次世代增强视觉功能
-
GameSourceEntertainment(GSE)宣布,《控制:终极版》已于2月2日以PSN数位版形式登陆PlayStation(R)5平台,而PS5TM《Control》终极版的盒装...
- PS修图插件-DR5高级版人像精修神器重磅来袭
-
设计筱柒设计资源分享10-14无偿领取提示:1、评论随意评论:各抒己见2、学习领取课件私信设计筱柒:想学每天最新的优质资源不容错过哦今天的内容希望可以帮到你~2021最新DR5白金版高级PS扩...
- 蛐蛐下AI 运行photoshop 脚本的失败经历
-
正好最近有图片批处理需求~针对AI结合各种软件提升工作效率的第一个尝试~在成功使用deepseek+豆包+kimi=pptdeepseek+vscode代码助手(自动写代码,原项目自带验证和热启...
- PS5赚疯了!索尼一台主机碾压四代总和,玩家:钱都去哪儿了?
-
阅读之前,麻烦用你发财的小手点点创作不易,感谢大家的支持!每日更新最近,索尼PS5的赚钱能力直接炸裂!数据显示,PS5自2020年发售以来,利润已经突破130亿美元,直接超过了PS1、PS2、PS3、...
- PS Plus PS5会免及Collection免费阵容公开
-
PlayStation公开了11月欧美服PS+会免游戏阵容,PS5游戏《虫子快餐店》首发即加入会免,可在2020年11月12日至2021年1月4日期间领取。除了《虫子快餐店》之外,《中土世界战争之影...
- 开源 Windows 和 Office 激活器, 无需部署直接使用。
-
更多内容请关注我的微信公众号:VistaHub上周写了一篇永久激活Windows和Office的文章,但是需要使用NAS进行部署,给本就门槛不低的激活操作,又增加了不小的难度。今天我发现了一...