{"version":1,"entitlements":{"plans":"/api/plans","account":"/api/account","note":"每个 op / 端点 / MCP 工具都有功能 id（op.<名> · api.<路径> · mcp.tool.<名>），档位决定哪些可用及频率；不在档位时 403，超频 429"},"ops":[{"op":"addFrameLayer","category":"structure","structural":true,"summary":"新建 Photoshop 原生画框组（矩形或椭圆）","fields":[{"name":"at","type":"integer","desc":"插入位置，默认图层栈顶部；创建分隔记录和组头两条记录"},{"name":"name","type":"string","desc":"图框名称，默认自动编号"},{"name":"rect","type":"object","required":true,"desc":"{x,y,w,h} 文档像素；坐标可负，宽高必须为正有限数"},{"name":"shape","type":"string","enum":["rect","ellipse"],"desc":"矩形或椭圆，默认rect"}],"notes":"仅验证RGB/8新建。返回index/headerIndex和dividerIndex。内容需作为组内子图层，clipping=0。","example":{"op":"addFrameLayer","name":"原生图框","rect":{"x":20,"y":30,"w":200,"h":150},"shape":"rect"},"kind":"core","locate":"index","feature":"op.addFrameLayer"},{"op":"setFrameRect","category":"structure","structural":true,"summary":"修改已有原生画框边界并同步矢量路径","fields":[{"name":"index","type":"integer","required":true,"desc":"具有frgb的画框组头下标"},{"name":"rect","type":"object","required":true,"desc":"{x,y,w,h} 文档像素；同步frgb/vsms/vogk并移除过期派生蒙版缓存"}],"notes":"只调整图框边界，不缩放或移动组内内容。自定路径按当前矩形比例变换。","exampleSetup":[{"op":"addFrameLayer","at":6,"name":"原生图框","rect":{"x":20,"y":30,"w":200,"h":150}}],"example":{"op":"setFrameRect","index":7,"rect":{"x":25,"y":35,"w":240,"h":180}},"kind":"core","locate":"index","feature":"op.setFrameRect"},{"op":"setLayerProps","category":"layer","structural":false,"summary":"改图层名 / 可见性 / 不透明度 / 剪贴 / 混合模式（可一次改多项）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"name","type":"string","required":false,"desc":"新图层名，非空、≤255 字符；同时写 luni（真名）与 Pascal 名（非 ASCII 落地为 ?）"},{"name":"unicodeName","type":"string","required":false,"desc":"只改 luni 里的 Unicode 名（非空），不动 Pascal 名"},{"name":"visible","type":"boolean","required":false,"desc":"是否可见"},{"name":"opacity","type":"integer","required":false,"desc":"不透明度 0…255（255 = 不透明）"},{"name":"clipping","type":"boolean|integer","required":false,"desc":"剪贴蒙版：布尔值或 0/1"},{"name":"blendKey","type":"string","required":false,"desc":"图层混合模式 4 字符键（不足补空格，如 'mul '）","enum":["pass","norm","diss","dark","mul ","idiv","lbrn","dkCl","lite","scrn","div ","lddg","lgCl","over","sLit","hLit","vLit","lLit","pLit","hMix","diff","smud","fsub","fdiv","hue ","sat ","colr","lum "]}],"notes":"name/unicodeName/visible/opacity/clipping/blendKey 至少给一个；附加区解析已降级（extraRaw）的图层拒绝改名。","example":{"op":"setLayerProps","index":1,"name":"标题","opacity":200,"blendKey":"mul "},"kind":"core","locate":"index","feature":"op.setLayerProps"},{"op":"renameLayer","aliasOf":"setLayerProps","category":"layer","structural":false,"summary":"改图层名（setLayerProps 的便捷别名）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"name","type":"string","required":true,"desc":"新图层名，非空、≤255 字符"}],"example":{"op":"renameLayer","index":1,"name":"主标题"},"kind":"core","locate":"index","feature":"op.renameLayer"},{"op":"setVisible","aliasOf":"setLayerProps","category":"layer","structural":false,"summary":"显示 / 隐藏图层（setLayerProps 的便捷别名）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"visible","type":"boolean","required":true,"desc":"是否可见"}],"example":{"op":"setVisible","index":1,"visible":false},"kind":"core","locate":"index","feature":"op.setVisible"},{"op":"setOpacity","aliasOf":"setLayerProps","category":"layer","structural":false,"summary":"改图层不透明度（setLayerProps 的便捷别名）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"opacity","type":"integer","required":true,"desc":"不透明度 0…255（255 = 不透明）"}],"example":{"op":"setOpacity","index":1,"opacity":128},"kind":"core","locate":"index","feature":"op.setOpacity"},{"op":"setBlendMode","aliasOf":"setLayerProps","category":"layer","structural":false,"summary":"改图层混合模式（setLayerProps 的便捷别名）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"blendKey","type":"string","required":true,"desc":"图层混合模式 4 字符键（不足补空格，如 'mul '）","enum":["pass","norm","diss","dark","mul ","idiv","lbrn","dkCl","lite","scrn","div ","lddg","lgCl","over","sLit","hLit","vLit","lLit","pLit","hMix","diff","smud","fsub","fdiv","hue ","sat ","colr","lum "]}],"example":{"op":"setBlendMode","index":1,"blendKey":"scrn"},"kind":"core","locate":"index","feature":"op.setBlendMode"},{"op":"setClipping","aliasOf":"setLayerProps","category":"layer","structural":false,"summary":"设 / 取消剪贴蒙版（setLayerProps 的便捷别名）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"clipping","type":"boolean|integer","required":true,"desc":"剪贴蒙版：布尔值或 0/1"}],"example":{"op":"setClipping","index":1,"clipping":true},"kind":"core","locate":"index","feature":"op.setClipping"},{"op":"setText","category":"text","structural":false,"summary":"改文字图层的文字内容（可顺带换字体），并删除全局 Txt2","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1），必须是文字图层（带 TySh 块）"},{"name":"text","type":"string","required":true,"desc":"新文字内容（可为空串）"},{"name":"opts","type":"object","required":false,"desc":"可选：{ font?:PostScript 字体名（同步改两份 FontSet）, keepTxt2?:boolean（保留全局 Txt2，PS 可能仍显示旧字）, orientation?:'horizontal'|'vertical', antiAlias?, bounds? }"}],"notes":"默认删全局 Txt2（否则 PS 优先读 Txt2 显示旧文字）；只改内容与 run 长度，不改字号 / 颜色。","example":{"op":"setText","index":1,"text":"新的标题文字"},"kind":"core","locate":"index","feature":"op.setText"},{"op":"addTextLayer","category":"text","structural":true,"summary":"新建一个文字图层（以内置模板 TySh 为骨架，可设字号 / 颜色 / 字体 / 段落框）","fields":[{"name":"text","type":"string","required":true,"desc":"文字内容，非空、≤30000 字符"},{"name":"at","type":"integer","required":false,"desc":"新图层在「底=0」序里的插入下标，0…图层数；默认 = 图层数（最上面）"},{"name":"name","type":"string","required":false,"desc":"图层名，非空、≤255 字符","default":"文字首行（前 60 字）"},{"name":"x","type":"number","required":false,"desc":"文字基线原点的文档 x 坐标（段落文字为框左上角）","default":0},{"name":"y","type":"number","required":false,"desc":"文字基线原点的文档 y 坐标","default":0},{"name":"orientation","type":"string","required":false,"desc":"排版方向","enum":["horizontal","vertical"]},{"name":"fontSize","type":"number","required":false,"desc":"字号，0 < 值 ≤ 5000"},{"name":"color","type":"string|array","required":false,"desc":"文字颜色：'#rrggbb' / '#rgb' / [r,g,b]（0…255）"},{"name":"box","type":"array","required":false,"desc":"段落文字框 [宽, 高]，正数；给了就是段落文字"},{"name":"font","type":"string","required":false,"desc":"PostScript 字体名（如 ArialMT），非空"},{"name":"opacity","type":"integer","required":false,"desc":"不透明度 0…255（255 = 不透明）"},{"name":"visible","type":"boolean","required":false,"desc":"是否可见"}],"notes":"新层继承模板的字体与排版默认值；新建时无像素（bounds 全 0），由 PS 按 EngineData 排版；会删除全局 Txt2。传 at2 会被拒绝（位置用 x/y）。","example":{"op":"addTextLayer","text":"你好世界","x":200,"y":300,"fontSize":48,"color":"#222222"},"kind":"core","locate":"index","feature":"op.addTextLayer"},{"op":"deleteLayer","category":"structure","structural":true,"summary":"删除图层；指向组头或分隔记录时整组删除（或只拆外壳）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"keepChildren","type":"boolean","required":false,"desc":"index 是组头 / 分隔记录时：true = 只删组头+分隔两条记录、成员升一级；false = 整组连根删","default":false}],"notes":"不能删光全部图层；16/32 位文档（Lr16/Lr32）不支持；删掉文字层但保留全局 Txt2 时给 warning。","example":{"op":"deleteLayer","index":4},"kind":"core","locate":"index","feature":"op.deleteLayer"},{"op":"reorderLayers","category":"structure","structural":true,"summary":"按原始 index 数组重排图层；数组里省略的 index 即被删除","fields":[{"name":"order","type":"array","required":true,"desc":"原始图层 index 组成的新顺序（底→顶），元素唯一、在 0…图层数-1 内；非空；省略的 index 表示删除"}],"notes":"不能拆散分组：组头与其分隔记录必须同去同留、配对关系不变；16/32 位文档不支持。","example":{"op":"reorderLayers","order":[3,4,5,0,1,2]},"kind":"core","locate":"index","feature":"op.reorderLayers"},{"op":"groupLayers","category":"structure","structural":true,"summary":"把若干图层包进一个新建的组（PS 的 ⌘G，支持不连续多选与组中组）","fields":[{"name":"indices","type":"array","required":false,"desc":"要包进组的图层 index 数组（底=0）；选中组头（groupType 1）= 带上整个组；不能选分隔记录"},{"name":"index","type":"integer","required":false,"desc":"单个图层（旧口径）；与 indices 二选一"},{"name":"name","type":"string","required":false,"desc":"图层名，非空、≤255 字符","default":"组"}],"notes":"indices / index 必须给一个；新组插在最顶层成员原来的位置，组头混合模式 pass。只识别 groupType=1（展开）的组头会带整组 —— 折叠组头（groupType=2）会被当成单条记录处理。","example":{"op":"groupLayers","indices":[1],"name":"新组"},"kind":"core","locate":"index","feature":"op.groupLayers"},{"op":"newGroup","category":"structure","structural":true,"summary":"新建一个空组（分隔记录 + 组头两条空记录）","fields":[{"name":"at","type":"integer","required":false,"desc":"插入下标，0…图层数；默认最上层；分隔落在 at、组头在 at+1"},{"name":"name","type":"string","required":false,"desc":"图层名，非空、≤255 字符","default":"组 N（N = 现有组头数 + 1）"}],"example":{"op":"newGroup","at":6,"name":"空组"},"kind":"core","locate":"index","feature":"op.newGroup"},{"op":"createLayer","category":"structure","structural":true,"summary":"新建一个空像素图层（bounds 全 0，像素之后用 replaceLayerPixels 落地）","fields":[{"name":"at","type":"integer","required":false,"desc":"新图层在「底=0」序里的插入下标，0…图层数；默认 = 图层数（最上面）"},{"name":"name","type":"string","required":false,"desc":"图层名，非空、≤255 字符","default":"图层 N（N = 图层数 + 1）"},{"name":"visible","type":"boolean","required":false,"desc":"是否可见"}],"example":{"op":"createLayer","name":"新图层"},"kind":"core","locate":"index","feature":"op.createLayer"},{"op":"replaceLayerPixels","category":"pixels","structural":true,"summary":"替换一个图层的像素（RGBA），可选同时更新整幅合成图","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"rgba","type":"object","required":true,"desc":"{ data:字节(长度 = width×height×4，非预乘 RGBA), width, height }；HTTP 可省略 rgba、改传 image（上传文件引用 { file:'image', index } / 文件名 / data URL / 裸 base64），服务端用 sharp 解码成 RGBA"},{"name":"bounds","type":"object","required":false,"desc":"{ top, left, bottom, right } 整数；尺寸必须等于 rgba 的宽高；默认 = 图层原左上角 + rgba 尺寸"},{"name":"merged","type":"object","required":false,"desc":"{ data:字节 } 整幅合成图 RGBA（长度 = 画布宽×高×4）；不给则原样保留旧合成图"},{"name":"opts","type":"object","required":false,"desc":"透传给 rebuildPsdReplacingLayerPixels 的选项（premultiplied / sourcePatch / filterEffectsPatch / maskOriginDelta 等，一般不用）"}],"notes":"只支持 8/16 位文档；不给 merged 时缩略图 / 合成图仍是旧的。","example":{"op":"replaceLayerPixels","index":1,"rgba":{"data":[255,0,0,255,0,255,0,255,0,0,255,255,255,255,255,128],"width":2,"height":2}},"httpExample":{"op":"replaceLayerPixels","index":1,"image":{"file":"image","index":0}},"kind":"core","locate":"index","feature":"op.replaceLayerPixels"},{"op":"rasterizeLayer","category":"pixels","structural":true,"summary":"栅格化：摘掉决定图层类型的附加块（文字 / 矢量 / 填充 / 智能对象），变成普通像素层","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"keys","type":"array","required":false,"desc":"只摘这些块（非空数组）；默认全摘","enum":["TySh","vmsk","vsms","vogk","vstk","vscg","SoCo","GdFl","PtFl","SoLd","PlLd"]}],"notes":"只摘块、不渲染像素 —— 渲染结果要另用 replaceLayerPixels 写；样式 / 锁定 / 名字等块保留；全局 Txt2 不在这里删。","example":{"op":"rasterizeLayer","index":1},"kind":"core","locate":"index","feature":"op.rasterizeLayer"},{"op":"setImageResource","category":"resource","structural":true,"summary":"新增或替换一条图像资源（8BIM 资源块）","fields":[{"name":"id","type":"integer","required":true,"desc":"资源 id，0…65535"},{"name":"data","type":"array","required":true,"desc":"资源数据字节（Uint8Array / number[]）；HTTP 也接受 base64 字符串"}],"example":{"op":"setImageResource","id":1034,"data":[0]},"httpExample":{"op":"setImageResource","id":1034,"data":"AA=="},"kind":"core","locate":"index","feature":"op.setImageResource"},{"op":"removeImageResource","category":"resource","structural":true,"summary":"删除一条图像资源（不存在则不改动）","fields":[{"name":"id","type":"integer","required":true,"desc":"资源 id，0…65535"}],"example":{"op":"removeImageResource","id":1054},"kind":"core","locate":"index","feature":"op.removeImageResource"},{"op":"setLayerFlags","category":"flags","structural":false,"summary":"改图层锁定（lspf：锁透明像素 / 锁图像像素 / 锁位置 / 画板嵌套 / 全部锁定）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录"},{"name":"lockTransparency","type":"boolean","required":false,"desc":"锁定透明像素"},{"name":"lockComposite","type":"boolean","required":false,"desc":"锁定图像像素"},{"name":"lockPosition","type":"boolean","required":false,"desc":"锁定位置"},{"name":"lockAll","type":"boolean","required":false,"desc":"全部锁定"},{"name":"lockNesting","type":"boolean","required":false,"desc":"防止在画板和画框内外自动嵌套（lspf bit3）"}],"notes":"五个字段至少给一个；从不删块（原本没有 lspf 且目标全 0 时不新建）。","example":{"op":"setLayerFlags","index":1,"lockPosition":true},"kind":"core","locate":"index","feature":"op.setLayerFlags"},{"op":"setLayerColorLabel","category":"flags","structural":false,"summary":"改图层面板的颜色标签（lclr）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录"},{"name":"color","type":"integer|string","required":true,"desc":"0…7（0 无 1 红 2 橙 3 黄 4 绿 5 蓝 6 紫 7 灰）或颜色名（另认 grey / 无）","enum":["none","red","orange","yellow","green","blue","violet","gray"]}],"example":{"op":"setLayerColorLabel","index":1,"color":"red"},"kind":"core","locate":"index","feature":"op.setLayerColorLabel"},{"op":"setFillOpacity","category":"flags","structural":false,"summary":"改填充不透明度（iOpa，面板上的「填充」）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录"},{"name":"fillOpacity","type":"integer","required":true,"desc":"0…255（255 = 填充 100%）"}],"example":{"op":"setFillOpacity","index":1,"fillOpacity":128},"kind":"core","locate":"index","feature":"op.setFillOpacity"},{"op":"setLayerKnockout","category":"flags","structural":false,"summary":"改混合选项里的「挖空」（knko）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录"},{"name":"knockout","type":"integer","required":true,"desc":"0 无 / 1 浅 / 2 深","enum":[0,1,2]}],"example":{"op":"setLayerKnockout","index":2,"knockout":1},"kind":"core","locate":"index","feature":"op.setLayerKnockout"},{"op":"setBlendOptions","category":"flags","structural":false,"summary":"改混合选项的高级混合 / 通道 / 混合颜色带（infx · clbl · tsly · lmgm · vmgm · brst · Blend If）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录"},{"name":"blendInterior","type":"boolean","desc":"将内部效果混合成组（infx，默认 false）"},{"name":"blendClipped","type":"boolean","desc":"将剪贴图层混合成组（clbl，默认 true）"},{"name":"transparencyShapes","type":"boolean","desc":"透明形状图层（tsly，默认 true）"},{"name":"layerMaskHidesEffects","type":"boolean","desc":"图层蒙版隐藏效果（lmgm，默认 false）"},{"name":"vectorMaskHidesEffects","type":"boolean","desc":"矢量蒙版隐藏效果（vmgm，默认 false）"},{"name":"channels","type":"object","desc":"{ r?, g?, b? } 布尔：false = 该通道不参与混合（brst）"},{"name":"blendIf","type":"object","desc":"{ gray|red|green|blue: { this?: [黑低,黑高,白低,白高], under?: […] } }，0…255 且递增；只做等长覆写，记录里没有该通道的混合范围段会报错"}],"example":{"op":"setBlendOptions","index":2,"blendIf":{"gray":{"under":[0,0,180,230]}},"channels":{"b":false}},"kind":"core","locate":"index","feature":"op.setBlendOptions"},{"op":"setMaskProps","category":"mask","structural":false,"summary":"改图层蒙版的开关位与浓度 / 羽化（像素蒙版与矢量蒙版各一份）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录；改像素蒙版字段时图层必须已有蒙版，改矢量蒙版字段时必须已有矢量蒙版"},{"name":"disabled","type":"boolean","required":false,"desc":"停用蒙版"},{"name":"invert","type":"boolean","required":false,"desc":"混合时反相（PS 已废弃，仍原样读写）"},{"name":"relative","type":"boolean","required":false,"desc":"蒙版位置相对于图层数据"},{"name":"density","type":"integer","required":false,"desc":"像素蒙版浓度 0…255（255 = 100%）"},{"name":"feather","type":"number","required":false,"desc":"像素蒙版羽化 0…1000 像素"},{"name":"vectorDensity","type":"integer","required":false,"desc":"矢量蒙版浓度 0…255（255 = 100%）"},{"name":"vectorFeather","type":"number","required":false,"desc":"矢量蒙版羽化 0…1000 像素"}],"notes":"七个字段至少给一个。参数段里已有对应项时等长覆写；没有时补写参数段（蒙版段变长，只有矢量蒙版的图层会新建一个空矩形的蒙版段）。没有蒙版 / 没有矢量蒙版在 apply 阶段才报错（planEdits 查不出）。","exampleSetup":[{"op":"addLayerMask","index":1}],"example":{"op":"setMaskProps","index":1,"disabled":true},"kind":"core","locate":"index","feature":"op.setMaskProps"},{"op":"addLayerMask","category":"mask","structural":true,"summary":"给图层新建用户蒙版（通道 -2），纯色填充或给灰度位图","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录；图层不能已有蒙版"},{"name":"fill","type":"string|integer","required":false,"desc":"'reveal'（全白 255，默认）/ 'hide'（全黑 0）/ 0…255；与 gray 互斥"},{"name":"gray","type":"array|object","required":false,"desc":"8 位灰度字节（长度 = bounds 宽×高）或 { data, width, height }；与 fill 互斥；JSON 请传 number[]（不解 base64）"},{"name":"bounds","type":"object","required":false,"desc":"{ top, left, bottom, right } 整数，宽高 > 0；默认 = 图层包围盒（空图层必须显式给）"},{"name":"defaultColor","type":"integer","required":false,"desc":"蒙版矩形之外的取值 0…255；默认 = fill 值（给 gray 时默认 0）"},{"name":"disabled","type":"boolean","required":false,"desc":"新建即停用"},{"name":"invert","type":"boolean","required":false,"desc":"反相位"}],"example":{"op":"addLayerMask","index":1,"fill":"reveal"},"kind":"core","locate":"index","feature":"op.addLayerMask"},{"op":"deleteLayerMask","category":"mask","structural":true,"summary":"删除图层蒙版（蒙版段 + 通道同删）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录"},{"name":"which","type":"string","required":false,"desc":"user = 用户蒙版 -2 / real = real 用户蒙版 -3 / all = 两个都删","enum":["user","real","all"],"default":"user"}],"exampleSetup":[{"op":"addLayerMask","index":1}],"example":{"op":"deleteLayerMask","index":1},"kind":"core","locate":"index","feature":"op.deleteLayerMask"},{"op":"applyLayerMask","category":"mask","structural":true,"summary":"应用蒙版：灰度乘进 alpha 后删除蒙版（停用的蒙版直接删、像素不变）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录"},{"name":"which","type":"string","required":false,"desc":"用哪个蒙版；不给则优先 -2、没有再用 -3","enum":["user","real"]}],"notes":"只支持 8/16 位；蒙版带非默认浓度 / 羽化时拒绝；不重编合成图（给 warning）。","exampleSetup":[{"op":"addLayerMask","index":1,"fill":128}],"example":{"op":"applyLayerMask","index":1},"kind":"core","locate":"index","feature":"op.applyLayerMask"},{"op":"setLayerMaskPixels","category":"mask","structural":false,"summary":"改现有蒙版的像素（整张 / 局部矩形 / 连同 bounds），画笔的落地出口","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录；图层必须已有对应蒙版"},{"name":"gray","type":"array|object","required":true,"desc":"灰度样本（Uint8Array / Uint16Array / number[]）或 { data, width, height }；长度 = 目标区域面积；JSON 请传 number[]"},{"name":"which","type":"string","required":false,"desc":"user（-2）/ real（-3）","enum":["user","real"],"default":"user"},{"name":"x","type":"integer","required":false,"desc":"局部矩形左上角 x（相对蒙版左上角，≥0，默认 0）"},{"name":"y","type":"integer","required":false,"desc":"局部矩形左上角 y（相对蒙版左上角，≥0，默认 0）"},{"name":"w","type":"integer","required":false,"desc":"局部矩形宽（给了 x/y/w/h 任一就必须给 w 与 h）"},{"name":"h","type":"integer","required":false,"desc":"局部矩形高"},{"name":"bounds","type":"object","required":false,"desc":"同时改蒙版 bounds { top, left, bottom, right }（此时 gray 要覆盖整张新蒙版）；与 x/y/w/h 互斥"}],"notes":"不给 x/y/w/h/bounds 时 gray 必须覆盖整张蒙版；保持原压缩方式；非 structural。","exampleSetup":[{"op":"addLayerMask","index":1}],"example":{"op":"setLayerMaskPixels","index":1,"x":0,"y":0,"w":2,"h":2,"gray":[0,64,128,255]},"kind":"core","locate":"index","feature":"op.setLayerMaskPixels"},{"op":"replaceLayerMask","category":"mask","structural":true,"summary":"整张换掉用户蒙版（-2）的像素与范围，保留其余蒙版属性（随图层变换用）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录；图层必须已有用户蒙版"},{"name":"bounds","type":"object","required":true,"desc":"新蒙版范围 { top, left, bottom, right }，整数，宽高 > 0"},{"name":"gray","type":"array","required":true,"desc":"8 位灰度（长度 = bounds 宽×高）；JSON 请传 number[] —— 传字符串会被逐字符当字节，长度凑巧相等时不报错"},{"name":"defaultColor","type":"integer","required":false,"desc":"只能是 0 或 255","enum":[0,255]}],"exampleSetup":[{"op":"addLayerMask","index":1}],"example":{"op":"replaceLayerMask","index":1,"bounds":{"top":748,"left":266,"bottom":750,"right":268},"gray":[255,0,0,255]},"kind":"core","locate":"index","feature":"op.replaceLayerMask"},{"op":"addShapeLayer","category":"vector","structural":true,"summary":"新建形状图层（SoCo 纯色填充 + vmsk 路径，可选 vstk 描边）","fields":[{"name":"subpaths","type":"array","required":true,"desc":"子路径数组 [{ closed?:boolean(默认 true), operation?:'exclude'|'combine'|'subtract'|'intersect'|0…3|null, knots:[{ anchor:[x,y]|{x,y}, in?:[x,y], out?:[x,y], linked?:boolean }] }]；in/out 缺省 = 与 anchor 相同（角点）；至少一条子路径"},{"name":"units","type":"string","required":false,"desc":"坐标单位：pixel（绝对像素）/ normalized（0…1）/ fixed（8.24 定点整数）","enum":["pixel","normalized","fixed"],"default":"pixel"},{"name":"color","type":"string|array","required":false,"desc":"填充色：'#rrggbb' / '#rgb' / [r,g,b]（0…255），默认黑","default":"#000000"},{"name":"fill","type":"object","required":false,"desc":"{ type:'solid', color }（color 的另一种写法；目前只支持 solid）"},{"name":"stroke","type":"object","required":false,"desc":"{ color, width(0.01…1000,默认1), opacity(0…100), dashOffset, cap:butt|round|square, join:miter|round|bevel, align:inside|center|outside, dash:[正数…], enabled:false=不描边 }"},{"name":"origin","type":"object","required":false,"desc":"实时形状属性（vogk）：{ type:'rect'|'roundRect'|'ellipse', left, top, right, bottom, radii?:[左上,右上,右下,左下] }（像素）；PS 属性面板据此显示可调的 W/H 与四角圆角"},{"name":"at","type":"integer","required":false,"desc":"新图层在「底=0」序里的插入下标，0…图层数；默认 = 图层数（最上面）"},{"name":"name","type":"string","required":false,"desc":"图层名，非空、≤255 字符","default":"形状 1"},{"name":"opacity","type":"integer","required":false,"desc":"不透明度 0…255（255 = 不透明）"},{"name":"visible","type":"boolean","required":false,"desc":"是否可见"},{"name":"clipping","type":"boolean|integer","required":false,"desc":"剪贴蒙版：布尔值或 0/1"},{"name":"blendKey","type":"string","required":false,"desc":"图层混合模式 4 字符键（不足补空格，如 'mul '）","enum":["pass","norm","diss","dark","mul ","idiv","lbrn","dkCl","lite","scrn","div ","lddg","lgCl","over","sLit","hLit","vLit","lLit","pLit","hMix","diff","smud","fsub","fdiv","hue ","sat ","colr","lum "]}],"notes":"只支持 RGB 文档；像素坐标需落在画布附近（超 int32 定点范围拒绝）。","example":{"op":"addShapeLayer","name":"矩形","color":"#ff6600","subpaths":[{"closed":true,"knots":[{"anchor":[100,100]},{"anchor":[400,100]},{"anchor":[400,300]},{"anchor":[100,300]}]}]},"kind":"core","locate":"index","feature":"op.addShapeLayer"},{"op":"setShapeContent","category":"vector","structural":true,"summary":"改形状 / 填充图层的填充类型与描边类型（属性面板「外观」两个下拉）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；须是形状或填充图层"},{"name":"fill","type":"object","required":false,"desc":"{ type:'none'|'solid'|'gradient'|'pattern', color?, gradient?, pattern? }（gradient/pattern 结构同 addFillLayer）"},{"name":"stroke","type":"object","required":false,"desc":"{ type:'none'|'solid'|'gradient'|'pattern', color?, gradient?, pattern?, width?(0…1000) }"}],"notes":"fill / stroke 至少给一个；只支持 RGB；「无填充」与描边需要图层有 vmsk 路径。","exampleSetup":[{"op":"addShapeLayer","color":"#ff6600","subpaths":[{"closed":true,"knots":[{"anchor":[100,100]},{"anchor":[400,100]},{"anchor":[400,300]},{"anchor":[100,300]}]}]}],"example":{"op":"setShapeContent","index":6,"stroke":{"type":"solid","color":"#000000","width":3}},"kind":"core","locate":"index","feature":"op.setShapeContent"},{"op":"setShapeOrigin","category":"vector","structural":true,"summary":"写 / 删形状层的实时形状属性（vogk：矩形 / 圆角矩形 / 椭圆的外框与四角半径）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；须是形状图层"},{"name":"origin","type":"object","required":true,"desc":"{ type:'rect'|'roundRect'|'ellipse', left, top, right, bottom, radii?:[左上,右上,右下,左下] }；传 null = 删掉 vogk（形状在 PS 里变成普通路径）"}],"notes":"只改 vogk，不改路径：改圆角 / 尺寸时与 setVectorMaskPath 一起下发，两者要描述同一个形状。","exampleSetup":[{"op":"addShapeLayer","color":"#ff6600","subpaths":[{"closed":true,"knots":[{"anchor":[100,100]},{"anchor":[400,100]},{"anchor":[400,300]},{"anchor":[100,300]}]}]}],"example":{"op":"setShapeOrigin","index":6,"origin":{"type":"roundRect","left":10,"top":10,"right":110,"bottom":60,"radii":[8,8,8,8]}},"kind":"core","locate":"index","feature":"op.setShapeOrigin"},{"op":"addVectorMask","category":"vector","structural":true,"summary":"给没有矢量蒙版的图层新建矢量蒙版（vmsk）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是分组结束分隔记录；不能已有 vmsk/vsms"},{"name":"subpaths","type":"array","required":true,"desc":"子路径数组 [{ closed?:boolean(默认 true), operation?:'exclude'|'combine'|'subtract'|'intersect'|0…3|null, knots:[{ anchor:[x,y]|{x,y}, in?:[x,y], out?:[x,y], linked?:boolean }] }]；in/out 缺省 = 与 anchor 相同（角点）；实际不能为空"},{"name":"units","type":"string","required":false,"desc":"坐标单位：pixel（绝对像素）/ normalized（0…1）/ fixed（8.24 定点整数）","enum":["pixel","normalized","fixed"],"default":"pixel"}],"notes":"代码注释说「subpaths 为空 = 隐藏全部」，但 freshPathRecords 会拒绝空数组 —— 目前必须至少一条子路径。","example":{"op":"addVectorMask","index":1,"subpaths":[{"closed":true,"knots":[{"anchor":[100,100]},{"anchor":[400,100]},{"anchor":[400,300]},{"anchor":[100,300]}]}]},"kind":"core","locate":"index","feature":"op.addVectorMask"},{"op":"setVectorMaskPath","category":"vector","structural":true,"summary":"整份替换已有矢量蒙版（vmsk/vsms）的路径","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；图层必须已有矢量蒙版"},{"name":"subpaths","type":"array","required":true,"desc":"子路径数组 [{ closed?:boolean(默认 true), operation?:'exclude'|'combine'|'subtract'|'intersect'|0…3|null, knots:[{ anchor:[x,y]|{x,y}, in?:[x,y], out?:[x,y], linked?:boolean }] }]；in/out 缺省 = 与 anchor 相同（角点）；空数组 = 清空路径（给 warning）"},{"name":"units","type":"string","required":false,"desc":"坐标单位：pixel（绝对像素）/ normalized（0…1）/ fixed（8.24 定点整数）","enum":["pixel","normalized","fixed"],"default":"pixel"}],"notes":"operation / closed 缺省时沿用原子路径的值；没有矢量蒙版在 apply 阶段报错。","exampleSetup":[{"op":"addVectorMask","index":1,"subpaths":[{"closed":true,"knots":[{"anchor":[100,100]},{"anchor":[400,100]},{"anchor":[400,300]},{"anchor":[100,300]}]}]}],"example":{"op":"setVectorMaskPath","index":1,"subpaths":[{"closed":true,"knots":[{"anchor":[120,120]},{"anchor":[360,120]},{"anchor":[240,320]}]}]},"kind":"core","locate":"index","feature":"op.setVectorMaskPath"},{"op":"setVectorStroke","category":"vector","structural":true,"summary":"改矢量描边参数（vstk 描述符里的宽度 / 颜色 / 端点 / 虚线等）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；图层必须已有 vstk 块"},{"name":"values","type":"object","required":true,"desc":"非空对象 { 字段: 新值 }；width/dashOffset/opacity(0…100) 数字，cap:butt|round|square，join:miter|round|bevel，align:inside|center|outside，dashes:[≥0…]，color:'#rrggbb'|[r,g,b]|{r,g,b}（仅纯色描边），blendMode 友好名，enabled/fillEnabled/scaleLock/strokeAdjust 布尔","enum":["enabled","fillEnabled","width","dashOffset","miterLimit","cap","join","align","dashes","opacity","blendMode","resolution","scaleLock","strokeAdjust","color"]}],"notes":"values 的键也接受描述符字段名（strokeStyleLineWidth）与 lineWidth / size / dash 等同义写法。","exampleSetup":[{"op":"addShapeLayer","color":"#ff6600","subpaths":[{"closed":true,"knots":[{"anchor":[100,100]},{"anchor":[400,100]},{"anchor":[400,300]},{"anchor":[100,300]}]}],"stroke":{"color":"#000000","width":2}}],"example":{"op":"setVectorStroke","index":6,"values":{"width":4,"color":"#ff0000"}},"kind":"core","locate":"index","feature":"op.setVectorStroke"},{"op":"setVectorMaskFlags","category":"vector","structural":false,"summary":"改矢量蒙版标志位（反相 / 不链接 / 停用）与初始填充规则","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；图层必须已有矢量蒙版"},{"name":"invert","type":"boolean","required":false,"desc":"反相"},{"name":"notLink","type":"boolean","required":false,"desc":"不与图层链接"},{"name":"disable","type":"boolean","required":false,"desc":"停用"},{"name":"fillStartsWithAllPixels","type":"boolean","required":false,"desc":"初始填充规则记录（selector 8）"}],"notes":"四个字段至少给一个。","exampleSetup":[{"op":"addVectorMask","index":1,"subpaths":[{"closed":true,"knots":[{"anchor":[100,100]},{"anchor":[400,100]},{"anchor":[400,300]},{"anchor":[100,300]}]}]}],"example":{"op":"setVectorMaskFlags","index":1,"disable":true},"kind":"core","locate":"index","feature":"op.setVectorMaskFlags"},{"op":"setLayerStyle","category":"effects","structural":true,"summary":"整份替换一个图层的图层样式（样式面板「点样式 = 应用」；effects:null = 清除样式）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"effects","type":"object","required":false,"desc":"lfx2 口径的效果描述符（class null：Scl  / masterFXSwitch / DrSh / FrFX …）；null = 清除全部样式"},{"name":"effectsBytes","type":"string","required":false,"desc":"或直接给序列化后的描述符字节（.asl 里 Styl.Lefx 那一段）"}],"notes":"写 lfx2，并摘掉 lmfx / lrFX；样式里引用的图案需先用 addPatterns 写进文档。","example":{"op":"setLayerStyle","index":1,"effects":null},"kind":"core","locate":"index","feature":"op.setLayerStyle"},{"op":"addPatterns","category":"document","structural":true,"summary":"把图案写进文档全局图案资源（Patt / Pat2 / Pat3），供图案填充层 / 图案叠加按 Idnt 引用","fields":[{"name":"patterns","type":"array","required":true,"desc":"[{ id(ASCII uuid), name, width, height, rgba(base64 或字节，width×height×4) }]；已有同 id 的跳过"}],"example":{"op":"addPatterns","patterns":[{"id":"00000000-0000-4000-8000-000000000001","name":"1×1","width":1,"height":1,"rgba":"/wAA/w=="}]},"kind":"core","locate":"index","feature":"op.addPatterns"},{"op":"addLayerEffect","category":"effects","structural":false,"summary":"给图层新增一条图层样式效果（没有样式块时新建 lfx2）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"effect","type":"string","required":true,"desc":"效果名（规范名或 4 字符 PS key，大小写不敏感；另认 drop-shadow / bevel / stroke 等同义写法）","enum":["dropShadow","innerShadow","outerGlow","innerGlow","bevelEmboss","satin","colorOverlay","gradientOverlay","patternOverlay","stroke","DrSh","IrSh","OrGl","IrGl","ebbl","ChFX","SoFi","GrFl","patternFill","FrFX"]},{"name":"values","type":"object","required":false,"desc":"覆盖默认模板的字段 { 路径: 值 }（如 Opct / Dstn / 'Clr ':'#000000'）；各效果可用路径见 core/psd-edit-create.js listCreatableEffects().fields；百分比 -100…100、角度 -360…360、像素 0…30000"}],"notes":"新条目插在最前（at=0）；只允许一条的效果重复添加会被拒绝；patternOverlay 必须用 values 指定 Ptrn.Nm / Ptrn.Idnt；lfx2 上加第二条可多重效果会整块升级为 lmfx（不可逆）。","example":{"op":"addLayerEffect","index":1,"effect":"dropShadow","values":{"Opct":60,"Dstn":8,"Clr ":"#000000"}},"kind":"core","locate":"index","feature":"op.addLayerEffect"},{"op":"removeLayerEffect","category":"effects","structural":false,"summary":"删除一条图层样式效果（删到一条不剩时删掉整个样式块）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"effect","type":"string","required":true,"desc":"效果名（规范名或 4 字符 PS key，大小写不敏感；另认 drop-shadow / bevel / stroke 等同义写法）","enum":["dropShadow","innerShadow","outerGlow","innerGlow","bevelEmboss","satin","colorOverlay","gradientOverlay","patternOverlay","stroke","DrSh","IrSh","OrGl","IrGl","ebbl","ChFX","SoFi","GrFl","patternFill","FrFX"]},{"name":"at","type":"integer","required":false,"desc":"多重效果里删第几条（≥0）","default":0}],"exampleSetup":[{"op":"addLayerEffect","index":1,"effect":"dropShadow"}],"example":{"op":"removeLayerEffect","index":1,"effect":"dropShadow"},"kind":"core","locate":"index","feature":"op.removeLayerEffect"},{"op":"setLayerEffect","category":"effects","structural":false,"summary":"启用 / 停用一条已有的图层样式效果（enab）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"effect","type":"string","required":true,"desc":"效果名（规范名或 4 字符 PS key，大小写不敏感；另认 drop-shadow / bevel / stroke 等同义写法）","enum":["dropShadow","innerShadow","outerGlow","innerGlow","bevelEmboss","satin","colorOverlay","gradientOverlay","patternOverlay","stroke","DrSh","IrSh","OrGl","IrGl","ebbl","ChFX","SoFi","GrFl","patternFill","FrFX"]},{"name":"enabled","type":"boolean","required":true,"desc":"启用或停用"},{"name":"at","type":"integer","required":false,"desc":"多重效果里改第几条（≥0）","default":0}],"notes":"图层没有描述符型样式块 / 没有该效果时在 apply 阶段才报错（planEdits 查不出）；老式 lrFX 不改。","exampleSetup":[{"op":"addLayerEffect","index":1,"effect":"dropShadow"}],"example":{"op":"setLayerEffect","index":1,"effect":"dropShadow","enabled":false},"kind":"core","locate":"index","feature":"op.setLayerEffect"},{"op":"setLayerEffectsEnabled","category":"effects","structural":false,"summary":"图层样式整体开关（masterFXSwitch）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"enabled","type":"boolean","required":true,"desc":"启用或停用全部图层样式"}],"notes":"图层没有样式块时在 apply 阶段才报错。","exampleSetup":[{"op":"addLayerEffect","index":1,"effect":"dropShadow"}],"example":{"op":"setLayerEffectsEnabled","index":1,"enabled":false},"kind":"core","locate":"index","feature":"op.setLayerEffectsEnabled"},{"op":"clearLayerEffects","category":"effects","structural":true,"summary":"整块摘掉图层样式（lfx2 / lmfx / lrFX），用于样式已烘进像素之后","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"}],"notes":"没有样式块时不改动（changed=false）。","exampleSetup":[{"op":"addLayerEffect","index":1,"effect":"dropShadow"}],"example":{"op":"clearLayerEffects","index":1},"kind":"core","locate":"index","feature":"op.clearLayerEffects"},{"op":"setLayerParams","category":"effects","structural":true,"summary":"按路径改已有图层样式 / 调整图层 / 填充图层块里的参数（可增删渐变色标）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）"},{"name":"target","type":"string","required":true,"desc":"'effects'（样式顶层）/ 'effect:<效果名或 key>'（也可裸写效果名）/ 'adjustment'（主调整块）/ 'adjustment:<块 key>'；块 key 见 enum","enum":["effects","effect:DrSh","effect:IrSh","effect:OrGl","effect:IrGl","effect:ebbl","effect:ChFX","effect:SoFi","effect:GrFl","effect:patternFill","effect:FrFX","adjustment","adjustment:SoCo","adjustment:GdFl","adjustment:PtFl","adjustment:CgEd","adjustment:blwh","adjustment:vibA","adjustment:clrL","adjustment:brit","adjustment:levl","adjustment:curv","adjustment:hue ","adjustment:hue2","adjustment:blnc","adjustment:phfl","adjustment:mixr","adjustment:selc","adjustment:expA","adjustment:post","adjustment:thrs","adjustment:nvrt","adjustment:grdm"]},{"name":"values","type":"object","required":false,"desc":"{ 字段路径: 新值 }（'.' 分段，如 'Clr .Rd  '、'records.3.midtoneInput'；颜色对象可整体赋 '#rrggbb'）；≤256 个；无 arrayOps 时必填且非空"},{"name":"at","type":"integer","required":false,"desc":"多重效果里改第几条（≥0）","default":0},{"name":"arrayOps","type":"array","required":false,"desc":"数组增删（≤64 条）：{ path, insertAt|removeAt|sortBy（三选一）, copyFrom?, value? }；仅白名单数组（渐变 Clrs/Trns、grdm 色标）；先于 values 执行"}],"notes":"只改已有块里已存在的字段；字段是否存在、块能否原样重建在 apply 阶段校验（planEdits 只查参数形状）。可用字段见 core/psd-edit-params.js getLayerParams()。","exampleSetup":[{"op":"addLayerEffect","index":1,"effect":"dropShadow"}],"example":{"op":"setLayerParams","index":1,"target":"effect:DrSh","values":{"Opct":40}},"kind":"core","locate":"index","feature":"op.setLayerParams"},{"op":"addAdjustmentLayer","category":"adjustment","structural":true,"summary":"新建一个调整图层（无像素记录 + 对应调整块）","fields":[{"name":"kind","type":"string","required":true,"desc":"调整类型（也认块 key 与 brightness / hue / bw / curve / level / mixer / selective 等别名，忽略大小写与连字符）","enum":["brightnessContrast","levels","curves","hueSaturation","invert","posterize","threshold","blackWhite","colorBalance","exposure","channelMixer","selectiveColor","vibrance","photoFilter","colorLookup","gradientMap"]},{"name":"values","type":"object","required":false,"desc":"按 kind 不同的参数，未知键报错；见 valuesByKind","valuesByKind":{"brightnessContrast":"brightness(-150…150) contrast(-50…100) useLegacy labColorOnly","levels":"shadowInput(0…253) highlightInput(2…255) gamma(0.10…9.99) shadowOutput(0…255) highlightOutput(0…255)","curves":"points（[[输入,输出], …]，2…19 个点，输入递增，0…255）","hueSaturation":"hue(-180…180) saturation(-100…100) lightness(-100…100) colorize","invert":"（无参数）","posterize":"levels(2…255)","threshold":"level(1…255)","blackWhite":"red yellow green cyan blue magenta（均 -200…300）useTint","colorBalance":"shadows/midtones/highlights（各 3 个 -100…100 的整数）preserveLuminosity","exposure":"exposure(-20…20) offset(-0.5…0.5) gamma(0.01…9.99)","channelMixer":"monochrome","selectiveColor":"method(0 相对 / 1 绝对)","vibrance":"vibrance(-100…100) saturation(-100…100)","photoFilter":"color([红, 绿, 蓝] 0…255) density(0…100，百分比) preserveLuminosity","colorLookup":"lookupType(3DLUT / abstract / deviceLink) lutFormat(LUTFormatCUBE / LUTFormat3DL / LUTFormatLOOK / LUTFormatICC / LUTFormatCSP) dataOrder(profileDataOrderRGB / profileDataOrderBGR) name","gradientMap":"stops([[位置0…4096, 红, 绿, 蓝], …]，2…255 个) opacityStops([[位置0…4096, 不透明度0…255], …]，2…255 个) reverse dither name"}},{"name":"at","type":"integer","required":false,"desc":"新图层在「底=0」序里的插入下标，0…图层数；默认 = 图层数（最上面）"},{"name":"name","type":"string","required":false,"desc":"图层名，非空、≤255 字符","default":"该 kind 的中文名"},{"name":"opacity","type":"integer","required":false,"desc":"不透明度 0…255（255 = 不透明）"},{"name":"visible","type":"boolean","required":false,"desc":"是否可见"},{"name":"clipping","type":"boolean|integer","required":false,"desc":"剪贴蒙版：布尔值或 0/1"},{"name":"blendKey","type":"string","required":false,"desc":"图层混合模式 4 字符键（不足补空格，如 'mul '）","enum":["pass","norm","diss","dark","mul ","idiv","lbrn","dkCl","lite","scrn","div ","lddg","lgCl","over","sLit","hLit","vLit","lLit","pLit","hMix","diff","smud","fsub","fdiv","hue ","sat ","colr","lum "]}],"notes":"文档必须已有图层；支持位图/灰度/索引/RGB/CMYK/多通道/双色调/Lab 模式；16/32 位文档不支持。","example":{"op":"addAdjustmentLayer","kind":"hueSaturation","values":{"saturation":-30}},"kind":"core","locate":"index","feature":"op.addAdjustmentLayer"},{"op":"addFillLayer","category":"adjustment","structural":true,"summary":"新建填充图层：纯色（SoCo）/ 渐变（GdFl）/ 图案（PtFl），铺满画布","fields":[{"name":"kind","type":"string","required":false,"desc":"填充类型","enum":["solid","gradient","pattern"],"default":"solid"},{"name":"color","type":"string|array","required":false,"desc":"kind=solid 的颜色：'#rrggbb' / '#rgb' / [r,g,b]","default":"#000000"},{"name":"gradient","type":"object","required":false,"desc":"kind=gradient：{ type:linear|radial|angle|reflected|diamond, angle(-360…360,默认90), scale(1…1000), stops:[{color,location 0…1,midpoint 1…99}]≥2 个≤64 个, opacityStops:[{opacity 0…100,location,midpoint}], name, dither, reverse, align }"},{"name":"pattern","type":"object","required":false,"desc":"kind=pattern 时必填：{ name, id（文档 Patt 资源里的图案 uuid）, scale(1…1000), linked, angle }"},{"name":"at","type":"integer","required":false,"desc":"新图层在「底=0」序里的插入下标，0…图层数；默认 = 图层数（最上面）"},{"name":"name","type":"string","required":false,"desc":"图层名，非空、≤255 字符","default":"纯色填充 / 渐变填充 / 图案填充"},{"name":"opacity","type":"integer","required":false,"desc":"不透明度 0…255（255 = 不透明）"},{"name":"visible","type":"boolean","required":false,"desc":"是否可见"},{"name":"clipping","type":"boolean|integer","required":false,"desc":"剪贴蒙版：布尔值或 0/1"},{"name":"blendKey","type":"string","required":false,"desc":"图层混合模式 4 字符键（不足补空格，如 'mul '）","enum":["pass","norm","diss","dark","mul ","idiv","lbrn","dkCl","lite","scrn","div ","lddg","lgCl","over","sLit","hLit","vLit","lLit","pLit","hMix","diff","smud","fsub","fdiv","hue ","sat ","colr","lum "]}],"notes":"只支持 RGB 文档；没有 vmsk（要限定范围请再加蒙版）。","example":{"op":"addFillLayer","kind":"solid","color":"#3366ff","opacity":128},"kind":"core","locate":"index","feature":"op.addFillLayer"},{"op":"convertToSmartObject","category":"smartObject","structural":true,"summary":"把图层转换为内嵌智能对象（写内嵌 PSD + PlLd/SoLd + 全局 lnk2）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；不能是组，不能已是智能对象"},{"name":"source","type":"object","required":true,"desc":"{ data:RGBA 字节(≥ width×height×4，非预乘), width, height } 内嵌文档像素（通常就是该层像素）；JSON 可传 number[]"},{"name":"bounds","type":"object","required":false,"desc":"智能对象在画布上的位置 { left, top, right, bottom }；默认 = 图层 bounds"},{"name":"name","type":"string","required":false,"desc":"内嵌文件名；默认「图层名.psd」"},{"name":"embedded","type":"object","required":false,"desc":"现成的内嵌 PSD 字节（Uint8Array，8BPS 开头）；只能在进程内调用时传，JSON 无法表达"},{"name":"id","type":"string","required":false,"desc":"内嵌文件 uuid（测试用；默认随机）"},{"name":"placedId","type":"string","required":false,"desc":"放置实例 uuid（默认随机）"},{"name":"resolution","type":"number","required":false,"desc":"内嵌文档分辨率 dpi","default":72}],"notes":"图层原有像素 / 蒙版 / 样式不动。","example":{"op":"convertToSmartObject","index":1,"source":{"data":[200,200,200,255,200,200,200,255,200,200,200,255,200,200,200,255],"width":2,"height":2}},"kind":"core","locate":"index","feature":"op.convertToSmartObject"},{"op":"detachSmartObject","category":"smartObject","structural":true,"summary":"把共享内嵌文件的智能对象拆成独立副本（复制内嵌文件、换新 id）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；必须是智能对象"}],"notes":"外部链接的智能对象（没有内嵌文件）拒绝。","exampleFile":"tshirt.psd","example":{"op":"detachSmartObject","index":1},"kind":"core","locate":"index","feature":"op.detachSmartObject"},{"op":"addGallerySmartFilter","category":"smartObject","structural":true,"summary":"给智能对象追加一条「滤镜库」智能滤镜（SoLd.filterFX.filterFXList 末尾 = 最后应用，面板里显示在最上面）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；必须是智能对象且带 SoLd 放置描述符"},{"name":"entry","type":"object","required":true,"desc":"filterFXList 的一条描述符（__classID 'filterFX'，含 Fltr:{ classID 'GEfc', GEfs:[…] }）；由 core/filter-gallery-spec.js 的 galleryFilterFXEntry(layers, { fg, bg }) 生成"}],"notes":"只写描述符，不重算缓存像素：图层像素请在同一批里用 replaceLayerPixels 一起写（一步撤销）。没有 filterFX 时新建（键紧跟 Rslt）。写完自检读回，末条不是刚写的滤镜就放弃。HTTP 走服务端 op addSmartFilter(kind:'filterGallery') 更方便（它会顺带算像素）。","kind":"core","locate":"index","feature":"op.addGallerySmartFilter"},{"op":"setSmartFilterEntry","category":"smartObject","structural":true,"summary":"改智能对象上的一条智能滤镜（SoLd.filterFX.filterFXList[at]）：参数（Fltr）/ 混合选项 / 前景背景色 / 启用位","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；必须是智能对象且带 SoLd 放置描述符"},{"name":"at","type":"integer","required":true,"desc":"filterFXList 下标（0 = 最先应用 = PS 图层面板上最下面那条）"},{"name":"Fltr","type":"object","required":false,"desc":"整份新的滤镜描述符（__classID 必须与原条目相同；换滤镜种类请删掉重加）。core/smart-filter-spec.js 的 fltrWithParams(原 Fltr, kind, 参数) / 滤镜库用 galleryDescriptor(layers) 生成"},{"name":"blendOptions","type":"object","required":false,"desc":"{ opacity?: 0…100, mode?: 图层混合键（norm / mul  / scrn …）}，写成 PS 的 blendOptions（Opct #Prc + Md   BlnM）"},{"name":"fg","type":"array","required":false,"desc":"[r,g,b] 执行时的前景色（素描类滤镜库效果用；只在条目本来有 FrgC 时改）"},{"name":"bg","type":"array","required":false,"desc":"[r,g,b] 执行时的背景色（BckC）"},{"name":"enabled","type":"boolean","required":false,"desc":"这条滤镜的启用位（enab）"}],"notes":"只改描述符，不重算缓存像素：图层像素请在同一批里用 replaceLayerPixels 一起写（一步撤销）。编辑器「双击智能滤镜重开对话框 / 混合选项」走的就是它。","kind":"core","locate":"index","feature":"op.setSmartFilterEntry"},{"op":"setStackMode","category":"smartObject","structural":true,"summary":"智能对象 › 堆栈模式：写进放置描述符（SoLd Type = 3「图像堆栈」+ imageStackPlugin 类；PlLd 的 placedLayerType 同步）","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；必须是智能对象且带 SoLd"},{"name":"mode","type":"string","required":true,"desc":"none / entropy / kurtosis / max / mean / median / min / range / skewness / stdDev / sum / variance（对应 PS 插件类 entr kurt maxx avrg medn minn rang skew stdv summ vari）","enum":["none","entropy","kurtosis","max","mean","median","min","range","skewness","stdDev","sum","variance"]}],"notes":"只写描述符（none = 去掉 imageStackPlugin、Type 回 2）；统计后的缓存像素由调用方用 replaceLayerPixels 写（core/stack-modes.js 的 stackCombine）。imageStackPlugin 的存放位置按 Action Manager 口径（applyImageStackPluginRenderer 事件的 imageStackPlugin 类）推定，未拿 PS 样本逐字节核对。","exampleFile":"tshirt.psd","example":{"op":"setStackMode","index":1,"mode":"median"},"kind":"core","locate":"index","feature":"op.setStackMode"},{"op":"copyLayerBlocks","category":"structure","structural":true,"summary":"把一层的若干附加信息块原样拷到另一层（已有同名块则替换）","fields":[{"name":"from","type":"integer","required":true,"desc":"源图层下标（底=0）"},{"name":"to","type":"integer","required":true,"desc":"目标图层下标"},{"name":"keys","type":"array","required":true,"desc":"四字符块名数组，如 ['lfx2', 'vmsk']；源层没有的键跳过。不允许 lsct / lsdk / luni / lyid / SoLd / PlLd / TySh（会破坏图层身份）"}],"notes":"「智能对象 › 转换为图层」用它把智能对象的图层样式 / 矢量蒙版带到外包组上。矢量蒙版坐标是相对画布归一化的，同一文档内拷贝不用换算。","example":{"op":"copyLayerBlocks","from":1,"to":4,"keys":["lfx2"]},"kind":"core","locate":"index","feature":"op.copyLayerBlocks"},{"op":"ensureLayerIds","category":"structure","structural":true,"summary":"给没有 lyid 的图层补一个唯一图层 id（链接组 / 图层复合 / 变量都按 lyid 对齐）","fields":[],"notes":"已有 id 的不动；新 id = 当前最大 id + 1 起递增。全部都有时 changed:false。","example":{"op":"ensureLayerIds"},"kind":"core","locate":"index","feature":"op.ensureLayerIds"},{"op":"setLinkGroups","category":"structure","structural":true,"summary":"链接 / 取消链接图层，或停用 / 启用链接（图像资源 1026 / 1072，按 lyid 对齐）","fields":[{"name":"indices","type":"array","required":true,"desc":"图层下标数组（底=0）；非空"},{"name":"link","type":"boolean","required":false,"desc":"true = 链成一组（已在组里的并进最小组号，PS 同）；false = 从各自链接组里拿出（剩一层的组自动解散）；link:true 时至少两个图层（给了 disable 时除外）"},{"name":"disable","type":"boolean","required":false,"desc":"给了就只改「在组里是否停用」（PS ⇧ 点链条图标出现红叉），忽略 link"}],"notes":"会先自动补齐缺失的 lyid。","example":{"op":"setLinkGroups","indices":[1,4],"link":true},"kind":"core","locate":"index","feature":"op.setLinkGroups"},{"op":"setLayerCompsMeta","category":"structure","structural":true,"summary":"写各图层的图层复合记录（shmd 块里的 cmls 子块）","fields":[{"name":"entries","type":"array","required":true,"desc":"[{ index, cmls: 描述符|null }]；cmls = 该层在各图层复合里的可见 / 位置 / 外观记录（PS 的 layerSettings 列表），null = 去掉该子块"}],"notes":"没有 shmd 就新建；shmd 里其它子块原样保留。复合本身的列表在图像资源 1065（用 setImageResource 写），与这里按 compID 对应。","example":{"op":"setLayerCompsMeta","entries":[{"index":1,"cmls":null}]},"kind":"core","locate":"index","feature":"op.setLayerCompsMeta"},{"op":"setLayerAnimMeta","category":"structure","structural":true,"summary":"写各图层的帧动画记录（shmd 块里的 mlst / mdyn 子块）","fields":[{"name":"entries","type":"array","required":true,"desc":"[{ index, mlst: 描述符|null, mdyn: 整数|null }]；mlst = 该层在各帧里的可见性 / 位置偏移 / 不透明度（PS 的 LaSt 列表，按帧 id 分组），mdyn = 统一位置 / 样式 / 可见性与「传播帧 1」标志；两者都 null = 去掉这两个子块"}],"notes":"没有 shmd 就新建；shmd 里其它子块原样保留。帧列表本身在图像资源 4000（'mani' / 'AnDs'），与这里按帧 id 对应。","example":{"op":"setLayerAnimMeta","entries":[{"index":1,"mlst":null,"mdyn":null}]},"kind":"core","locate":"index","feature":"op.setLayerAnimMeta"},{"op":"setArtboard","category":"artboard","structural":true,"summary":"把组头设为画板 / 改画板矩形与背景，或取消画板身份","fields":[{"name":"index","type":"integer","required":true,"desc":"图层下标（底=0，0…图层数-1）；设画板时必须是组头（groupType 1/2）"},{"name":"rect","type":"object","required":false,"desc":"画板矩形 { top, left, bottom, right }（数字，宽高 > 0）；remove 为假时必填"},{"name":"presetName","type":"string","required":false,"desc":"画板预设名；默认 = 图层名"},{"name":"color","type":"string|array","required":false,"desc":"背景色（backgroundType=4 时生效）","default":"#ffffff"},{"name":"backgroundType","type":"integer|string","required":false,"desc":"1 白 / 2 黑 / 3 透明 / 4 其它（用 color）；也认 white / black / transparent / custom / other","enum":[1,2,3,4,"white","black","transparent","custom","other"],"default":1},{"name":"remove","type":"boolean","required":false,"desc":"true = 删掉 artb/artd/abdd，取消画板（此时其余字段忽略；本来不是画板则报错）"}],"notes":"写 artb + abdd，原有 artd 一并更新；保留原 guideIDs。","example":{"op":"setArtboard","index":2,"rect":{"top":0,"left":0,"bottom":1080,"right":1920},"backgroundType":"white"},"kind":"core","locate":"index","feature":"op.setArtboard"},{"op":"applyFilter","kind":"server","locate":"index|target","category":"pixels","summary":"对普通像素图层应用滤镜（75 种：模糊 / 锐化 / 杂色 / 扭曲 / 风格化 / 像素化 / 渲染 / 其它 / 自动调整…）","structural":false,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"filter","type":"string","required":true,"desc":"滤镜名（GET /api/catalog 的 filters[].kind，如 gaussianBlur / unsharpMask / motionBlur / mosaic）"},{"name":"params","type":"object","required":false,"desc":"滤镜参数；缺省项用默认值；不认识的键会 400"},{"name":"selection","type":"object|array","required":false,"desc":"选区（文档坐标）：{ type:\"rect\"|\"ellipse\", x, y, width, height, feather? } | { type:\"polygon\", points:[[x,y],…] } | { type:\"all\" }；数组 = 多个形状按各自 mode（add/subtract/intersect/xor）组合；{ shapes:[…], invert:true } = 反选。省略 = 整层"},{"name":"fade","type":"number","required":false,"desc":"渐隐 0…100（PS 的「编辑 › 渐隐」不透明度），默认 100"},{"name":"foreground","type":"string|array","required":false,"desc":"前景色（云彩 / 纤维等用到前景背景色的滤镜）"},{"name":"background","type":"string|array","required":false,"desc":"背景色"},{"name":"expand","type":"boolean|integer","required":false,"desc":"空间类滤镜自动往外补边（默认按半径 ×3）；false = 不补，整数 = 指定像素"}],"notes":"只作用于 raster 图层；文字 / 智能对象 / 形状先 rasterizeLayer。智能滤镜（非破坏）暂未开放。","example":{"op":"applyFilter","index":1,"filter":"gaussianBlur","params":{"radius":4}},"feature":"op.applyFilter"},{"op":"applyAdjustment","kind":"server","locate":"index|target","category":"pixels","summary":"破坏性图像调整（直接改像素）：曲线 / 色阶 / 色相饱和度 / 亮度对比度 / 黑白 / 色彩平衡 / 渐变映射…","structural":false,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"adjustment","type":"object","required":true,"desc":"{ type, …参数 }；type 见 GET /api/catalog 的 adjustments（curves / levels / hueSaturation / brightnessContrast / …）"},{"name":"selection","type":"object|array","required":false,"desc":"选区（文档坐标）：{ type:\"rect\"|\"ellipse\", x, y, width, height, feather? } | { type:\"polygon\", points:[[x,y],…] } | { type:\"all\" }；数组 = 多个形状按各自 mode（add/subtract/intersect/xor）组合；{ shapes:[…], invert:true } = 反选。省略 = 整层"},{"name":"fade","type":"number","required":false,"desc":"渐隐 0…100"}],"notes":"要非破坏的调整图层请用 core op addAdjustmentLayer。","example":{"op":"applyAdjustment","index":1,"adjustment":{"type":"brightnessContrast","brightness":20,"contrast":10}},"feature":"op.applyAdjustment"},{"op":"contentAwareFill","kind":"server","locate":"index|target","category":"pixels","summary":"内容识别填充：用图层其余像素补掉选区（去水印 / 去杂物）","structural":false,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"selection","type":"object|array","required":true,"desc":"要填掉的区域（必填）"},{"name":"patch","type":"integer","required":false,"desc":"补丁半径 1…6，默认 3"},{"name":"samples","type":"integer","required":false,"desc":"每像素候选样本数，默认 120"},{"name":"seed","type":"integer","required":false,"desc":"随机种子（同种子结果可复现），默认 1"}],"example":{"op":"contentAwareFill","index":0,"selection":{"type":"rect","x":100,"y":100,"width":60,"height":40}},"feature":"op.contentAwareFill"},{"op":"fillPixels","kind":"server","locate":"index|target","category":"pixels","summary":"用纯色填充选区（PS 的「编辑 › 填充」）；空图层也能填（按选区长出像素）","structural":false,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"color","type":"string|array","required":true,"desc":"\"#rrggbb\" 或 [r,g,b]"},{"name":"selection","type":"object|array","required":false,"desc":"选区（文档坐标）：{ type:\"rect\"|\"ellipse\", x, y, width, height, feather? } | { type:\"polygon\", points:[[x,y],…] } | { type:\"all\" }；数组 = 多个形状按各自 mode（add/subtract/intersect/xor）组合；{ shapes:[…], invert:true } = 反选。省略 = 整层"},{"name":"opacity","type":"number","required":false,"desc":"0…100，默认 100"},{"name":"preserveTransparency","type":"boolean","required":false,"desc":"保留透明区域（只染已有像素）"}],"example":{"op":"fillPixels","index":1,"color":"#ff3366","selection":{"type":"ellipse","x":50,"y":50,"width":200,"height":120}},"feature":"op.fillPixels"},{"op":"clearPixels","kind":"server","locate":"index|target","category":"pixels","summary":"清除选区里的像素（PS 的 Delete）","structural":false,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"selection","type":"object|array","required":true,"desc":"要清除的区域（必填）"}],"example":{"op":"clearPixels","index":1,"selection":{"type":"rect","x":0,"y":0,"width":100,"height":100}},"feature":"op.clearPixels"},{"op":"moveLayer","kind":"server","locate":"index|target","category":"geometry","summary":"平移图层（组 = 带上整组）；文字仍可编辑、智能对象仍是智能对象、矢量路径与蒙版跟着走","structural":false,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"indices","type":"integer[]","required":false,"desc":"一次平移多个图层 / 组"},{"name":"dx","type":"integer","required":true,"desc":"水平位移（像素，右为正）"},{"name":"dy","type":"integer","required":true,"desc":"垂直位移（像素，下为正）"}],"example":{"op":"moveLayer","index":1,"dx":40,"dy":-20},"feature":"op.moveLayer"},{"op":"duplicateLayer","kind":"server","locate":"index|target","category":"structure","summary":"复制图层 / 组 / 画板（字节级克隆，放在源正上方；智能对象为浅拷贝，与 PS 默认一致）","structural":true,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"name","type":"string","required":false,"desc":"副本名，默认「原名 拷贝」"},{"name":"dx","type":"integer","required":false,"desc":"副本平移（像素）"},{"name":"dy","type":"integer","required":false,"desc":"副本平移"}],"notes":"给组头 index = 连同全部成员整段复制。复制画板且没给 dx/dy 时，副本放到原画板右侧 100 像素处，画布不够自动撑大。副本整段插在源（组）正上方，其上所有图层下标相应后移。","example":{"op":"duplicateLayer","index":1,"dx":30,"dy":30},"feature":"op.duplicateLayer"},{"op":"resizeCanvas","kind":"server","locate":"index|target","category":"document","summary":"画布大小（只挪位置、不重采样）；背景图层扩出来的部分用 extColor 填","structural":false,"fields":[{"name":"width","type":"integer","required":true,"desc":"新宽（像素，1…30000）"},{"name":"height","type":"integer","required":true,"desc":"新高"},{"name":"anchor","type":"string|integer","required":false,"desc":"定位：top-left / top / top-right / left / center / right / bottom-left / bottom / bottom-right（或 0…8），默认 center"},{"name":"extColor","type":"string|array","required":false,"desc":"画布扩展颜色（背景图层用），默认白"}],"example":{"op":"resizeCanvas","width":1600,"height":1200,"anchor":"center"},"feature":"op.resizeCanvas"},{"op":"crop","kind":"server","locate":"index|target","category":"document","summary":"裁剪到矩形（画布 = 该矩形，图层整体平移）","structural":false,"fields":[{"name":"x","type":"integer","required":true,"desc":"裁剪框左"},{"name":"y","type":"integer","required":true,"desc":"裁剪框上"},{"name":"width","type":"integer","required":true,"desc":"宽"},{"name":"height","type":"integer","required":true,"desc":"高"},{"name":"deleteCropped","type":"boolean","required":false,"desc":"true = 普通像素层裁掉画布外的像素（PS 的「删除裁剪的像素」）；默认 false 保留"}],"example":{"op":"crop","x":100,"y":80,"width":800,"height":600},"feature":"op.crop"},{"op":"resizeImage","kind":"server","locate":"index|target","category":"document","summary":"图像大小：整份文档重采样（像素层 lanczos3；文字改变换矩阵仍可编辑；智能对象改放置四点）","structural":false,"fields":[{"name":"width","type":"integer","required":false,"desc":"新宽；只给一边 = 等比"},{"name":"height","type":"integer","required":false,"desc":"新高"},{"name":"scale","type":"number","required":false,"desc":"整体倍率（与 width/height 二选一）"},{"name":"resolution","type":"number","required":false,"desc":"新分辨率（像素/英寸），写入资源 1005"},{"name":"resample","type":"string","required":false,"desc":"重采样：lanczos3（默认）/ bicubic / bilinear / nearest","enum":["lanczos3","bicubic","bilinear","nearest"]},{"name":"scaleStyles","type":"boolean","required":false,"desc":"PS 的「缩放样式」：图层样式里的像素尺寸、图案缩放、矢量描边宽度按比例缩放（默认 true）","default":true}],"notes":"非等比缩放时样式按面积比例的平方根缩放（与 PS 同口径）；实时形状的尺寸与圆角、切片矩形同步更新。","example":{"op":"resizeImage","width":800},"feature":"op.resizeImage"},{"op":"rotateCanvas","kind":"server","locate":"index|target","category":"document","summary":"旋转画布（任意角度，顺时针；新画布 = 外接矩形，90° 倍数无损）","structural":false,"fields":[{"name":"angle","type":"number","required":true,"desc":"角度（度，顺时针）"},{"name":"extColor","type":"string|array","required":false,"desc":"背景图层露出部分的颜色，默认白"}],"example":{"op":"rotateCanvas","angle":90},"feature":"op.rotateCanvas"},{"op":"flipCanvas","kind":"server","locate":"index|target","category":"document","summary":"水平 / 垂直翻转画布","structural":false,"fields":[{"name":"axis","type":"string","required":true,"desc":"horizontal / vertical","enum":["horizontal","vertical"]}],"example":{"op":"flipCanvas","axis":"horizontal"},"feature":"op.flipCanvas"},{"op":"createDeform","kind":"server","locate":"index|target","category":"smartObject","summary":"新建透视变形 / 操控变形（PS 的「编辑 › 透视变形 / 操控变形」）；普通图层自动转智能对象，已有变形 = 再叠一条","structural":true,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"kind","type":"string","required":true,"desc":"perspectiveWarp（透视）/ puppetWarp（操控）","enum":["perspectiveWarp","puppetWarp"]},{"name":"grid","type":"object","required":false,"desc":"透视：{ cols, rows } 面的行列数 1…16，默认 1×1"},{"name":"corners","type":"array","required":false,"desc":"透视：把放置四角拉到这 4 点 [[x,y]×4]（左上 / 右上 / 右下 / 左下，文档坐标）"},{"name":"pins","type":"array","required":false,"desc":"操控：[{ from:[x,y], to?:[x,y], rotate?:度 }]，from 吸附到最近的网格顶点"},{"name":"mode","type":"string","required":false,"desc":"操控：rigid（刚性，默认）/ similarity（正常）/ affine（扭曲）","enum":["rigid","similarity","affine"]},{"name":"cell","type":"integer","required":false,"desc":"操控：网格间距（源图像素，越小越密）"},{"name":"expand","type":"integer","required":false,"desc":"操控：网格外扩格数 0…8，默认 1"}],"notes":"写完放置块后会按新变形重渲染缓存栅格；之后可用 deform op（target 同一层）继续改顶点。","example":{"op":"createDeform","index":1,"kind":"perspectiveWarp","corners":[[100,100],[500,130],[480,420],[120,400]]},"feature":"op.createDeform","capabilities":{"ids":["deform.perspective","deform.puppet"],"when":"按 kind：perspectiveWarp → deform.perspective，puppetWarp → deform.puppet"}},{"op":"addSmartFilter","kind":"server","locate":"index|target","category":"smartObject","summary":"新增一条智能滤镜（非破坏，PS 里可双击改参数 / 关眼睛）；普通层自动转智能对象，已有智能滤镜 = 追加","structural":true,"fields":[{"name":"index","type":"integer","required":false,"desc":"图层下标（/api/doc/inspect 的 flat[].index，底 = 0）；与 target 二选一"},{"name":"target","type":"integer|string|object","required":false,"desc":"图层名（须唯一）/ 下标 / { layerIndex } / { name }"},{"name":"filter","type":"string","required":true,"desc":"滤镜名","enum":["gaussianBlur","boxBlur","blur","blurMore","motionBlur","radialBlur","unsharpMask","sharpen","sharpenMore","sharpenEdges","addNoise","median","despeckle","dustScratches","highPass","mosaic","findEdges","solarize","emboss","maximum","minimum","twirl","pinch","spherize","cameraRaw","lensCorrection"]},{"name":"params","type":"object","required":false,"desc":"参数，与 applyFilter 同名同范围（见 get_catalog section=filters）"},{"name":"opacity","type":"number","required":false,"desc":"滤镜混合选项的不透明度 0…100，默认 100"},{"name":"mode","type":"string","required":false,"desc":"滤镜混合模式，默认 normal（预览只精确支持 normal）"},{"name":"enabled","type":"boolean","required":false,"desc":"false = 挂上但先关着"}],"notes":"写完描述符后按「变形栈 → 全部智能滤镜」重渲染缓存栅格；栈里有服务端不认识的滤镜时只在现有缓存上叠加这一条。cameraRaw / lensCorrection 是 PSD Editor 私有条目（PS 里只显示缓存像素、不能在 PS 里再调）；液化智能滤镜只能在编辑器里画。","example":{"op":"addSmartFilter","index":1,"filter":"gaussianBlur","params":{"radius":6},"opacity":80},"feature":"op.addSmartFilter"},{"op":"setSmartFilters","kind":"server","locate":"index|target","category":"smartObject","summary":"改智能对象上已有的智能滤镜（开关 / 参数 / 混合选项 / 删除 / 换序）；变形滤镜请用 deform","structural":false,"fields":[{"name":"target","type":"integer|string|object","required":false,"desc":"智能对象序号 / 图层名 / { layerIndex }（number = 智能对象序号，与老 op 一致）"},{"name":"index","type":"integer","required":false,"desc":"图层下标（与 target 二选一）"},{"name":"edits","type":"object","required":true,"desc":"{ style?:{ enabled?, filterMaskEnable?, … }, filters?:[{ index, enabled?, blendOptions?:{ opacity?, mode? }, values?:{ \"参数路径\": 值 }, remove? }], order?:[原下标…] }；可先用 POST /api/so/filters 或 MCP 的 get_smart_filters 看现有列表"}],"notes":"改完按新描述符重渲染缓存栅格（栈里全是服务端认识的滤镜时）；新增请用 addSmartFilter。","example":{"op":"setSmartFilters","target":0,"edits":{"filters":[{"index":0,"enabled":false}]}},"feature":"op.setSmartFilters"},{"op":"renderText","kind":"server","locate":"index|target","category":"text","summary":"按服务端字体重排重绘文字层栅格（setText / 改样式后会自动重绘，这条用于强制重绘，如新装了字体）","structural":false,"fields":[{"name":"indices","type":"integer[]","required":false,"desc":"要重绘的文字层；省略 = 全部文字层"},{"name":"index","type":"integer","required":false,"desc":"单个文字层"}],"notes":"字体按 PostScript 名在服务端字体目录里找（server/fonts/、PSD_EDITOR_FONT_DIRS、系统字体目录），缺字体用替代字体并给 warning；PS 打开时仍按它自己的字体重排。","example":{"op":"renderText","indices":[2]},"feature":"op.renderText"},{"op":"createArtboard","kind":"server","locate":"index|target","category":"artboard","summary":"新建画板：给 indices 就把这些图层装进去（来自图层的画板），否则新建空画板放最上面","structural":true,"fields":[{"name":"name","type":"string","required":false,"desc":"画板名，默认「画板 N」"},{"name":"rect","type":"object","required":false,"desc":"{ x, y, width, height } 或 { left, top, right, bottom }；给了 indices 时可省略（= 图层外接框）"},{"name":"indices","type":"integer[]","required":false,"desc":"要装进画板的图层 / 组"},{"name":"backgroundType","type":"integer|string","required":false,"desc":"1 白 / 2 黑 / 3 透明 / 4 自定（white / black / transparent / custom）","default":1},{"name":"color","type":"string|array","required":false,"desc":"backgroundType=4 时的底色"},{"name":"presetName","type":"string","required":false,"desc":"画板预设名"},{"name":"autoSizeCanvas","type":"boolean","required":false,"desc":"画板超出画布时撑大画布（默认 true）"}],"example":{"op":"createArtboard","name":"手机","rect":{"x":0,"y":0,"width":1125,"height":2436},"backgroundType":"white"},"feature":"op.createArtboard"},{"op":"replaceSmartObject","aliases":["replaceSmartObjectImage"],"category":"smartObject","structural":false,"summary":"换智能对象源图（按覆盖模式渲染进网格 / 变形，写回内嵌源图、缓存栅格、FEid 与缩略图）","fields":[{"name":"target","type":"integer|string|object","required":false,"desc":"智能对象序号 / 图层名 / { layerIndex } / { smartObjectIndex }；省略 = 第 0 个智能对象"},{"name":"image","type":"object|integer|string","required":true,"desc":"图片引用：{ file:\"image\", index:n } / 上传文件名 / data:URL / 裸 base64"},{"name":"fit","type":"object","required":false,"desc":"{ mode:\"cover\"|\"contain\"|\"tile\"|\"stretch\", alignX?, alignY?, scale? }，默认 cover"},{"name":"mesh","type":"object","required":false,"desc":"顺带改网格：{ points, xn, yn, sliceX, sliceY } 或 { splits:{ u, v } }"},{"name":"sourceName","type":"string","required":false,"desc":"写进 PSD 的内嵌源图文件名"}],"notes":"与 /api/render（output.format=psd）逐字节相同。注意：number 型 target 在这三条老 op 里指「智能对象序号」。","example":{"op":"replaceSmartObject","target":0,"image":{"file":"image","index":0},"fit":{"mode":"cover"}},"kind":"server","locate":"target","feature":"op.replaceSmartObject","capabilities":{"ids":["deform.warp"],"when":"只在带 mesh（顺带改网格）时；只换图不需要"}},{"op":"deform","aliases":["setMesh"],"category":"smartObject","structural":false,"summary":"智能对象网格 / 变形滤镜写回（warp、quiltWarp、透视变形、操控变形）","fields":[{"name":"target","type":"integer|string|object","required":false,"desc":"同 replaceSmartObject"},{"name":"points","type":"array","required":false,"desc":"Bezier 网格控制点 [{x,y}]（配 xn / yn / sliceX / sliceY）"},{"name":"deform","type":"object","required":false,"desc":"变形滤镜 JSON（/api/so/resolve 的 deform 结构）；create:true = 新挂一条"},{"name":"deforms","type":"array","required":false,"desc":"多条变形：[{ deform, at?, create? }]"}],"example":{"op":"deform","target":0,"deform":"<来自 POST /api/so/resolve 的 layerInfo.deform，改过 warped 顶点>"},"kind":"server","locate":"target","feature":"op.deform","capabilities":{"ids":["deform.warp","deform.perspective","deform.puppet"],"when":"按改的变形：points 网格 → deform.warp，deform.kind 透视 / 操控 → 对应 id"}},{"op":"setSmartObjectDescriptor","aliases":[],"category":"smartObject","structural":false,"summary":"改智能对象放置描述符（Idnt / placed / 原始尺寸 Sz）","fields":[{"name":"target","type":"integer|string|object","required":false,"desc":"同 replaceSmartObject"},{"name":"linkId","type":"string","required":false,"desc":"改 Idnt（指向哪份内嵌文件）"},{"name":"placedId","type":"string","required":false,"desc":"改 placed（实例 id）"},{"name":"originalSize","type":"object","required":false,"desc":"{ width, height }"}],"example":{"op":"setSmartObjectDescriptor","target":0,"originalSize":{"width":800,"height":800}},"kind":"server","locate":"target","feature":"op.setSmartObjectDescriptor"}],"opNames":["addAdjustmentLayer","addFillLayer","addFrameLayer","addGallerySmartFilter","addLayerEffect","addLayerMask","addPatterns","addShapeLayer","addSmartFilter","addTextLayer","addVectorMask","applyAdjustment","applyFilter","applyLayerMask","clearLayerEffects","clearPixels","contentAwareFill","convertToSmartObject","copyLayerBlocks","createArtboard","createDeform","createLayer","crop","deform","deleteLayer","deleteLayerMask","detachSmartObject","duplicateLayer","ensureLayerIds","fillPixels","flipCanvas","groupLayers","moveLayer","newGroup","rasterizeLayer","removeImageResource","removeLayerEffect","renameLayer","renderText","reorderLayers","replaceLayerMask","replaceLayerPixels","replaceSmartObject","resizeCanvas","resizeImage","rotateCanvas","setArtboard","setBlendMode","setBlendOptions","setClipping","setFillOpacity","setFrameRect","setImageResource","setLayerAnimMeta","setLayerColorLabel","setLayerCompsMeta","setLayerEffect","setLayerEffectsEnabled","setLayerFlags","setLayerKnockout","setLayerMaskPixels","setLayerParams","setLayerProps","setLayerStyle","setLinkGroups","setMaskProps","setOpacity","setShapeContent","setShapeOrigin","setSmartFilterEntry","setSmartFilters","setSmartObjectDescriptor","setStackMode","setText","setVectorMaskFlags","setVectorMaskPath","setVectorStroke","setVisible"],"filters":[{"kind":"gaussianBlur","label":"高斯模糊","group":"模糊","action":"filter.blur.gaussian","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":2,"min":0,"max":250,"step":0.1,"unit":"像素","spatial":true}]},{"kind":"boxBlur","label":"方框模糊","group":"模糊","action":"filter.blur.box","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":4,"min":0,"max":250,"step":1,"unit":"像素","spatial":true}]},{"kind":"blur","label":"模糊","group":"模糊","action":"filter.blur.blur","replaces":false,"colors":false,"params":[]},{"kind":"blurMore","label":"进一步模糊","group":"模糊","action":"filter.blur.more","replaces":false,"colors":false,"params":[]},{"kind":"motionBlur","label":"动感模糊","group":"模糊","action":"filter.blur.motion","replaces":false,"colors":false,"params":[{"key":"angle","label":"角度","def":0,"min":-180,"max":180,"step":1,"unit":"度"},{"key":"distance","label":"距离","def":20,"min":0,"max":2000,"step":1,"unit":"像素","spatial":true}]},{"kind":"radialBlur","label":"径向模糊","group":"模糊","action":"filter.blur.radial","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":20,"min":0,"max":100,"step":1,"unit":""},{"key":"method","label":"方法","def":"spin","type":"enum","options":[["spin","旋转"],["zoom","缩放"]]}]},{"kind":"average","label":"平均","group":"模糊","action":"filter.blur.average","replaces":false,"colors":false,"params":[]},{"kind":"unsharpMask","label":"USM 锐化","group":"锐化","action":"filter.sharpen.unsharp","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":100,"min":0,"max":500,"step":1,"unit":"%"},{"key":"radius","label":"半径","def":1,"min":0.1,"max":250,"step":0.1,"unit":"像素","spatial":true},{"key":"threshold","label":"阈值","def":0,"min":0,"max":255,"step":1,"unit":"色阶"}]},{"kind":"sharpen","label":"锐化","group":"锐化","action":"filter.sharpen.sharpen","replaces":false,"colors":false,"params":[]},{"kind":"sharpenMore","label":"进一步锐化","group":"锐化","action":"filter.sharpen.more","replaces":false,"colors":false,"params":[]},{"kind":"addNoise","label":"添加杂色","group":"杂色","action":"filter.noise.add","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":12,"min":0,"max":400,"step":0.1,"unit":"%"},{"key":"distribution","label":"分布","def":"gaussian","type":"enum","options":[["uniform","平均分布"],["gaussian","高斯分布"]]},{"key":"monochromatic","label":"单色","def":false,"type":"bool"},{"key":"seed","label":"随机种子","def":12345,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"median","label":"中间值","group":"杂色","action":"filter.noise.median","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":1,"min":0,"max":16,"step":1,"unit":"像素","spatial":true}]},{"kind":"despeckle","label":"去斑","group":"杂色","action":"filter.noise.despeckle","replaces":false,"colors":false,"params":[]},{"kind":"mosaic","label":"马赛克","group":"像素化","action":"filter.pixelate.mosaic","replaces":false,"colors":false,"params":[{"key":"cell","label":"单元格大小","def":10,"min":1,"max":200,"step":1,"unit":"方形","spatial":true}]},{"kind":"findEdges","label":"查找边缘","group":"风格化","action":"filter.stylize.findEdges","replaces":false,"colors":false,"params":[]},{"kind":"emboss","label":"浮雕效果","group":"风格化","action":"filter.stylize.emboss","replaces":false,"colors":false,"params":[{"key":"angle","label":"角度","def":135,"min":-180,"max":180,"step":1,"unit":"度"},{"key":"height","label":"高度","def":3,"min":1,"max":100,"step":1,"unit":"像素","spatial":true},{"key":"amount","label":"数量","def":100,"min":1,"max":500,"step":1,"unit":"%"}]},{"kind":"solarize","label":"曝光过度","group":"风格化","action":"filter.stylize.solarize","replaces":false,"colors":false,"params":[]},{"kind":"highPass","label":"高反差保留","group":"其它","action":"filter.other.highPass","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":3,"min":0.1,"max":250,"step":0.1,"unit":"像素","spatial":true}]},{"kind":"offset","label":"位移","group":"其它","action":"filter.other.offset","replaces":false,"colors":false,"params":[{"key":"dx","label":"水平","def":10,"min":-4000,"max":4000,"step":1,"unit":"像素","spatial":true},{"key":"dy","label":"垂直","def":10,"min":-4000,"max":4000,"step":1,"unit":"像素","spatial":true},{"key":"wrap","label":"折回","def":true,"type":"bool"}]},{"kind":"maximum","label":"最大值","group":"其它","action":"filter.other.maximum","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":1,"min":0,"max":100,"step":1,"unit":"像素","spatial":true}]},{"kind":"minimum","label":"最小值","group":"其它","action":"filter.other.minimum","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":1,"min":0,"max":100,"step":1,"unit":"像素","spatial":true}]},{"kind":"clouds","label":"云彩","group":"渲染","action":"filter.render.clouds","replaces":true,"colors":true,"params":[{"key":"octaves","label":"细节层数","def":6,"min":1,"max":9,"step":1,"unit":""},{"key":"seed","label":"随机种子","def":1,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"wave","label":"波浪","group":"扭曲","action":"filter.distort.wave","replaces":false,"colors":false,"params":[{"key":"generators","label":"生成器数","def":5,"min":1,"max":99,"step":1,"unit":""},{"key":"wavelengthMin","label":"波长 最小","def":10,"min":1,"max":998,"step":1,"unit":"","spatial":true},{"key":"wavelengthMax","label":"波长 最大","def":120,"min":2,"max":999,"step":1,"unit":"","spatial":true},{"key":"amplitudeMin","label":"波幅 最小","def":5,"min":0,"max":998,"step":1,"unit":"","spatial":true},{"key":"amplitudeMax","label":"波幅 最大","def":35,"min":1,"max":999,"step":1,"unit":"","spatial":true},{"key":"scaleH","label":"比例 水平","def":100,"min":0,"max":100,"step":1,"unit":"%"},{"key":"scaleV","label":"比例 垂直","def":100,"min":0,"max":100,"step":1,"unit":"%"},{"key":"type","label":"类型","def":"sine","type":"enum","options":[["sine","正弦"],["triangle","三角形"],["square","方形"]]},{"key":"edge","label":"未定义区域","def":"wrap","type":"enum","options":[["wrap","折回"],["repeat","重复边缘像素"]]},{"key":"seed","label":"随机种子","def":1,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"ripple","label":"波纹","group":"扭曲","action":"filter.distort.ripple","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":100,"min":-999,"max":999,"step":1,"unit":"%"},{"key":"size","label":"大小","def":"medium","type":"enum","options":[["small","小"],["medium","中"],["large","大"]]}]},{"kind":"polar","label":"极坐标","group":"扭曲","action":"filter.distort.polar","replaces":false,"colors":false,"params":[{"key":"mode","label":"方式","def":"rectToPolar","type":"enum","options":[["rectToPolar","平面坐标到极坐标"],["polarToRect","极坐标到平面坐标"]]}]},{"kind":"pinch","label":"挤压","group":"扭曲","action":"filter.distort.pinch","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":50,"min":-100,"max":100,"step":1,"unit":"%"}]},{"kind":"shear","label":"切变","group":"扭曲","action":"filter.distort.shear","replaces":false,"colors":false,"params":[{"key":"amount","label":"弯曲","def":30,"min":-100,"max":100,"step":1,"unit":"%"},{"key":"shape","label":"曲线形状","def":"bow","type":"enum","options":[["bow","弓形"],["s","S 形"]]},{"key":"edge","label":"未定义区域","def":"wrap","type":"enum","options":[["wrap","折回"],["repeat","重复边缘像素"]]}]},{"kind":"spherize","label":"球面化","group":"扭曲","action":"filter.distort.spherize","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":100,"min":-100,"max":100,"step":1,"unit":"%"},{"key":"mode","label":"模式","def":"normal","type":"enum","options":[["normal","正常"],["horizontal","水平优先"],["vertical","垂直优先"]]}]},{"kind":"zigzag","label":"水波","group":"扭曲","action":"filter.distort.zigzag","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":10,"min":-100,"max":100,"step":1,"unit":""},{"key":"ridges","label":"起伏","def":5,"min":1,"max":20,"step":1,"unit":""},{"key":"style","label":"样式","def":"pondRipples","type":"enum","options":[["aroundCenter","围绕中心"],["outFromCenter","从中心向外"],["pondRipples","水池波纹"]]}]},{"kind":"displace","label":"置换","group":"扭曲","action":"filter.distort.displace","replaces":false,"colors":false,"params":[{"key":"scaleH","label":"水平比例","def":10,"min":-999,"max":999,"step":1,"unit":"%","spatial":true},{"key":"scaleV","label":"垂直比例","def":10,"min":-999,"max":999,"step":1,"unit":"%","spatial":true},{"key":"mode","label":"置换图","def":"stretch","type":"enum","options":[["stretch","伸展以适合"],["tile","拼贴"]]},{"key":"edge","label":"未定义区域","def":"repeat","type":"enum","options":[["wrap","折回"],["repeat","重复边缘像素"]]}]},{"kind":"twirl","label":"旋转扭曲","group":"扭曲","action":"filter.distort.twirl","replaces":false,"colors":false,"params":[{"key":"angle","label":"角度","def":50,"min":-999,"max":999,"step":1,"unit":"度"}]},{"kind":"traceContour","label":"等高线","group":"风格化","action":"filter.stylize.traceContour","replaces":false,"colors":false,"params":[{"key":"level","label":"色阶","def":128,"min":0,"max":255,"step":1,"unit":""},{"key":"edge","label":"边缘","def":"lower","type":"enum","options":[["lower","较低"],["upper","较高"]]}]},{"kind":"wind","label":"风","group":"风格化","action":"filter.stylize.wind","replaces":false,"colors":false,"params":[{"key":"method","label":"方法","def":"wind","type":"enum","options":[["wind","风"],["blast","大风"],["stagger","飓风"]]},{"key":"direction","label":"方向","def":"fromRight","type":"enum","options":[["fromRight","从右"],["fromLeft","从左"]]},{"key":"seed","label":"随机种子","def":7,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"diffuse","label":"扩散","group":"风格化","action":"filter.stylize.diffuse","replaces":false,"colors":false,"params":[{"key":"mode","label":"模式","def":"normal","type":"enum","options":[["normal","正常"],["darkenOnly","变暗优先"],["lightenOnly","变亮优先"],["anisotropic","各向异性"]]},{"key":"seed","label":"随机种子","def":3,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"tiles","label":"拼贴","group":"风格化","action":"filter.stylize.tiles","replaces":false,"colors":true,"params":[{"key":"number","label":"拼贴数","def":10,"min":1,"max":99,"step":1,"unit":""},{"key":"maxOffset","label":"最大位移","def":10,"min":1,"max":99,"step":1,"unit":"%"},{"key":"fill","label":"填充空白区域用","def":"background","type":"enum","options":[["background","背景色"],["foreground","前景颜色"],["inverse","反向图像"],["unaltered","未改变的图像"]]},{"key":"seed","label":"随机种子","def":5,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"extrude","label":"凸出","group":"风格化","action":"filter.stylize.extrude","replaces":false,"colors":false,"params":[{"key":"type","label":"类型","def":"blocks","type":"enum","options":[["blocks","块"],["pyramids","金字塔"]]},{"key":"size","label":"大小","def":30,"min":2,"max":255,"step":1,"unit":"像素","spatial":true},{"key":"depth","label":"深度","def":30,"min":1,"max":255,"step":1,"unit":""},{"key":"depthMode","label":"深度依据","def":"random","type":"enum","options":[["random","随机"],["level","基于色阶"]]},{"key":"solidFront","label":"立方体正面","def":true,"type":"bool"},{"key":"seed","label":"随机种子","def":9,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"oilPaint","label":"油画","group":"风格化","action":"filter.stylize.oilPaint","replaces":false,"colors":false,"params":[{"key":"stylization","label":"描边样式","def":3,"min":0.1,"max":10,"step":0.1,"unit":""},{"key":"cleanliness","label":"描边清洁度","def":5,"min":0,"max":10,"step":0.1,"unit":""},{"key":"scale","label":"缩放","def":1,"min":0.1,"max":10,"step":0.1,"unit":"","spatial":true},{"key":"bristle","label":"硬毛刷细节","def":5,"min":0,"max":10,"step":0.1,"unit":""},{"key":"lighting","label":"光照","def":true,"type":"bool"},{"key":"angle","label":"角度","def":-60,"min":-180,"max":180,"step":1,"unit":"度"},{"key":"shine","label":"闪亮","def":1,"min":0,"max":10,"step":0.1,"unit":""}]},{"kind":"surfaceBlur","label":"表面模糊","group":"模糊","action":"filter.blur.surface","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":5,"min":1,"max":100,"step":1,"unit":"像素","spatial":true},{"key":"threshold","label":"阈值","def":15,"min":2,"max":255,"step":1,"unit":"色阶"}]},{"kind":"lensBlur","label":"镜头模糊","group":"模糊","action":"filter.blur.lens","replaces":false,"colors":false,"params":[{"key":"iris","label":"光圈形状","def":"hexagon","type":"enum","options":[["disc","圆形"],["hexagon","六边形"],["square","方形"],["triangle","三角形"]]},{"key":"radius","label":"半径","def":15,"min":0,"max":100,"step":1,"unit":"","spatial":true},{"key":"brightness","label":"镜面高光 亮度","def":0,"min":0,"max":100,"step":1,"unit":""},{"key":"threshold","label":"镜面高光 阈值","def":255,"min":0,"max":255,"step":1,"unit":""},{"key":"noise","label":"杂色 数量","def":0,"min":0,"max":100,"step":1,"unit":""}]},{"kind":"smartBlur","label":"特殊模糊","group":"模糊","action":"filter.blur.smart","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":3,"min":0.1,"max":100,"step":0.1,"unit":"","spatial":true},{"key":"threshold","label":"阈值","def":25,"min":0.1,"max":100,"step":0.1,"unit":""},{"key":"quality","label":"品质","def":"medium","type":"enum","options":[["low","低"],["medium","中"],["high","高"]]},{"key":"mode","label":"模式","def":"normal","type":"enum","options":[["normal","正常"],["edgeOnly","仅限边缘"],["overlayEdge","叠加边缘"]]}]},{"kind":"shapeBlur","label":"形状模糊","group":"模糊","action":"filter.blur.shape","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":10,"min":4,"max":1000,"step":1,"unit":"像素","spatial":true},{"key":"shape","label":"形状","def":"disc","type":"enum","options":[["disc","圆形"],["ring","圆环"],["square","方形"],["triangle","三角形"],["hexagon","六边形"],["star","星形"],["heart","心形"]]}]},{"kind":"fieldBlur","label":"场景模糊","group":"模糊画廊","action":"filter.blurGallery.field","replaces":false,"colors":false,"params":[{"key":"blur","label":"模糊","def":15,"min":0,"max":500,"step":1,"unit":"像素","spatial":true}]},{"kind":"irisBlur","label":"光圈模糊","group":"模糊画廊","action":"filter.blurGallery.iris","replaces":false,"colors":false,"params":[{"key":"blur","label":"模糊","def":15,"min":0,"max":500,"step":1,"unit":"像素","spatial":true},{"key":"centerX","label":"中心 X","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"centerY","label":"中心 Y","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"radiusX","label":"半径 X","def":30,"min":1,"max":200,"step":1,"unit":"%"},{"key":"radiusY","label":"半径 Y","def":30,"min":1,"max":200,"step":1,"unit":"%"},{"key":"feather","label":"过渡","def":60,"min":0,"max":100,"step":1,"unit":"%"}]},{"kind":"tiltShift","label":"移轴模糊","group":"模糊画廊","action":"filter.blurGallery.tiltShift","replaces":false,"colors":false,"params":[{"key":"blur","label":"模糊","def":15,"min":0,"max":500,"step":1,"unit":"像素","spatial":true},{"key":"centerY","label":"中心 Y","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"angle","label":"角度","def":0,"min":-90,"max":90,"step":1,"unit":"度"},{"key":"focus","label":"清晰带（半高）","def":10,"min":0,"max":100,"step":1,"unit":"%"},{"key":"transition","label":"过渡","def":20,"min":0,"max":100,"step":1,"unit":"%"}]},{"kind":"spinBlur","label":"旋转模糊","group":"模糊画廊","action":"filter.blurGallery.spin","replaces":false,"colors":false,"params":[{"key":"angle","label":"模糊角度","def":15,"min":0,"max":360,"step":1,"unit":"度"},{"key":"centerX","label":"中心 X","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"centerY","label":"中心 Y","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"radius","label":"半径","def":40,"min":1,"max":200,"step":1,"unit":"%"}]},{"kind":"smartSharpen","label":"智能锐化","group":"锐化","action":"filter.sharpen.smart","replaces":false,"colors":false,"params":[{"key":"amount","label":"数量","def":200,"min":0,"max":500,"step":1,"unit":"%"},{"key":"radius","label":"半径","def":1,"min":0.1,"max":64,"step":0.1,"unit":"像素","spatial":true},{"key":"reduceNoise","label":"减少杂色","def":10,"min":0,"max":100,"step":1,"unit":"%"},{"key":"remove","label":"移去","def":"gaussian","type":"enum","options":[["gaussian","高斯模糊"],["lens","镜头模糊"],["motion","动感模糊"]]},{"key":"angle","label":"角度（动感）","def":0,"min":-180,"max":180,"step":1,"unit":"度"}]},{"kind":"sharpenEdges","label":"锐化边缘","group":"锐化","action":"filter.sharpen.edges","replaces":false,"colors":false,"params":[]},{"kind":"shake","label":"防抖","group":"锐化","action":"filter.sharpen.shake","replaces":false,"colors":false,"params":[{"key":"length","label":"模糊描摹边界","def":10,"min":1,"max":199,"step":1,"unit":"像素","spatial":true},{"key":"angle","label":"模糊方向","def":0,"min":-180,"max":180,"step":1,"unit":"度"},{"key":"smoothing","label":"平滑","def":20,"min":0,"max":100,"step":1,"unit":"%"},{"key":"iterations","label":"迭代次数","def":10,"min":1,"max":40,"step":1,"unit":""}]},{"kind":"ntsc","label":"NTSC 颜色","group":"视频","action":"filter.video.ntsc","replaces":false,"colors":false,"params":[]},{"kind":"deinterlace","label":"逐行","group":"视频","action":"filter.video.deinterlace","replaces":false,"colors":false,"params":[{"key":"eliminate","label":"消除","def":"odd","type":"enum","options":[["odd","奇数行"],["even","偶数行"]]},{"key":"create","label":"创建新场方式","def":"interpolation","type":"enum","options":[["duplication","复制"],["interpolation","插值"]]}]},{"kind":"facet","label":"彩块化","group":"像素化","action":"filter.pixelate.facet","replaces":false,"colors":false,"params":[]},{"kind":"colorHalftone","label":"彩色半调","group":"像素化","action":"filter.pixelate.halftone","replaces":false,"colors":false,"params":[{"key":"maxRadius","label":"最大半径","def":8,"min":4,"max":127,"step":1,"unit":"像素","spatial":true},{"key":"angle1","label":"通道 1","def":108,"min":-360,"max":360,"step":1,"unit":"度"},{"key":"angle2","label":"通道 2","def":162,"min":-360,"max":360,"step":1,"unit":"度"},{"key":"angle3","label":"通道 3","def":90,"min":-360,"max":360,"step":1,"unit":"度"}]},{"kind":"pointillize","label":"点状化","group":"像素化","action":"filter.pixelate.pointillize","replaces":false,"colors":true,"params":[{"key":"cell","label":"单元格大小","def":5,"min":3,"max":300,"step":1,"unit":"","spatial":true},{"key":"seed","label":"随机种子","def":2,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"crystallize","label":"晶格化","group":"像素化","action":"filter.pixelate.crystallize","replaces":false,"colors":false,"params":[{"key":"cell","label":"单元格大小","def":10,"min":3,"max":300,"step":1,"unit":"","spatial":true},{"key":"seed","label":"随机种子","def":1,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"fragment","label":"碎片","group":"像素化","action":"filter.pixelate.fragment","replaces":false,"colors":false,"params":[]},{"kind":"mezzotint","label":"铜版雕刻","group":"像素化","action":"filter.pixelate.mezzotint","replaces":false,"colors":false,"params":[{"key":"type","label":"类型","def":"fineDots","type":"enum","options":[["fineDots","精细点"],["mediumDots","中等点"],["grainyDots","粒状点"],["coarseDots","粗网点"],["shortLines","短直线"],["mediumLines","中长直线"],["longLines","长直线"],["shortStrokes","短描边"],["mediumStrokes","中长描边"],["longStrokes","长边"]]},{"key":"seed","label":"随机种子","def":4,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"differenceClouds","label":"分层云彩","group":"渲染","action":"filter.render.differenceClouds","replaces":false,"colors":true,"params":[{"key":"seed","label":"随机种子","def":1,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"fibers","label":"纤维","group":"渲染","action":"filter.render.fibers","replaces":true,"colors":true,"params":[{"key":"variance","label":"差异","def":16,"min":1,"max":64,"step":1,"unit":""},{"key":"strength","label":"强度","def":4,"min":1,"max":64,"step":1,"unit":""},{"key":"seed","label":"随机种子","def":1,"min":0,"max":999999,"step":1,"unit":""}]},{"kind":"lensFlare","label":"镜头光晕","group":"渲染","action":"filter.render.lensFlare","replaces":false,"colors":false,"params":[{"key":"brightness","label":"亮度","def":100,"min":10,"max":300,"step":1,"unit":"%"},{"key":"centerX","label":"中心 X","def":30,"min":0,"max":100,"step":1,"unit":"%"},{"key":"centerY","label":"中心 Y","def":30,"min":0,"max":100,"step":1,"unit":"%"},{"key":"lens","label":"镜头类型","def":"zoom","type":"enum","options":[["zoom","50-300 毫米变焦"],["prime35","35 毫米聚焦"],["prime105","105 毫米聚焦"],["movie","电影镜头"]]}]},{"kind":"lighting","label":"光照效果","group":"渲染","action":"filter.render.lighting","replaces":false,"colors":true,"params":[{"key":"type","label":"光源","def":"spot","type":"enum","options":[["spot","聚光灯"],["point","点光"],["infinite","无限光"]]},{"key":"intensity","label":"强度","def":35,"min":-100,"max":100,"step":1,"unit":""},{"key":"centerX","label":"中心 X","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"centerY","label":"中心 Y","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"radius","label":"范围","def":50,"min":1,"max":200,"step":1,"unit":"%"},{"key":"angle","label":"方向","def":-45,"min":-180,"max":180,"step":1,"unit":"度"},{"key":"ambience","label":"环境","def":8,"min":-100,"max":100,"step":1,"unit":""},{"key":"gloss","label":"光泽","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"bump","label":"纹理高度（亮度）","def":0,"min":0,"max":100,"step":1,"unit":""},{"key":"useFg","label":"光色用前景色","def":false,"type":"bool"}]},{"kind":"reduceNoise","label":"减少杂色","group":"杂色","action":"filter.noise.reduce","replaces":false,"colors":false,"params":[{"key":"strength","label":"强度","def":6,"min":0,"max":10,"step":1,"unit":""},{"key":"preserveDetails","label":"保留细节","def":60,"min":0,"max":100,"step":1,"unit":"%"},{"key":"colorNoise","label":"减少杂色","def":45,"min":0,"max":100,"step":1,"unit":"%"},{"key":"sharpen","label":"锐化细节","def":25,"min":0,"max":100,"step":1,"unit":"%"}]},{"kind":"dustScratches","label":"蒙尘与划痕","group":"杂色","action":"filter.noise.dustScratches","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":1,"min":1,"max":100,"step":1,"unit":"像素","spatial":true},{"key":"threshold","label":"阈值","def":0,"min":0,"max":255,"step":1,"unit":"色阶"}]},{"kind":"bumpMap","label":"生成凹凸图","group":"3D","action":"filter.3d.bump","replaces":false,"colors":false,"params":[{"key":"blur","label":"模糊","def":1,"min":0,"max":50,"step":0.5,"unit":"像素","spatial":true},{"key":"contrast","label":"对比度","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"invert","label":"反相高度","def":false,"type":"bool"}]},{"kind":"normalMap","label":"生成法线图","group":"3D","action":"filter.3d.normal","replaces":false,"colors":false,"params":[{"key":"blur","label":"模糊","def":1,"min":0,"max":50,"step":0.5,"unit":"像素","spatial":true},{"key":"strength","label":"细节缩放","def":2,"min":0.1,"max":20,"step":0.1,"unit":""},{"key":"contrast","label":"对比度","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"invert","label":"反相高度","def":false,"type":"bool"}]},{"kind":"hsbHsl","label":"HSB/HSL","group":"其它","action":"filter.other.hsb","replaces":false,"colors":false,"params":[{"key":"mode","label":"行序","def":"hsb","type":"enum","options":[["hsb","HSB"],["hsl","HSL"]]}]},{"kind":"custom","label":"自定","group":"其它","action":"filter.other.custom","replaces":false,"colors":false,"params":[{"key":"matrix","label":"卷积核","def":[0,0,0,0,0,0,0,-1,0,0,0,-1,5,-1,0,0,0,-1,0,0,0,0,0,0,0],"type":"matrix","size":5},{"key":"scale","label":"缩放","def":1,"min":1,"max":9999,"step":1,"unit":""},{"key":"offset","label":"位移","def":0,"min":-9999,"max":9999,"step":1,"unit":""}]},{"kind":"autoTone","label":"自动色调","group":"调整","action":"image.autoTone","replaces":false,"colors":false,"params":[]},{"kind":"autoContrast","label":"自动对比度","group":"调整","action":"image.autoContrast","replaces":false,"colors":false,"params":[]},{"kind":"autoColor","label":"自动颜色","group":"调整","action":"image.autoColor","replaces":false,"colors":false,"params":[]},{"kind":"shadowsHighlights","label":"阴影/高光","group":"调整","action":"image.adjust.shadowsHighlights","replaces":false,"colors":false,"params":[{"key":"shadowAmount","label":"阴影 数量","def":35,"min":0,"max":100,"step":1,"unit":"%"},{"key":"shadowTone","label":"阴影 色调","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"highlightAmount","label":"高光 数量","def":0,"min":0,"max":100,"step":1,"unit":"%"},{"key":"highlightTone","label":"高光 色调","def":50,"min":0,"max":100,"step":1,"unit":"%"},{"key":"radius","label":"半径","def":30,"min":0,"max":2500,"step":1,"unit":"像素","spatial":true},{"key":"colorCorrection","label":"颜色","def":20,"min":-100,"max":100,"step":1,"unit":""},{"key":"midtoneContrast","label":"中间调","def":0,"min":-100,"max":100,"step":1,"unit":""}]},{"kind":"hdrToning","label":"HDR 色调","group":"调整","action":"image.adjust.hdrToning","replaces":false,"colors":false,"params":[{"key":"radius","label":"半径","def":50,"min":1,"max":500,"step":1,"unit":"像素","spatial":true},{"key":"strength","label":"强度","def":0.5,"min":0.1,"max":4,"step":0.01,"unit":""},{"key":"gamma","label":"灰度系数","def":1,"min":0.1,"max":2,"step":0.01,"unit":""},{"key":"exposure","label":"曝光度","def":0,"min":-5,"max":5,"step":0.05,"unit":""},{"key":"detail","label":"细节","def":30,"min":-100,"max":300,"step":1,"unit":"%"},{"key":"vibrance","label":"自然饱和度","def":0,"min":-100,"max":100,"step":1,"unit":"%"},{"key":"saturation","label":"饱和度","def":20,"min":-100,"max":100,"step":1,"unit":"%"}]},{"kind":"matchColor","label":"匹配颜色","group":"调整","action":"image.adjust.matchColor","replaces":false,"colors":false,"params":[{"key":"luminance","label":"明亮度","def":100,"min":1,"max":200,"step":1,"unit":""},{"key":"intensity","label":"颜色强度","def":100,"min":1,"max":200,"step":1,"unit":""},{"key":"fade","label":"渐隐","def":0,"min":0,"max":100,"step":1,"unit":""},{"key":"neutralize","label":"中和","def":true,"type":"bool"}]},{"kind":"replaceColor","label":"替换颜色","group":"调整","action":"image.adjust.replaceColor","replaces":false,"colors":false,"params":[{"key":"color","label":"取样颜色","def":[255,0,0],"type":"color"},{"key":"fuzziness","label":"颜色容差","def":40,"min":0,"max":200,"step":1,"unit":""},{"key":"hue","label":"色相","def":0,"min":-180,"max":180,"step":1,"unit":""},{"key":"saturation","label":"饱和度","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"lightness","label":"明度","def":0,"min":-100,"max":100,"step":1,"unit":""}]},{"kind":"cameraRaw","label":"Camera Raw 滤镜","group":"校正","action":"filter.cameraRaw","replaces":false,"colors":false,"params":[{"key":"temperature","label":"色温","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"tint","label":"色调","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"exposure","label":"曝光","def":0,"min":-5,"max":5,"step":0.05,"unit":""},{"key":"contrast","label":"对比度","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"highlights","label":"高光","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"shadows","label":"阴影","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"whites","label":"白色","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"blacks","label":"黑色","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"texture","label":"纹理","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"clarity","label":"清晰度","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"dehaze","label":"去除薄雾","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"vibrance","label":"自然饱和度","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"saturation","label":"饱和度","def":0,"min":-100,"max":100,"step":1,"unit":""}]},{"kind":"lensCorrection","label":"镜头校正","group":"校正","action":"filter.lensCorrection","replaces":false,"colors":false,"params":[{"key":"distortion","label":"移去扭曲","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"caRed","label":"修复红/青边","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"caBlue","label":"修复蓝/黄边","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"vignette","label":"晕影 数量","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"midpoint","label":"晕影 中点","def":50,"min":0,"max":100,"step":1,"unit":""},{"key":"vertical","label":"垂直透视","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"horizontal","label":"水平透视","def":0,"min":-100,"max":100,"step":1,"unit":""},{"key":"angle","label":"角度","def":0,"min":-180,"max":180,"step":0.1,"unit":"度"},{"key":"scale","label":"比例","def":100,"min":50,"max":150,"step":1,"unit":"%"},{"key":"edge","label":"边缘","def":"clear","type":"enum","options":[["clear","透明度"],["repeat","边缘扩展"]]}]}],"adjustments":{"exposure":{"label":"曝光度","accepts":"exposure(-20…20) offset(-0.5…0.5) gamma(0.01…9.99) workingGamma(1…3 或 \"srgb\"，默认 2.2)","lut":true,"neutral":{"exposure":0,"offset":0,"gamma":1}},"levels":{"label":"色阶","accepts":"inputBlack(0…254) inputWhite(1…255) gamma(0.01…9.99) outputBlack(0…255) outputWhite(0…255) channel(rgb|r|g|b) channels({rgb,r,g,b})","lut":true,"neutral":{"inputBlack":0,"inputWhite":255,"gamma":1,"outputBlack":0,"outputWhite":255}},"curves":{"label":"曲线","accepts":"points([[输入,输出],…] 2…19 个点，输入严格递增，0…255) channel(rgb|r|g|b) channels({rgb,r,g,b}) interpolation(spline|monotone|linear，默认 spline = PS 的自然三次样条)","lut":true,"neutral":{"points":[[0,0],[255,255]]}},"hueSaturation":{"label":"色相/饱和度","accepts":"hue(-180…180) saturation(-100…100) lightness(-100…100) colorize colorizeHue(0…360) colorizeSaturation(0…100) reds/yellows/greens/cyans/blues/magentas（各 { hue, saturation, lightness }，可带 range:[外低,内低,内高,外高]）","lut":false,"neutral":{"hue":0,"saturation":0,"lightness":0}},"vibrance":{"label":"自然饱和度（近似）","accepts":"vibrance(-100…100) saturation(-100…100)","lut":false,"neutral":{"vibrance":0,"saturation":0}},"photoFilter":{"label":"照片滤镜（近似）","accepts":"color([r,g,b]，每项 0…255) density(0…100) preserveLuminosity(boolean)","lut":false,"neutral":{"color":[0,0,0],"density":0,"preserveLuminosity":true}},"selectiveColor":{"label":"可选颜色","accepts":"plates(10×4 个 -100…100 整数，plates[0] 为 PSD 占位) method(0 相对 / 1 绝对)","lut":false,"neutral":{"plates":[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]],"method":0}},"brightnessContrast":{"label":"亮度/对比度（旧式）","accepts":"brightness(-150…150) contrast(-100…100，PS 面板只给 -50…100) useLegacy(必须 true) meanValue(0…255，默认 127)","lut":true,"neutral":{"brightness":0,"contrast":0}},"invert":{"label":"反相","accepts":"（无参数）","lut":true,"neutral":null},"posterize":{"label":"色调分离","accepts":"levels(2…255 整数)","lut":true,"neutral":null},"threshold":{"label":"阈值","accepts":"level(1…255 整数)","lut":false,"neutral":null},"desaturate":{"label":"去色","accepts":"（无参数）","lut":false,"neutral":null},"blackWhite":{"label":"黑白","accepts":"red yellow green cyan blue magenta（均 -200…300，默认 40/60/40/60/20/80）useTint(boolean) tintColor([r,g,b]，useTint 时必填)","lut":false,"neutral":null},"channelMixer":{"label":"通道混合器","accepts":"monochrome red/green/blue/gray 各 { red, green, blue, constant }（-200…200）","lut":false,"neutral":{"monochrome":false}},"colorBalance":{"label":"色彩平衡（近似）","accepts":"shadows/midtones/highlights（各 3 个 -100…100：[青-红, 洋红-绿, 黄-蓝]）preserveLuminosity","lut":false,"neutral":{"shadows":[0,0,0],"midtones":[0,0,0],"highlights":[0,0,0]}},"gradientMap":{"label":"渐变映射","accepts":"stops([{ position:0…1, color:[r,g,b], midpoint?:0…1 }, …] 至少 2 个) reverse","lut":false,"neutral":null}},"adjustmentLayerKinds":{"brightnessContrast":{"label":"亮度/对比度","blocks":["brit","CgEd"],"accepts":"brightness(-150…150) contrast(-50…100) useLegacy labColorOnly"},"levels":{"label":"色阶","blocks":["levl"],"accepts":"shadowInput(0…253) highlightInput(2…255) gamma(0.10…9.99) shadowOutput(0…255) highlightOutput(0…255)"},"curves":{"label":"曲线","blocks":["curv"],"accepts":"points（[[输入,输出], …]，2…19 个点，输入递增，0…255）"},"hueSaturation":{"label":"色相/饱和度","blocks":["hue2"],"accepts":"hue(-180…180) saturation(-100…100) lightness(-100…100) colorize"},"invert":{"label":"反相","blocks":["nvrt"],"accepts":"（无参数）"},"posterize":{"label":"色调分离","blocks":["post"],"accepts":"levels(2…255)"},"threshold":{"label":"阈值","blocks":["thrs"],"accepts":"level(1…255)"},"blackWhite":{"label":"黑白","blocks":["blwh"],"accepts":"red yellow green cyan blue magenta（均 -200…300）useTint"},"colorBalance":{"label":"色彩平衡","blocks":["blnc"],"accepts":"shadows/midtones/highlights（各 3 个 -100…100 的整数）preserveLuminosity"},"exposure":{"label":"曝光度","blocks":["expA"],"accepts":"exposure(-20…20) offset(-0.5…0.5) gamma(0.01…9.99)"},"channelMixer":{"label":"通道混合器","blocks":["mixr"],"accepts":"monochrome"},"selectiveColor":{"label":"可选颜色","blocks":["selc"],"accepts":"method(0 相对 / 1 绝对)"},"vibrance":{"label":"自然饱和度","blocks":["vibA"],"accepts":"vibrance(-100…100) saturation(-100…100)"},"photoFilter":{"label":"照片滤镜","blocks":["phfl"],"accepts":"color([红, 绿, 蓝] 0…255) density(0…100，百分比) preserveLuminosity"},"colorLookup":{"label":"颜色查找","blocks":["clrL"],"accepts":"lookupType(3DLUT / abstractProfile / deviceLinkProfile / abstract / deviceLink) lutFormat(LUTFormatCUBE / LUTFormat3DL / LUTFormatLOOK / LUTFormatICC / LUTFormatCSP) dataOrder(rgbOrder / bgrOrder / profileDataOrderRGB / profileDataOrderBGR) name dither tableOrder lutData(Uint8Array) profile(Uint8Array)"},"gradientMap":{"label":"渐变映射","blocks":["grdm"],"accepts":"stops([[位置0…4096, 红, 绿, 蓝], …]，2…255 个) opacityStops([[位置0…4096, 不透明度0…255], …]，2…255 个) reverse dither name"}},"layerEffects":{"dropShadow":{"key":"DrSh","multi":"dropShadowMulti","label":"投影","needsResource":null,"fields":["enab","TrnS.Nm  ","present","showInDialog","blur","lagl","Dstn","Clr ","Clr .Rd  ","Clr .Grn ","Clr .Bl  ","Md  ","Opct","uglg","AntA","Ckmt","layerConceals"]},"innerShadow":{"key":"IrSh","multi":"innerShadowMulti","label":"内阴影","needsResource":null,"fields":["enab","TrnS.Nm  ","present","showInDialog","blur","lagl","Dstn","Clr ","Clr .Rd  ","Clr .Grn ","Clr .Bl  ","Md  ","Opct","uglg","AntA","Ckmt"]},"outerGlow":{"key":"OrGl","multi":null,"label":"外发光","needsResource":null,"fields":["enab","TrnS.Nm  ","present","showInDialog","blur","Clr ","Clr .Rd  ","Clr .Grn ","Clr .Bl  ","Md  ","Opct","glwS","AntA","Nose","Inpr","Ckmt","ShdN"]},"innerGlow":{"key":"IrGl","multi":null,"label":"内发光","needsResource":null,"fields":["enab","TrnS.Nm  ","present","showInDialog","blur","Clr ","Clr .Rd  ","Clr .Grn ","Clr .Bl  ","Md  ","Opct","glwS","GlwT","AntA","Nose","Inpr","Ckmt","ShdN"]},"bevelEmboss":{"key":"ebbl","multi":null,"label":"斜面和浮雕","needsResource":null,"fields":["enab","TrnS.Nm  ","MpgS.Nm  ","present","showInDialog","blur","lagl","srgR","hglM","sdwM","hglC","hglC.Rd  ","hglC.Grn ","hglC.Bl  ","sdwC","sdwC.Rd  ","sdwC.Grn ","sdwC.Bl  ","bvlS","hglO","sdwO","Sftn","uglg","Lald","bvlT","bvlD","useTexture","useShape","antialiasGloss"]},"satin":{"key":"ChFX","multi":null,"label":"光泽","needsResource":null,"fields":["enab","MpgS.Nm  ","present","showInDialog","blur","Md  ","Clr ","Clr .Rd  ","Clr .Grn ","Clr .Bl  ","AntA","Opct","Dstn","Invr","lagl"]},"colorOverlay":{"key":"SoFi","multi":"solidFillMulti","label":"颜色叠加","needsResource":null,"fields":["enab","present","showInDialog","Md  ","Clr ","Clr .Rd  ","Clr .Grn ","Clr .Bl  ","Opct"]},"gradientOverlay":{"key":"GrFl","multi":"gradientFillMulti","label":"渐变叠加","needsResource":null,"fields":["enab","present","showInDialog","Md  ","Opct","Algn","Scl ","Dthr","Rvrs","Type","Ofst.Hrzn","Ofst.Vrtc","Grad.Nm  ","Grad.GrdF","Grad.Intr","Grad.Clrs.0.Clr ","Grad.Clrs.0.Clr .Rd  ","Grad.Clrs.0.Clr .Grn ","Grad.Clrs.0.Clr .Bl  ","Grad.Clrs.0.Type","Grad.Clrs.0.Lctn","Grad.Clrs.0.Mdpn","Grad.Clrs.1.Clr ","Grad.Clrs.1.Clr .Rd  ","Grad.Clrs.1.Clr .Grn ","Grad.Clrs.1.Clr .Bl  ","Grad.Clrs.1.Type","Grad.Clrs.1.Lctn","Grad.Clrs.1.Mdpn","Grad.Trns.0.Opct","Grad.Trns.0.Lctn","Grad.Trns.0.Mdpn","Grad.Trns.1.Opct","Grad.Trns.1.Lctn","Grad.Trns.1.Mdpn","gs99","Angl"]},"patternOverlay":{"key":"patternFill","multi":null,"label":"图案叠加","needsResource":"Patt（文档全局图案资源）","fields":["enab","present","showInDialog","Md  ","Opct","Scl ","Ptrn.Nm  ","Ptrn.Idnt","phase.Hrzn","phase.Vrtc","Algn"]},"stroke":{"key":"FrFX","multi":"frameFXMulti","label":"描边","needsResource":null,"fields":["enab","present","showInDialog","Styl","PntT","Md  ","Opct","Sz  ","Clr ","Clr .Rd  ","Clr .Grn ","Clr .Bl  ","overprint"]}},"blendModes":[{"key":"pass","label":"穿透（仅组）"},{"key":"norm","label":"正常"},{"key":"diss","label":"溶解"},{"key":"dark","label":"变暗"},{"key":"mul ","label":"正片叠底"},{"key":"idiv","label":"颜色加深"},{"key":"lbrn","label":"线性加深"},{"key":"dkCl","label":"深色"},{"key":"lite","label":"变亮"},{"key":"scrn","label":"滤色"},{"key":"div ","label":"颜色减淡"},{"key":"lddg","label":"线性减淡"},{"key":"lgCl","label":"浅色"},{"key":"over","label":"叠加"},{"key":"sLit","label":"柔光"},{"key":"hLit","label":"强光"},{"key":"vLit","label":"亮光"},{"key":"lLit","label":"线性光"},{"key":"pLit","label":"点光"},{"key":"hMix","label":"实色混合"},{"key":"diff","label":"差值"},{"key":"smud","label":"排除"},{"key":"fsub","label":"减去"},{"key":"fdiv","label":"划分"},{"key":"hue ","label":"色相"},{"key":"sat ","label":"饱和度"},{"key":"colr","label":"颜色"},{"key":"lum ","label":"明度"}],"newDocument":{"modes":[{"value":"rgb","label":"RGB 颜色","channels":3},{"value":"gray","label":"灰度","channels":1},{"value":"cmyk","label":"CMYK 颜色","channels":4}],"presets":[{"group":"推荐","items":[{"name":"默认 Photoshop 大小","width":1000,"height":800,"resolution":72},{"name":"电商主图","width":1200,"height":1200,"resolution":72},{"name":"电商详情页","width":750,"height":2000,"resolution":72},{"name":"方形海报","width":1080,"height":1080,"resolution":72},{"name":"桌面横幅","width":1920,"height":1080,"resolution":72}]},{"group":"照片","items":[{"name":"横向 4×6","width":1800,"height":1200,"resolution":300},{"name":"纵向 4×6","width":1200,"height":1800,"resolution":300},{"name":"横向 5×7","width":2100,"height":1500,"resolution":300},{"name":"纵向 8×10","width":2400,"height":3000,"resolution":300}]},{"group":"打印","items":[{"name":"A4","width":2480,"height":3508,"resolution":300},{"name":"A3","width":3508,"height":4961,"resolution":300},{"name":"信纸","width":2550,"height":3300,"resolution":300},{"name":"明信片","width":1200,"height":1800,"resolution":300}]},{"group":"图稿和插图","items":[{"name":"默认","width":2000,"height":2000,"resolution":300},{"name":"海报","width":5400,"height":7200,"resolution":300}]},{"group":"Web","items":[{"name":"Web 最小尺寸","width":1366,"height":768,"resolution":72},{"name":"Web 中等尺寸","width":1920,"height":1080,"resolution":72},{"name":"Web 最大尺寸","width":2560,"height":1440,"resolution":72}]},{"group":"移动设备","items":[{"name":"iPhone 16 Pro","width":1206,"height":2622,"resolution":72},{"name":"iPhone 14","width":1170,"height":2532,"resolution":72},{"name":"iPad Pro 11\"","width":1668,"height":2388,"resolution":72},{"name":"Android 1080p","width":1080,"height":1920,"resolution":72}]},{"group":"胶片和视频","items":[{"name":"HDV/HDTV 1080p","width":1920,"height":1080,"resolution":72},{"name":"4K UHD","width":3840,"height":2160,"resolution":72},{"name":"DCI 4K","width":4096,"height":2160,"resolution":72}]}],"backgrounds":["white","black","transparent","color"]},"selection":{"shapes":["rect","ellipse","polygon","all"],"modes":["replace","add","subtract","intersect","xor"],"example":[{"type":"rect","x":10,"y":10,"width":200,"height":100,"feather":4},{"type":"ellipse","x":60,"y":30,"width":80,"height":80,"mode":"subtract"}]},"outputs":{"psd":true,"bitmap":["png","jpg","webp","tiff"],"source":["layers","composite"],"artboard":true},"deformKinds":["warp","quiltWarp","perspectiveWarp","puppetWarp"]}