导图社区 儿童古诗自动生成视频工作流详解答
这是一篇关于儿童古诗自动生成视频工作流详解答的思维导图,主要内容包括:输入,调用大模型生成内容,生成绘画提示词,图片生成(批处理),图片地址整合(代码节点),图生视频提示词(批处理),图生视频(批处理),视频地址整合(代码节点),语音合成(批处理),创建草稿,获取时间线(从音频处获取),截取时间线,拆分字幕,翻译文字,挑选BGM,根据关键词搜索背景音乐,BGM转换数组
编辑于2025-06-27 14:16:34儿童古诗自动生成视频 工作流详解答
输入
输入主题
填写API-token
获取连接:https://www.51aigc.cc/#/promotion?user_id=297859
调用大模型生成内容
选择模型
引用输入变量-填写变量名如{{input}}
填写系统提示词
# 角色 你是一位资深的古诗词专家,对各类古诗词有着深入的研究和理解。能够根据用户提供的{{input}},精准分析理解后,检索出与之对应的古诗词,并清晰准确地将诗词名称、朝代作者、完整诗句输出,不输出注释、标识、符号等多余内容。 ## 技能 ### 技能 1: 检索并输出古诗词 1. 仔细分析用户提供的{{input}},从中提取关键信息。 2. 根据关键信息,在自己丰富的知识储备中检索与之匹配的古诗词。 3. 将检索到的古诗词的名称、朝代作者、完整诗句准确输出。 4.以数组的形式将诗词名称、朝代作者、完整诗句(每句诗都单独输出)输出到fenjing 5.将诗词名称、朝代作者以数组的形式输出到yuyin。 6.将诗词名称单独输出到mingcheng 7.输出朝代作者时严格按照以下示例的格式输出:[唐]·杜甫 ## 限制: - 只回答与古诗词相关的内容,拒绝回答与古诗词无关的话题。 - 输出内容必须包含诗词名称、朝代作者、完整诗句,且不能有注释、标识、符号等多余内容。 - 输出内容应基于可靠的知识来源,确保信息准确。
填写用户提示词-引用输入的变量名如{{input}}
输出名词解释
名词解释
JSON
String(字符串)
用于存放文本数据
Integer(整数)
用来表示没有小数部分的数字
支持的运算:像加减乘除等常见数学运算。
Number(数字)
可表示整数,也能表示浮点数(即小数)
适用于各种数学计算
Boolean(布尔值)
只有两个值,即 true(真)和 false(假)
常用于逻辑判断,比如条件语句和循环语句中
Object(对象)
是一种无序的数据集合,由键值对构成
可以用来表示复杂的数据结构。
String Integer Number Boolean Time 0bject
time
时间
Markdown
用于生成结构化的文本内容,例如报告、说明文档、邮件正文等,使输出内容更清晰易读。
文本
输出变量
生成绘画提示词
选择模型
输入变量(即想要将什么东西让其图片绘画展示)一般链接上一节点输出的内容
系统提示词
让大模型做什么事情,这里是让大模型生产绘画提示词
# 角色 你是一位资深且专业的AI古诗词视频生成领域文生图提示词创作专家。擅长精准剖析用户输入的诗词{{input}},深度挖掘每句话的细微信息,创作出高质量、高度适配的文生图提示词。 ## 技能 ### 技能 1: 拆解镜头并生成提示词 1. 从多个维度对用户输入的{{input}}进行全面、深入的解析,充分理解脚本内容。 2. 对脚本中的每个镜头细致拆解,完整涵盖场景、氛围、动作、表情等关键元素,杜绝信息遗漏。 3. 针对每个拆解后的镜头,生成精准、生动且契合AI古诗词视频独特风格的文生图提示词。提示词要保证能同时充分彰显古诗词的韵味与意境和适合儿童观看的可爱、萌动风格。 4. 生成图片统一设定为3D动漫卡通风格,主角人物统一塑造为一个带着编制斗笠穿着僧衣的可爱小孩和尚Q版玩偶形象,详细描述神态(如眼神、表情等),保证生成图片中每幅含有人物、画像等与人物相关的形象完全一致。 5.全部使用全景的景别,描述出人物与环境的位置关系,保证人物能全身出镜。 6.生成的每段提示词的人物衣着、人物形象的文字描述要完全一致。 7.保证{{input}}中每个键都能生成对应提示词 提示词模板:3D动漫卡通风格,全景,【场景描述】,【人物衣着描述】,【人物表情描述】,【人物形象描述】,【人物与场景位置关系描述】 ........ ## 限制: - - 仅围绕用户输入的脚本开展镜头拆解和提示词生成工作,不涉及无关内容。 - 生成的文生图提示词需清晰准确,完全符合AI古诗词视频生成要求。 - 输出内容应简洁精炼,突出镜头核心信息。 - 确保每幅生成的含有人物的图片中人物形象基本一致 。
用户提示词
同上
输出
图片生成(批处理)
批处理
输入
连接绘画提示词的输出
输出
链接批处理流程中的图片输出
图像生成
节点预览
图片地址整合(代码节点)
async function main(args) { // 获取传入的两个数组参数 const params = args.params; const tupian = params.tupian || []; const beiyong = params.beiyong || []; // 创建一个结果数组,初始为tupian的副本 const result = [...tupian]; // 创建一个队列,存储beiyong中的有效项 const validBeiyongItems = beiyong.filter(item => item && item.trim() !== ''); // 用于跟踪beiyong数组的当前索引 let beiyongIndex = 0; // 首先填充tupian中的空项 for (let i = 0; i < result.length; i++) { // 检查当前项是否为空 if (!result[i] || result[i].trim() === '') { // 如果beiyong中还有有效项 if (beiyongIndex < validBeiyongItems.length) { // 用beiyong中的有效项替换空项 result[i] = validBeiyongItems[beiyongIndex]; beiyongIndex++; } } } // 如果beiyong中还有剩余的有效项,添加到结果数组末尾 while (beiyongIndex < validBeiyongItems.length) { result.push(validBeiyongItems[beiyongIndex]); beiyongIndex++; } // 处理URL格式,确保没有重复项 const processedResult = []; const processedUrls = new Set(); for (const item of result) { if (item && typeof item === 'string' && item.trim() !== '') { let processedUrl = item; // 特殊处理URL:如果包含查询参数,截取问号前的部分 if (processedUrl.includes('http') && processedUrl.includes('?')) { processedUrl = processedUrl.split('?')[0]; // 确保URL末尾有斜杠 if (!processedUrl.endsWith('/')) { processedUrl += '/'; } } // 确保没有重复的URL if (!processedUrls.has(processedUrl)) { processedUrls.add(processedUrl); processedResult.push(processedUrl); } } } // 打印处理结果,帮助调试 console.log("原始tupian数组:", JSON.stringify(tupian)); console.log("原始beiyong数组:", JSON.stringify(beiyong)); console.log("处理后的结果:", JSON.stringify(processedResult)); // 返回整合后的结果到KEY3参数 return { KEY3: processedResult }; }
图生视频提示词(批处理)
输入文生图提示词以及图片地址
批处理采用大模型生成动态提示词
模型设置与文生图提示词类型,注意输入,输出和系统提示词
注意如果有图片地址,模型选择视觉推理模型
节点预览
图生视频(批处理)
输入
图生视频提示词
图片地址
输出
图生视频的URL
批处理环节
加入判断如果生成失败即为空,则再次尝试生成视频
节点预览
视频地址整合(代码节点)
async function main(args) { // 获取传入的两个数组参数 const params = args.params; const shipin = params.shipin || []; const beiyong = params.beiyong || []; // 创建一个结果数组,初始为shipin的副本 const result = [...shipin]; // 创建一个队列,存储beiyong中的有效项 const validBeiyongItems = beiyong.filter(item => item && item.trim() !== ''); // 用于跟踪beiyong数组的当前索引 let beiyongIndex = 0; // 首先填充shipin中的空项 for (let i = 0; i < result.length; i++) { // 检查当前项是否为空 if (!result[i] || result[i].trim() === '') { // 如果beiyong中还有有效项 if (beiyongIndex < validBeiyongItems.length) { // 用beiyong中的有效项替换空项 result[i] = validBeiyongItems[beiyongIndex]; beiyongIndex++; } } } // 如果beiyong中还有剩余的有效项,添加到结果数组末尾 while (beiyongIndex < validBeiyongItems.length) { result.push(validBeiyongItems[beiyongIndex]); beiyongIndex++; } // 处理URL格式,确保没有重复项 const processedResult = []; const processedUrls = new Set(); for (const item of result) { if (item && typeof item === 'string' && item.trim() !== '') { // 对于视频URL,保留完整URL,不要截取查询参数 let processedUrl = item; // 确保没有重复的URL if (!processedUrls.has(processedUrl)) { processedUrls.add(processedUrl); processedResult.push(processedUrl); } } } // 打印处理结果,帮助调试 console.log("原始shipin数组:", JSON.stringify(shipin)); console.log("原始beiyong数组:", JSON.stringify(beiyong)); console.log("处理后的结果:", JSON.stringify(processedResult)); // 返回整合后的结果到KEY3参数 return { KEY3: processedResult }; }
语音合成(批处理)
输入
需要生成语音的文本内容
输出
文本生成语音的内容(批处理生成的内容)
批处理
输入
文本
上级输入项
选择声音
调整语速
预览
节点预览
创建草稿
填写高度和宽度
获取时间线(从音频处获取)
截取时间线
通过大模型将时间线拆分-删除前两个线
预览
拆分字幕
通过大模型将文本内容拆分
预览
选择工具模型
翻译文字
预览
通过大模型将文本形成拼音和解释
挑选BGM
通过大模型为视频挑选BGM
预览
根据关键词搜索背景音乐
预览
BGM转换数组
输入bgm_url
预览
获取BGM时间线
输入:从音频处获取时间线
时间个数设置为1
预览
BGM数据转换
根据时间线制作音频数据
输入
mp3_urls
BGM转换数组
timelines
BGM时间线
预览
添加BGM
批量添加音频插件
输入
BGM数据转换
创建草稿url
预览
音频数据转换
根据时间线制作音频数据
选择批处理形式
预览
添加音频
节点预览
视频数据转换
根据时间线制作视频数据
节点预览
选择批处理
添加视频
节点预览
标题时间线
自定义创建时间线列表
节点预览
标题数据转换
节点预览
根据时间线制作字幕数据
添加标题
选择批量添加字幕插件
节点预览
作者时间线
自定义创建时间线表
节点预览
作者数据转换
根据时间线制作字幕数据
节点预览
添加作者
批量添加字幕插件
节点预览
诗句数据转换
根据时间线制作字幕数据
节点预览
添加诗句
批量添加字幕
节点预览
拼音时间线
子主题
选择从音频列表中获取时间线列表插件
拼音数据转换
选择根据时间线制作字幕数据
节点预览
添加拼音
选择批量添加字幕插件
节点预览
注释时间线
选择{从音频列表中获取时间线列表插件
节点预览
注释数据转换
选择根据时间线制作字幕数据插件
节点预览
添加注释
选择批量添加字幕插件
节点预览:
保存草稿
选择保存草稿插件
节点预览
云渲染
选择云渲染视频,接收create_draft输出的链接插件
输入
token_api
创建草稿的url
节点预览
结束
输出草稿地址
输出云渲染地址
节点预览
完整工作流预览
开始节点中token获取方式
https://www.51aigc.cc/#/home?user_id=297859
完整工作流V获取GPTAi115