利用ComfyUI,实现Dify通过混元(Hunyuan-DIT)文生图

前提条件,安装Dify1.0以上并可正常使用,安装ComfyUI并安装hunyuan-DIT、FLUX等模型可正常使用,知道ComfyUI地址及端口,本机调用一般为http://127.0.0.1:8188。

该方法适用与flux、SD35等使用正、负面两分离式clip的工作流。

一、创建chatflow工作流

1、打开Dify,找到工作室,点击创建空白应用

2、选择chatflow,填入名称及描述(可选)

3、在默认节点基础上增加“参数提取器节点”

4、再添加ComfyUI工作流节点。首次加载Comfy需配置授权,本地一般为:http://127.0.0.1:8188

5、完整工作量连接如下

二、配置chatflow工作流

 1、双击LLM节点,将LLM改名为“提示词生成器”,输入如下提示词。

prompt_template = """
请根据用户输入需求内容,完善图像生成需求的包含风格/构图/细节等正面提示词和需要排除元素等负面提示词,同时请用英文按以下JSON格式响应:
{
"yes_prompt": "",
"no_prompt": ""
}
用户输入:{{input}}
"""

2、打开参数提取器,选择输入变量,增加需提取的yes_prompt、no_prompt参数(添加方法如下),并在提示词中填写:从json提取相关参数。

3、配置comfyUI工作流,在正面和负面提示词分别选择参数提取器的变量yes_prompt、no_prompt

4、导出并复制ComfyUI工作流:打开comfyUI系统,点选需要的工作流,选择导出到api,然后打开导出的json文件内容,选择复制

5、配置ComfyUI工作流的的workflow json:回到ComfyUI工作流,将复制的内容填入到workflow json中。

6、配置直接回复,如下图:如不需要思考过程及生成的正、负面提示词,只保留最后一行就行。

7、完成后如下图

三、测试工作流

  1. 输入“飞流直下三千尺”发送后得到一副国画

2、输入“西塞山前白鹭飞”

四、导出工作流

1、工作流导出在工作室找到该工作流,点击右下角三个小点,选择导出DSL,可进行流程导出。

### ComfyUIDify集成指南 为了实现ComfyUIDify的有效集成,需考虑两者的技术特点并找到合适的接口连接方式。通过访问Dify的RESTful API可以解耦Prompt逻辑与业务逻辑[^1]。 #### 准备工作 确保已安装必要的依赖库来处理HTTP请求以及解析JSON数据。Python环境中通常会使用`requests`库来进行API调用: ```python import requests ``` #### 获取Token 大多数情况下,与外部服务交互前都需要获取认证令牌(token)。这一步骤具体取决于Dify所提供的身份验证机制。假设采用的是基于OAuth2.0的标准流程,则可以通过POST请求向授权服务器申请access token: ```python auth_url = "https://api.dify.com/oauth/token" client_id = 'your_client_id' client_secret = 'your_client_secret' response = requests.post(auth_url, data={ 'grant_type': 'client_credentials', 'client_id': client_id, 'client_secret': client_secret }) token = response.json().get('access_token') ``` #### 构建Prompts 在ComfyUI应用内部定义好想要发送给Dify作为输入提示(Prompt)的内容结构。这些Prompts应该遵循Dify所接受的数据格式标准。 #### 发送Request至Dify 利用之前获得的token构建带有适当头部信息的GET/POST请求,将准备好的Prompts传递过去,并接收来自Dify返回的结果。 ```python headers = { 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json' } prompt_data = {"text": "Your prompt here"} dify_api_endpoint = "https://api.dify.com/v1/generate" result = requests.post(dify_api_endpoint, headers=headers, json=prompt_data) if result.status_code == 200: generated_content = result.json() else: error_message = result.text ``` 以上代码片段展示了如何创建一个简单的客户端脚本用于测试目的;实际项目开发过程中还需要考虑到错误处理、超时设置等因素以提高稳定性。 对于像生成方面的需求,如果涉及到像DALL·E这样的模型,可能还会遇到一些特定于该平台的功能特性,比如文中提到过的重字幕技术等[^2]。不过这部分内容主要集中在算法层面而非API接入上,在此不做深入探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值