dify案例分享-免费玩转即梦 4.0 多图生成!Dify 工作流从搭建到使用全攻略,附案例效果

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请求配置

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

请求方式 post 请求

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

http 请求body部分如下:

json 复制代码
{
"model":"{{#1756864683426.pmodel#}}",
"prompt":"{{#1756864683426.prompt#}}"
"negativePrompt":"",
"width":1536 ,
"height":864,
"sample_strength":0.5
}

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

文生图代码执行

代码执行的目的就是对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

这个配置和相关代码和上期文章《dify案例分享-零代码用 Dify 使用梦 AI 3.0 多模态模型,免费生成影视级视频》非常类似。大家可以把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 字符串类型

以上我们就完成了工作流的搭建,总体来说还是比较简单的。对比上期《dify案例分享-零代码用 Dify 使用梦 AI 3.0 多模态模型,免费生成影视级视频》要简单的多。

3.使用

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

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

即梦里面的

dify工作流体验地址

工作流地址:dify.duckcloud.fun/chat/cFVRKh...

由于我账号不是会员号,每天送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 工具拓展更多创意玩法。今天的分享就到这里结束了,我们下一篇文章见。

相关推荐
jump_jump11 小时前
超长定时器 long-timeout
前端·javascript·node.js
Mintopia12 小时前
架构进阶 🏗 从 CRUD 升级到“大工程师视野”
前端·javascript·全栈
Mintopia12 小时前
小样本学习在 WebAI 场景中的技术应用与局限
前端·人工智能·aigc
光影少年12 小时前
vue生态都有哪些?
前端·javascript·vue.js
一只大头猿12 小时前
基于SpringBoot和Vue的超市管理系统
前端·vue.js·spring boot
用户14567756103713 小时前
告别繁琐操作!Excel合并原来可以这么轻松
前端
itslife13 小时前
vite 源码 - 创建 ws 服务
前端·javascript
懒人Ethan13 小时前
解决一个C# 在Framework 4.5反序列化的问题
java·前端·c#
用户14567756103713 小时前
Excel合并数据太麻烦?这个神器3秒搞定,打工人必备!
前端
西洼工作室14 小时前
前端混入与组合实战指南
前端