百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

蛐蛐下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款最佳照片恢复软件(免费&amp;付费)

丢失了您的珍贵照片?让我们看看最好的免费和付费照片恢复软件,用于在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进行部署,给本就门槛不低的激活操作,又增加了不小的难度。今天我发现了一...