文本转图像生成服务

SwarmUI MCP 服务器是一个基于LangChain和Ollama的本地代理,提供文本到图像的生成功能,适用于需要快速生成图像的应用场景。

  • by MathewTomberlin
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 MathewTomberlin/SwarmUI_MCP_Agent

使用说明

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

6.确保SwarmUI正在运行且可访问。

7.在代理设置>SwarmUI API端口中输入您的SwarmUI端口号

8.选择LLM模型和(可选)视觉模型

9.输入图像请求并单击提交。如果没有下载,请等待模型下载。