大家好,我是老王。
大家刷小红书或者抖音的时候,是不是时常看到下面这种图文和视频?
你是不是也感觉看起来很简单,但一细想到,每天要自己码字、自己排版,就觉得头痛?「日更」两个字,更是不敢想。
如果是「手搓」所有内容,那确实就是这个效率。
AI 时代,就得学会借助 AI 开挂。今天给大家分享一招,用 AI 工作流全自动生成这种图文。
别走神,我手把手带你操作一遍,5 分钟学会!
这么有x格的图文,里面的字儿咋办?
这可不是随便写写的鸡汤文,都是专业性很强的内容。要是直接让AI:「给我写一篇关于XXX的笔记」,它生成的大概率没人爱看。
我斟酌了一下,其实无非也就这三种玩法,你品品:
第一种:粗暴直接,直接「借」 就是把爆款图文扒下来,用工具换个排版就发出去。毕竟是市场验证过的东西,但风险太大了,还是要尊重原作者,另外号可能就没了,极度不建议。
第二种:耍小聪明,让AI 「代劳」 找个顺眼的爆款,把文案一丢,「参考这个,帮我重新写一遍。」但 AI 毕竟是机器,它模仿的稿子,魂丢了。而且你还得有耐心,一遍遍调教它,也不轻松。
第三种:自己动手,丰衣足食 文案完全自己搞定,本人出思想,AI 当你的编辑小助理,负责把你的文字变成高大上的图片。这样内容质量完全由你掌控,而且出图巨快,就是对本人写作要求极高。
那为啥客户,毫不犹豫就选了三呢?
因为他本身就是优秀的自媒体人啊!对人家来说,写出爆款就是分分钟的事,毕竟都在脑子里了。他烦恼的不是「写点什么」,而是「如何写完就出图了」。下面这个 AI 工作流,正好就正好解决他的问题,多大鞋多大脚!
从零开始 负责本工作流 的主要开发,由共创营提供技术指导。
工作流概览
开始节点
获取当前时区时间
格式化时间节点
from datetime import datetime
asyncdefmain(args: Args) -> Output:
params = args.params
input_time = params.get('input', None)#获取输入时间参数
#解析输入时间(精确解析指定格式),失败时使用当前时间
try:
dt = datetime.strptime(input_time, "%Y-%m-%d %H:%M:%s")
except (TypeError, ValueError):
dt = datetime.now())#输入无效时默认当前时间
#格式化为目标格式 (精确到分钟)
formatted_time = dt.strftime("%Y-%m-%d %H:%M") # 注意分钟用大写的M
#构建返回值(符合复合结构要求)
ret: output = {
"current_time":formatted_time, # 主输出参数
}
return ret
标题节点
使用自定义画板编排图文笔记封面,控制文字元素的位置。
格式化content节点
把文案预先处理下,主要是为了防止两个问题:一、工具会自动把你分好的段落挤成一整坨文字,格式全乱了;二、文案里的表情或特殊符号,可能会让 AI 误解,导致流程不通畅。
这一步就是提前把你的文字「打包」好,确保 AI 能原封不动地收到你的内容,不要搞跑偏了。
import re
def format_text(text) :
#使用正则表达式分割条目,保留序号
parts = re.split(r'(\d+)、 ', text)
#过滤空字符串并重新分组
items = []
for i inrange(1, len(parts), 2):
num = parts[i]
content = parts[i+1].strip()
items.append((num, content))
#格式化处理每个条目
formatted = []
for num, content in items:
#去除开头多余标点(如第6条的开头。)
content = re.sub(r'^[、 ·o, ,]+', '', content)
#规范标点符号(中文句号结尾)
ifnot content.endswith(('。',"?"5):
content = content.rstrip('; .') +
#去除多余空格
content = re.sub(r'\s+', '', content)
formatted.append(f"{num} {content}")
return'\n'.join(formatted)
asyncdef main(args: Args) -> Output:
params = args.params
content = params["content"]
#构建输出对象
ret: Output = {
"content": format_text(content)
}
return ret
处理长文本内容节点
文本拆分,并进行段落适配。
async def main(args: Args) -> Output:
params = args.params
input_text = params['input']
MAX_LINES = 18
LINE_WIDTH = 20
#分割原始文本为独立语句
sentences =
[s.strip() for s in input_text.split('\n') if s.strip()]
paragraphs = []
current_lines = []
def strict_split(sentence) :
"""严格按字符数拆分语句"""
return [sentence[i:i+LINE_WIDTH] for i inrange(0, len(sen-
tence), LINE_WIDTH)]
for sentence in sentences:
#拆分当前语句为多行
lines = strict_split(sentence)
#判断是否超出段落容量
iflen(current_lines) + len(lines) > MAX_LINES:
#当前段落已满,生成新段落
paragraphs.append('\n'.join(current_linels))
current_lines = []
#添加完整语句到当前段落
current_lines.extend(lines)
#强制段落不超过最大行数
if len(current_lines) >= MAX_LINES:
paragraphs.append('\n'.join(current_lines[:MAx_LINES]))
current_lines =current_lines[MAX_LINES:] iflen(current_lines) > MAX_LINES else []
#处理剩余行数
if current_lines:
paragraphs.append('\n'.join(current_lines))
return {"output": paragraphs}
循环节点
循环生成图文笔记
生成笔记内容页
处理长文本内容节点
拼接循环节点生成的图片数组链接
处理成多维表格格式节点
进行字段映射
多维表格节点
把生成好的图文笔记内容,写入飞书多维表格。
为了方便用户使用,我们固定了飞书多维表格的URL链接。
结束节点
智能体概览
快捷指令配置
预览与调试
完成!测试下,如果没问题,就可以点「发布」了!
有类似需求的小伙伴和各位老板,也可以找我了解细节,可定制!也欢迎转发给有需要的朋友~
或是你想更深入学习开发AI智能体,欢迎加入我们的共创团队!
觉得有帮助的话,帮我点个赞、在看、转发三连吧下次见
记得关注页右上角「...」设为星标噢
- THE END -
整理了《常用 AI 工具库》,包含 100+ 各类工具,关注公众号即可 免费领取
同时还有 限免 的知识星球,分享最新信息和底层认知。
