基于影刀RPA的AI绘画Prompt自动化提取与整理实战

📅 2026/7/29 10:44:57 👁️ 阅读次数 📝 编程学习
基于影刀RPA的AI绘画Prompt自动化提取与整理实战

1. 项目概述:为什么我们需要自动化提取Prompt?

如果你和我一样,是个重度AI绘画爱好者,每天在Midjourney、Stable Diffusion或者各种国产AI绘画平台上“炼丹”,那你肯定遇到过这个让人头疼的问题:在liblib、Civitai这类模型分享社区,或者小红书上看到一张惊为天人的AI图,想复现或者学习它的Prompt(提示词),结果发现作者要么没放全,要么就是一张长图,你得一个字一个字地手动敲下来。

这个过程有多痛苦?一张复杂的图,其Prompt可能包含几十个描述词、艺术家风格、画质参数、负面提示词,甚至还有复杂的LoRA模型触发词和权重。手动复制不仅效率低下,还极易出错,一个逗号、一个空格打错,可能出来的图就天差地别。更别提当你想要批量收集某个风格的Prompt作为自己的素材库时,手动操作简直就是一场灾难。

所以,这个项目的核心价值就出来了:搭建一个自动化工作流,用影刀RPA这个国产自动化工具,结合对liblib等网站的结构分析,实现一键、甚至批量提取图片的完整Prompt信息,并自动整理成结构化的数据(比如Excel或Notion数据库)。这不仅仅是省了几分钟时间,而是从根本上改变了我们收集、管理和学习Prompt的方式,让你从繁琐的体力劳动中解放出来,把精力真正投入到创意和调参上。

我花了大概一周时间,从零摸索,踩了不少坑,最终搭建了一套稳定、高效的自动化流程。今天,我就把这套“组合拳”的完整思路、实操步骤,以及那些只有踩过坑才知道的注意事项,毫无保留地分享给你。无论你是RPA新手,还是有一定编程基础的AI绘画玩家,都能跟着这篇指南,搭建起属于你自己的Prompt自动化流水线。

2. 核心思路与工具选型解析

在动手之前,我们必须把整个流程的逻辑想清楚,并选择最合适的工具。我的目标是:稳定、高效、易维护,并且尽量低成本甚至零成本

2.1 工作流逻辑拆解

整个自动化流程可以抽象为以下几个核心环节:

  1. 信息获取:从目标网页(如liblib.ai的图片详情页)上,定位并获取我们需要的文本信息。这通常包括正向提示词、负向提示词、模型名称、采样器、步数等参数。
  2. 数据处理:获取到的原始文本往往是杂乱无章的,可能夹杂着HTML标签、多余的空格和换行。我们需要对其进行清洗、分割和结构化。
  3. 数据存储:将处理好的结构化数据,保存到指定的位置。常见需求是存入Excel表格(方便筛选和统计)或Notion数据库(方便关联和展示)。
  4. 流程控制:如何触发这个流程?是手动单次执行,还是定时批量抓取某个收藏夹里的所有图片?这涉及到循环、条件判断等控制逻辑。

2.2 为什么选择影刀RPA?

市面上自动化工具很多,比如Python + Selenium/Requests库是技术流的选择,浏览器插件也能实现简单功能。但我最终选择了影刀RPA,理由如下:

  • 对非程序员极度友好:它的操作逻辑是“可视化拖拽”,像搭积木一样组合指令。你不需要懂Python语法,只需要理解“点击”、“获取文本”、“循环”这些逻辑就能上手。这对于广大AI绘画爱好者来说,学习门槛极低。
  • 强大的网页元素拾取能力:影刀内置的“元素探测”功能非常灵敏,可以精准定位网页上的按钮、输入框、文本块。这对于从结构复杂的现代网页中提取信息至关重要。
  • 数据处理能力内置:影刀提供了丰富的字符串处理、列表/字典操作命令,无需额外学习Pandas等库,就能完成大多数数据清洗工作。
  • 集成度高,开箱即用:它内置了连接Excel、Word、邮件、甚至一些主流API的模块。我们要实现“提取-整理-保存”的一站式流程,用影刀可以无缝衔接。
  • 云同步与调度:影刀支持流程发布到云端,可以通过定时任务或手动在手机端触发,灵活性很高。

当然,它也有局限,比如处理极其复杂的动态网页(重度依赖JavaScript)时可能不如代码灵活,但对于liblib、Civitai这类相对标准的图片分享站,其能力绰绰有余。

一个重要的补充选择:如果你的目标网站反爬机制严格,或者你需要更定制化的HTTP请求(例如调用网站的私有API),那么Python + Requests/Playwright会是更强大和灵活的选择。你可以在影刀中通过“执行Python脚本”模块来嵌入这部分代码,形成“影刀主控,Python攻坚”的混合模式。本篇指南以纯影刀方案为主,但会在关键处提示可能的代码替代方案。

3. 实战:搭建liblib.ai单图Prompt提取流程

理论说完,我们进入实战。假设我们的第一个目标是:在liblib.ai上,打开任意一张图片的详情页,一键提取所有参数并保存到Excel。

3.1 环境准备与初步侦察

首先,你需要在影刀官网下载并安装影刀RPA客户端。安装注册过程很简单,这里不赘述。

关键的第一步是“侦察”。打开liblib.ai,找到一张你喜欢的图片,进入其详情页。按F12打开浏览器开发者工具,使用“元素选择”工具(箭头图标)去点击页面上的提示词文本区域。

你会发现,liblib的提示词通常放在一个<div><pre>标签里,并且有比较固定的class名称,比如可能包含prompttext之类的字样。我们的目标就是让影刀定位到这个元素。

注意:网页结构可能会改版!今天有效的方法明天可能就失效了。因此,我们的定位策略要追求鲁棒性。不要用绝对路径,而是尝试用相对稳定的特征来定位,例如“包含特定文本的元素”、“具有某个固定class名的第N个子元素”。

3.2 影刀流程搭建步骤详解

现在打开影刀设计器,新建一个流程。我们一步步来构建:

步骤一:启动浏览器并导航到目标页

  • 使用“打开浏览器”命令,浏览器类型建议选Chrome。
  • 这里有个关键技巧:我们不直接写死一个URL。更好的做法是,在流程开始时,用一个“输入框”让用户临时输入想要抓取的图片链接。这样流程就通用了。将输入框的值赋给一个变量,比如target_url
  • 使用“访问网页”命令,网址就填入target_url

步骤二:定位并提取提示词文本

  • 使用“获取元素”命令。点击“指定元素”,然后切换到浏览器,用影刀的元素探测功能,去点击网页上的提示词区域。影刀会自动生成一个选择器。
  • 重要:处理多段文本。一个详情页的Prompt可能分“正向提示词”和“负向提示词”两部分显示。你可能需要分别定位这两个元素。将它们获取到的文本存入两个变量,如positive_promptnegative_prompt
  • 常见坑点:有时文本会被放在多个同级<div>里。这时“获取元素”可能只拿到第一行。你需要使用“获取子元素”命令,或者改用“获取元素文本(全)”这个命令,它有时能获取元素及其所有后代的文本。

步骤三:文本清洗与结构化获取到的文本通常很“脏”。例如:

masterpiece, best quality, 1girl, beautiful detailed eyes... Negative prompt: (worst quality, low quality:1.4), monochrome... Steps: 20, Sampler: Euler a, CFG scale: 7...

我们需要将其拆解成结构化数据。这里要用到影刀的“字符串处理”命令组。

  1. 分割关键行:使用“按分隔符拆分文本”命令。以“\n”(换行符)为分隔符,将整个文本块拆分成一个列表(数组)。
  2. 识别和提取:遍历这个列表,判断每一行。
    • 如果行内容包含“Negative prompt:”,那么后面的内容就是负向提示词。
    • 如果行内容包含“Steps:”,那么可以用正则表达式或再次分割来提取“20”、“Euler a”、“7”这些参数。
    • 影刀支持“如果-否则”条件判断,完全可以实现这个逻辑。
  3. 清洗多余空格:使用“去除空格”命令处理提取出的提示词字符串。

步骤四:保存到Excel

  • 使用“打开/新建Excel”命令,指定一个本地路径的Excel文件。
  • 使用“获取末尾行号”命令,找到最后一行。
  • 使用“写入单元格”命令,在末尾行的下一行,依次写入:图片URL、正向提示词、负向提示词、步数、采样器、CFG scale等。每一列对应一个参数。
  • 最后,别忘了“保存Excel”和“关闭Excel”。

至此,一个最基础的单次提取流程就完成了。你可以点击运行测试,看看能否成功将一张图片的信息录入Excel。

4. 进阶:实现批量采集与智能处理

单次提取只是开始,批量采集才是自动化的精髓。假设我想抓取我liblib收藏夹“赛博朋克”里的所有图片信息。

4.1 构建批量采集循环

  1. 获取收藏夹列表:首先,你需要导航到你的收藏夹页面。使用“获取元素”命令,但这次模式要选“获取多个元素”。用元素探测器去点击一个图片封面或标题链接,影刀会生成一个能匹配页面上所有同类项的选择器。将这个结果存入一个列表变量,如item_list。这个列表里的每个元素,通常都包含了指向图片详情页的链接(href属性)。
  2. 遍历循环:使用“循环操作(For Each)”命令,对item_list进行遍历。在循环体内,当前项就是一个网页元素。
  3. 提取链接并访问:在循环内,使用“获取属性”命令,从当前元素中提取href属性值,得到详情页链接。然后,重复3.2节的步骤二到步骤四。
  4. 循环控制与延迟:在每次循环结束、下一次访问新页面前,务必添加一个“等待”命令,比如等待2-3秒。这是出于道德和防止被网站封IP的考虑,也是最重要的注意事项之一。过于频繁的请求会被服务器视为攻击。

重要心得:批量采集时,异常处理至关重要。在循环体内加入“尝试-异常”模块。把核心的抓取和保存逻辑放在“尝试”里,一旦出错(比如元素没找到、网络超时),就在“异常”模块里记录下出错的项目URL到另一个日志文件,然后继续执行下一个循环,而不是让整个流程崩溃。

4.2 数据去重与智能增强

采集来的数据多了,就会遇到新问题:

  • 去重:如何避免重复采集同一张图片?可以在写入Excel前,先读取已存在的所有图片URL,做一个判断。影刀可以用“读取单元格范围”命令把某一列(URL列)读成一个列表,然后用“如果”判断当前URL是否已在这个列表中。
  • 信息增强:除了网页上的明文信息,我们还能获取什么?
    • 图片本身:使用“获取元素”找到图片的img标签,提取其src属性(图片链接),然后影刀有“下载文件”命令,可以将其保存到本地,与Excel记录关联。
    • 模型信息:页面上通常有使用的底模和LoRA模型链接。你可以尝试提取这些链接,甚至进一步点进去抓取模型的版本、下载量等信息,让你的素材库更丰富。

4.3 扩展应用:对接Notion数据库

对于喜欢用Notion管理知识的朋友,将数据存入Notion是更优雅的方案。这需要用到Notion的API。

  1. 在Notion中创建数据库:设计好属性,如“Name”(图片名)、“Prompt”、“Negative Prompt”、“URL”、“Model”等。
  2. 获取集成令牌和数据库ID:在Notion开发者设置中创建一个集成(Integration),并邀请它到你的数据库。记下你的token和数据库的database_id
  3. 在影刀中调用API:使用影刀的“发送HTTP请求”命令。
    • 请求方法:POST
    • URL:https://api.notion.com/v1/pages
    • 头部(Headers):需要添加Authorization: Bearer YOUR_TOKENNotion-Version: 2022-06-28以及Content-Type: application/json
    • 请求体(Body):构造一个JSON,按照Notion API的格式,将你提取的每个字段填充进去。
  4. 将这一步替换掉之前“写入Excel”的模块,你的数据就能实时同步到Notion了,并且可以享受Notion强大的视图筛选和关联功能。

5. 常见问题排查与优化技巧实录

在实际搭建和运行中,你一定会遇到各种问题。下面是我踩过坑后总结的“排错指南”和“优化清单”。

5.1 元素定位失败:最头疼的问题

  • 现象:流程第一次运行成功,过几天或换张图片就失败了,提示找不到元素。
  • 原因与解决
    1. 网页结构变化:这是最常见原因。解决方法是使用更宽松但更具唯一性的选择器。在影刀元素探测界面,不要直接用它生成的最长最精确的XPath,尝试手动编辑选择器。多用contains(@class, ‘prompt’)这类模糊匹配,或者通过元素的父级、兄弟级等相对关系来定位。
    2. 页面加载延迟:网络慢或页面资源多时,元素还没出来影刀就去抓了。务必在关键操作(如点击、获取文本)前添加“等待元素出现”命令,并设置一个合理的超时时间(如10秒)。这比固定的“等待”几秒更可靠。
    3. iframe框架页:有些网页内容嵌在<iframe>里,你需要先用“切换iframe”命令进入框架,才能操作其中的元素。

5.2 数据提取不完整或格式错乱

  • 现象:提示词只抓到了一半,或者参数全部混在一行里。
  • 原因与解决
    1. 换行符处理:网页上的换行可能是<br>标签而非\n。使用“获取元素内部HTML”代替“获取元素文本”,然后自己用字符串替换功能将<br>替换成\n,再进行分割。
    2. 动态加载:有些内容是通过JavaScript滚动后加载的。确保在获取前,用“滚动到元素”或“执行JavaScript”命令模拟滚动,让目标内容出现在视窗内。
    3. 使用正则表达式:对于格式固定的文本(如Steps: 20, Sampler: Euler a),影刀支持正则表达式提取。在“字符串处理”中使用“正则匹配”,编写如Steps:\s*(\d+)的表达式来精准提取数字。

5.3 流程运行速度慢或不稳定

  • 优化技巧
    1. 减少不必要的等待:用“等待元素出现”替代固定的“等待”秒数。只在确实需要等待的地方(如跳转页面后)使用固定等待。
    2. 关闭浏览器多媒体:在“打开浏览器”命令的高级设置中,可以添加--mute-audio--blink-settings=imagesEnabled=false等启动参数来禁止加载图片和声音,能显著提升页面加载速度。
    3. 分阶段运行:对于超大批量任务(如上千个),不要一个流程跑到底。可以分成“采集URL列表”、“逐个抓取详情”两个独立流程,中间用文件传递数据。万一中途出错,可以从断点继续,避免前功尽弃。
    4. 日志记录:在流程的关键节点,使用“打印日志”或“写入文本文件”命令,记录当前执行到的位置、变量的值。这是调试复杂流程的救命稻草。

5.4 应对网站反爬机制

  • 现象:频繁操作后,访问被拒绝,出现验证码或直接封IP。
  • 应对策略
    1. 遵守Robots协议:检查目标网站的robots.txt,尊重其爬取频率限制。
    2. 降低请求频率:这是最重要的。在循环内添加随机延时,例如等待[2, 5]秒之间的一个随机数,让请求模式更接近人类。
    3. 模拟真人行为:在关键操作间随机加入“移动鼠标”到无关区域、“随机等待”等操作。
    4. 使用代理IP(高级):对于极端情况,可以考虑在影刀中配置使用代理服务器来切换IP,但这需要额外的资源,且请务必用于合法合规的学习目的。

搭建这样一个自动化工作流,初期需要一些耐心去调试和适应,但一旦跑通,它带来的效率提升是巨大的。你不仅可以用于liblib,稍加修改选择器逻辑,就能适配Civitai、甚至一些社交媒体上分享AI图片的帖子。它的核心思想是通用的:定位元素 -> 提取数据 -> 清洗整理 -> 持久化存储

最后,我想分享一点个人体会:技术工具的意义在于赋能。影刀这样的RPA工具,降低了自动化的门槛,让我们这些非专业程序员也能打造属于自己的效率利器。这个Prompt提取项目只是一个起点,当你掌握了“让机器帮你干活”的思维,你会发现生活中、工作中有无数重复、繁琐的任务都在等待着被自动化。从一个小需求开始,动手实现它,这个过程本身带来的成就感和能力提升,远比省下的那点时间更有价值。