哭死,要做9000张海报,有必要上智能体了。

文摘   2024-07-11 03:07   重庆  

我是AI破局俱乐部合伙人,专注于AI智能体的越山,欢迎点击上方蓝字关注我,不迷路。

破局行动第2期,16个AI行动营,超过9000人次报名。作为仪式感的一部分,行动营开始前,官方会向每位学员发放一张专属定制的行动营海报。每张海报的主体背景都相同,不一样的,只是每个学员的头像,昵称,所在行动营项目。 以前都是人工来修改海报,大量重复性的替换名字头像的工作,费时费力。  借助于AI智能体, 可以让每个人的行动营海报自动生成,节省人力。

以前可能需要两个人1周时间,现在让学员使用智能体,只需要一分种,生成专属通行卡。

今天就来详细讲解下这个海报智能体的搭建过程。

目的

搭建一个海报智能体,通过上传头像,昵称,行动营项目名等信息,生成定制海报。

做出来的效果如下,左边是底图,右边是定制海报。

注意:下图仅作演示,最新的破局行动第2期将于7月15日开始。

智能体设计

分步设计

1 先搭建MVP(最小可行产品)

2 优化交互体验

3 再支持批量操作

4 再支持自定义背景图(可选)

使用过程/用户故事

  1. 用户在对话界面上传单个学员的信息,上传头像,昵称,行动营名称

  2. 智能体加工海报,主要是图片,文字信息的叠加

  3. 返回生成的海报

前提条件

  1. 要有一张海报底图,没有昵称,头像,行动营信息。

  2. 要有一张完成了的的海报图,有昵称,头像,行动营信息。

MVP搭建

MVP 指的是“Minimum Viable Product”,即最小可行产品。

  1. 登陆coze.cn,新建bot, 比如 “海报生成器”。

  2. 在”海报生成器”bot的开发页面,点“+” 添加图像流。

  1. 点“创建图像流”,来到图像流编辑页面。

图像流与工作流分开了,这里只有与图像处理相关的一些工作节点。

包括图像生成,滤镜,图片AI编辑, 图片基础编辑几大块。

今天制作海报的场景我们专注在基础编辑的功能上。 因为目的是大批量地生成背景图一致的海报,所以背景图是预先由设计时做好的。理论上海报背景图,也可通过图像生成节点来每次自动生成。

  1. 图像流中的核心节点讲解

图像流 haibao_workflow中, 依次往背景海报上加昵称,行动营名字,和头像。  图像流运行效果如下。下面我来详细讲解每个工作节点。

image-20240711013659113

先在开始节点录入参数

“开始”节点,传入背景图片,昵称,行动营名字,头像以及头像的缩放比例。

添加昵称和行动营文字

新增一个"添加文字"节点,重命名为"昵称"。拉一根开始到昵称节点的线。 本节点中对应有很多参数,主要解释如下。

  • origin_url: (必填)原始图片链接,可引用前面“开始”里的变量,也可输入一个固定图片链接。

  • text: (必填)文字内容,中文字符串的最大字节长度为 64 个字符。引用前面“开始”里变量。

  • transparency: 文字的透明度。取值范围:[0,100]默认值:100,表示透明度 100%(不透明)

  • type: 文字字体。可选字体为文泉驿正黑:(默认)、文泉微米黑、方正书宋、方正楷体、方正黑体、方正仿宋

  • vertical_margin: 文字的垂直边距,即距离图片边缘的垂直距离,这个参数只有当文字位置是左上、中上、右上、左下、中下、右下才有意义。取值范围:[0,4096]默认值:10 单位:像素(px)

  • color: 文字的颜色。十六进制颜色码,取值为 000000 到 FFFFFF默认值为000000(黑色)

  • location: 文字的初始位置。nw:左上,north:中上,ne:右上,west:左中,center:中部, east:右中, sw:左下, south:中下,se(默认值):右下

  • size: 文字的文字大小,(0,1000],默认值:40,单位:px

  • fill: 是否将文字平铺满原图。1:表示将文字水印铺满原图。0(默认值):表示不将文字水印铺满全图。

  • horizontal_margin: 文字的水平边距,即距离图片边缘的水平距离。这个参数只有当文字位置是左上、左中、左下、右上、右中、右下才有意义。取值范围:[0,4096]默认值:10 单位:像素(px)

这些值该怎么填呢?特别是文字该放在图片的哪个位置,该怎么设置呢? 下面我介绍一种比较方便的方法。

这里用到photoshop, 电脑浏览器中访问 https://www.photopea.com/

  1. Ctrl+O, 打开一张设计好的海报图片。

  2. Ctrl+R, 打开标尺工具,会在画面左边和上边显示刻度。

  3. Ctrl+0, 让图片自适应显示全部。或者按一下键盘上的z, 然后点左键可放大图片,或者按住Alt点鼠标左键,可缩小图片。按住空格可鼠标拖动图片。

  4. 按一下键盘上的v, 注意输入法切换到英文。然后鼠标从画布上边的刻度处,按住左键往下拖出一条标尺线,拖到昵称上端,就是昵称所在位置的Y轴值,也就是上面要填的vertical_margin值。同理,从左边刻度拖也来的标尺可得到horizontal_margin。字体的Y转下边减上边就得到字体 size值。

  5. 按一下键盘上的i, 切换到颜色拾取器,然后鼠标移到昵称字体上点一下,就能查看到字体的颜色编码,比如fff1ce, 这就是color值。

填好后,可测试“昵称”节点,需要输入text和origin_url。

这里origin_url就是空白海报底图,图片链接怎么获取呢? 我们可以在”海报生成器” bot的调试界面,点对话框右边的+号,上传背景海报图片,发送。然后在页面上显示的图片上右键,复制图片地址。

测试节点,可以点这个节点组件的右上角的三角形,输入昵称和背景图片URL。生成的图片中,看到昵称已经添加上去了。

如果文字位置,大小,字体等不合适,可以调整输入参数,继续调试。

类似的方法添加 “行动营”节点。

添加头像节点

要将用户头像弄上去,需要增加一个“叠图”结点。

其中的参数origin_url就是前面添加了文字的海报图,image_url 就是要叠加的头像图片。 其它位置相关的变量填入方式跟前面提到的类似。

测试结果,图片是叠加上去了,但头像是方形的,没法截取成圆形或多边形,并加边框。  Coze图像流中,没有现成的工具能做到。

怎么办?

是不是可以在这之后,再叠加一个边框区域的蒙板呢?叠加一个png图片,让中间头像显示区域空出来。 我试了,可以实现。

还是在 https://www.photopea.com/ 里制作这个头像蒙板。 选择多边形套索工具,将头像区域框起来,按Del键删除。

然后按c,进入裁剪模式,框选后回车,剪出蒙板。

然后将图片导出为PNG格式。 菜单上点 File - Export As - PNG

在图像流中,复制前面的叠图节点,设置参数。

  • image_url,选择上传刚才做好的蒙板PNG图片。

  • zoom,设置为 100,表示不要缩放。

  • origin_url, 引用前一步处理的图片。注意检查每一步的输入都应该是前一步的输出data

然后点右上角的“试运行”,跑整个图像流。

至此,图像流创建完成,点右上角的“发布”,然后同意添加到bot。

回到bot编排页面,在“人设与回复逻辑”里,简单填写要求,比如:

根据用户提供的海报背景图片,头像图片,用户昵称和行动营名字,调用图像流haibao_workflow, 生成个人海报。

然后在右侧调试栏上传图片调试。 bot自动调用了图像流,生成想要的海报。 至此,MVP算是完成了。

迭代优化

MVP只是把主流程跑通了,但还有许多需要优化的地方。迭代优化是搭建智能体必须经历的步骤,而且是最费时的环节。由于Coze太新,很多功能并不完善,越山就踩了许多坑。

时刻清楚自己的目标,不择手段去实现,先完成,再完善,不要追求完美。

这个海报智能体需要完善的地方包括

输出图片而不是链接

更改模型输出格式为Markdown,而不是默认的Text。这样bot就能直接输出图片了。

固定海报底图

这个海报智能体只是为了一次活动定制的,里面的位置参数也都是固定写死的,所以底图也可以固定,没必要每次生成都要传底图。

那就在图像流中,删除开始里的backgroundPicUrl, 在第一个添加文字节点中,origin_url 改为上传底图。

改图像流后,记得发布。

头像缩放比例如何确定

上面的图像流中,有一个头像缩放百分比参数headZoomRatio ,因为用户上传的头像图片大小不一致。微信头像导出都是正方形,但像素有940x940的,也有576x576的。所以,这个缩放比例,应该要根据用户上传的图片来计算。

这时,需要添加工作流,在工作流中计算这个比例值,再调用图像流。以下是步骤说明。

1 在bot编排区域中间,图像流的上面就是工作流,点+,新建一个工作流。

2 添加一个插件,搜索“图片参数”,将height,width都加进来,这样能获取头像图片的宽和高。

3 添加一个代码节点,计算缩放百分比。

首先要知道头像蒙板的宽高。蒙板PNG图片上右键,查看图片信息,比如我这里宽高是 257 x 223。

如果头像图片是960x960,那么宽的缩放百分比应该是257/960, 宽比应该是223/960, 这两个比值,取最小的一个,就能保证图片缩放后,能被蒙板遮住。

4 添加前面创建好的图像流,将参数传进去。

5 试运行,图片url这里粘贴进去。bot对话时,直接上传图片。

6 发布此工作流,并确定将其添加到bot。

7 因为图像流会在工作流中调用到,所以建议从bot中删除图像流。这里只里并未删除图像流本身的定义,只是删除与bot的附属关系。

8 优化主提示词

9 调试并发布bot,默认会发布到扣子bot商店。

10 分享bot链接,点右上角“商店”,跳转到bot使用页面后,点右上角“分享”。

访问bot链接后,需要登陆Coze后才能使用。

其它改进建议

根据实际需求,还可能有其它改进的点,比如批量处理,保留处理历史,添加个性化问候语等,我们都可以不断地迭代改进。每一次更新工作流,都需要将工作流和bot重新发布,才会生效。

写在后面

洋哥今天在合伙人群里提到,智能体套壳,解决一个小刚需的产品,非常看好。 这个海报智能体,就是借助于智能体,解决一个真实需求的实例。

越山长期专注于AI应用落地,有着丰富的AI智能体经验。 接下来,我会分享更多的AI智能体搭建的经验和案例。

欢迎关注我的公众号,或加我好友,交流, 围观, 学习。


越山集
专注AI智能体,分享AI应用,探索和实践AI应用落地,我是越山,关注我,让AI为你打工。
 最新文章