import type { Tool } from 'fastmcp'; import { z } from 'zod'; import { useLogger } from '../utils/logger'; import { invokeComfyUIWorkflow, GenerateParams } from '../utils/comfyui'; const name = '产品图精修'; const description = '产品图精修工具,改为白色背景'; const parameters = z.object({ productImageUrl: z.string().url().describe('商品图的URL地址'), }); type ProductImageRetouchingParams = z.infer; const productImageRetouching: Tool< any, z.ZodType > = { name, description, parameters, execute: async (args, context) => { const { productImageUrl } = args; const { log } = context; const logger = useLogger(log); logger.info('Starting product image retouching', { productImageUrl, }); // 定义工作流参数 const generateParams: GenerateParams = { '20': { class_type: 'LoadImage', inputs: { image: productImageUrl, }, }, workflowUuid: '3ce63f1f851942e59b32f17866c4c1c7', }; try { // 调用ComfyUI工作流 const result = await invokeComfyUIWorkflow({ templateUuid: '4df2efa0f18d46dc9758803e478eb51c', generateParams, }); logger.info('Product image retouching workflow initiated', { result: result, }); return result; } catch (error) { logger.error('Failed to execute product image retouching', { error: (error as Error).message, }); return 'Failed to execute product image retouching'; } }, }; export { productImageRetouching };