微信+ RPA 工具,AI 绘画原来还能这么玩插图

关于 RPA 自动机器人的教程,咱们已经结结实实的出了两篇了——

一篇是利用 RPA 工具,在 Discord 上,根据已有的 Prompt 表格,自动跑 Midjourney 的文生图👉我睡觉的时候,电脑画了一夜小姐姐

另一篇是利用 RPA 工具,自动去 C 站上爬取模型下,网友们分享的例图,以及 Prompt👉手把手教会你怎么爬涩图

如果把 RPA 工具比成搭积木的话,操作很简单,但教程写起来确实费劲,尤其是想让小白也看懂,问题不单单出在可能牵扯代码,而是拆分逻辑,并和大家讲清楚这事比较难。

好在两篇下来,评论区的反馈还不错,只要打开思路,学学怎么搭积木,相信大家都能有收获。

微信+ RPA 工具,AI 绘画原来还能这么玩插图1

自从玩上 Stable Diffusion 后,每天守在电脑前的时间估计得多一俩小时,但一直坐在电脑前我这老腰有点扛不住。。。

加上身边朋友也想玩,却少了硬件,也搞不懂那么多参数,最后都是让我代劳,一来二去,就让我有了个想法,有没有机会用更简单的方式,远程控制本机呢?

先提炼一下需求:1、不用坐在电脑前;2、尽可能无成本让小白也能玩上 AI 绘画。

基于第二点,让我暂时弃用了远程控制工具,不过上周的最后一篇文章,咱们分享的那个实时录屏工具,给了我新思路——

不如以微信群聊做中转,用 RPA 工具监控群消息,手机往群里丢一条提示词,就能让电脑自动跑图。

换句话说,咱们用微信 DIY 了一个简易版的 Midjourney,效果如下:

微信+ RPA 工具,AI 绘画原来还能这么玩插图2

而电脑端这边,完全是虚拟环境下跑的,甚至不影响我接着写稿。

微信+ RPA 工具,AI 绘画原来还能这么玩插图3

因为是用 RPA 工具实现的,所以代码量极低极低,小白也能无门槛复现今天的操作。

这不,第三篇 RPA 教程不就来了吗。

第一步:获取群消息

说起自动化,或许大家想到是全自动,比如自动打开 SD 并访问 WebUI,自动打开微信,并找到群聊等等。

用「运行或打开」的指令启动 SD 整合包和微信就能实现,打开软件后再用「点击元素」的指令模拟操作就好。

微信+ RPA 工具,AI 绘画原来还能这么玩插图4

这一块不做太多的介绍,我们重点还是放到实现逻辑上来,即获取群聊消息。

我这里实现的思路简单粗暴,就是把群聊窗口拎出来,让 RPA 去监控这个窗口里的文字消息。

微信+ RPA 工具,AI 绘画原来还能这么玩插图5

所以先要做的,是用「获取窗口对象」指令找到群聊窗口,我是用群名定位的窗口,然后起一个能看懂的名字,方便后续操作时调用。

微信+ RPA 工具,AI 绘画原来还能这么玩插图6

找到窗口了,就该捕获群里的文字消息啦,「获取相似元素列表(win)」指令,操作的窗口是之前那个自己起的名字,操作方式是获取文本内容,最后起个名字把群消息给保存一下。

微信+ RPA 工具,AI 绘画原来还能这么玩插图7

至于如何捕获?「去元素库选择-捕获新元素」,然后在群聊窗口里选择文字消息,看过前两篇文章的小伙伴应该对这操作很熟悉了,影刀捕获模式下的红框,选中文本即可。

微信+ RPA 工具,AI 绘画原来还能这么玩插图8

至此,群里面的文字消息就都搞定了。

第二步:判断消息

为了实现群消息监控的效果,我们最后肯定是让脚本循环获取这个群消息的,即「获取相似元素列表(win)」这一步,是要扔到「无限循环」指令中的。

微信+ RPA 工具,AI 绘画原来还能这么玩插图9

但你想啊,在这个无限循环中,群消息可能是多样的,有可能是空白的一条消息也没有;也有可能是就这么一条消息,每次循环都是同一条消息。

微信+ RPA 工具,AI 绘画原来还能这么玩插图10

解决这个问题的方法可以是多样的,因为每次循环都抓取到了群消息,所以我们可以拿上一次的群消息与这一次的群消息做条件判断。

即如果有消息,且和上一次循环抓取的消息不一致,证明有新消息的传入,那就可以拿这个新消息去作为提示词生图了。

当然,不用所有的事情都交给脚本,条件判断的依据也可以是特定的锚点,一个数字「0」也好,「任务开始」四个字也罢,怎么都可以,不过既然是微信,我这里选的锚点是「@」。

微信+ RPA 工具,AI 绘画原来还能这么玩插图11

也就是说,只要当这个群消息中有「@网黑哥」的字眼时,默认的上一条消息就是 SD 需要的提示词。

所以在获取群消息后,再跟一个「IF 多条件」的指令,如果判断通过,再让 SD 开始跑图,不通过就这么循环着。

微信+ RPA 工具,AI 绘画原来还能这么玩插图12

至于具体的判断依据,看指令内容,符合以下全部条件时再触发,条件分别为:1、抓取到的消息数不为 0;2、抓取到的最后一条消息包含@网黑哥的字眼。

微信+ RPA 工具,AI 绘画原来还能这么玩插图13

为啥一开始我说代码极低,而非是 0,就是因为整个脚本为数不多的代码都在处理群消息这了。

len(消息_list) 是为了提取出群消息的数量,进而判断消息数不为 0。

微信+ RPA 工具,AI 绘画原来还能这么玩插图14

消息_list[-1] 是为了获取最后一条群消息,进而判断有没有触发@网黑哥的字眼出现。

微信+ RPA 工具,AI 绘画原来还能这么玩插图15

注意,咱这个脚本机器人并没有考虑多个成员同时发消息的问题,所以在获取群消息时,只抓取了文本消息,其中并没有包含发消息的人是谁。

至于你说 RPA 工具能不能实现,肯定是能的,抓到消息人和消息内容,再去做判断,但实话实说复杂了好几步,不利于小白学明白,所以这里暂略。

这里实现的,是只要满足了有群消息,且群消息最后一条是@网黑哥,就能自动跑图的功能,面向的也是群里单个人发出请求,自动返回给图的思路。

整体操作都是一条线捋下来的,想扩展下去,就需要有点数据结构的基础了。。。

第二步:自动开始跑图

有了提示词,操作不就简单起来了嘛,先去 SDWebUI 上瞅瞅,提示词放到输入框,生成下面第一个按钮可以一键导入提示词包含的内容,最后生成。

微信+ RPA 工具,AI 绘画原来还能这么玩插图16

也就是前面的 IF 判断下面,扔三条指令即可,「填写输入框」、「点击元素」、「点击元素」。

微信+ RPA 工具,AI 绘画原来还能这么玩插图17

第一个指令「填写输入框」的输入内容,就该是群消息的倒数第二条内容了。

微信+ RPA 工具,AI 绘画原来还能这么玩插图18

注意,SD 不是支持很多参数嘛,包括负面提示词在内,尺寸、种子之类的,其实都可以通过下面这样的文本格式一键导入,红色的是咱们可以修改的部分。

微信+ RPA 工具,AI 绘画原来还能这么玩插图19

但我测试时发现,最后一行参数那里,必须要有三个及以上参数,才能一键导入,这里稍微注意一下。

玩 SD 多了,你对这样的输入指令肯定不陌生,但万一用这个脚本的人是个对 SD 一窍不通的小白呢?

为了妥协这一点,我干脆去掉了第二天点击一键导入按钮的指令,换成了写死的通用负面提示词。

微信+ RPA 工具,AI 绘画原来还能这么玩插图20

这样就可以做到,哪怕你对 AI 绘画一无所知,只要用英文输入一条你想画的内容,就可以自动产图的功效。

至于其他参数,复杂点的方案是,像前面做判断一样,搞个锚点出来,输入「1」就改尺寸,输入「2」就改种子,粗暴点的方案是,我直接后台给它配好了。。。

微信+ RPA 工具,AI 绘画原来还能这么玩插图21

那图片生成了,该返图了吧,这个简单三条指令——

1、「获取文件列表」,SD 生图的目录都是固定的,按时间增序排列,最后一张图就是刚刚生成的。

2、「将文件添加到剪切板」

3、「键盘输入」,模拟「Ctrl+V+Enter」的方式,把剪切板的图发送到群里。

微信+ RPA 工具,AI 绘画原来还能这么玩插图22

至此,生图、返图的效果就都搞定了。

等等,你还记得吗,返图后群聊消息中最后一条文本消息还是@网黑哥,所以下一次循环中还会根据同样的提示词再生成一边。

怎么处理呢?可以返图后,再发送一条「任务已完成」的文本,也可以模拟鼠标操作,把群聊消息清空。微信+ RPA 工具,AI 绘画原来还能这么玩插图23

第三步:虚拟环境运行

现在 RPA 机器人就都搞定了,怎么在虚拟环境中运行呢?简单,在进入脚本前,右键菜单里有个「虚拟桌面中运行」的选项。

微信+ RPA 工具,AI 绘画原来还能这么玩插图24

然后脚本会在该虚拟环境下运行,因为我把自动启动 SD 和微信的指令都关了,所以在虚拟桌面里,先暂停运行中的脚本。

手动启动整合包,选择浏览器访问 SDWebUI;登录微信,打开群聊窗口。

微信+ RPA 工具,AI 绘画原来还能这么玩插图25

上一节也说了,对于 SD 跑图的其他参数,比如模型、步数、采样器、尺寸宽高、种子等等,我都手动改过了。

然后在虚拟桌面中运行脚本。

微信+ RPA 工具,AI 绘画原来还能这么玩插图26

这个我们 DIY 出来的机器人,就开始监控群里消息了,当有提示词被发出来,就能自动跑图啦。

微信+ RPA 工具,AI 绘画原来还能这么玩插图27

我知道肯定会有人会关心,这么操作会不会影响正常系统资源占用,这是开启脚本监控状态下的资源占用:

微信+ RPA 工具,AI 绘画原来还能这么玩插图28

只能说,这个简单的脚本,对于资源占用来说,影响不大。

结语

其实这篇的难点,就是能不能理解咱为啥要搞个无限循环,能不能理解咱为啥要搞个 IF 判断。

至于脚本来说,都是最基础的操作,像搭积木那么一点点攒起来的,因为有了前两次利用 RPA 工具搭建机器人的经验,所以这次捋清逻辑后,花了不到 20 分钟就搞定了。

现在我可以趴在床上,用手机输入指令抽盲盒,老腰的问题搞定了;也可以拉个朋友进来,用这个低配版的 MJ 去玩 AI 绘画。

RPA 工具好就好在,介于有代码和无代码之间,为醋包饺子学习一门编程语言或许很难,但像玩软件一样,搭个积木要简单的多。

唯一需要注意的,大概就是不像 MJ 那样,SD 并不禁止瑟瑟,小心微信群炸了吧。微信+ RPA 工具,AI 绘画原来还能这么玩插图29

微信+ RPA 工具,AI 绘画原来还能这么玩插图30

PS:常规宣传一下咱们有更多更快的一手 AI 玩法的星球,欢迎加入。

微信+ RPA 工具,AI 绘画原来还能这么玩插图31

微信+ RPA 工具,AI 绘画原来还能这么玩插图32

电报群:wldxhdzq  QQ 群:729224889  网站:wldxh.com