我找到了这位UP主的开源代码,然后改了一下。
改了什么地方呢?
在Midjourney中,是通过按回车键生图的,但文心一格不是,文心一格需要手动按下“立即生成”按钮。
我通过文心一言,知道可以通过用OpenCV这个图像识别库,来实现这个功能,于是让文心一言给了一段代码,自己再改一下,最后整合一下就行了。
主要是要截图文心一格的“立即生成”这个按钮,我把它的截图保存在了D盘的aiwenxinyige文件夹中,命名为b.png。这个是一个灰度截图,必须黑白,我用PS去色。
然后我发现把浏览器分到半屏后,文心一格的按钮看不到了,我需要缩小网页,让按钮浮现出来。OpenCV通过将当前的屏幕全屏截图,然后和刚刚的模板文件,即b.png“立即生成”这个按钮截图来匹配,并返回鼠标位置,模拟鼠标点击事件来实现自动化。所以这个程序工作的时候,文心一格不能最小化,它的输入框和“立即生成”的按钮要浮现出来,不然会报错。
需要用这个文心一格自动化的朋友,自己截图“立即生成”按钮保存在一个文件中即可。
最后,程序通过遍历选择的工作表的第一列的单元格的值,循环粘贴到文心一格的输入框,并模拟点击生成按钮来实现批量出图。
我发现写程序也可以用分形法来思考,比如观察文心一格的界面元素,提示词输入框是方形的,而工作表的单元格也是方形的,工作表是提示词输入框的分形体,这两者可以联系起来,即一个单元格对应一个生图流程,遍历5个单元格则进行5个生图流程,出5张图。另外,我发现浏览器窗口也是方形的,也是提示词输入框的分形体,这两者联系起来的话,则是可以通过selenium多开浏览器,打开多个文心一格,批量生成图片。