SuperAPI AI 工具集

lightcraft

设计与创作

查看项目

更新于 10-22 16:15

技能介绍

LightCraft 技能用于通过 LightCraft 的结构化自动化接口操作用户指定的照片库和会话,覆盖照片组织、评分、显影、裁剪、渲染与导出等操作。

使用方式与会话选择

技能支持三种接入方式:桌面控制协议、MCP 服务器和无头 CLI。使用前应发现可用的 LightCraft 工具、已安装的可执行文件和现有会话,优先选择指向目标会话的 MCP 连接。对用户正在运行的应用,可使用桌面控制,或运行 lightcraft-cli mcp --connect 127.0.0.1:7980;需要启动桌面会话时可用 lightcraft --control 7980 或设置 LIGHTCRAFT_CONTROL_PORT=7980,具体可执行文件路径和端口需按环境调整。独立照片处理使用 lightcraft-cli mcp [FILES/FOLDERS…],无头模式为默认方式,运行独立的进程内会话。若需持久化的无头编辑,需添加 --library /absolute/path/library。一个照片库同一时间只能在一个程序中打开;若应用持有目录锁,应连接到应用,而不是无头打开该目录,也不得删除锁来绕过限制。未指定 --library 时,不能假定无头编辑在会话之间持久。--demo 仅用于明确要求的演示或隔离示例。该技能不安装 LightCraft,也不配置 MCP 服务器。

桌面传输

桌面控制通道是原始回环 TCP,不是 HTTP 或 MCP JSON-RPC,且没有身份认证,仅应在需要时临时启用。通信时按行发送 UTF-8 JSON 对象,每个对象包含字符串 method、可选 params 和不重复的请求 ID;每个请求读取一个回复,匹配 ID 并检查 ok 后再执行依赖操作。可通过 engine.commands 发现引擎与 UI 命令 ID、参数文档和启用状态,并通过 engine.execute {command, params}(别名 ui.menu.invoke)调用。MCP 使用 list_commands、run_command {command, params}、辅助工具或命令 ID 中点号替换为下划线的 cmd_ 工具。请求在帧间于 UI 线程执行,超时为 60 秒;无效 JSON、无效 UTF-8 或超过 4 MiB 的行会关闭连接,最多服务 16 个连接。错误回复后需重连;超时或丢失变更回复后,应先检查状态再重放,无法安全确定结果时应停止并报告。

照片查看与编辑

编辑前应检查照片库、当前视图与筛选、活动照片、选择和后台任务。桌面端使用 ui.inspect 及发现的照片库/照片命令;MCP 提供 query_photos、get_develop 以及 lightcraft://library、lightcraft://photo/active 等资源。应从查询获得真实照片 ID,并用 select_photos {ids, active?, mode?} 或发现的选择命令显式设置选择。带 id 的工具会先使该照片成为活动照片;不带 id 的工具作用于活动照片。批量操作应使用文档化的 ids 参数,或显式选择目标照片并核实范围。显影控件可通过 list_controls 或已安装命令注册表发现 ID、范围、默认值和当前值;set_develop 可设置单个控件值或通过 settings 做部分深度合并,操作前应读取当前设置并保留无关编辑。预设应查询可用项,不得虚构预设 ID。MCP 裁剪使用归一化 [x0,y0,x1,y1] 坐标和拉直角度,组合裁剪与旋转前应阅读模式说明。导入时应保留用户预期的源文件处理方式,阅读导入模式后再选择引用、复制或移动;移动模式会移除已确认并加入目录的源文件及其 XMP 附属文件,撤销不会将其移回,报告完成前应检查返回的 moved/kept 结果和失败项。精确编辑优先使用命令和辅助工具。桌面交互可从 ui.widgets 获取稳定控件 ID,屏幕矩形以点为单位,而 ui.pointer 手势在详情视图使用归一化图像坐标;布局变化后应刷新控件,文本输入依赖焦点,滚动或缩放前应先定位指针。view.navigate 支持适应/填充或百分比缩放及归一化图像中心平移。

持久化、导出与验证

持久化照片库会在回复前记录变更。错误“saved in memory but not written to disk”表示编辑已发生并排队等待持久化,不应当作未变更而重复执行;应检查 ui.inspect 的 unsaved 或 library.info 的 unsavedOps / unsavedError,解决存储问题并确认队列清空,未持久化操作未清空前不得退出或声称已安全保存。照片库无法打开时检查 libraryProblem;临时会话不写入任何内容,任务需要持久编辑时不应选择“Continue Without Saving”,应重试、选择可访问的目标照片库,或报告阻塞问题而不丢弃工作。导出前应阅读模式,选择格式、尺寸、色彩空间、质量、位深或原始/DNG 输出;MCP 导出默认长边 3000 像素,需要裁剪后的原生分辨率时可使用 longEdge: 0。应确认显式 ID 和目标位置,渲染预览不等于导出交付物。桌面 app.export 使用 background: true 时仅表示任务已排队,需轮询 ui.inspect → export 直到相关批次完成,检查结果并确认返回文件存在且可读;导入和任务进度同样应在视为完成前检查。不确定的导出在重试前应检查状态和输出。验证显影设置和选择范围后,应查看渲染照片或截图评估曝光、颜色、裁剪和预期效果;桌面 ui.render 渲染照片,ui.screenshot 等待渲染完成,并支持 headless: true 的 CPU 捕获,包括窗口被遮挡时。独立 UI 快照可使用 lightcraft-cli snapshot --library DIR --script tour.jsonl -o shot.png 接受控制请求,该方式打开自己的会话并须遵守照片库锁;脚本请求失败不会阻止后续请求,但会使退出状态非零,报告成功前应检查所有回复和退出状态。ui.settle {timeoutMs?} 可在快照脚本中等待渲染完成。最终应报告实际导出路径及遗留的持久化错误或未完成任务。

适用场景与限制

该技能适合通过自动化方式组织照片库、调整显影参数、裁剪、渲染预览和导出照片,以及接入运行中的 LightCraft 应用或进行无头处理。限制包括:不负责安装 LightCraft 或配置 MCP 服务器;桌面控制无认证且为原始 TCP,仅应临时启用;照片库存在单程序打开锁;无 --library 时无头编辑不保证跨会话持久;具体命令、参数、导入导出模式和 CLI 语法以上游文档及实际安装的工具模式为准。