dify案例分享-免费玩转即梦 4.0 多图生成!Dify 工作流从搭建到使用全攻略,附案例效
laohaibao666
2025年09月10日 20:33
收录于文集
共78篇

1.前言

即梦4.0是字节跳动旗下即梦AI推出的多模态大模型,其正式名称为“seedream4.0”。该模型于2025年9月5日正式上线,并已逐步向用户开放,9月8日全面对用户开放。

上周给大家介绍了即梦3.0文生图、文生视频、图生视频dify工作流。很快4.0文生图和图生图模型就推出了。我在原来的代码基础上修改了增加4.0的文生图和图生图的接口。结合之前的工作流又做了一般基于4.0 的dify工作流。那么这个工作流是什么样子的呢?

目前即梦4.0比较强大的地方在于能够生成一组一致性画面多个图。通过很简单的提示词就可以生成一组一致性的组图。这个确实比较强的。

此外我们还可以上传多个图,实现多图的组合类似nana-banana 多个图合成一个图的效果。

下面这个图我在即梦上体验的

dify 上实现的 图生图2个图片合成效果

原图:

合成后的

即梦中合成后的图片

那么这样的工作流是如何制作的呢?下面给大家一起做一个这样的dfiy工作流。

2.工作流制作

开始

开始节点这地方设置比较简单,就是接受用户的提示词-prompt

提示词 文本输入,这里主要是接受用户输入的提示词文本信息。

目前dify 文本输入地方最大长度是256,这里小伙伴要注意了,如果提示词过长会截断的。

考虑到这个工作流支持文生图、文生视频,所以开始节点配置参数要比其他工作流多。主要是多了一下模型选择,type类型等。

这个picture接受用户输入的图片,主要是为后面图生图使用。(这块设置可选选)这里需要注意我们选择文件列表,这样可以上传多张图片

pmodel 主要是让用户选择文生图模型使用,本次我们在上个工作流基础上增加了jimeng-4.0 选项

以上我们就完成了开始节点的设置。

条件分支

 这个条件分支主要是目的根据用户选择(文生图、图生图等流程判断)

HTTP请求

这个HTTP请求是调用一个后端一个接口服务,这个接口服务可以实现即梦AI文生图、文生视频、图生视频的逆向。本次重点新增加了即梦4.0文生图和图生图功能。大家可以使用即梦每天送的积分来使用。服务端部署这里就不做详细展开。

使用这个接口是需要获取你即梦AI 平台sessionid,这个sessionid如何获取呢?

http请求配置

请求地址 https://jimeng.duckcloud.fun/v1/images/generations  这个是nas部署 使用cloudfare 映射的一个带域名公网api接口地址

请求方式 post 请求

heards部署 主要是接口请求的鉴权的配置。其实你也可以理解就是调用openai接口输入的api key 这个API 其实就是你登录即梦web网站产生的sessionid,我这里使用到环境变量的方式来实现的。

http 请求body部分如下:

代码块
JavaScript
自动换行
复制代码
{
"model":"{{#1756864683426.pmodel#}}",
"prompt":"{{#1756864683426.prompt#}}"
"negativePrompt":"",
"width":1536 ,
"height":864,
"sample_strength":0.5
}
复制成功

文生图的接口请求地址https://jimeng.duckcloud.fun/v1/images/generations

文生图代码执行

代码执行的目的就是对HTTP请求返回的信息做一下处理,大体功能 是一样。

文生图代码

代码块
Python
自动换行
复制代码
def main(arg1: str) -> str:
   import json

   # 解析输入的 JSON 数据
   try:
       data = json.loads(arg1)
   except json.JSONDecodeError:
       return "输入的字符串不是有效的 JSON 格式,请检查输入数据。"

   # 确保解析后的数据包含 'data' 键
   if not isinstance(data, dict) or 'data' not in data:
       return "输入的数据格式不正确,请确保输入是一个包含 'data' 键的 JSON 对象。"

   # 获取 'data' 键对应的数组数据
   image_data = data.get('data', [])

   # 确保 'data' 键的值是一个列表
   if not isinstance(image_data, list):
       return "输入的数据中 'data' 键的值不是一个数组,请确保其值是一个 JSON 数组对象。"

   # 初始化结果字符串
   markdown_result = ""

   # 遍历每条图片数据
   for index, item in enumerate(image_data, start=1):
       # 检查每条数据是否是字典,并且包含 'url' 字段
       if not isinstance(item, dict) or 'url' not in item:
           markdown_result += f"图片第{index}条内容:无法提取 URL(缺少 'url' 字段)\n"
           continue

       # 提取 URL 并生成 Markdown 格式的图片链接
       url = item['url']
       markdown_result += f"![图片{index}]({url})\n"

   # 返回最终的 Markdown 字符串
   return {"result": markdown_result}
复制成功

考虑到即梦4.0 执行比较慢,这里我们把dify http请求的超时时间改成300秒,重试次数变成1

这个配置和相关代码和上期文章《网页链接​》非常类似。大家可以把2个文章结合来看。

直接回复

这个也比较简单,主要的目的就是文生图、图生图返回信息给客户展示。

另外一个配置和上面一样这里就不做展开。

我们 在if条件分支判断了解,工作流还有另外一个分支,这个地方就是图生图,接口地址和处理方式有一点不一样我们这里就用代码调用方式。

代码执行

这个地方主要目的就是处理图生图接口调用以及数据返回。有的小伙伴可能会问,dify自带HTTP请求不是更简单,干嘛要自己写代码搞的这么复杂。这里解释一下,因为这个业务场景中会出现多个图上传功能。而http请求的body部分 不支持文件列表,没办法在http请求满足这个业务场景。

 dify 里面http 请求

这个代码处理的输入参数这里是一个5个参数分别如下

1.pictures   文件列表List[str]

2.apikey  字符串

3.model 字符串

4.prompt 字符串

5.url  字符串

这里图生图的接口我们使用环境变量赋值。

代码处理

代码块
Python
自动换行
复制代码
import requests
import json
from typing import List


def main(pictures: List[str], apikey: str, model: str, prompt: str, url: str) -> dict:
   # 设置请求的URL和Headers (使用bb.py的API端点)
   surl = url
   headers = {
       "Authorization": f"Bearer {apikey}",
       "Content-Type": "application/json"
   }

   # 定义请求的payload数据 (基于bb.py的逻辑)
   payload = {
       "model": model,
       "prompt": prompt,
       "images": pictures,  # 使用传入的pictures数组
       "width": 1536,
       "height": 864,
       "sample_strength": 0.5
   }

   # 打印payload用于调试
   print("Payload:", json.dumps(payload, indent=2))
   
   # 发送POST请求
   response = requests.post(surl, headers=headers, data=json.dumps(payload))

   # 提取结果并返回
   if response.status_code == 200:
       response_data = response.json()
       
       # 集成cc.py的处理逻辑
       def process_image_urls(data):
           # 确保解析后的数据包含 'data' 键
           if not isinstance(data, dict) or 'data' not in data:
               return "输入的数据格式不正确,请确保输入是一个包含 'data' 键的 JSON 对象。"

           # 获取 'data' 键对应的数组数据
           image_data = data.get('data', [])

           # 确保 'data' 键的值是一个列表
           if not isinstance(image_data, list):
               return "输入的数据中 'data' 键的值不是一个数组,请确保其值是一个 JSON 数组对象。"

           # 初始化结果字符串
           markdown_result = ""

           # 遍历每条图片数据
           for index, item in enumerate(image_data, start=1):
               # 检查每条数据是否是字典,并且包含 'url' 字段
               if not isinstance(item, dict) or 'url' not in item:
                   markdown_result += f"图片第{index}条内容:无法提取 URL(缺少 'url' 字段)\n"
                   continue

               # 提取 URL 并生成 Markdown 格式的图片链接
               url = item['url']
               markdown_result += f"![图片{index}]({url})\n"

           # 返回最终的 Markdown 字符串
           return markdown_result
       
       # 处理响应数据并生成Markdown结果
       markdown_result = process_image_urls(response_data)
       return {"result": markdown_result}
   else:
       return {"error": f"Error: {response.status_code}, {response.text}"}
复制成功

输出result  字符串类型

以上我们就完成了工作流的搭建,总体来说还是比较简单的。对比上期《网页链接​》要简单的多。

3.使用

点工作流会有预览功能 提示词单个文生图、多个文生图、图生图提示词

大家根据自己的需要选择就可以了,图片上传可以支持多个。我们以多个文生图为案例介绍

即梦里面的

  工作流地址:https://dify.duckcloud.fun/chat/cFVRKhAEbCma7BRI备用地址(http://14.103.204.132/chat/cFVRKhAEbCma7BRI

  由于我账号不是会员号,每天送80积分,文生图每张图消耗1积分。大家省着点用。

4.常见问题

dify env 环境变量配置

 默认的情况下dify沙箱运行环境代码执行超时时间设置15秒

 

   由于这个即梦4.0 执行时间比较长,我们在沙箱环境运行接口调用会导致超时,这里我们需要修改.env文件配置设置600秒

 

http请求超时设置

考虑到即梦4.0 执行比较慢,这里我们把dify http请求的超时时间改成300秒,重试次数变成1

5.总结

今天主要带大家了解并实现了基于 Dify 工作流构建即梦 AI 4.0 多模态生成系统的完整流程,该系统以即梦 AI 最新的 4.0 文生图、图生图模型为核心,结合 Dify 平台灵活的工作流节点配置(如条件分支、HTTP 请求、代码执行等),形成了一套覆盖单图生成、多图一致性组图及多图合成的全场景图像生成方案。

通过这套实践方案,用户能够低成本体验即梦 4.0 的进阶生成能力 —— 借助平台每日赠送的免费积分,无需复杂的后端开发,就能快速生成具备一致性的组图和多图合成效果,极大降低了 AI 图像创作的技术门槛和使用成本。在实际验证中,该工作流能够稳定响应不同类型的生成需求,无论是通过简单提示词生成一组风格统一的图像,还是上传多张图片实现创意合成,都能产出符合预期的高质量内容,有效解决了普通用户调用即梦 4.0 模型时流程繁琐、多图处理场景难以实现的问题。同时,工作流具备良好的扩展性 —— 小伙伴们可以基于此框架扩展更多实用功能,如电商平台的商品多场景图生成、社交媒体的创意素材批量制作、设计行业的多方案快速迭代等,进一步丰富 Dify 平台的图像创作应用场景。

感兴趣的小伙伴可以按照这份指南尝试搭建自己的即梦 4.0 生成工作流,甚至结合其他 AI 工具拓展更多创意玩法。今天的分享就到这里结束了,我们下一篇文章见。