import { DetailModelResponse, ModelTypeResponse, SystemStatus, UploadImgResponse, } from "../types/common"; import { ExecutePromptRequest, ExecutePromptResult } from "../types/execute"; import { ObjectInfoResponse } from "../types/object-info"; import { ComfyImage, ComfyTaskResponse, WorkflowSimpleData, } from "../types/task"; import { ComfyUIWorkflow } from "../types/workflow"; import http from "./http"; export class ComfyApi { /** * @METHOD * @description 加载图的节点对象定义 */ async getNodeDefs(): Promise { return await http.get("/object_info"); } /** * @METHOD * @description 分页获取历史任务 */ async pageHistoryTasks( max_items: number = 10, offset?: number, ): Promise { return await http.get( `/history?max_items=${max_items}&offset=${offset}`, ); } /** * @METHOD * @description 获取历史任务详情 */ async getDetailHistoryTasks(promptId: string): Promise { return await http.get(`/history/${promptId}`); } /** * @METHOD * @description 执行工作流 */ async prompt(data: ExecutePromptRequest): Promise { return await http.post(`/prompt`, data); } /** * @METHOD * @description 中断工作流 */ async interrupt(promptId: string): Promise { return await http.post(`/interrupt`, { prompt_id: promptId, }); } /** * @METHOD * @description 获取用户当前拥有工作流 */ async getUserData(dir: string = "workflows"): Promise { return await http.get( `/userdata?dir=${dir}&recurse=true&split=false&full_info=true`, ); } /** * @METHOD * @description 获取用户当前工作流具体信息 */ async getDetailUserData(workflowPath: string): Promise { return await http.get( `/userdata/workflows%2F${workflowPath}`, ); } /** * @METHOD * @description 获取用户当前工作流具体信息 * @author LaiFQZzr * @date 2026/02/24 15:09 */ async uploadImg(body: FormData): Promise { const resp = await http.post(`/upload/image`, body); return resp.subfolder ? `${resp.subfolder}/${resp.name}` : resp.name; } /** * @METHOD * @description 获取模型类型列表 */ async getModelType(): Promise { return await http.get(`/experiment/models`); } /** * @METHOD * @description 模型 */ async getDetailModel(typeName: string): Promise { return await http.get( `/experiment/models/${typeName}`, ); } /** * @METHOD * @description 获取系统状态 */ async getSystemStatus(): Promise { return await http.get(`/system_stats`); } } export const api = new ComfyApi();