AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


【附工具源码】手把手教你把flux pro模型接入到dify工具中
发布日期:2024-08-28 14:12:54 浏览次数: 1984 来源:提示日记


老规矩,直接说正事。手把手教学开始。

前置注意事项:

  • 1、由于flux pro模型刚出,目前这个模型是不开源的,所以只能从第三方平台接入,目前官方模型只有两个平台可以接入,一个是replicate,一个是fal。本次教程示例中,我们以fal平台接入为准。

    虽然我也尝试了接入replicate平台,但是不知道为什么,接口老是报错。如果你有兴趣,你可以自己试试接入replicate平台吧。

  • 2、fal是官方指定的闭源平台之一,所以这个应该是有保障的,并且新用户注册fal平台,还有赠送额度,我实测后,赠送了12美金的额度,我这个有效期还有27天。

  • 3、如果你长期关注我的公众号,你会发现,我喜欢把dify的工具涉及到apikey参数写到前台填入,因为方便实现多账户在工作流中执行同类型的并发任务。本次示例我们也不例外。

  • 4、你需要去fal平台注册一个账户,建议你不要着急绑定付款账户,反正有赠送,作为体验,咱们还是老规矩,先薅为敬。


https://fal.ai/

01


flux pro接入dify的源码


复制下方这段代码到你的本地dify中。

{"openapi": "3.1.0","info": {"title": "【flux-pro】-生成",        "description""【flux-pro】-生成。首发自微信公众号:提示日记。","version": "1.0.0"},"tags": [
],"paths": {"/fal-ai/flux-pro": {"post": {"summary": "【flux-pro】-生成","operationId": "flux-pro","deprecated": false,"description": "【flux-pro】-生成。首发自微信公众号:提示日记。","tags": [
],"parameters": [{"name": "Authorization","in": "header","description": "别忘了输入Key。参考示例:“Key 016b1acf-09f8-47f8-b405-ede28fa62053:fa3ca05df7d4b8d99a9af9e44ea61234”","required": false,"example": "Key 016b1acf-09f8-47f8-b405-ede28fa62053:fa3ca05df7d4b8d99a9af9e44ea61234","schema": {"type": "string"}}],"requestBody": {"content": {"application/json": {"schema": {"type": "object","properties": {"prompt": {"type": "string","title": "提示词","description": "图片提示词"},"num_inference_steps": {"type": "integer","title": "步数",                                        "description""扩散步数,玩过SD都知道这个吧。最小值1,最大值50。默认值是28","default": "28","examples": ["28"],"minLength": 1,"maxLength": 2},"guidance_scale": {"type": "float","title": "随机性","description": "相当于SD中的提示词引导系数。最小值2,最大值5.控制对文本提示的遵守和图像质量/多样性之间的平衡。值越高,输出越接近提示,但可能会降低整体图像质量。较低的值允许更多的创作自由,但可能会产生与提示不太相关的结果。","default": "3.5","examples": ["3.5"]},"image_size": {"type": "string","title": "图片宽高比","description": "生成图像的宽高比。可选项为只能是如下几个:“square_hd、square、portrait_4_3、portrait_16_9、landscape_4_3、landscape_16_9”。不要填写其他的,不然会报错。","default": "landscape_4_3","enum": ["square_hd","square","portrait_4_3","portrait_16_9","landscape_4_3","landscape_16_9"],"examples": ["landscape_4_3"]},"safety_tolerance": {"type": "string","title": "安全公差","description": "相当于内容安全检查的控制参数。指的是生成图像的安全容差级别。1是最严格的,5是最宽容的。默认值:“2”","default": "2","examples": ["2"]},"seed": {"type": "string","description": "对同一版本的模型使用相同的种子和相同的提示,每次都会输出相同的图像。","title": "种子"},"sync_mode": {"type": "boolean","title": "请求方式","description": "如果设置为true,函数将等待图像生成和上传,然后返回响应。这将增加函数的延迟,但它允许您直接在响应中获取图像,而无需通过CDN。","default": true},"num_images": {"type": "string","title": "数量","description": "图像生成数量,默认值为1","default": "1"}},"required": ["prompt","num_inference_steps","guidance_scale","image_size","safety_tolerance","num_images","sync_mode"]}}}},"responses": {"200": {"description": "成功","content": {"application/json": {"schema": {"type": "object","properties": {
}}}}}},"security": [
]}}},"components": {"schemas": {
},"securitySchemes": {
}},"servers": [{"url": "https://fal.run"}]}



02


参数解读


Authorization(必填)


别忘了输入Key

参考示例:

Key 016b1acf-09f8-47f8-b405-ede28fa62053:fa3ca05df7d4b8d99a9af9e44ea61234

你别直接复制这个示例的key值哈,这只是一个参考,示例中这个是不能用的。

小声BB:你小子也不想想,我怎么可能把我的key直接发给你用呢,你填写自己的不就行了。


prompt(必填)


图像提示词的文本。

参考示例:

A tense diplomatic negotiation in a grand hall, featuring representatives from 20 different countries, each wearing traditional attire. The scene should include interpreters, aides whispering to their leaders, and visible emotional reactions ranging from frustration to hope.

num_inference_steps(建议填写)


扩散步数,玩过SD都知道这个吧。最小值1,最大值50。默认值是28。只能填写整数哈。乱填导致不能工作,别怪我不提醒哦。


guidance_scale(建议填写)


相当于SD中的提示词引导系数。最小值2,最大值5.默认值是3.

控制对文本提示的遵守和图像质量/多样性之间的平衡。值越高,输出越接近提示,但可能会降低整体图像质量。较低的值允许更多的创作自由,但可能会产生与提示不太相关的结果。


image_size(建议填写)


生成图像的宽高比。可选项为只能是如下几个:“square_hd、square、portrait_4_3、portrait_16_9、landscape_4_3、landscape_16_9”。不要填写其他的,不然会报错。

这个参数我曾尝试改成传统的高度和宽度值,但是不知道为什么,不能这个设置,可能是接口的限制吧。


safety_tolerance(建议填写)


相当于内容安全检查的控制参数。指的是生成图像的安全容差级别。

1是最严格的,5是最宽容的。默认值:“2”。

取值范围:1~5.必须填写整数。

seed(建议填写)


这个就不用说了吧,这是种子值,你玩SD就明白。一般用于控制图像一致性的。对同一版本的模型使用相同的种子和相同的提示,每次都会输出相同的图像。

我还是建议大家填写这个参数的,哪怕你随便填写一个,但是目前官方对于这个参数的取值范围没有明确说明,所以我建议大家保险起见,取值范围最好是整数的数字,不要超过8位数。


sync_mode(建议填写)


这个参数需要重点说一下。

如果设置为true,函数将等待图像生成和上传,然后返回响应。这将增加函数的延迟,但它允许您直接在响应中获取图像,而无需通过CDN。

如果你设置为flase。就表示生图的时候,要等待图片先传入CDN,然后才能返回,这可能会增加等待时间,默认值是true。


num_images(建议填写)


需要生成图像的数量。默认为1.

如果你设置的值大于1,那么你要注意了,接口返回的参数,你可以需要在工作流中分别提取出来哦。数量越大,等待的时间越长。


我知道大家想要看看这个模型到底效果怎么样,所以我自己实测了,以下是我生成的图。



好了,关于参数就这么多,没有复杂的参数了。你设置了工具之后,不需要设置鉴权方法。


关于这个工具返回的结果,我直接在接口调用了一次,给大家看看,方便大家在dify工作流中调用工具时提取参数:


{"images": [{"url": "https://v2.fal.media/files/b6f4f8fd35e5474dbb4e578d6f1bdd8a_eb8e15bbd8bd4a579ac8ed49bcae8fe0.jpg","width": 1024,"height": 768,"content_type": "image/jpeg"}],"timings": {},"seed": 116969,"has_nsfw_concepts": [false],"prompt": "black forest gateau cake spelling out the words \"FLUX DEV\", tasty, food photography, dynamic shot"}


你可能需要提取的重要参数有:url.


你在工作流中使用这个工具,长的如下所示:


FLUX模型评估

FLUX.1 [pro] 和 [dev] 在以下每个方面超越了流行的模型,如 Midjourney v6.0DALL·E 3(HD)和 SD3-Ultra:视觉质量、提示遵循、尺寸/方面变化、排版和输出多样性。FLUX.1 [schnell] 是迄今为止最先进的几步模型,不仅超越了其同类竞争对手,还超越了像 Midjourney v6.0 和 DALL·E 3(HD)这样的强大非蒸馏模型。FLux模型专门针对预训练中保持整个输出多样性进行了微调。与当前的最先进技术相比,它们提供了显著改进的可能性。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询