拓冰建站拓冰建站
首页 / 资讯中心 / 正文

AI智能体实战:自动化生成营销Banner工作流

1. 项目概述为什么AI智能体适合干Banner这活计要说把AI智能体用在图像处理上最不虚头巴脑的场景就是生成营销Banner。原因很简单——Banner本身就是一种高度模板化、批量重复、又极度依赖视觉表达的内容产物。运营同学每个月要出几十张活动图每次改文案、换底图、调构图、重新导出各个尺寸听着不难干起来全是碎活儿。而AI智能体天然适合处理“听起来简单但步骤琐碎”的任务你只要把目标描述清楚剩下的路径规划、工具调用、中间检查、结果输出全交给它自己跑。我这次做的项目简单说就是搭了一个智能体工作流输入一段营销需求描述比如“咖啡品牌秋季新品上市新中式国潮风主视觉要宽幅Banner”它自动完成从图片生成、局部修图、文字排版建议到多尺寸导出的整套流程。最终输出的是可以直接拿去投放的成品图而不是一张需要设计师再花半小时精修的半成品。这几类人最适合看这篇文章搞AI应用开发的工程师想找智能体落地场景的产品经理还有每天被Banner需求淹没的运营和设计师。你会看到我不是在讲概念而是把一套真正能跑的流程拆开给你看——从工作流设计、节点配置、提示词写法到图像后处理的具体参数和工程上的坑每步都有可复现的细节。项目跑通之后我做一张Banner的时间从原来的半小时缩短到三到五分钟而且最花时间的地方变成了“挑哪张更好看”而不是“怎么把需求实现出来”。这中间的经历和踩过的坑我觉得值得展开聊聊。2. 整体设计思路智能体怎么规划“一张Banner的诞生”2.1 为什么不能只用“文生图模型”一步到位很多人听到“AI做Banner”第一反应是打开Midjourney或者Stable Diffusion生图不就行了确实文生图模型能产出一张看起来像样的图但离“营销Banner”还差得远。Banner不是艺术海报它有三层硬性要求第一层是信息结构主标题、副标题、行动按钮要有明确的存在感和位置第二层是创作约束品牌色、LOGO、产品图必须准确出现第三层是工程约束需要多种尺寸适配不同广告位。直接文生图的结果是模型把字当图形画十个字里五个写错产品图跟实物不符A3尺寸能看压缩到手机端横条就全部糊在一起。所以我在设计智能体时核心思路不是“让AI一次画完”而是“让AI像设计师一样分步完成”——先定方案、再出底图、然后做后处理、最后批量导出。这就像你写字不是抓起笔一口气写完一篇文章而是先列提纲再逐段填充。2.2 智能体的三层结构理解、执行、质检整个系统按职责分为三层这是当时设计时最关键的决策。理解层LLM Prompt负责把营销需求翻译成具体可执行的视觉任务。它要输出一整份“设计需求单”内容包括画布比例、主色调、风格关键词、主体物描述、文案层级、是否加LOGO、是否需要留出文字安全区。这一步做得越细致后面生成的结果越可控。执行层图像处理工具集负责真正干活。我给它准备了不止一个工具文生图模型负责产出底图背景移除模型负责抠图图像超分模型负责提升分辨率OCR和字体工具负责检查/渲染文字。智能体会根据理解层的输出自己决定调用哪些工具、什么顺序调用、参数怎么设置。质检层视觉评估模型 规则引擎负责把关。它做的事情很像设计师提交前的自检检查画面中是否有乱码文字、检查主体物是否居中、检查整体风格是否贴合需求。质检不通过就直接触发重新生成最多重试三轮再做人工介入提示。这个“反内卷”的重试上限是为了防止模型无限空转。这三层对应到工程上就是一个可编排的Agent工作流。我当时用n8n做流程编排LLM做任务规划和函数调用本地Stable Diffusion XL做底层生图再加几个Python图像处理脚本作为工具节点完整跑通后效果比我预期好不少。2.3 为什么选n8n而不是纯代码开发其实最开始我打算直接用Python写一套完整流程任务调度用LangGraph图像处理用OpenCV全都塞进一个服务里。但做到一半发现营销Banner的流程变更太频繁了。今天要加个节日元素检测明天要支持某个渠道的特殊尺寸后天可能又要接入新的生图模型。每次改流程都要改代码、重新部署灵活性很差。换成n8n这类可视化工作流平台后好处立刻体现出来。第一所有节点可视流程理解成本极低我给非技术的运营同事演示了一遍他们就懂了。第二随时改随时跑拖拽一个节点或者改个Prompt就能发新版本不用翻代码。第三平台自带API接入和错误重试机制少写很多基建代码。当然这不是说纯代码方案不行。如果是做高并发、多租户的商业产品肯定要自己写服务。但做的是内部提效工具或者个人项目可视化的编排效率确实高得多。我倾向于推荐有类似需求的人优先考虑n8n、Dify这类工具把精力花在优化节点本身的效果上。2.4 智能体工作流的完整状态流转整套工作流在运行时的状态流转是这样的等待输入 → 解析需求 → 设计方案生成 → 文生图 → 后处理 → 质检评分 → 结果输出 → 失败重试。关键的是“设计方案生成”和“后处理”这两个状态它们决定了最终出图的质量上限。设计方案生成这一步LLM输出的不是一句话而是一份结构化的JSON。字段包括画布尺寸、色彩体系、构图描述、视觉主体描述、主体位置提示。这张“设计稿”会把需求转译成生图模型能读懂的语言。举个例子需求是“咖啡新品上市新中式风”设计稿里可能出现这样的描述canvas: 1200x628、primary_color: #8B5E3C / #F7F3E8、layout: 产品居中偏左、右侧大面积留白用于文案、style_tags: 新中式, 水墨质感, 茶文化元素。后处理阶段则是对底图做“工业化加工”。底图生成之后往往存在各种小问题边缘有杂质、主体位置不理想、对比度不够导致文字看不清。我用Python脚本做了自动裁切、去背、滤镜增强、加安全边距等操作配合OpenCV和Pillow调整完成后才进入质检环节。整套流程跑完出图的稳定性和商业可用度比单一模型直接输出高出一大截。3. 核心细节解析与实操要点3.1 文生图模型的选型对比与最终决策Banner生成的核心引擎是文生图模型这一步的选型我纠结了很久。我把三个候选方案放在一起对比跑了几十张图结论比较明确本地部署的Stable Diffusion XL适合做主力Midjourney和DALL·E 3更适合作为备选方案。模型优点缺点适用场景Stable Diffusion XL可控性极强可安装LoRA定制风格支持ControlNet精确控制部署成本中等需要调参经验批量生成、风格固定、需要精确构图Midjourney艺术感和色彩表现力最好构图不可控文字几乎必错不方便批量调用探索风格、高质感背景生成DALL·E 3文字渲染能力相对较强理解复杂指令能力强生成结果风格偏“统一化”自由度一般小批量素材生成、文字类Banner最终选SD XL还有一个关键原因ControlNet。这个库可以让模型按照指定的线条骨架或语义分割图来生成内容对Banner构图的意义非常大。比如我可以先画一个粗略的矩形框定位图左边是产品区右上角是标题区右下角是按钮区然后让SD XL在这个框架内填内容。这样出来的图版式结构天然合理不会出现文案没地方放的尴尬。3.2 提示词的层级结构全局描述、区域描述、负面提示用SD XL做Banner提示词写得好不好决定成败。简单堆砌形容词是新手最常犯的错误模型看不出重点。我的做法是把提示词拆成三层每一层各司其职。全局描述定义整张图的基调和环境。类似“中国风秋季咖啡产品图暖色调新中式空间木质桌面茶具和咖啡杯组合柔和自然光商业摄影质感8K细节”。区域描述利用ControlNet或局部重绘能力按画面区域分别给出指引。左下角放产品主视觉右上角区域保持干净留白以便叠加文字底部用浅色渐变过渡。这一步是Banner设计逻辑的核心画面元素要有明确的信息层级。负面提示列举绝不出现的内容。比如“不要出现文字、不要水印、不要低分辨率、不要变形的手、不要杂乱的背景、不要过饱和色彩”。很多初用SD的人会忽略负面提示但实测下来一条写好的负面提示词对画质提升的效果比多加几条正面形容词还有用。实操笔记Prompt写好后先用固定种子值跑三四次确认构图稳定再放开随机种子。Banner讲究可复用构图的稳定性比我贪图多样性重要得多。3.3 文字处理Banner里最容易被AI搞砸的部分说个真实数据在我测试的约200张AI生成Banner里直接让模型在图里画文字的方案文字可读率不到20%。哪怕是号称文字能力强的模型也经常出现笔画错乱、中文生僻字直接变乱码。AI画图本质是在捕捉像素分布它没有真正的“写字”能力。所以我的方案是生图阶段绝不要求模型绘制文字同时用负面提示硬性标记no text。所有文字信息在图像后处理阶段用PIL渲染上去。这样做的三个好处文字绝对清晰、视觉修改灵活想换标题直接改文本再渲染、可以一键输出多语言版本。PIL渲染标题文字时有几个细节容易被忽略中文字体文件要用思源黑体或阿里巴巴普惠体否则容易出现字体版权问题而且细笔画在缩略尺寸下可读性差。标题如果带阴影建议直接用绘制阴影图层的方式实现而不是用轮廓线效果更接近设计工具。字体大小不能是固定的。因为Banner要输出多个尺寸字号的单位要用“相对画布宽度的百分比”不然大尺寸正常、小尺寸文案溢出。如果副标题有多行行距至少设为字号的1.3倍紧凑排版在视觉上会显得很“挤”。文字渲染完成后要保留一个不带文字的底图层。这招很关键运营拿到图之后想改文案不需要重新跑整个AI流程只要用底图重新渲染一次文字就行。3.4 图像后处理流水线的节点实现SD XL直接生成的底图离“精致”还有一段距离后处理流水线就是补上这段距离的。整个流水线我用Python脚本实现分五个节点依次执行。第一个节点是裁切排版。根据目标Banner尺寸检测主体物的位置适当平移裁切保证构图重心在安全区域。这里用到了OpenCV的显著性检测效果比我预想的更精准。第二个节点是背景去杂。很多底图主体没问题但边缘会有一些莫名其妙的物体或噪点。我集成了一款背景移除模型u2net如果主体清晰度足够就自动抠图后再融合回平滑背景同时在融合边缘加2-3像素的羽化来弱化生硬感。第三个节点是色彩校准。这是为了品牌一致性。运营给的品牌色是#FF6A00那我能接受的范围就限定在附近。用Python把画面主色提取出来做一个轻度方向性色偏校正然后再做一次高光阴影微调。最终效果是画面像调过滤镜一样整体统一。第四个节点是添加文字图层和LOGO。按照方案生成阶段的JSON里配置好的文案、字体、位置、颜色将文字渲染到底图上。LOGO这里也踩了个坑透明背景的PNG放上去没问题但如果LOGO底色是白块最好先做一次白底去除。第五个节点是格式与尺寸适配。同一张Banner不同广告位要的尺寸都不一样。主图800×800Banner 1200×628信息流大图750×420等等。这个节点的实现方案是先生成一张最大尺寸的母版图然后为每个目标尺寸做一次高质量缩放裁切。最后统一导出为WebP格式质量和体积平衡最好。这套流水线跑通后我最大的感受是AI生图只解决了从0到1的“内容创造”真正让图片“可用”的反而是这些不起眼的后处理工程步骤。4. 实操过程与核心工作流搭建实录4.1 环境配置与依赖清单整套系统最终跑在我的本地工作站上GPU是RTX 4090 24GB系统Ubuntu 22.04Python 3.10。如果你用的是云GPU服务器流程也完全一样只是网络和文件传输上稍微注意一下。核心依赖分三层。模型层Stable Diffusion XL base 1.0加上一个专门做电商产品图的LoRA可以显著提升产品主体的质感表现ControlNet用的是Canny边缘检测版本因为对排版布局的约束最直接且稳定。服务层本地部署了stable-diffusion-webui开启API模式同时暴露一个ComfyUI实例做主流程控制。如果你只想选一个我推荐ComfyUI因为它的工作流可以保存成JSON文件从底层就适合做流程复用和二次开发。工具层Python安装pillow、opencv-python、ultralytics用于主体检测、rembg用于背景移除再加上requests用于调用SD的API和各工具之间的数据流转。安装的时候最容易踩的坑是环境冲突。建议给这套项目单独建一个conda环境特别是PyTorch和CUDA版本一定要先对齐不然SD跑不起来不说连rembg的ONNX推理模式都会报错。4.2 智能体工作流在n8n里的节点编排整个Flow的核心编排落在n8n里你可以在可视化画布上看到一条清晰的流水线。我这里按节点顺序拆解开你照着拖拽就能复现。初始节点是Webhook Trigger用来接收来自API或者Web表单的请求。对外暴露的URL会接受一段JSON包含prompt、brand_color、product_type、target_size字段。接着是AI Agent节点也是理解层的核心。我在这里配置了一个系统提示词要求LLM将输入的需求转成严格的JSON设计方案。提示词的写法比较关键我贴一段核心内容你是资深视觉设计师图像工程专家。用户会给你一段营销Banner需求描述你需要输出严格的JSON设计方案。字段要求 canvas_size推荐比例或具体尺寸 primary_color从品牌色扩展出的2个主色hex格式 style_tags3到5个风格关键词描述视觉方向 visual_subject画面主体物的详细描述包括材质、摆放方式、光线 layout_guidance分区域描述画面排布左右结构或上下结构哪里放主体哪里留白 title_text / subtitle_text / button_text提取或设计营销文案 negative_prompt列出需要规避的画面内容LLM返回JSON后会进入IF条件判断节点校验必填字段是否齐备。这块逻辑不复杂主要防的是运营同学输入信息不全提前把问题拦截住而不是让后续流程白跑。然后是HTTP Request节点把JSON里的描述组合成生图提示词向本地ComfyUI或stable-diffusion-webui的API发送出图请求。建议用ComfyUI的API接口因为它支持完整工作流参数控制。我在这步把ControlNet工作流也一起封装了因此HTTP请求里会包含{ prompt: ..., negative_prompt: ..., steps: 28, cfg_scale: 7, width: 1024, height: 1024, controlnet_input_image: 预置的版式骨架图路径, controlnet_module: canny, controlnet_strength: 0.8, seed: 42 }这里要特别注意SD生成横幅图时最大分辨率在1280×1280以内比较稳定超过容易崩结构。真正的高清Banner可以后面再做超分而不是直接让模型一步生成超大图。出图之后进入Python Function节点执行我上一节提到的五个后处理步骤。这个节点是整套工作流里耗时最长的通常5-10秒主要是超分和背景移除计算量大。建议在这里做一个异步队列防止并发请求时排队太久。最后一个关键节点是视觉质检。这里我调用了另一个视觉语言模型把生成的图传过去并给出评分维度构图合理性、色彩和谐度、文案可读性、主体清晰度四个维度各1-5分。总分低于14分就进入重试分支调低ControlNet强度或者修改风格关键词再跑一次。n8n里做重试时要注意设置deadline整个流程最多循环三次就退出避免因为无关紧要的“风格飘了”导致后台任务卡死。这个细节在自动化流程里非常重要——AI不可控因素多工程上必须有“熔断”机制宁可让一个case失败暴露出来也不能让整个队列被拖垮。4.3 封面图生成示例完整跑通一个需求拿一个实际案例来走一遍流程需求是这样的“轻食品牌夏日新品牛油果能量碗健康清新风需要一张信息流大图750×420品牌色绿色#7CB342”。第一步Webhook节点收到这段文案传给AI Agent。几秒钟后LLM返回方案JSON核心字段如下canvas_size: 750x420按需求指定尺寸放大1.5倍至1125x630生成便于后续高质量缩放primary_color: [#7CB342, #F1F8E9]visual_subject: 一碗牛油果能量碗位于画面右侧食材纹理清晰新鲜蔬菜点缀浅色木桌俯拍45度视角layout_guidance: 左侧留白区放标题和按钮右侧主体产品图title_text: 夏日轻盈 · 牛油果能量碗subtitle_text: 低脂高纤 焕活一整天button_text: 立即尝鲜negative_prompt: text, watermark, cluttered background, overexposed, deformed food第二步HTTP节点把JSON转成ComfyUI工作流参数带上预置好的左右分栏版式骨架图左空右实经过约30秒生成出底图。整体效果基本符合需求不过左下角有个多余的餐具影子后处理第一步会被自动裁切掉。第三步Python后处理节点开始工作。主角检测确认产品位于右侧裁切后构图稳定背景移除后重新融合到品牌浅绿色背景上画面干净不少色彩校准把整体色温往暖调微调了一点点让牛油果绿色更透亮然后在左侧渲染标题、副标题和按钮按钮的色值直接用品牌色圆角矩形和阴影调整到位最后按目标尺寸750×420输出WebP。第四步质检模型评分构图4.7色彩4.8文案可读性5.0主体清晰度4.9总分超过阈值直接通过。这张图的完整制作时间约两分半钟其中大部分时间是等生图模型算人工交互基本为零。4.4 多尺寸适配的工程实现技巧需求千变万化但Banner尺寸往往翻来覆去就那么几个。我把常用尺寸整理成了一个适配映射表放在工作流配置里需要新增渠道时直接加一行就行。使用场景目标尺寸生成母版尺寸裁切策略信息流大图750×4201125×630水平居中、上下裁切商城主图800×8001024×1024正方形居中开屏广告1280×7201280×720直接使用站内轮播1024×5001536×750水平居中、上下裁切从母版缩放裁切时要注意单纯的resize会丢细节尤其是文字边缘容易发虚。我的做法是先对母版做一个2倍超分然后再做目标尺寸的resize加轻微锐化UnsharpMask量约80%。这套处理完的文字边缘明显更锐利在手机屏幕上尤其能看出差别。如果目标尺寸和母版比例差异很大比如竖版信息流和横版Banner单纯“裁切”会丢掉太多画面内容。这种情况建议另做一版“竖版构图模板”而不是硬裁。好的工作流不会用一个万能模板解决所有问题而是根据输入自动选择合适的版式配置。5. 常见问题与排查技巧实录5.1 生图结果文字乱码、版面飘忽不定这个问题几乎每个用SD做Banner的人都会遇到。排查思路分两步先看正面提示词有没有要求模型“画文字”再看负面提示词有没有抑制文字。最直接的根因通常是你忘了在负面提示里加no text或者方案JSON里的title_text被拼进了生图提示词里。我的代码里专门做了一层过滤生图前脚本会把所有文案字段清空只保留风格和主体相关词。这是硬拦截比靠“模型自觉”可靠得多。另外在用ControlNet时如果版面还飘忽检查一下骨架图的线条是否太复杂Canny检测线越多模型受到的约束越强但局部细节失控的概率也越大。骨架图尽量只画大的区域框和主体轮廓线不要画细碎纹理。5.2 后处理时色偏严重品牌色对不上有次生成一张蓝色调Banner后处理完蓝色居然偏紫查了大半天问题出在OpenCV和Pillow的通道顺序上。OpenCV读图默认是BGRPillow是RGB你不做转换直接混用色彩一定会偏。这是最典型的“文档不会告诉你、但一定会遇到”的坑。色彩校准的正确顺序是确认所有库统一用RGB → 提取主色 → 在LAB空间做色相偏移微调 → 转回RGB。别在BGR空间直接调色相偏移效果会非常怪。另外如果叠加LOGO后颜色变暗检查你渲染文字图层时是不是用了RGBA模式但没有做alpha composite而是直接paste导致透明区域变黑。5.3 智能体流程偶发超时或卡死跑久了容易遇到一个现象Webhook收到请求之后Agent节点一直没有后续动作。排查下来多数是LLM节点返回了非JSON格式的文本后续节点解析不了直接卡住。我的方案是加了两道保险一是解析JSON失败后自动把LLM输出重新包装成“从文本中提取JSON”的指令再送一次二是n8n节点全局设置超时上限和失败重试次数。如果你的智能体工作流也会调用外部API强烈建议“所有外部请求节点都设置timeout为30秒并做三次指数退避重试”。不然某个模型服务偶发变慢整个队列积压会让后面的任务全部超时。自动化最忌讳的就是某个环节没有任何容错机制一卡全卡。5.4 智能体理解偏差导致输出风格不符合需求运营同学输“非主流”风格解释权在他眼里是“新锐潮流”在模型眼里可能直接生成赛博朋克。理解偏差几乎不可避免完全靠提示词解决不现实。我在需求入口处加了一个意图确认步骤用户提交需求后智能体先回传设计方案的文字预览附上风格参考图链接等用户确认后才真正启动出图。多这一轮交互虽然增加了几十秒延迟但避免了大量的无用出图整体效率反而更高。这个设计思路也值得借鉴到其他智能体项目里对于生成类任务中间加一个人机确认节点比事后重试高效得多。6. 数据与效果这套方案到底省了多少事我把这套工作流挂了几天做了个简单的数据统计。团队运营累计提交了46次Banner生成请求最终通过质检并直接可用的图有31张一次性通过率约67%。剩下15张里有9张是风格不符合预期人工重跑了6张是构图存在硬伤触发自动重试后通过的。时间成本上人工做一张图平均30-45分钟这套工作流平均单张耗时约3分钟效率提升接近十倍。这还不算沟通成本——以前运营给设计师提需求要反复对齐、改稿现在智能体直接输出接近成品的图需要人工介入的只剩“审美选择”层面的微调了。有人可能会问67%的一次性通过率算高吗我觉得对于AI Agent类项目已经是一个相当可用的数字。而且这个数字还在不断提升因为我每遇到一次失败case就去找根因然后校正Prompt或后处理逻辑跑了两个月通过率已经从最初的41%涨到了现在的水平。智能体最大的价值不是“一次做完美”而是“每次都能根据反馈变好”。7. 写在最后几个让你少走弯路的经验这个项目做下来我最大的体会有三条。第一AI智能体的工程核心是“编排”而不是“模型”。模型是工具相当于你的手流程是工作流相当于你的脑。把流程想清楚工具才能发挥价值。同样是SD XL GPT有人只能出实验图有人能出投放级成品差的就是对流程和节点的理解深度。第二不要迷信全能模型专业分工才稳定。文生图就负责构图和氛围OCR文字识别就负责复核文字后处理脚本就负责细节修正质检模型就负责打分。每个环节用最强的专业工具组合起来才是一套高效产线。第三自动化流程一定要有“熔断和兜底”的机制。无论是重试上限、超时设置还是人工确认节点都是为了保证系统在不可控的AI行为面前依然稳定可用。做智能体的目标不是让系统看起来“智能”而是让它持续输出“可用”的结果。最后再分享一个小技巧。如果你也在做类似的图像生成智能体给你的工作流加一个“素材归档”节点每次生成的母版底图、方案JSON、最终成品按日期和项目名称自动归档。别小看这个功能一个月后回头看你会发现之前生成过的很多素材和Prompt方案换个标题和产品就能复用效率翻倍。这个细节我在做智能体的时候没想到后来是运营同事提醒“你之前那张奶茶Banner的背景图很好看能不能出个同款”才发现的。数据沉淀下来才是智能体项目真正的资产。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门