利用Coze工作流生成文章封面
00 分钟
2024-4-20
2024-5-1
type
status
title
summary
slug
Created
Apr 20, 2024 03:07 PM
category
tags
Date
icon
password

一、铺垫

因为平常写文章比较多,并且微信公众号是强制你要有文章封面的,虽然封面可以在一些图片网站,比如Unsplash上寻找,但现在是AI时代,而且AI绘画的技术也比较成熟了,所以自然是希望AI为我们打工了。
 
目前AI绘画比较出名的有Stable DiffusionDALLEMidjourney等,Stable Diffusion 是开源免费的,但需要你的电脑有一张显卡,DALLEMidjourney 则是需要付费。
 
综合考虑,我最终选择白嫖Coze的文生图功能,它目前是支持 Stable Diffusion DALLE 插件的。
 

二、创建AI Bot

我们先从最简单的 AI Bot搞起,具体的创建流程这里就不赘述了。
 
这是我最初创建的AI Bot,主要用到了三个插件,分别是 Notion 和前面提到的两个文生图插件。
notion image
 
用Notion插件是因为我的文章是用它管理的,我的想法是直接输入一个Notion链接,让AI读取里面的内容,并最终用文生图插件生成封面。
 
使用这个插件需要先授权才能读取到内容
notion image
 
起初这个Notion插件还是成功运行的,并生成了几张图片,但后面再运行的时候就报错了
notion image
 

三、创建工作流

上面的AI Bot 存在两点问题,一是Notion插件不稳定,这个我后续更换成了知识库的形式;二是你每次生成封面的时候都得输入一遍提示词,这对于想偷懒的我不太能接受,所以我就想创建一个工作流提高这个步骤的效率,并顺便熟悉下Coze的工作流如何使用。
 
3.1 工作流基础知识
第一,每个工作流都有一个开始节点和结束节点,最后一个节点必须是结束节点
notion image
 
第二,节点之间可以相连,从而下一个节点可以获取上一个节点内容,或者上上节点的内容
notion image
 
第三,开始节点和结束节点之间可以嵌入基础节点、插件、其他工作流
notion image
 
第四,如果使用条件节点,也就是If-else,else节点必须也得连到其他节点,就是说else也得有结果,不能空着
notion image
 
不然你可能会收到类似的错误
notion image
 
第五,如果想要完整地调试整个流程,可以点击右上角的 Test Run 按钮;如果想单独调试某个节点也可以,点击该节点上面的启动图标即可(某些节点如条件节点是不支持的)
notion image
 
调试之后,可以点击旁边的Show Result查看结果(这点做得真不错,很方便)
notion image
 
第六,工作流发布
请注意,工作流发布之后才能被自己和他人所使用,而且如果你再次对工作流进行修改后,必须 Test Run 成功后才能再次发布。
 
详情参考官方文档:
 
 
3.2 第一版工作流
因为是第一次使用工作流,所以也踩了一点坑,我一开始的工作流是这样的
 
  • 1.开始节点:传入 notion_link 参数
  • 2.Notion插件获取内容:Notion插件根据 notion_link 链接获取内容
  • 3.获取图片宽度:这是因为我想指定图片宽度
  • 4.获取图片高度:这是因为我想指定图片高度
  • 5.调整图片宽高:这是图片宽高是从Bot里面提取的,不一定存在,所以需要用代码调整并赋予默认值
  • 6.LLM输出提示词:大模型根据第2步的内容输出提示词
  • 7.SD文生图:根据第5步得到的宽高和第6步得到的提示词生成图片
  • 8.结束节点:输出第7步的结果
 
这里需注意的是,SD有两个版本,如果是v1.0 版本,只支持指定尺寸;如果是 v1.6 版本,则宽高尺寸范围在 [320, 1536] 之间,默认是512。(默认使用 v1.6 版本)
notion image
 
但这个版本有两个问题,一是Notion插件不稳定,用过一次后就无法再获取内容了,提示 “Server Internel Error”,二是 Stable Diffusion 生成的图片没有预想的好,文字很模糊,类似下面这张图,所以就有了第二版
notion image
 
3.3 第二版工作流(最终版)
由于第一版的两个问题,最终改进后的版本如下:
  • 1.开始节点:传入 unit_name 参数,这是知识库Unit的名称
  • 2.知识库匹配内容:根据前面的 unit_name 匹配对应的Unit
  • 3.获取图片宽度:这是因为我想指定图片宽度
  • 4.获取图片高度:这是因为我想指定图片高度
  • 5.调整图片宽高:这是图片宽高是从Bot里面提取的,不一定存在,所以需要用代码调整并赋予默认值
  • 6.LLM输出提示词:大模型根据第2步的内容输出提示词
  • 7.DALLE3文生图:根据第6步得到的提示词生成图片
  • 8.结束节点:输出第7步的结果
 
这里也有几个注意点,第一是如果使用DALLE3,第3,4,5步其实可以略过,因为DALLE3不支持自定义宽高(我这里保留是方便后续修改)
notion image
 
第二就是你在用LLM的时候,记得在提示词那里引用输入内容,不然LLM不知道你输入了什么内容
notion image
 

四、如何使用上述工作流

为什么我在标题上说这是一次不太成功的尝试呢,是因为虽然这个工作流看起来能用,但是只能给自己用,不能给别人用(很尴尬,后面才发现的)
 
因为工作流里面的知识库其实就是个小型数据库,它适合的场景应该是获取某些特定的知识,而不是像我一样,只是为了分析总结生成提示词(如果后面官方能指定别人的知识库就很Nice了)。
 
我自己用的话效果如下(需要把文章先上传到知识库):
notion image
 
如果内容不存在,会提示这个:
notion image
 
如果想看我的工作流实现的朋友,可以在工作流搜索:EasyCover
notion image
 

五、总结

虽然这是一次不那么成功的尝试,但好在也趁这个机会了解了Coze工作流的具体玩法,总体不亏。如果大家有什么好的改进想法,或者对工作流有什么不懂的,也可以下方留言!
 
我是AI技术巫,欢迎关注我,掌握第一手AI资讯与技巧!
notion image