视频加载失败

Dify应用实战(7) - 图片生成(下)

1444 字
7 分钟
Dify应用实战(7) - 图片生成(下)

**01.**环境准备#

大家通过昨天的教程,已经知道如何生成图片,并看到了最终效果。但是为什么要按照这样的流程进行编写,还是知其然,不知其所以然。

那今天麦金叔就给大家还原一下真相。

因为前面也提到了,这次的动手依赖两个第三方的服务工具。因此,如果想自己动手的,先把账号注册好吧。

图片
图片

注册成功后直接来到了控制台页面,此时按图创建应用。

图片
图片

继续点击新创建的一串数字APPID的应用,打开”应用详情”。可以看到现在API密钥这里是空的,点击右方”新增密钥”,获得一条记录。页面显示一长串数字字母的字符串,右边有个复制按钮,点一下复制保存到安全的地方,留着备用。

再说一下,这个服务宣称是免费,但实际上是每个账号每月有1000次的免费处理次数,正常使用基本上算免费了。但如果你的业务需求量很大,可以购买资源包,也不贵,一张图5厘,已经蛮良心的了。

图片
图片

按图所示注册figma,这个是美丽国的服务工具,虽然有一些不好的名声,但是在设计SaaS服务领域还是发展很快的。我们用它纯属”白嫖”,不用有太多顾虑。

图片
图片

注册后,下载一个包装的桌面版。然后记住这个插件,等下就要用,Batch auto-generate images using your design

(https://www.figma.com/community/plugin/1273461051550664878)

图片
图片

工具和插件都准备好之后,我们就继续回到Dify里面。

**02.**流程拆解#

图片模板请求体构造#

昨天只说了需要构建一个图片模板的请求体JSON。但这个JSON为何是这样构建的呢?如果靠手写那肯定是不现实的,好在方法也很简单。

我们先在figma里做一个图片的布局,如示例里面,有一个背景图,再有一段文案(为了教学,尽量简单处理了,实际应用时,只是元素对象多一点而已)。先新建一个”Design file”

图片
图片

在空白画布上添加一个Section,注意将Dimensions的W和H(即图片的宽和高)设置为你最终生成的图片的分辨率大小。并将Posion的X和Y都设置为0,即左上角对齐原点。

好了,图片第一层为背景层,准备好一张与图片大小一致的底图,通过工具栏的Image进行插入。Position也设置为0,这样就对齐了。

图片
图片

在背景图上添加”TEXT”,并将其拖拽到画布合适的位置,注意文本的Posion位置,和长宽值,是否合适。可以事先添加与文案长度差不多的文字内容,来观察是否能一行显示,还是要多行。一定要确保最终生成时不要超出背景图片的区域。

图片
图片

本文的示例就这两个元素,实际工作,需要酌情修改设计。这一步如果有设计师朋友帮忙,那就小菜一碟了。

有了设计稿,现在利用上面让准备的插件,就能将设计转化成JSON。选中整个设计,左上角的菜单,转到Plugins菜单项,点击”imgrender - Batch auto-generate”。便会打开一个小对话框,点”Output”按钮。如果提示”Successful!”字样,就说明好了。

这时,需要打开一个文本编辑软件,按Ctrl V就可看到全部内容。如果过程中有问题,看提示解决。大概是导出只能是一层,如果设计放在多层,是不能全部导出的。

{
"width": 420,
"height": 600,
"backgroundColor": "#ffffff",
"images": [
{
"x": 0,
"y": 0,
"width": 420,
"height": 600,
"url": "背景图URL",
"zIndex": 1
}
],
"texts": [
{
"x": 60,
"y": 60,
"text": "文案文案文案文案文案",
"width": 240,
"font": "SourceHanSansSC-Normal",
"fontSize": 16,
"textAlign": "left",
"zIndex": 4,
"color": "#000000"
}
]
}

有了这个设计模板JSON,现在就可以去Dify的模板节点去拼接了。

拆分成几个部分就行了,记得images里面的url改为一个imgrender服务能访问到的公网背景图片路径。

texts里面的元素,text部分,用Jinja模板语法,将前序节点的输出string替换为上述JSON里面的”文案文案文案文案文案”。

HTTP请求构造#

再坚持一下,马上就要成功了。

“HTTP请求”按上篇中的截图设置。

API方法选择POST,地址为imgrender的服务地址:https://api.imgrender.net/open/v1/pics ,添加鉴权API-key,改为自定义,Header项填入X-API-Key,key就粘贴前面新建应用时得到的新增密钥。

保存后,继续设置HTTP请求。 HEADERS增加key为Content-Type,value为application/json; charset=utf-8

BODY,选择raw,值框中输入/ 后选择合并完的output

图片
图片

如果有使用HTTP服务的经验,这一点非常容易做。

获取结果图片#

这个”代码执行”节点,继续使用Python,代码非常简单,就是从imgrender的API请求结果中,获得图片URL。

好了,今天的内容终于结束了。其中最繁琐的是图片模板的处理。全程无尿点,累并快乐着。

总结#

今天在对有预期效果的工作流上,详细解释了其中节点的设计思路,并完整详细的讲解了操作过程最后利用图片生成服务得到了我们期望的带背景和文案的结果图片。还是昨天麦金叔说的,最终成品效果如何,就依赖设计能力了。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Dify应用实战(7) - 图片生成(下)
https://blog.huhaha.vip/posts/acf87292/
作者
小王的博客
发布于
2025-07-23
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
Dify应用实战(6) - 图片生成(上)
AI本文演示Dify工作流图片生成能力:1. 通过四组模板节点拼接JSON结构(含字体/坐标/背景图参数);2. 配置HTTP请求调用第三方渲染服务(imgrender/figma);3. 代码节点解析返回图片URL。实现将天气数据与设计模板结合生成带动态文本的简报图片,为自动化图文报告场景提供技术实现路径,下篇将详解第三方服务接入细节。
2
Dify应用实战(4) - 生成语音
AI本文演示Dify工作流语音生成能力:1. 集成SiliconCloud TTS节点实现文本转语音;2. 详解APIKey配置流程与声音类型选择(8种人声);3.优化Python代码节点输出自然语言播报文案。通过工作流串联天气数据→文本处理→语音生成全流程,实现自动化语音播报功能,为有声内容创作提供标准化解决方案,并提示商用模型计费策略及本地调试方法。
3
Dify应用实战(14) - 结果聚合
AI本文实战演示Dify变量聚合器的多路数据整合能力。通过在医疗分诊流程中部署聚合器节点,实现不同知识检索分支的结果统一归集→LLM节点集中处理。详解分支结果类型匹配机制及数据转换技巧,展示如何优化复杂工作流架构,为多条件查询、并行任务处理等场景提供标准化合并方案,有效降低40%重复节点配置,提升AI应用的可维护性。
4
Dify应用实战(5) - 使用模版
AI本文演示Dify模板引擎集成:1. 在数据加工流程后新增Jinja模板节点,实现动态数据与预设模板结合;2. 调整代码节点输出为字典格式(含温度/天气等字段);3. 详解模板语法(变量插值{{}}/循环判断逻辑)。通过天气简报模板示例,展现如何将JSON数据转换为自然语言描述,并扩展演示多条件内容生成(HTML列表/带逻辑的报表),为自动化报告、多格式输出等场景提供标准化解决方案。
5
Dify应用实战(15) - 对象存储
AI本文实战演示Dify企业级存储方案配置。通过修改.env文件切换存储类型→配置S3/Minio连接参数→重启服务生效,实现文件存储从本地迁移至对象存储。详解Minio兼容性配置要点及文件上传测试流程,展示如何通过标准化存储方案提升多人协作效率,为知识库管理、多媒体资源存储等企业级需求提供高可用解决方案,存储性能较本地方案提升300%
随机文章随机推荐

评论区

Profile Image of the Author
小王的博客
一个上了年纪的猿人.
分类
标签
最新动态
站点统计
文章
209
分类
15
标签
161
总字数
478,322
运行时长
0
最后活动
0 天前
站点信息
构建平台
Vercel
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录