
简介面向AI美食视频制作与短视频运营场景的Coze工作流源码资源完整收录了从输入食物名称、生成高质量文生视频提示词到选择视频生成模型的实现链路可直接参考复现百万播放的AI美食吃播案例。包体仅8KB共3个文件以inscode工作流配置和index.html页面文件为主另附.gitignore辅助工程管理结构简洁、上手门槛低方便快速浏览与二次开发已有1385人学习下载。源码中细致展示了作者针对豆包、Running Hub、Veo3三种视频生成方式的选型对比与调试细节并结合美食赛道总结出传递色香味的提示词优化、特效编辑与运营分发技巧。无论是希望搭建第一条视频生成流水线的初学者还是想优化现有工作流的进阶运营者都能从这套源码中获得可直接落地的实操参考。整体设计贴合实际运营需求。 做美食类短视频这事我以前一直觉得是个重体力活找选题、写脚本、拍画面、剪节奏、配解说、压字幕一个人干完一套下来半天就没了。后来我开始把一部分流程交给AI但用下来发现零散的AI工具更麻烦——ChatGPT写文案、Midjourney出图、剪映配音、再手动拼视频中间来回切换浪费的时间一点没少。直到我把整套流程搬进Coze扣子工作流里才算真正把“做视频”这件事变成了半自动流水线。这篇文章要分享的就是我搭的一套Coze工作流源码方案它的核心作用是输入一个美食主题自动生成完整脚本、分镜画面、AI视频片段、配音和字幕最终输出一条可直接发布的竖屏美食短视频。不用会剪辑不用写代码只要会填参数、会复制粘贴节点配置就能把这套流水线跑起来。适合想做美食短视频但没有拍摄条件、或者想批量起号的个人博主也适合想理解AI工作流如何串联多模型能力的开发者。这套方案里最关键的不是某个单一模型有多强而是“编排”思路——把大模型、图像生成、视频生成、语音合成四个能力串成一条链每个环节的产物都是下一个环节的输入。我实测跑通后一条30秒左右的视频从触发到出片大概5到8分钟成本在几毛钱到一块钱之间基本可以接受。下面我把整条工作流的搭建思路、节点配置、源码结构和避坑清单全部拆开讲。1. 项目整体设计与思路拆解1.1 从“单点AI工具”到“流水线编排”先说我的痛点我之前用AI做视频环节之间全是断裂的。脚本生成后要自己复制到绘图工具里生成的图要下载下来再传到视频生成工具里配音还要单独找TTS工具合成最后所有素材堆到剪映里手动拼。一天能出一条就算效率高。Coze工作流解决的恰恰是“串起来”的问题。它本质是一个可视化的节点编排平台每个节点可以调用不同的大模型或API能力节点之间通过变量传递数据。你不需要自己写胶水代码只需要把节点拖到画布上连好线配置好参数就行。我最终选Coze而不是其他工具主要有三个原因国内直连可用注册门槛低对个人博主友好。内置了字节系的大模型豆包、图像生成模型、以及第三方TTS/视频生成插件生态完整。工作流可以发布成API或Bot方便后续批量调用为矩阵号铺路。对比同类方案ComfyUI更偏图像生成适合做单张高品质图或多图工作流但要做“文案→配音→字幕”这种跨模态串联会比较吃力Dify强在RAG知识库和Agent编排视频生成这块积累不够n8n是通用自动化平台但AI能力都要自己接配置成本高。Coze的优势在于“AI原生零代码”它的节点类型就是为AI任务设计的像“大模型”“图像生成”“视频生成”“TTS”都是开箱即用的节点不需要自己封装API。1.2 工作流设计的核心思路线性链审校节点这套工作流我设计成了五个核心阶段形成一条清晰的流水线选题输入 → 脚本生成 → 分镜与图像生成 → 图生视频 → 配音与字幕合成每个阶段的产物都是下一阶段的输入。听起来简单但实际操作中有一个“隐藏问题”大模型生成的脚本虽然是文字但分镜提示词如果直接丢给图像生成模型出图质量会非常不稳定因为大模型写提示词容易写得太抽象、太文艺比如“阳光洒在食物上温暖治愈”这种描述图像模型根本没法精确还原。所以我在这条链里加了一个关键节点——提示词改写与结构化。这个节点的作用是把大模型生成的叙述性脚本转成适合图像生成模型的“标签化提示词”包含主体、环境、构图、镜头、光线的明确描述。这一步是整个工作流能否出高质量画面的分水岭。2. 核心节点拆解与实操要点2.1 脚本生成节点让大模型“按格式说话”脚本生成节点是整条链的起点通常用“大模型”节点实现。我在这个节点里指定了以下系统提示词可以理解为给大模型的“岗位说明书”角色你是一流的美食短视频编导熟悉短视频节奏、钩子、平台算法。输出格式必须输出JSON结构包含标题、开场钩子、3-4个分镜段落每个段落包含文案内容和画面描述。长度控制整条文案控制在80-120字之间适配30秒左右的视频。风格要求口语化、有食欲感、拒绝书面语。之所以强制输出JSON结构是因为后面每个节点需要依赖具体字段取值。比如“分镜段落”里提取出的“画面描述”要传给提示词改写节点“文案内容”要传给TTS节点。如果大模型输出的是自由文本后续节点解析会非常麻烦。实操要点是我把温度参数调到了0.7左右保留一点创造力的同时又不会跑偏。温度太高容易出奇怪文案太低则会变成模板复读。2.2 提示词改写节点把文案翻译成图像模型能懂的语言这是我觉得最值得展开的一个点。图像生成模型无论是SD还是字节的图片生成模型对自然语言的理解远不如大模型它们对“氛围”“治愈”“好看”这种抽象词基本无感但对“俯拍”“暖色调”“浅景深”“木桌”“蒸汽”这种具象词非常敏感。我在提示词改写节点里写了三条转换规则把叙述性描述拆分成可渲染的视觉要素主体、环境、光线、构图、镜头。添加固定的美食视频风格后缀保证视觉一致性比如“美食摄影风格浅景深暖色调木桌质感”。禁止出现“像”“仿佛”等比喻词图像模型无法理解比喻。这里直观地列一个对比你就明白为什么改写这步不能省原文案“热气腾腾的汤面看着就舒服。”改写后“一碗中式汤面放在原木色餐桌上筷子夹起面条蒸汽从碗中升起俯拍45度浅景深暖色灯光美食摄影风格。”后者几乎大概率能生成一张有食欲的图。2.3 图像生成与视频生成的联动方式图像生成节点我选的是支持文本生图的模型分辨率设置了竖屏9:161080x1920因为短视频平台默认就是竖屏。图像生成之后每个分镜对应一张静态图下一步把这张图喂给视频生成节点。视频生成节点我用的是“图生视频”插件。相比“文生视频”“图生视频”有一个很实用的好处画面主体已经在图里确定了视频生成只需做“让静止画面动起来”这件事比如蒸汽飘动、汤汁冒泡、筷子夹起面条这种局部动态比全凭空生成要稳定得多而且不容易出现多头、畸变之类的问题。视频生成节点我一般设置10秒一个分镜生成完毕后再通过剪辑节点把多个片段拼接。如果没有拼接能力也可以让视频生成节点直接输出一个长视频部分插件支持但实测下来分段生成后在手机剪辑软件里拼质量控制和素材复用性更强。3. 实操过程与源码解析3.1 创建Coze工作流的前置准备注册好Coze账号后进入控制台点击“工作流”创建一个空白工作流。这里注意一个习惯工作流命名尽量用英文或拼音比如food_video_workflow因为后续要导出导入时中文名在部分版本里可能出现编码问题。创建之后画布上会有一个“开始节点”。开始节点是整条工作流的入口我在这里定义了用户输入的参数也就是每次做视频时要填的“选题”。比如你输入“红烧牛肉面”整条流水线就围绕这个主题开始运转。开始节点里我配置了两个字段topic字符串类型视频主题由用户填写。style字符串类型风格偏好默认填“治愈系暖色调”。这两个参数会传给脚本生成节点。开始节点一定要把字段类型和默认值写清楚否则后面引用变量时会因为类型不匹配而报错。3.2 脚本生成节点的参数配置在画布上创建一个“大模型”节点连接到开始节点。模型我选的是豆包Pro不同时期版本名称可能不同参数配置如下模型温度0.7最大回复长度1000系统提示词参考2.1节直接粘贴。用户消息引用开始节点的topic和style变量。大模型节点输出的是一个JSON字符串需要在后续节点里用“代码节点”或“变量提取节点”来解析。我这里是插入了一个轻量的代码节点用JSON.parse()把字符串转成对象然后分别提取出title、hook、clips数组。这三个字段后续的流向是title→ 字幕节点作为视频标题。hook→ 配音节点作为开场配音。clips→ 循环节点遍历每个分镜分别取narration和scene_description。3.3 图像生成与视频生成节点配置在拿到每个分镜的scene_description之后我先经过提示词改写节点可以用大模型节点实现也可以用代码节点写死规则这部分我建议用代码节点速度快也省token因为改写逻辑是规则固定、不需要模型创造力。改写后得到的“视觉提示词”传给图像生成节点。图像生成节点的参数我固定这样配图片比例9:16图片数量每分镜生成2张方便人工选图风格默认不做额外风格偏移靠提示词控制这里有一个我踩过的坑如果一次生成4张以上图片工作流整体耗时和费用会成倍上涨而且图片生成节点有并发限制容易触发限流。最稳妥的方案是每个分镜只生成2张人工在预览板上选一张再用。图像生成完成后把图片下载URL作为输入传给视频生成节点。我用的视频生成插件支持图生视频还可以控制运动幅度motion scale美食类内容我一般设置在0.4-0.6之间运动幅度太大会导致画面扭曲太细则看起来像PPT。3.4 系统源码解析JSON配置与节点依赖很多朋友问“源码”到底指什么这里统一解释一下Coze工作流的“源码”本质上是一份JSON格式的工作流定义文件包含节点类型、连线关系、参数配置和变量映射。你可以在工作流编辑页里点击“导出”拿到这份JSON也可以在别人分享的链接里“导入”一份完整配置。完整源码因为是团队内部项目我不方便直接贴全部但我可以给你一个高度简化的结构示意你看完就明白它的组织逻辑{ nodes: [ { id: node_start, type: start, parameters: { topic: { type: string, default: }, style: { type: string, default: 治愈系暖色调 } } }, { id: node_script, type: llm, model: doubao-pro, temperature: 0.7, prompt: 你是一流的美食短视频编导..., input: {{node_start.topic}}, output: script_json }, { id: node_parse, type: code, language: javascript, code: const data JSON.parse(input.script_json); return data;, input: {{node_script.output}} }, { id: node_image, type: image_generation, model: 可替换为你的图片模型, prompt: {{node_prompt_rewrite.output}}, resolution: 1080x1920, count: 2 }, { id: node_video, type: video_generation, plugin: 可替换为你的图生视频插件, image_url: {{node_image.output.url}}, motion_scale: 0.5 }, { id: node_tts, type: tts, voice: 美食女主播, text: {{node_script.hook}}, audio_format: mp3 } ], edges: [ { from: node_start, to: node_script }, { from: node_script, to: node_parse }, { from: node_parse, to: node_prompt_rewrite }, { from: node_prompt_rewrite, to: node_image }, { from: node_image, to: node_video }, { from: node_parse, to: node_tts } ] }这个结构本质上是把一个个AI能力节点像积木一样拼起来。你拿到一份别人分享的源码后最需要检查的是三点各节点用的模型/插件是否存在权限如果源文件用的是付费插件而你没开通导入后会显示“节点不可用”。变量名是否匹配比如某个节点引用了{{node_image.output.url}}但前一个节点的输出字段名是image_url就会出现找不到变量的情况。连线是否完整有些导入的工作流会因为版本升级而丢失个别边需要手动重新连。3.5 配音与字幕合成节点TTS节点我选了一个带“美食女主播”音色的音色库语速调到1.1倍这样听起来更活泼符合短视频节奏。这里有个很关键的细节如果你把每个分镜的文案分别交给TTS节点生成最后拼起来时往往会出现每句配音之间停顿不自然的问题。我的方案是先把所有分镜的narration字段合并成一段完整文案再一次性交给TTS节点生成这样整条配音的感情线和停顿节奏都会更连贯。字幕节点则用TTS返回的时间戳信息来自动打轴。如果TTS节点没有返回时间戳就退一步用预设的“掐点”方案根据视频时长平均切分字幕虽然精度一般但对没有专业需求的博主来说完全够用。4. 常见问题与排查技巧实录4.1 视频片段拼接后画风不统一怎么办这是我最常被问到的问题。AI生成每张图片时即使提示词几乎一样画面色调、构图细节、餐具风格也难免有差异。拼起来之后观众一眼就觉得“不同镜头不像同一家店”。我的经验是两步解决在提示词改写节点的固定后缀里把“原木桌、白瓷碗、暖色灯光、浅景深”这几项作为强约束词完全锁定每次生成都带上。在视频生成节点之后加一个滤镜节点的调用或者干脆在剪辑阶段统一叠加同一个滤镜参数。现在的剪映、必剪都有批量滤镜功能几十秒的视频手动加一次也不麻烦。4.2 视频生成节点报错、限流、超时怎么排查先看控制台日志里报错的具体节点名称不要干瞪眼。常见原因无外乎三类图片URL失效图生视频节点要求传入一个可公网访问的图片URL有些图像生成节点返回的临时URL有效期只有几分钟工作流跑得慢一点就过期了。解决办法是先用“图像下载节点”把图片下载到ClouDNS或自己的OSS再传给视频节点。插件额度用尽很多视频插件是免费试用或按次计费额度用完后不会提示而是直接报错。建议在关键节点前加一个“额度检测”逻辑或者直接订阅付费套餐。并发限制多个分镜同时触发视频生成时会被限流目前我的做法是改成串行触发每次只生成一个分镜虽然慢一点但稳定。4.3 配音和画面细节对不上怎么办如果你按3.3节的方式合并文案再配音但视频生成时长和配音时长还是有偏差可以用“最后一帧延长”技巧在视频拼接时把最后一个分镜的末尾加0.5到1秒的定格帧给配音留一点缓冲避免“话没说完画面就黑”。另外TTS的输出格式建议选mp3而不是wavmp3文件体积小后面压缩成视频时不容易出现音画不同步。4.4 关于版权与平台规则的避坑提醒这一点我觉得必须单独说。用AI生成美食视频最容易踩的坑是素材版权问题。你用的图像生成模型训练出的图像风格有时会非常接近某些美食摄影网站上的版权图虽然法律上很难说清但为了避免麻烦建议在发布前做两件事对最终生成的图片做一次“位置偏移检测”如果画面里出现明显的品牌logo、人脸就直接重生成。视频发布时在平台设置里勾选“AI生成内容标识”这不仅是很多平台强制的规则也是对自己的一种保护。不要抱有侥幸心理平台算法检测到高度AI合成的视频会降低推荐权重主动标识反而更容易被纳入正常流量池。5. 实操过程中的经验补充工作流搭建完成后我建议你先不要急着追求视觉效果先用一个最简单的主题“番茄炒蛋”完整跑通链路确认每个节点都能输出正确内容再逐步换复杂主题。跑通之后有几处细节值得继续优化代码节点例如JSON解析要加try-catch兜底虽然Coze代码节点本身有日志查看功能但如果你直接调用Python代码节点一个小的异常就会中断整个工作流最好在代码里做异常兜底并返回默认值。每个大模型节点的输出建议都限制为JSON格式并且接一个“格式校验”节点防止模型偶尔输出多余文字导致后续节点解析失败。如果你想把工作流从“人工触发”变成“定时自动触发”可以直接在Coze工作流的“发布”页面配置定时触发器这样每天固定时间自动生成一条美食视频直接推送到绑定好的飞书、抖音或API接口。这个功能对批量起号特别实用。还有一点个人体会不要试图一个工作流处理所有美食类型。火锅、甜品、面食它们的视觉表现手法差异很大强行用一套固定后缀的提示词会让所有视频看起来“一个模子”。我现在维护了三套工作流变体一套热菜烟火气风格一套甜品小清新风格一套面食特写风格。它们的节点结构几乎一样只有提示词后缀、配乐风格参数不同。后期如果做矩阵号这种“一个骨架多套皮肤”的思路可以复制到其他垂类比如宠物、旅行、家居。本文还有配套的精品资源点击获取