755 lines
34 KiB
Python
755 lines
34 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
AI 工具定义
|
||
将 PS 操作注册为 function calling 的 tool schema
|
||
前端收到 tool_calls 后执行 JSX,把结果回传
|
||
"""
|
||
|
||
# ==================== 工具 Schema(OpenAI function calling 格式)====================
|
||
|
||
PS_TOOLS = [
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "get_document_info",
|
||
"description": "获取当前 Photoshop 文档信息(名称、尺寸、分辨率)",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "get_layer_structure",
|
||
"description": "获取当前文档的图层结构树(所有顶层组和子图层)",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "create_layer",
|
||
"description": "在 Photoshop 中创建新图层",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"description": "新图层的名称"
|
||
}
|
||
},
|
||
"required": ["name"]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "rename_layer",
|
||
"description": "重命名当前选中的图层",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"new_name": {
|
||
"type": "string",
|
||
"description": "新名称"
|
||
}
|
||
},
|
||
"required": ["new_name"]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "delete_layer",
|
||
"description": "删除当前选中的图层",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "duplicate_layer",
|
||
"description": "复制当前选中的图层",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "align_layers",
|
||
"description": "对齐当前选中的图层",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"type": {
|
||
"type": "string",
|
||
"enum": ["left", "right", "centerH", "top", "bottom", "centerV"],
|
||
"description": "对齐方式:left=左对齐, right=右对齐, centerH=水平居中, top=顶对齐, bottom=底对齐, centerV=垂直居中"
|
||
}
|
||
},
|
||
"required": ["type"]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "merge_layers",
|
||
"description": "合并当前选中的图层",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "create_layer_group",
|
||
"description": "创建图层组(如果不存在)",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"description": "图层组名称"
|
||
}
|
||
},
|
||
"required": ["name"]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "move_layer_to_group",
|
||
"description": "将当前图层移入指定图层组",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"group_name": {
|
||
"type": "string",
|
||
"description": "目标图层组名称"
|
||
}
|
||
},
|
||
"required": ["group_name"]
|
||
}
|
||
}
|
||
},
|
||
# ==================== 套图工具 ====================
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "identify_pieces",
|
||
"description": "识别裁片部位。截取当前PS画布并分析每个裁片图层的形状和位置,用视觉AI识别哪个图层是前片、后片、袖子等。应在套图前先调用,以建立图层名到裁片部位的对应关系。",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "generate_garment_preview",
|
||
"description": "【阶段1-生成预览】将用户上传的成衣照片中的花样,填充到 PS 文档的裁片轮廓上,生成一张带轮廓的花样预览图。预览图会显示在聊天中,供用户确认效果。需要用户已上传成衣图片。",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "extract_and_apply_all_pieces",
|
||
"description": "【阶段2-提取套图】用户确认预览 OK 后调用。根据 identify_pieces 的分析结果,对每个裁片执行不同操作:solid=PS纯色填充;fill_pattern=AI提取花型铺满;theme_pattern=底层纯色填充+上层AI提取主题图案(白底+正片叠底);mixed_pattern=底层AI提取花型+上层AI提取主题图案(白底+正片叠底)。",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {
|
||
"pieces": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {"type": "string", "description": "裁片图层名称"},
|
||
"type": {"type": "string", "enum": ["solid", "fill_pattern", "theme_pattern", "mixed_pattern"], "description": "图案类型:solid=纯色;fill_pattern=花型铺满;theme_pattern=主题图案+纯色底;mixed_pattern=主题图案+花型底纹"},
|
||
"color": {"type": "string", "description": "颜色 hex 值。solid 和 theme_pattern 必须提供(theme_pattern 的 color 是底色)"},
|
||
"description": {"type": "string", "description": "图案内容描述"}
|
||
},
|
||
"required": ["name", "type"]
|
||
},
|
||
"description": "裁片列表,type 和 color 来自 identify_pieces 的分析结果"
|
||
}
|
||
},
|
||
"required": ["pieces"]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"type": "function",
|
||
"function": {
|
||
"name": "verify_pattern_result",
|
||
"description": "验证套图效果。自动截取当前 PS 画布与原始成衣对比,由视觉 AI 评分(1-10)并给出改进建议。应在套图完成后调用。",
|
||
"parameters": {
|
||
"type": "object",
|
||
"properties": {},
|
||
"required": []
|
||
}
|
||
}
|
||
},
|
||
# ==================== PS 通用操作工具 ====================
|
||
{"type": "function", "function": {
|
||
"name": "move_layer",
|
||
"description": "移动图层。dx 正值向右,dy 正值向下(单位像素)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"dx": {"type": "number", "description": "水平位移(像素,正=右)"},
|
||
"dy": {"type": "number", "description": "垂直位移(像素,正=下)"}
|
||
}, "required": ["name", "dx", "dy"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "resize_layer",
|
||
"description": "缩放图层(百分比)。100=不变,200=放大2倍,50=缩小一半",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"scale_x": {"type": "number", "description": "水平缩放百分比"},
|
||
"scale_y": {"type": "number", "description": "垂直缩放百分比(省略则与 scale_x 相同)"}
|
||
}, "required": ["name", "scale_x"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "rotate_layer",
|
||
"description": "旋转图层(角度,正值=顺时针)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"angle": {"type": "number", "description": "旋转角度(正=顺时针)"}
|
||
}, "required": ["name", "angle"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "flip_layer",
|
||
"description": "翻转图层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"direction": {"type": "string", "enum": ["horizontal", "vertical"], "description": "翻转方向"}
|
||
}, "required": ["name", "direction"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "set_layer_opacity",
|
||
"description": "设置图层透明度(0=完全透明,100=完全不透明)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"opacity": {"type": "number", "description": "透明度 0-100"}
|
||
}, "required": ["name", "opacity"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "set_layer_blend_mode",
|
||
"description": "设置图层混合模式",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"mode": {"type": "string", "enum": ["normal","multiply","screen","overlay","darken","lighten","color_dodge","color_burn","soft_light","hard_light","difference","exclusion","hue","saturation","color","luminosity"], "description": "混合模式"}
|
||
}, "required": ["name", "mode"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "set_layer_visible",
|
||
"description": "显示或隐藏图层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"visible": {"type": "boolean", "description": "true=显示,false=隐藏"}
|
||
}, "required": ["name", "visible"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "set_text_content",
|
||
"description": "修改文字图层的文本内容",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "文字图层名称"},
|
||
"text": {"type": "string", "description": "新的文本内容"}
|
||
}, "required": ["name", "text"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "set_text_color",
|
||
"description": "修改文字图层的颜色",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "文字图层名称"},
|
||
"color": {"type": "string", "description": "颜色 hex 值,如 #FF0000"}
|
||
}, "required": ["name", "color"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "set_text_size",
|
||
"description": "修改文字图层的字号(像素)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "文字图层名称"},
|
||
"size": {"type": "number", "description": "字号(像素)"}
|
||
}, "required": ["name", "size"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "group_layers",
|
||
"description": "将多个图层编组",
|
||
"parameters": {"type": "object", "properties": {
|
||
"layer_names": {"type": "array", "items": {"type": "string"}, "description": "要编组的图层名称列表"},
|
||
"group_name": {"type": "string", "description": "组名称"}
|
||
}, "required": ["layer_names", "group_name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "merge_visible",
|
||
"description": "合并所有可见图层",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "flatten_image",
|
||
"description": "拼合图像(所有图层合并为背景层)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "resize_canvas",
|
||
"description": "调整画布大小(像素)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"width": {"type": "number", "description": "画布宽度(像素)"},
|
||
"height": {"type": "number", "description": "画布高度(像素)"},
|
||
"anchor": {"type": "string", "enum": ["top-left","top","top-right","left","center","right","bottom-left","bottom","bottom-right"], "description": "锚点位置(默认 center)"}
|
||
}, "required": ["width", "height"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "adjust_brightness_contrast",
|
||
"description": "调整当前图层的亮度和对比度",
|
||
"parameters": {"type": "object", "properties": {
|
||
"brightness": {"type": "number", "description": "亮度 -150 到 150"},
|
||
"contrast": {"type": "number", "description": "对比度 -50 到 100"}
|
||
}, "required": ["brightness", "contrast"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "desaturate",
|
||
"description": "将当前图层去色(变为灰度)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "rasterize_layer",
|
||
"description": "栅格化图层(将智能对象/文字/形状转为像素图层)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "align_layers_tool",
|
||
"description": "对齐多个图层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"layer_names": {"type": "array", "items": {"type": "string"}, "description": "要对齐的图层名"},
|
||
"alignment": {"type": "string", "enum": ["left","center_h","right","top","center_v","bottom"], "description": "对齐方式"}
|
||
}, "required": ["layer_names", "alignment"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "distribute_layers",
|
||
"description": "等距分布多个图层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"layer_names": {"type": "array", "items": {"type": "string"}, "description": "要分布的图层名"},
|
||
"direction": {"type": "string", "enum": ["horizontal","vertical"], "description": "分布方向"}
|
||
}, "required": ["layer_names", "direction"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "add_stroke",
|
||
"description": "给图层添加描边效果",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"size": {"type": "number", "description": "描边宽度(像素)"},
|
||
"color": {"type": "string", "description": "描边颜色 hex,如 #FF0000"},
|
||
"position": {"type": "string", "enum": ["outside","inside","center"], "description": "描边位置(默认 outside)"}
|
||
}, "required": ["name", "size", "color"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "create_clipping_mask",
|
||
"description": "为图层创建剪贴蒙版(裁切到下方图层形状)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "release_clipping_mask",
|
||
"description": "释放图层的剪贴蒙版",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "undo",
|
||
"description": "撤销操作(Ctrl+Z),可指定步数",
|
||
"parameters": {"type": "object", "properties": {
|
||
"steps": {"type": "number", "description": "撤销步数(默认 1)"}
|
||
}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "get_layer_bounds",
|
||
"description": "获取图层的位置和尺寸信息(left/top/width/height/center)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "create_document",
|
||
"description": "新建 Photoshop 文档",
|
||
"parameters": {"type": "object", "properties": {
|
||
"width": {"type": "number", "description": "宽度(像素)"},
|
||
"height": {"type": "number", "description": "高度(像素)"},
|
||
"resolution": {"type": "number", "description": "分辨率 DPI(默认 150)"},
|
||
"name": {"type": "string", "description": "文档名称"}
|
||
}, "required": ["width", "height"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "save_document",
|
||
"description": "保存当前文档(Ctrl+S)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "resize_image",
|
||
"description": "调整图像大小(像素/分辨率)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"width": {"type": "number", "description": "新宽度(像素)"},
|
||
"height": {"type": "number", "description": "新高度(像素)"},
|
||
"resolution": {"type": "number", "description": "新分辨率 DPI(可选)"}
|
||
}, "required": ["width", "height"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "gaussian_blur",
|
||
"description": "对当前图层应用高斯模糊",
|
||
"parameters": {"type": "object", "properties": {
|
||
"radius": {"type": "number", "description": "模糊半径(像素)"}
|
||
}, "required": ["radius"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "auto_levels",
|
||
"description": "自动色阶(快速修正色调范围)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "auto_contrast",
|
||
"description": "自动对比度",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "invert_colors",
|
||
"description": "反相(颜色取反)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "convert_to_rgb",
|
||
"description": "转换为 RGB 色彩模式",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "convert_to_cmyk",
|
||
"description": "转换为 CMYK 色彩模式(印刷用)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "add_drop_shadow",
|
||
"description": "给图层添加投影效果",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"distance": {"type": "number", "description": "投影距离(像素)"},
|
||
"size": {"type": "number", "description": "投影大小/模糊(像素)"},
|
||
"opacity": {"type": "number", "description": "投影不透明度 0-100(默认 75)"},
|
||
"angle": {"type": "number", "description": "光照角度(默认 120)"}
|
||
}, "required": ["name", "distance", "size"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "clear_layer_effects",
|
||
"description": "清除图层的所有图层样式(投影/描边/发光等)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "bring_to_front",
|
||
"description": "将图层移到最顶层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "send_to_back",
|
||
"description": "将图层移到最底层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "crop_document",
|
||
"description": "裁切画布到指定区域(像素坐标)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"left": {"type": "number"}, "top": {"type": "number"},
|
||
"right": {"type": "number"}, "bottom": {"type": "number"}
|
||
}, "required": ["left", "top", "right", "bottom"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "trim_document",
|
||
"description": "自动裁切(去除透明或纯色边缘)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"type": {"type": "string", "enum": ["transparent", "topleft"], "description": "裁切依据(默认 topleft 即左上角颜色)"}
|
||
}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "add_guide",
|
||
"description": "添加参考线",
|
||
"parameters": {"type": "object", "properties": {
|
||
"position": {"type": "number", "description": "位置(像素)"},
|
||
"direction": {"type": "string", "enum": ["horizontal", "vertical"], "description": "方向"}
|
||
}, "required": ["position", "direction"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "clear_guides",
|
||
"description": "清除所有参考线",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "fill_selection",
|
||
"description": "用颜色填充当前选区",
|
||
"parameters": {"type": "object", "properties": {
|
||
"color": {"type": "string", "description": "填充颜色 hex"},
|
||
"opacity": {"type": "number", "description": "填充不透明度 0-100(默认 100)"}
|
||
}, "required": ["color"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "inverse_selection",
|
||
"description": "反选(选中未选区域)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "feather_selection",
|
||
"description": "羽化选区边缘",
|
||
"parameters": {"type": "object", "properties": {
|
||
"radius": {"type": "number", "description": "羽化半径(像素)"}
|
||
}, "required": ["radius"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "adjust_levels",
|
||
"description": "调整色阶(输入黑点/灰度系数/白点)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"black": {"type": "number", "description": "输入黑点 0-253(默认 0)"},
|
||
"gamma": {"type": "number", "description": "灰度系数 0.1-9.99(默认 1.0,<1变暗 >1变亮)"},
|
||
"white": {"type": "number", "description": "输入白点 2-255(默认 255)"}
|
||
}, "required": ["black", "gamma", "white"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "copy_merged_to_new_layer",
|
||
"description": "复制合并所有可见内容到新图层(Ctrl+Shift+C + 粘贴)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "lock_layer",
|
||
"description": "锁定或解锁图层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"locked": {"type": "boolean", "description": "true=锁定,false=解锁"}
|
||
}, "required": ["name", "locked"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "set_foreground_color",
|
||
"description": "设置前景色",
|
||
"parameters": {"type": "object", "properties": {
|
||
"color": {"type": "string", "description": "颜色 hex 值"}
|
||
}, "required": ["color"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "save_document_as",
|
||
"description": "文件另存为(支持 PSD/PNG/JPG)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"path": {"type": "string", "description": "保存路径"},
|
||
"format": {"type": "string", "enum": ["psd", "png", "jpg"], "description": "文件格式"}
|
||
}, "required": ["path"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "add_layer_mask",
|
||
"description": "为图层添加蒙版(全白=全显示 / 全黑=全隐藏 / 基于当前选区)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"hide_all": {"type": "boolean", "description": "true=全黑蒙版(隐藏),false=全白蒙版(显示,默认)"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "delete_layer_mask",
|
||
"description": "删除图层蒙版",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"apply": {"type": "boolean", "description": "true=应用蒙版后删除,false=直接丢弃(默认)"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "convert_to_smart_object",
|
||
"description": "将图层转为智能对象",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"}
|
||
}, "required": ["name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "adjust_hsl",
|
||
"description": "调整色相/饱和度/明度(H=-180~180, S=-100~100, L=-100~100)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"hue": {"type": "number", "description": "色相偏移 -180到180"},
|
||
"saturation": {"type": "number", "description": "饱和度 -100到100"},
|
||
"lightness": {"type": "number", "description": "明度 -100到100"}
|
||
}, "required": ["hue", "saturation", "lightness"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "create_text_layer",
|
||
"description": "创建文字图层",
|
||
"parameters": {"type": "object", "properties": {
|
||
"text": {"type": "string", "description": "文字内容"},
|
||
"x": {"type": "number", "description": "X 坐标(像素)"},
|
||
"y": {"type": "number", "description": "Y 坐标(像素)"},
|
||
"font_size": {"type": "number", "description": "字号(像素)"},
|
||
"color": {"type": "string", "description": "颜色 hex(默认黑色)"},
|
||
"font_name": {"type": "string", "description": "字体名称(可选)"}
|
||
}, "required": ["text", "x", "y", "font_size"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "get_active_layer_info",
|
||
"description": "获取当前选中图层的详细信息(名称/类型/尺寸/位置/透明度/混合模式等)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "list_all_layer_names",
|
||
"description": "列出文档中所有图层名称(扁平列表,含类型和可见性)",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "duplicate_layer_to_document",
|
||
"description": "复制图层到另一个已打开的文档",
|
||
"parameters": {"type": "object", "properties": {
|
||
"name": {"type": "string", "description": "图层名称"},
|
||
"target_doc": {"type": "string", "description": "目标文档名称"}
|
||
}, "required": ["name", "target_doc"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "switch_document",
|
||
"description": "切换到另一个已打开的文档",
|
||
"parameters": {"type": "object", "properties": {
|
||
"doc_name": {"type": "string", "description": "文档名称"}
|
||
}, "required": ["doc_name"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "list_documents",
|
||
"description": "列出所有已打开的文档",
|
||
"parameters": {"type": "object", "properties": {}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "get_pixel_color",
|
||
"description": "获取画布上指定坐标的像素颜色(取色器)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"x": {"type": "number", "description": "X 坐标"},
|
||
"y": {"type": "number", "description": "Y 坐标"}
|
||
}, "required": ["x", "y"]}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "trim_document",
|
||
"description": "自动裁切(去除透明或纯色边缘)",
|
||
"parameters": {"type": "object", "properties": {
|
||
"type": {"type": "string", "enum": ["transparent","topleft"], "description": "裁切依据"}
|
||
}, "required": []}
|
||
}},
|
||
{"type": "function", "function": {
|
||
"name": "close_document",
|
||
"description": "关闭当前文档",
|
||
"parameters": {"type": "object", "properties": {
|
||
"save": {"type": "boolean", "description": "是否保存(默认不保存)"}
|
||
}, "required": []}
|
||
}},
|
||
]
|
||
|
||
# 工具名称映射(中文显示用)
|
||
TOOL_DISPLAY_NAMES = {
|
||
"get_document_info": "查看文档信息",
|
||
"get_layer_structure": "查看图层结构",
|
||
"create_layer": "新建图层",
|
||
"rename_layer": "重命名图层",
|
||
"delete_layer": "删除图层",
|
||
"duplicate_layer": "复制图层",
|
||
"align_layers": "对齐图层",
|
||
"merge_layers": "合并图层",
|
||
"create_layer_group": "创建图层组",
|
||
"move_layer_to_group": "移入图层组",
|
||
"identify_pieces": "识别裁片部位",
|
||
"generate_garment_preview": "生成花样预览",
|
||
"extract_and_apply_all_pieces": "提取并套图",
|
||
"verify_pattern_result": "验证套图效果",
|
||
# PS 通用操作
|
||
"move_layer": "移动图层",
|
||
"resize_layer": "缩放图层",
|
||
"rotate_layer": "旋转图层",
|
||
"flip_layer": "翻转图层",
|
||
"set_layer_opacity": "设置透明度",
|
||
"set_layer_blend_mode": "设置混合模式",
|
||
"set_layer_visible": "显示/隐藏图层",
|
||
"set_text_content": "修改文字",
|
||
"set_text_color": "修改文字颜色",
|
||
"set_text_size": "修改字号",
|
||
"group_layers": "编组图层",
|
||
"merge_visible": "合并可见",
|
||
"flatten_image": "拼合图像",
|
||
"resize_canvas": "调整画布",
|
||
"adjust_brightness_contrast": "亮度/对比度",
|
||
"desaturate": "去色",
|
||
"rasterize_layer": "栅格化",
|
||
"align_layers_tool": "对齐图层",
|
||
"distribute_layers": "分布图层",
|
||
"add_stroke": "添加描边",
|
||
"create_clipping_mask": "创建剪贴蒙版",
|
||
"release_clipping_mask": "释放剪贴蒙版",
|
||
"undo": "撤销",
|
||
"get_layer_bounds": "获取图层位置",
|
||
"create_document": "新建文档",
|
||
"save_document": "保存文档",
|
||
"resize_image": "调整图像大小",
|
||
"gaussian_blur": "高斯模糊",
|
||
"auto_levels": "自动色阶",
|
||
"auto_contrast": "自动对比度",
|
||
"invert_colors": "反相",
|
||
"convert_to_rgb": "转RGB",
|
||
"convert_to_cmyk": "转CMYK",
|
||
"add_drop_shadow": "添加投影",
|
||
"clear_layer_effects": "清除图层样式",
|
||
"bring_to_front": "置顶图层",
|
||
"send_to_back": "置底图层",
|
||
"crop_document": "裁切画布",
|
||
"trim_document": "自动裁切",
|
||
"add_guide": "添加参考线",
|
||
"clear_guides": "清除参考线",
|
||
"fill_selection": "填充选区",
|
||
"inverse_selection": "反选",
|
||
"feather_selection": "羽化选区",
|
||
"adjust_levels": "色阶",
|
||
"copy_merged_to_new_layer": "复制合并",
|
||
"lock_layer": "锁定图层",
|
||
"set_foreground_color": "设置前景色",
|
||
"save_document_as": "另存为",
|
||
"add_layer_mask": "添加蒙版",
|
||
"delete_layer_mask": "删除蒙版",
|
||
"convert_to_smart_object": "转智能对象",
|
||
"adjust_hsl": "色相/饱和度",
|
||
"create_text_layer": "创建文字",
|
||
"get_active_layer_info": "查看当前图层",
|
||
"list_all_layer_names": "列出所有图层",
|
||
"duplicate_layer_to_document": "复制到文档",
|
||
"switch_document": "切换文档",
|
||
"list_documents": "列出文档",
|
||
"get_pixel_color": "取色",
|
||
"close_document": "关闭文档",
|
||
}
|