SwarmUI_MCP_代理
一个简单的SwarmUI MCP服务器原型,附带本地LangChain Ollama代理。原型只暴露了 SwarmUI/GenerateText2Image端点。它使用Python、Node.js、Typescript、Langchain、@ModelContextProtocol、Axios、Express、, 和Pydantic(尽管Pydantic在这个实现中大多未使用)。
SwarmUI MCP服务器
SwarmUI MCP服务器原型在Server.ts中声明。
/GenerateText2Image和/GetNewSession SwarmUI API端点通过generateImage()和getSessionId()方法公开 在实例化服务器时,在(MCP)服务器功能配置中进行了描述。服务器 代理使用capabilities config来了解可用工具的输入和输出模式 描述。llm使用这些工具的文本描述来理解该工具。当 启动server.js节点服务器,初始化SwarmUIServer,并创建Express服务器 POST端点位于“/generate image”,调用SwarmUIServer.generateImage,然后调用Express服务器 启动。创建一个Axios实例以向本地SwarmUI API发出HTTP请求,并存储在SwarmUIServer类中。
开发人员注意:您可能需要更改SwarmUI使用的端口以及用于图像生成的硬编码模型。
生成图像结构化工具
在tools.py中声明了一个generate_image StructuredTool,它将POST发送到Express服务器的/generate image端点 由SwarmUIServer启动。结构化工具的描述及其文档字符串由llm使用 了解工具。理论上,Pydantic模型应该断言工具输入,但当前的设置不适用于多个 输入尚未。
LangChain Ollama代理商
本地Ollama代理(目前是海豚mistral模型)用工具调用指令实例化, 以及使用generate_tool StructuredTool生成ZERO_SHOT_REACT_DERIPTION的Agent类型。对图像进行用户输入 提示,然后使用输入调用代理。代理将使用带有提供提示的generate_image Action 作为操作输入,使用提示调用本地SwarmUI API/GenerateText2Image端点并生成其他硬编码图像 设置。
启动SwarmUI MCP服务器
从/SwarmUI_MCP_Agent/src目录中,运行:tsc server.ts&node server.js
运行代理
在SwarmUIMCPServer和SwarmUI本身运行的情况下,从/SwarmUI_MCP_Agent目录运行:python run.py
查看生成的图像
生成的图像可以在SwarmUI图像历史记录中或直接在SwarmUI/Oput目录中找到
快速启动
1.克隆存储库
克隆 光盘
2.安装依赖项(脚本)
运行setup.sh
2B。安装依赖项(手动)
npm安装 pip安装-r要求.txt
3.启动API服务器
tsc服务器.ts&节点服务器.js
5.启动用户界面
streamlit运行run.py
