多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

OpenCode 接入 NanoBanana MCP:在编码工具中实现图像编辑能力

OpenCode 接入 NanoBanana MCP:在编码工具中实现图像编辑能力 1. 为什么要在编码工具里塞一个图像编辑能力第一次听到在 OpenCode 里接入 NanoBanana MCP这个组合的时候我脑子里冒出来的第一个念头是这俩东西八竿子打不着吧一个是终端里的 AI 编码助手一个是图像编辑服务硬凑在一起图什么后来真上手跑通了才发现这个组合解决的是一个特别具体的痛点开发者在写代码的过程中经常需要临时处理图片素材但又不值得为此切出去打开一个完整的图像编辑软件。比如你在写一个前端项目需要把设计稿里的图标裁一下、把背景抠掉、把尺寸统一成 2x 和 3x又比如你在做文档站需要给截图加个圆角边框、压缩一下体积再比如你在调一个图像处理相关的接口需要快速生成几张测试用的变体图。这些活儿单拎出来都不难但每次都要离开终端→打开软件→操作→导出→回到终端这套流程走一遍一天下来光切换窗口就能把人逼疯。MCP 这个东西的出现本质上就是给 AI 工具装外挂的。它的全称是 Model Context Protocol你可以把它理解成一套标准化的接口协议让 AI 助手能够调用外部工具和服务。以前 AI 助手只能跟你聊天、写代码能力边界被锁死在文本这个维度里。有了 MCP 之后它可以去调数据库、查文档、操作文件系统当然也可以去调图像编辑服务。NanoBanana 就是这样一个提供图像编辑能力的服务把它封装成 MCP Server 之后OpenCode 就能在对话过程中直接调用图像编辑功能。这里有个关键点需要说清楚MCP 不是让 AI学会图像编辑而是让 AI指挥图像编辑工具干活。这个区别很重要。AI 本身不理解像素、图层、蒙版这些东西它做的是把你的自然语言需求翻译成对 MCP 工具的调用参数。比如你说把这张图的背景去掉主体居中输出 512x512 的 PNGAI 会解析出去背景居中512x512PNG这几个关键参数然后调用 NanoBanana MCP 提供的对应工具去执行。真正干活的还是 NanoBanana 的图像处理能力AI 只是那个传话的。那为什么选 OpenCode 而不是别的编码工具我自己的体验是OpenCode 在终端里的交互流畅度比较高而且它对 MCP 的支持相对成熟配置起来不折腾。当然你用别的支持 MCP 的工具也能做同样的事核心逻辑是通的。这篇文章我会以 OpenCode 为例把整个接入过程、踩过的坑、以及实际用起来的效果都讲清楚。适合谁来读这篇内容如果你满足下面任意一条这篇东西对你就值回票价日常写代码经常需要处理图片素材但不想为了一点小活儿打开重型图像软件已经在用 OpenCode 或者类似工具想扩展它的能力边界对 MCP 协议感兴趣想找一个具体的、能跑通的例子来理解它到底怎么工作在做 AI 应用开发需要把图像处理能力集成到自己的工作流里如果你完全没接触过 MCP也没关系我会在讲接入过程的时候把必要的背景知识补上。但如果你连 OpenCode 是什么都不知道建议先去了解一下这个工具的基本用法不然接入过程里的一些操作你会看得云里雾里。2. MCP 协议到底在解决什么问题2.1 从AI 只能聊天到AI 能干活的转折点在 MCP 出现之前想让 AI 助手调用外部工具基本只有两条路要么在提示词里硬编码工具调用的格式让 AI 按照特定 JSON 结构输出然后你自己写代码去解析和执行要么用各家平台自己的一套插件系统但那些系统互不兼容换个工具就得重写一遍。这两种方式的问题都很明显。第一种方式太脆弱AI 稍微不按格式输出就崩了而且每加一个新工具就要改一次提示词和解析逻辑。第二种方式被平台锁死你的工具集成只能在这个平台用换到另一个平台就得从头再来。MCP 的思路是把工具提供方和工具使用方解耦。工具提供方只需要按照 MCP 协议实现一个 Server声明自己有哪些工具、每个工具接受什么参数、返回什么结果。工具使用方比如 OpenCode只需要实现一个 MCP Client就能自动发现和调用任何符合协议的 Server。双方不需要知道对方的具体实现只需要遵守同一套协议。这个设计的好处是显而易见的。对于工具开发者来说写一次 MCP Server所有支持 MCP 的客户端都能用。对于客户端开发者来说实现一次 MCP Client就能接入所有 MCP Server。对于用户来说想扩展 AI 的能力只需要配置一下要连接哪些 MCP Server 就行了不用改代码。2.2 MCP Server 和 MCP Client 的角色分工理解 MCP 的关键是搞清楚 Server 和 Client 各自负责什么。MCP Server是能力的提供方。它对外暴露一组工具Tools每个工具就是一个可以被调用的函数。比如 NanoBanana MCP Server 可能会暴露这些工具remove_background去背景、resize_image调整尺寸、crop_image裁剪、convert_format格式转换等等。每个工具都有明确的输入参数定义和输出格式定义。Server 还负责实际的执行逻辑比如remove_background被调用时它真的去跑图像分割算法然后把处理后的图片返回。MCP Client是能力的调用方。它负责连接 Server、获取工具列表、把用户的自然语言需求翻译成工具调用、执行调用、把结果返回给用户。在 OpenCode 的场景里Client 就是 OpenCode 本身。当你在对话里说帮我把这张图的背景去掉OpenCode 会识别出这是一个图像编辑需求然后去查当前连接的 MCP Server 里有没有对应的工具找到remove_background之后提取出图片路径参数发起调用拿到结果再告诉你搞定了。这里有个容易混淆的点MCP Server 本身不包含 AI 能力。它就是一个普通的服务提供确定性的功能。AI 能力在 Client 这边是 Client 在决定什么时候调用哪个工具、传什么参数。所以你不能指望 NanoBanana MCP Server 自己理解把背景去掉这句话它只认识结构化的调用请求。2.3 为什么图像编辑特别适合做成 MCP 工具图像编辑这个场景和 MCP 的契合度其实非常高原因有几个。第一图像编辑的操作是高度结构化的。去背景、裁剪、缩放、旋转、格式转换、加水印这些操作都有明确的输入输出参数也很清晰。这种特性非常适合封装成工具因为 AI 很容易把自然语言映射到这些标准操作上。第二图像编辑的反馈是即时的、可视的。你调用一个工具处理完图片马上就能看到结果不需要等很久。这种即时反馈让 AI 和人的协作很顺畅你可以快速迭代处理→看效果→调整参数→再处理这个循环。第三图像编辑的需求是碎片化的。开发者日常遇到的图像处理需求往往很小、很临时不值得专门打开一个软件。这种碎片化需求正好适合用对话的方式来解决说一句话就搞定不用切换上下文。第四图像编辑的结果容易验证。处理完的图片对不对看一眼就知道。这降低了 AI 调用工具出错的风险因为错误很容易被发现和纠正。把这几点放在一起看图像编辑做成 MCP 工具几乎是顺理成章的事。它不像数据库操作那样有复杂的权限和事务问题也不像代码执行那样有安全风险就是一个相对干净、边界清晰的能力扩展。3. 接入前的环境准备与依赖梳理3.1 OpenCode 的安装与版本确认在开始接入 MCP 之前先把 OpenCode 本身装好、跑通。这一步看起来简单但实际踩坑的人不少我见过好几个卡在安装环节就放弃的。OpenCode 的安装方式取决于你的操作系统。在 macOS 和 Linux 上通常可以通过包管理器或者官方提供的安装脚本来装。Windows 用户稍微麻烦一点可能需要用 WSL 或者等官方出原生的 Windows 版本。安装完之后第一件事是确认版本opencode --version这个命令会输出当前安装的版本号。为什么要确认版本因为 MCP 支持是在特定版本之后才加入的如果你的版本太老配置文件里写了 MCP 相关的内容也不会生效。我建议用比较新的版本至少是明确标注支持 MCP 的版本。装完之后还要确认 OpenCode 能正常启动、能正常对话。如果连基础功能都跑不起来先别急着搞 MCP把基础问题解决了再说。常见的启动问题包括配置文件路径不对、API 密钥没配、网络连不上服务端等等。这些问题的排查不在本文范围内但你要确保 OpenCode 本身是健康的。提示如果你在 Windows 上遇到cmd使用opencode命令无效这类问题大概率是环境变量没配好或者安装路径没加到 PATH 里。先解决这个再往下走。3.2 NanoBanana MCP Server 的获取方式NanoBanana MCP Server 的获取通常有两种途径一种是用官方或者社区已经封装好的 Server直接下载或者用包管理器安装另一种是自己根据 NanoBanana 的 API 封装一个 MCP Server。对于大多数用户来说第一种方式更省事。你只需要找到对应的 Server 包按照说明安装到本地或者部署到一个可访问的地址就行。安装方式可能是 npm 包、Python 包、或者一个独立的可执行文件具体取决于 Server 的实现语言和发布方式。如果你找不到现成的 Server或者现成的 Server 不满足你的需求那就得自己封装。自己封装的好处是可控性强想加什么工具就加什么工具想怎么处理参数就怎么处理。坏处是要花时间而且得对 MCP 协议和 NanoBanana 的 API 都有一定了解。自己封装的基本思路是用 MCP 提供的 SDK通常有 Python 和 TypeScript 两个版本定义一个 Server 实例然后注册若干个工具。每个工具就是一个函数函数体里调用 NanoBanana 的 API 完成实际处理然后把结果按照 MCP 的格式返回。SDK 会帮你处理协议层面的细节你只需要关注业务逻辑。3.3 网络与权限的预检查在正式配置之前有几个预检查项最好过一遍能省掉后面很多莫名其妙的报错。网络连通性确认你的机器能访问 NanoBanana 的服务端点。如果你用的是云端 API先 ping 一下或者用 curl 试一下能不能通。如果是本地部署的 Server确认端口没被占用、防火墙没拦。API 凭证如果 NanoBanana 需要 API Key 或者类似的凭证提前准备好并且确认凭证有效、有足够的额度。我遇到过配置都对了但调用一直失败的情况最后发现是 API Key 过期了。文件路径权限MCP Server 处理图片时需要读取源文件、写入结果文件。确认 Server 进程对这些路径有读写权限。在 macOS 和 Linux 上权限问题比较常见尤其是当 Server 以某个特定用户身份运行时。OpenCode 的配置目录确认你知道 OpenCode 的配置文件放在哪里。不同版本的 OpenCode 配置路径可能不一样通常在用户主目录下的某个隐藏目录里或者项目根目录下的某个配置文件。找对地方再改不然改了半天不生效。4. 把 NanoBanana MCP 挂到 OpenCode 上的完整过程4.1 配置文件的结构与关键字段OpenCode 的 MCP 配置通常写在一个 JSON 或者 YAML 格式的配置文件里。具体格式取决于 OpenCode 的版本但核心字段是类似的。一个典型的 MCP Server 配置大概长这样{ mcpServers: { nanobanana: { command: npx, args: [-y, nanobanana/mcp-server], env: { NANOBANANA_API_KEY: your-api-key-here } } } }这里有几个关键字段需要解释一下。mcpServers是一个对象里面每一个键值对代表一个 MCP Server 的配置。键名比如上面的nanobanana是你给这个 Server 起的名字随便起但最好有意义因为后面在对话里可能会用到这个名字来指定调用哪个 Server。command是启动这个 Server 的命令。如果是本地运行的 Server这里就是启动命令比如npx、python、node等等。如果是远程 Server可能用的是另一种配置方式比如直接给一个 URL。args是传给启动命令的参数。比如用npx启动一个 npm 包参数就是包名和可能的其他选项。env是环境变量用来传递 API Key、服务地址之类的配置信息。敏感信息放这里比硬编码在代码里安全。如果你的 Server 是远程部署的配置方式可能不一样通常会给一个url字段而不是command和args。具体看 OpenCode 的文档和 Server 的说明。4.2 本地 Server 与远程 Server 的配置差异本地 Server 和远程 Server 的配置差异主要体现在连接方式上。本地 Server是跑在你自己的机器上的进程。OpenCode 启动时会根据配置去拉起这个进程然后通过标准输入输出stdio和它通信。这种方式的优点是延迟低、不依赖网络、数据不出本机。缺点是每个用这个 Server 的机器都要装一遍依赖环境不一致的时候容易出问题。远程 Server是跑在某个服务器上的服务通过 HTTP 或者 SSEServer-Sent Events之类的协议通信。这种方式的优点是配置简单、多台机器可以共用、升级维护方便。缺点是有网络延迟、依赖网络稳定性、数据要传到远端。选择哪种方式取决于你的具体场景。如果只是个人用、对数据隐私要求高本地 Server 更合适。如果是团队共用、或者 Server 依赖比较重比如需要 GPU远程 Server 更合适。配置远程 Server 的时候通常需要提供 URL 和可能的认证信息。认证方式可能是 API Key、Token、或者 OAuth具体看 Server 的实现。配置的时候注意不要把认证信息明文写在会提交到版本控制的地方。4.3 验证连接是否成功的几种方法配置写完之后怎么确认真的连上了我一般用下面这几种方法交叉验证。方法一看 OpenCode 的启动日志。OpenCode 启动时会尝试连接配置里所有的 MCP Server连接成功或失败通常会在日志里体现。如果日志里显示某个 Server 连接失败会附带错误信息根据错误信息排查。方法二在对话里问 OpenCode。直接问它你现在能用哪些 MCP 工具或者列出所有可用的工具。如果连接成功它应该能列出 NanoBanana 提供的那些工具。如果连接失败它可能会说没有可用的工具或者报错。方法三直接调用一个简单工具。找一个参数简单、不容易出错的工具试一下比如列出支持的图片格式或者检查服务状态之类的。如果这个能成功说明连接是通的。方法四手动启动 Server 进程。把配置里的command和args拿出来在终端里手动跑一遍看能不能正常启动。如果手动跑都起不来那 OpenCode 里肯定也连不上。手动跑的好处是能看到完整的输出和错误信息方便定位问题。这几种方法我一般会组合使用。先手动跑一遍确认 Server 本身没问题再看 OpenCode 日志确认连接建立最后在对话里实际调用一次确认端到端是通的。5. 实际用起来是什么体验几个真实场景5.1 批量处理项目里的图标素材前端项目里经常有一堆图标需要处理统一尺寸、统一格式、去掉多余的白边、生成不同倍率的版本。以前这些活儿要么手动一个个处理要么写个脚本跑。手动处理费时间写脚本又要调试半天。接入 NanoBanana MCP 之后我直接在 OpenCode 里说把assets/icons目录下所有的 PNG 图标统一成 128x128去掉透明边距然后分别导出 1x、2x、3x 三个版本到对应的目录。 OpenCode 会解析这个需求调用 MCP 工具去遍历目录、处理每张图、按规则导出。我只需要在最后检查一下结果就行。这个场景里 MCP 的价值在于把写脚本变成了说需求。虽然写脚本也不难但说需求更快而且不用维护脚本。尤其是当需求经常变的时候改一句话比改脚本方便多了。5.2 给文档截图做统一处理写技术文档的时候经常要放截图。截图直接放上去往往不太好看尺寸不统一、背景色不一致、没有边框、文件太大。理想情况下每张截图都应该处理一下但截图一多就懒得弄了。用 MCP 之后我可以批量处理统一宽度、加圆角边框、加阴影、压缩体积、转成 WebP 格式。这些操作在对话里描述一遍OpenCode 就会对指定的截图目录批量执行。处理完的截图风格统一文档看起来专业很多。这里有个实用技巧把常用的处理参数固化成一个配方。比如文档截图标准处理这个配方包含宽度 1200px、圆角 8px、边框 1px 浅灰、阴影 4px、WebP 质量 85。以后每次处理截图直接说用文档截图标准处理跑一遍screenshots/目录就不用每次重复描述参数了。5.3 调试图像处理接口时的测试数据生成如果你在开发涉及图像处理的接口经常需要准备测试数据不同尺寸的图、不同格式的图、带透明通道的图、损坏的图等等。手动准备这些测试数据很繁琐。用 MCP 可以快速生成测试数据。比如生成 10 张随机尺寸的 PNG宽度在 100 到 2000 之间高度在 100 到 2000 之间内容用随机色块填充OpenCode 会调用工具生成这些图。需要特定格式的测试数据时也可以快速转换。这个场景里 MCP 的价值是把测试数据准备这个杂活自动化了。虽然可以写脚本生成但用对话的方式更灵活想改参数随时改不用改脚本重新跑。5.4 和代码生成结合的工作流最有意思的用法是把图像处理和代码生成结合起来。比如你在做一个响应式图片组件需要不同尺寸的图片和对应的代码。你可以让 OpenCode 先处理图片生成多个尺寸然后根据生成的图片自动写出对应的picture标签或者srcset属性。这种处理素材生成代码的组合是纯图像软件或者纯代码工具都做不到的。图像软件能处理图片但不会写代码代码工具能写代码但不会处理图片。MCP 把两者打通了让 AI 能在同一个对话里完成跨领域的任务。6. 踩过的坑和对应的解法6.1 Server 启动失败从报错信息定位问题最常见的坑就是 Server 启动失败。表现是 OpenCode 日志里显示连接失败或者在对话里问工具列表时返回空。排查的第一步是手动启动 Server 进程看完整的报错信息。常见的报错类型有这么几种命令找不到比如配置里写了npx但系统里没装 Node.js或者写了python但实际命令是python3。解法是确认命令存在或者改成绝对路径。依赖缺失Server 依赖的某个包没装。解法是按照 Server 的说明装齐依赖。权限不足Server 要访问的文件或目录没有权限。解法是调整权限或者换个有权限的路径。端口占用如果 Server 要监听某个端口端口被占了就起不来。解法是换个端口或者把占用端口的进程关掉。配置错误环境变量没传对、参数格式不对等等。解法是对照 Server 文档逐项检查。手动启动能看到完整的错误堆栈比在 OpenCode 日志里看片段信息高效得多。6.2 工具调用超时参数过大还是网络问题另一个常见的坑是工具调用超时。表现是你让 OpenCode 处理一张图等了很久没反应最后报超时。超时的原因通常有两个参数过大或者网络问题。参数过大是指传给工具的数据量太大。比如你让 Server 处理一张几十 MB 的高清图Server 读取、处理、返回结果整个过程可能超过超时限制。解法是先把图片缩小或者压缩再交给 Server 处理。或者调整超时配置给 Server 更多时间。网络问题是指 Client 和 Server 之间的通信不稳定。如果 Server 是远程的网络抖动可能导致请求丢失或响应延迟。解法是检查网络质量或者把 Server 部署到离 Client 更近的地方。还有一种情况是 Server 本身处理慢。比如去背景这种操作如果用的是比较重的模型单张图可能要几秒到几十秒。这种时候要么接受慢要么换更快的处理方式。6.3 处理结果不符合预期参数映射的偏差有时候工具调用成功了但结果不是你想要的。比如你说把背景去掉结果它把主体也去掉了你说裁剪成正方形结果裁的位置不对。这类问题的根源通常是自然语言到工具参数的映射有偏差。AI 理解你的需求时可能对某些模糊的表述做了错误的解读。比如去掉背景这个需求如果图片背景和主体颜色接近去背景算法可能分不清哪里是背景哪里是主体。解法有几个一是把需求描述得更具体比如去掉白色背景保留中间的产品主体二是分步操作先让 AI 确认它打算怎么处理确认无误再执行三是调整工具参数如果工具支持调节去背景的阈值或者模式手动指定更合适的参数。我自己的经验是对于重要的图片先在小图上试一下参数确认效果对了再批量处理。这样即使参数不对损失也小。6.4 多 Server 共存时的命名冲突如果你配置了多个 MCP Server可能会遇到命名冲突的问题。比如两个 Server 都提供了一个叫resize_image的工具OpenCode 在调用时就不知道该用哪个。解法是给 Server 起有意义的名字并且在对话里明确指定用哪个 Server 的工具。比如用 nanobanana 的 resize_image 处理这张图而不是笼统地说调整图片尺寸。另外配置的时候注意 Server 名字不要重复。虽然技术上可以用不同的键名指向同一个 Server但那样容易搞混不如起个清晰的名字。7. 关于性能和成本的几点实测观察7.1 本地处理与云端处理的延迟对比如果你用的是本地部署的 NanoBanana Server处理延迟主要取决于你机器的性能。去背景这种操作如果用的是 CPU 推理单张图可能要几秒如果用 GPU可以快到几百毫秒。本地处理的好处是没有网络延迟坏处是受限于本机性能。云端处理的延迟包括网络往返时间加上服务端处理时间。网络往返通常在几十到几百毫秒服务端处理时间取决于服务商的负载和你的套餐。云端处理的好处是不占本机资源坏处是受网络影响。我自己的选择是小批量、对隐私敏感的图片用本地处理大批量、对速度要求高的用云端处理。两种方式可以同时配置根据具体任务切换。7.2 批量任务的并发控制批量处理图片的时候并发控制很重要。如果一次性发起太多请求可能会把 Server 压垮或者触发服务端的限流。我的做法是控制并发数。比如一次最多处理 5 张图处理完一批再处理下一批。这样既能利用并发提高效率又不会把 Server 压垮。具体的并发数取决于 Server 的处理能力和服务端的限流策略需要实测调整。另外批量任务最好加上失败重试。网络抖动或者临时故障可能导致个别图片处理失败自动重试能提高整体成功率。但重试次数不要太多避免在真正失败的情况下浪费时间。7.3 什么时候该用 MCP什么时候该写脚本MCP 不是万能的有些场景写脚本更合适。适合用 MCP 的场景需求经常变、处理逻辑不复杂、需要和代码生成结合、临时性的处理任务。适合写脚本的场景处理逻辑复杂、需要精细控制、要集成到 CI/CD 流程、需要长期稳定运行。我自己的判断标准是如果这个任务我一年只做几次用 MCP如果每天都做写脚本。MCP 的优势是灵活、上手快适合探索性的、一次性的任务。脚本的优势是稳定、可复用、可版本控制适合固定下来的、重复性的任务。两者也可以结合用 MCP 探索出合适的处理流程然后把流程固化成脚本。这样既享受了 MCP 的灵活性又获得了脚本的稳定性。8. 这套工作流还能怎么扩展8.1 接入更多图像处理能力NanoBanana 只是图像处理能力的一个来源。你还可以接入其他提供图像处理能力的 MCP Server比如专门做 OCR 的、做图像识别的、做风格迁移的。多个 Server 组合起来能覆盖更广的需求。比如你可以配置一个 OCR Server让 OpenCode 能读取图片里的文字再配置一个图像生成 Server让它能根据描述生成图片。这些能力组合起来就能实现读取设计稿里的文字→生成对应的代码→生成占位图这样的完整工作流。8.2 和其他 MCP 工具的组合使用图像处理只是 MCP 能力的一个维度。你还可以接入文件系统 MCP、数据库 MCP、文档 MCP 等等。这些能力组合起来能让 OpenCode 完成更复杂的任务。比如从数据库读取产品信息→生成产品图→把图片路径写回数据库→更新文档这样一条链路涉及数据库操作、图像处理、文件操作、文档编辑多个环节用多个 MCP Server 组合就能在对话里完成。8.3 把常用操作固化成可复用的配置如果你经常做某些图像处理操作可以把参数固化成配置减少每次重复描述。比如在项目里放一个image-recipes.json定义好常用的处理配方然后让 OpenCode 读取这个配置来执行。这样做的另一个好处是团队共享。把配方文件提交到版本控制团队成员都能用同一套参数处理图片保证输出风格一致。9. 一些零散但有用的经验关于 API Key 的管理我的建议是不要硬编码在配置文件里。用环境变量或者专门的密钥管理工具避免密钥泄露。如果配置文件要提交到版本控制确保密钥部分被排除在外。关于 Server 的更新定期检查有没有新版本。MCP Server 的更新可能带来新工具、性能优化、bug 修复。但更新前最好在测试环境验证一下避免新版本引入不兼容的改动。关于错误处理给 OpenCode 明确的错误提示。如果某个操作失败了告诉它失败的原因它才能调整策略重试。比如这张图格式不支持请先转成 PNG 再处理比单纯说失败了更有帮助。关于日志保留处理记录。尤其是批量处理的时候记录哪些图片处理成功了、哪些失败了、用了什么参数。出问题的时候方便回溯。关于测试先用小样本验证。批量处理之前先拿一两张图试一下确认参数和效果都对了再全量跑。这个习惯能避免很多跑了一半发现参数错了的尴尬。关于文档记录你的配置和配方。过几个月再回头看你大概率不记得当时为什么这么配。写个简短的说明未来的你会感谢现在的你。这套工作流我用了几个月最大的感受是它把图像处理从一个需要专门去做的事变成了写代码时顺手就能做的事。以前遇到需要处理图片的情况我会先记下来攒一批再统一处理。现在直接在对话里说一句就搞定了上下文不中断效率提升很明显。当然它也不是没有局限复杂的图像处理还是得用专业软件但对于日常那些小需求这套方案已经足够好用了。
返回列表