微信扫码
添加专属顾问
本文介绍了如何利用 Dify 创建 Flux AI 免费绘图应用。只需要在 Dify 中输入提示词和图片分辨率,Dify 会直接返回图片。文中还介绍了如何获取硅基流动的免费 API,以及如何自定义 Dify 的绘图插件。
一、Flux AI 简介
二、获取 Flux 免费 API
Siliconflow
Together.ai
三、Dify 自定义工具
四、Dify 创建 AI 绘图工作流
五、Flux AI 绘图应用测试
六、文档链接
AI 绘画,开源中知名度最高的肯定是 Stable Diffusion。在 2024年8月1日,来自 Stable Diffusion 团队的成员成立了黑森林实验室公司(Black Forest Labs),致力于开发最先进的开源生成模型,用于图像和视频。目前公司有 4 款 AI 绘图模型:[1]
目前市面上有很多厂商都提供 Flux 的 API 接口,针对 FLUX.1 [schnell] 模型,因为模型小,有一些厂商提供了免费的 API 额度。下面两个厂商都只需要简单注册即可使用,不需要绑定任何信用卡信息,所以作为推荐。
硅基流动提供了每分钟调用 2 次,每天 400 次的免费额度(IPM=2 IPD=400)。[2]
Together.ai 提供了每分钟调用 10 次的免费额度(10 img/min)。[3]
后面我会利用硅基流动进行演示,其他厂商的对接步骤大同小异。
硅基流动(Siliconflow)是一家北京公司,SiliconCloud 平台提供模型云服务。平台上提供了多种开源大语言模型和图像生成模型,包括 Qwen2.5、DeepSeek-V2.5、Llama-3.1等。用户可以免费使用部分参数较小的模型,例如 Qwen2.5(7B)、Llama3.1(8B)、FLUX.1-schnell 等多个模型的 API 可以免费使用(有限速)。
这里不演示账号注册过程,注册之后,可以通过官网提供的界面直接体验各个模型。例如,下面使用 FLUX.1 [schnell] 模型进行绘图。[4]
模型 FLUX.1 [schnell] ,提示词“Kung Fu Panda holds a "Dify with Flux" banner, Pixar style.”,图片比例16:9。
点击页面左侧“API秘钥”,创建一个秘钥,后续 Dify 自定义工具需要调用这个秘钥信息。
Together.ai 是一家成立于2022年6月,总部位于美国硅谷的开源生成式人工智能平台。目前的内容主要是开发去中心化的AI技术,提供开源的AI模型。为各种大模型提供了统一的API接入,包括文本生成和代码生成模型。其中FLUX.1 [schnell] 模型可以免费使用。
这里不演示账号的注册过程,注册之后,厂商会赠送5美元的额度,可以体验一些付费模型,例如这里使用FLUX.1.1 [pro]模型绘图测试,这个模型的价格是每张图 0.04 美元。[5]
模型 FLUX.1.1 [pro] ,提示词“Kung Fu Panda holds a "Dify with Flux" banner, Pixar style.”,像素“1024x576”。
Dify 没有 FLUX 绘图的插件,这里演示一下如何自定义 FLUX 的绘图插件。
查看模型 FLUX.1 [schnell]的API文档,拷贝这个请求格式,复制给ChatGPT,让写一个对应的 OpenAPI Schema。[6]
写给 ChatGPT 的 Prompt。
curl --request POST \
--url https://api.siliconflow.cn/v1/black-forest-labs/FLUX.1-schnell/text-to-image \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"prompt": "an island near sea, with seagulls, moon shining over the sea, light house, boats int he background, fish flying over the sea",
"image_size": "768x1024",
"num_inference_steps": 20
}
基于上面的内容,写一个OpenAPI Schema
ChatGPT 的回复,后续复制到 Dify 的自定义工具中去。
openapi: 3.0.3
info:
title: FLUX.1 Schnell Text-to-Image API
description: This API generates images based on a text prompt.
version: 1.0.0
servers:
- url: https://api.siliconflow.cn/v1/black-forest-labs
description: Production Server
paths:
/FLUX.1-schnell/text-to-image:
post:
summary: Generate an image from a text prompt
operationId: generateImage
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
prompt:
type: string
description: The text prompt to generate the image.
example: an island near sea, with seagulls, moon shining over the sea, light house, boats in the background, fish flying over the sea
image_size:
type: string
description: The desired size of the generated image.
example: 768x1024
num_inference_steps:
type: integer
description: The number of inference steps for generating the image.
example: 20
responses:
'200':
description: Image generated successfully
content:
application/json:
schema:
type: object
properties:
image_url:
type: string
description: URL of the generated image
example: https://api.siliconflow.cn/v1/black-forest-labs/images/generated-image-12345.png
'400':
description: Bad request
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error message
example: Invalid prompt or parameters
headers:
accept:
description: Accepted response format
required: true
schema:
type: string
example: application/json
content-type:
description: Content type of the request
required: true
schema:
type: string
example: application/json
在 Dify 平台上,点击“创建自定义工具”,设置工具的名称,复制 ChatGPT 回复的 OpenAPI Schema,点击“测试”。
设置API Key方式授权,前缀设置为Bearer,输入硅基流动创建的API Key值,点击“保存”(此 API 我已经删除)。
输入提示词,分辨率和推理步数进行测试,查看返回的测试结果。测试成功,返回了图片的URL。
拷贝这个测试结果,后续会写一个Python代码,解析这个结果中的 URL 链接,转换成 Markdown 格式,方便 Dify 直接显示图片。
{"images": [{"url": "https://sf-maas-uat-prod.oss-cn-shanghai.aliyuncs.com/outputs/8c4ecc9a-ccc6-4c01-9f72-874ed33e7125_0.png"}], "timings": {"inference": 1.851}, "seed": 966716722, "shared_id": "0"}
下面在 Dify 中创建一个工作流,我希望输入提示词和图片分辨率后,就直接接返回图片结果。
这里一下这个工作流的设计思路。设计有两个变量是必须要提供的,分别是Prompt(提示词)和image_size(图片分辨率)。
另外还添加了一个可选参数optimize_prompt(提示词优化),这个参数有两个选项On或者Off,如果选择了On,会对提示词进行优化,会丰富提示词的细节。
如果不选择这个参数,或者选择为Off,会利用GPT4o-mini模型翻译提示词,提示词是英文保持原文,提示词是中文会直接翻译成英文。Flux 的提示词对中文支持不友好,所以需要翻译为英文,这里是用GPT4o-mini模型进行翻译,也可以使用其他模型进行翻译。
下面是LLM1的提示词,用于优化输入的提示词。
You are tasked with expanding prompts for image generation. Your goal is to enhance the input prompt by adding more details, refining context, or specifying elements to make it more vivid and specific. Here are the detailed requirements:
1. Identify core elements: Determine the key components of the original prompt. These typically include subjects, actions, scene settings, and emotional tones.
2. Enrich with specific details: Add descriptive details to each element, considering the five senses (sight, sound, smell, touch, taste), as well as color, texture, and emotions.
3. Build scenes and imagery: Create scenes by describing the environment, time, or background elements. This helps create a more immersive experience.
4. Use modifiers for enhanced effect: Employ adjectives to vividly describe nouns, and adverbs to precisely modify verbs. This makes the prompt more engaging.
5. Incorporate action and interaction: Where appropriate, describe events taking place in the scene, how characters interact, or the emotional atmosphere permeating the environment.
6. Maintain overall coherence: Ensure the expanded prompt flows naturally and consistently revolves around the original concept.
7. Output the prompt in English: If the content within the {{#1724416537387.Prompt#}} tag is in Chinese, translate it into an English prompt.
Here's an example of prompt expansion:
Original prompt: "Forest at sunrise."
Expanded prompt: "In the heart of an ancient forest, the first light of dawn filters through the dense canopy, casting a golden glow on the dewy moss-covered ground. Tall, towering trees, their bark rough and weathered, stand like silent sentinels as a soft mist curls around their roots. The air is crisp and filled with the earthy scent of pine needles, and the distant call of a waking bird echoes through the tranquil morning."
The prompt to be expanded is:
{{#1724416537387.Prompt#}}
下面是 LLM2 的提示词,用于翻译用户提供的中文提示词。
<xml>
{{#1724416537387.Prompt#}}
</xml>
If the content within the XML tags is in Chinese, translate it to English. If it is already in English, retain the original text.
然后进入自定义工具,节点输入的prompt变量来自 LLM 翻译后的提示词,image_size来自最开始选择的图片尺寸,inference_steps 这里设置为固定的值,不用用户填写。这个工具会输出3个变量"text"、“files”和“json”,其中"text"输出的值就是硅基流动返回的响应内容。
下面是自定义工具输出的完整字段。
{
"text": "{\"images\": [{\"url\": \"https://sf-maas-uat-prod.oss-cn-shanghai.aliyuncs.com/outputs/a0616193-e0c4-4fa5-9505-5c8d5f155d2a_0.png\"}], \"timings\": {\"inference\": 1.778}, \"seed\": 868267842, \"shared_id\": \"0\"}",
"files": [],
"json": []
}
我希望这个应用直接返回图片,而不是返回图片的 URL 然后再点击链接。Dify支持 Markdown 格式的图片格式,所以需要用一个脚本对输出的字符串进行转换,解析出对应的图片 URL,转换为 Markdown 格式。这里代码添加一个输出变量是键为"arg1",值为自定义工具输出的"text"字符串。下面是代码执行节点的输入字符串:
对于代码执行节点而言,下面是输入的信息:
{
"arg1": "{\"images\": [{\"url\": \"https://sf-maas-uat-prod.oss-cn-shanghai.aliyuncs.com/outputs/a0616193-e0c4-4fa5-9505-5c8d5f155d2a_0.png\"}], \"timings\": {\"inference\": 1.778}, \"seed\": 868267842, \"shared_id\": \"0\"}"
}
这里python代码,用与从上面的信息中解析出图片的 URL,并返回 Markdown 格式的图片地址。
import json
def main(arg1):
# 解析输入的 JSON 字符串
data = json.loads(arg1)
# 从解析后的数据中提取图片 URL
image_url = data['images'][0]['url']
# 构建 Markdown 格式的图片链接
markdown_image = f""
return {
"result": markdown_image
}
按照上面的思路,可以构建其他的 AI 绘图工作流,基本步骤一致。只需要查看其他厂商的请求 API,利用 ChatGPT 转换为 OpenAPI Schema,然后将输出信息解析为 Markdown 格式图片链接即可。
下面测试一下这个 AI 绘图应用,输入提示词“Kung Fu Panda holds a "Dify with Flux" banner, Pixar style.”,图片分辨率“1024x576”,关闭提示词优化或者保持为空,点击运行,Dify 可以直接显示生成的图片。
点击详情可以查看输出的 Markdown 格式的图片链接信息。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-01
业务架构、应用架构、数据架构、技术架构……架构到底是什么?
2026-07-01
未来产品团队,不再按岗位分工
2026-06-29
dbskill 更新:一键排版发布公众号
2026-06-22
写代码你不在乎AI味儿,写文章为啥那么计较?
2026-06-03
用 WorkBuddy 辅助写投标技术方案:别让 AI 替你投标,让它替你把话说清楚
2026-05-30
企业级 AI Coding 还有一堆问题,并没有像PR一样说的这么好用
2026-05-27
如何使用 AI 设计企业级产品?
2026-05-24
我研究了这个 18.6k Star 的 Skills,做幼师的女朋友夸我真猛!
2026-04-14
2026-04-28
2026-04-18
2026-05-21
2026-05-27
2026-05-19
2026-05-06
2026-05-21
2026-05-24
2026-06-03
2026-07-01
2026-06-22
2026-05-27
2026-02-28
2026-02-07
2026-01-29
2026-01-21
2026-01-06
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。