微信扫码
添加专属顾问
“ 最近有一些小伙伴采购了我的小说自动配图工作流,但是在使用的时候,有人反馈看不懂工作流的逻辑,希望我可以讲讲,以便更好地学习dify的一些节点知识。我想了一下,如果完全照着正在挂售的自动配图工作流去讲,那对已购的小伙伴是不公平的。虽然我不能原封不动的讲解,但是这类工作流的核心逻辑可以讲解一下。”
本次讲解演示的前置条件:
【必要】dify版本:必须>=0.7.0。
【建议】已经参照我之前教程在dify中添加的fluxpro自定义工具。本次讲解使用这个工具。
【建议】推荐使用GPT4o-mini模型。本次讲解使用这个模型。
01
—
工作流的全局思路
其实这类工作流,要说起来,也比较简单,并没有很多dify新手玩家理解的那么难,其核心就是在迭代逻辑的处理上。
开始节点用于接受用户的输入,再预设一个num变量容许用户选择创作几张图;
大模型对输入的长文本进行分镜处理,当然这个环节重点是把提示词写好,本次示例我会留下大致的提示词,大家自行优化调试。
将大模型的分镜脚本做成数组类型,传递给迭代节点进行循环。
迭代节点要处理的工作就有一定的垂直度了,首先要解析迭代中的每一个item中我们需要的字段,然后将这些提取出来的字段发给大模型进行提示词加工,接着讲加工后的内容使用代码节点进行拼接,拼接的内容交给fluxpro工具去生成图片,再提取fluxpro工具返回结果中的图片URL地址,最后通过模板转换节点预设一个单item回复格式。
迭代节点结束后,我们再跟一个模板转换节点,将迭代节点输出的每一个item中所有的内容都展示出来,最后跟上一个回复节点展示到用户面前。
其中的关键,就是迭代节点前中后三个环节的数据处理,迭代节点中的逻辑,我写的基本上就是必不可少的,所以这些工作就一定要去做好。
当然,挂售的那个自动配图工作流,在迭代节点中搭配开始节点,做了一些功能的扩展,这个不是重点,你掌握了这个最基础的核心逻辑,你自己手搓其他功能进去,依然是可以的。
本次示例,我将参照上述写的5个步骤,尽可能详细讲解。
02
—
工作流步骤示例
一、开始节点:
由于dify的工作流总运行时间是有时长限制的,所以这里我并不建议大家填写过大的数值,所以最好还是预设成一个下拉选项,免得fluxpro账户扛不住,也免得dify工作流运行超时。
二、镜头分镜(LLM节点)
提示词参考:(只是一个大概,请自行优化)
需要根据指定的剧本内容,分析剧本的剧情,构建不同的拍摄镜头,确保每一个镜头要表达的内容与剧本内容一致。保持创作的创造性,但是不能脱离剧本表达的内容。本人是一位有丰富电影拍摄经验的专家,善于根据剧本的内容,创造出符合内容的拍摄镜头,并能准确地描述每一个镜头的内容。- 充分理解剧本的剧情、角色变化、场景变化。- 丰富的定量和定性研究能力。- 善于提取分析要点,给出镜头描述。- 善于按照json格式,将一段完整的剧情分割成不同的、连贯的、指定数量的镜头描述,并通过json格式返回。- 全面分析剧本内容。- 按照剧本内容,制作指定数量的镜头脚本。- 将所有的镜头脚本按照json格式输出。- 不要过度解释。- 不要输出非json格式的内容。- 确保各部分之间的过渡顺畅,保持连贯的流畅性。- 输出应不包含任何XML标签。仅提供包含以下键和值的JSON数组:“tittle”(镜头编号),“content”(每个镜头定格画面的内容)。1. 根据提供的剧本,充分理解剧本的内容。2. 根据指定的镜头数量,将剧本内容制作成对应数量的镜头描述。3. 每一个镜头都需要描述成具体的定格画面内容。4.每一个镜头的定格画面内容由不超过20个标签组成,每个标签必须是镜头内包含的元素。5.镜头元素包含了:人物描述、场景描述、镜头拍摄手法描述、事件描述等。5.将所有的镜头描述都按照json格式返回。[{ : , : },{ : , : }...]现在我向你提供关于剧本的所有内容,你需要按照上述的要求严格执行。{ "content": "【{{#sys.query#}}】" },根据我提供的信息,制作{{
三、string转数组(代码节点)
参考代码:(仅供参考,如遇bug,自行优化)
def main(jingtou: str) -> dict:import json data = json.loads(jingtou) # string转数组对象 result = [{'tittle': item["tittle"], 'content': item["content"]} for item in data] return {'result': result}四、迭代逻辑(迭代节点)
4.1 迭代节点的变量设置,如下图所示:
输入变量解读:
就是string转数组对象的代码节点输出变量。
输出变量解读:
这是迭代节点内部最后一个模板转换节点的输出变量。
4.2 提取字段(迭代节点中的第一个节点,代码节点)
输出变量解释:
tittle:表示这是镜头的名称。
content:表示镜头脚本内容。(此时还是中文)
提取这两个参数,是为了后续我们需要预设单item输出的内容样式和处理镜头脚本内容为图片提示词。
这两个参数是必须要提取的,一是为了最终用户看到的图片对应的名称,二是要将镜头剧情加工成配图。
4.3 转换为图片提示词(迭代节点中的第二个节点,LLM节点)
llm主要是将刚提取出来的content内容转成图片提示词。
此时llm提示词,你可以参考如下所示:(仅供参考,自行优化)
system部分:
# 角色:Ai绘图专家## 背景:你是一个专业的AI绘图专家,你对flux文生图大模型非常精通。你善于根据指定的文本内容,转写成绘图的提示词。我用自然语言告诉你要生成的prompt的主题,你的任务是根据这个主题想象一幅完整的画面,然后转化成一份详细的、高质量的prompt,让flux文生图大模型可以生成高质量的图像。## 注意事项:- 保持创作的创造性,但是不能脱离镜头表达的核心内容。-flux文生图大模型是一款利用深度学习的文生图模型,支持通过使用 prompt 来产生新的图像,描述要包含或省略的元素。-你写的prompt需要严格遵守指定的语法和格式。-prompt 用来描述图像,由普通常见的单词构成,使用英文半角","作为分隔符。-prompt 可用于描述人物、风景、物体或抽象数字艺术图画。你可以根据需要添加合理的、但不少于5处的画面细节。##Prompt中() 和 [] 语法:-调整关键字强度的等效方法是使用 () 和 []。(keyword) 将tag的强度增加 1.1 倍,与 (keyword:1.1) 相同,最多可加三层。[keyword] 将强度降低 0.9 倍,与 (keyword:0.9) 相同。##Prompt 格式要求:- prompt 内容包含画面主体、材质、附加细节、图像质量、艺术风格、色彩色调、灯光等部分,但你输出的 prompt 不能分段,例如类似"medium:"这样的分段描述是不需要的,也不能包含":"和"."。- 画面主体:不简短的英文描述画面主体, 如 A girl in a garden,主体细节概括(主体可以是人、事、物、景)画面核心内容。这部分根据我每次给你的主题来生成。你可以添加更多主题相关的合理的细节。- 对于人物主题,你不需要回复任何关于人的描述。- 材质:用来制作艺术品的材料。例如:插图、油画、3D 渲染和摄影。- 附加细节:画面场景细节,或人物细节,描述画面细节内容,让图像看起来更充实和合理。这部分是可选的,要注意画面的整体和谐,不能与主题冲突。- 图像质量:这部分内容开头永远要加上“(best quality,4k,8k,highres,masterpiece:1.2),ultra-detailed,(realistic,photorealistic,photo-realistic:1.37)”, 这是高质量的标志。其它常用的提高质量的tag还有,你可以根据主题的需求添加:HDR,UHD,studio lighting,ultra-fine painting,sharp focus,physically-based rendering,extreme detail description,professional,vivid colors,bokeh。- 色彩色调:颜色,通过添加颜色来控制画面的整体颜色。- 灯光:整体画面的光线效果。## 目标:- 全面分析文本内容,充分理解文本内容表达的构图意境。- 按照文本内容,制作英文的prompt。## 约束:- 直接输出你创作的图像提示词,不要回复与任务无关的任何内容。- 你回复的结果必须以英文半角","结束。- tag 内容用英语单词或短语来描述,并不局限于我给你的单词。注意只能包含关键词或词组。- 注意不要输出句子,不要有任何解释。- tag数量限制20个以内,单词数量限制在30个以内。- tag不要带引号("")。- tag 按重要性从高到低的顺序排列。- 我给你的主题可能是用中文描述,你给出的prompt只用英文,不要包含中文。- 你写出的prompt,不容许包含涉及画面风格的描述。## 工作流程:1. 根据提供的剧本,充分理解剧本的内容。2. 根据指定的镜头数量,将剧本内容制作成对应数量的镜头描述。3. 每一个镜头都需要全部用英文描述成具体的定格画面内容。user部分:
现在我向你提供关于待处理文本的所有内容,你需要按照上述的要求严格执行。{ "content": "【{{#1723797309206.content#}}】" }根据我提供的信息,制作1个定格画面的英文prompt返回给我。此时,你要重点处理的是system部分的提示词。推荐使用GPT4o-mini来处理,准确度要高一些。
4.4 摄影写实(迭代节点中的第三个节点,代码节点)
这是本次示例演示的一个绘制风格,旨在将用户输入的内容,都转绘成摄影写实风格的配图,当然,你换成其他风格肯定是可以的。但这不在本次讨论范围之内。
def main(arg1: str) -> str:arg=",Street style photography,advertising design poster, movie poster,cinematic,Side profile, shallow focus, warm light, Sony A7R IV, expressive,exquisite details.8k,highdefinition, high-quality."return {"result": arg1 + arg,}变量解释:
arg1变量就是llm节点输出变量
arg变量是我们自己写的补充提示词
最后我们将两个部分的提示词加起来,得到一个写实风格的完整文生图提示词。
4.5 fluxpro工具(迭代节点中的第四个节点,工具节点)
将写实风格的完整提示词作为fluxpro工具的提示词即可。
4.5 参数提取(迭代节点中的第五个节点,参数提取节点)
我知道很多小伙伴不善于使用代码节点提取参数,所以本次演示,我们使用参数提取节点来处理。
输入变量就是fluxpro工具的输出结果。
增加一个参数,如:URL。用于提取fluxpro 工具返回结果中的图片URL地址,这个参数提取出来,我们是在下个节点使用的。
4.6 item数据展示(迭代节点中的第六个节点,模板转换节点)
输入变量:
tittle:4.1提取的那个tittle值
content:4.1提取的content值
url:4.5参数提取节点提取的url值
五、拼接所有迭代item内容(迭代节点后的第一个节点,模板转换)
{% for section in arg %}{{ section }}----------------------------------{% endfor %}
在模板转换节点中,我们只需要使用jinja2语法,写一个for循环,将迭代节点产生的所有item都拼接起来。
最后跟上一个回复节点即可。
到这里为止,一个完整的工作流就做完了。
输出的样子大概如下所示:
其实在dify工作流中,对于新手玩家而言,迭代节点可能是最复杂的一个节点,当然,如果你具备一定的编程能力,你很多时候用脚本代码就能撸,但是真要理解迭代这个节点,还是有点绕的。
如果你对迭代节点有了一些兴趣,不妨看看我之前写的另一篇文章:
手把手教你dify工作流迭代节点内容拼接的两种方法
至此,整个工作流的逻辑基本讲完,有些地方或许写得不够好,大家多担待。我知道有不少小伙伴主要是玩coze的,这个没关系的,我虽然是拿dify作为示例讲解,重点还是希望能给广大爱好者一个参考,引导思路的。在coze上参照这个思路,你也可以做一个全自动化配图智能体。我相信coze上也有人做这类智能体,只是人家没告诉你怎么做而已。
讲点心里话:我之所以讲这些,虽然都很基础,也不代表我将dify玩的多好。只是我认为,随着AI的发展,智能体步入竞品质的趋势越发明显,核心逻辑掌握了,才有竞品质的基础,这一点是我一直想讲的。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-02
Dify:一个初中辍学生,怎么把开源 AI 工具带到硅谷
2026-06-30
Dify记忆能力实战(下):Mem0插件接入,实现跨会话智能记忆
2026-06-30
告别拖拽做工作流:两个Skill让Dify应用全流程自动化
2026-06-27
我用 Dify 1.15.0 搭了个全自动图文生产机,效率直接翻3倍
2026-06-26
Dify 1.15.0解读:difyctl、HITL表单和慢模型轮询,企业AI工程化继续补底座
2026-06-26
时隔一个多月,Dify v1.15.0终于发布了!
2026-06-18
Dify记忆能力实战(上):上下文记忆与会话变量,让AI告别“金鱼脑”
2026-06-15
Dify也开始CLI了,来看看有啥用途?
2026-04-18
2026-04-12
2026-05-22
2026-06-11
2026-06-03
2026-06-02
2026-06-15
2026-06-18
2026-06-26
2026-06-26
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。