海报生成看起来像是“输入一句话,出一张图”,但真正落到外卖营销、品牌 IP、活动运营场景里,难点远不止模型会画图。美团智能创作团队围绕海报生成 AIGC 构建了“生成-编辑-评判”的完整技术闭环,并已在美团外卖、品牌 IP 等场景落地和开源。这个方向的价值不只是省几张设计图,而是把创意生产变成可迭代、可审核、可规模化交付的系统。
海报生成不是单点模型,而是一条生产线
营销海报通常同时包含商品、品牌调性、文案、版式、背景、视觉风格和合规要求。单纯调用文生图模型,容易遇到几个工程问题:
- 文案不可控:模型可能把文字画坏、画错,或者生成不可编辑的伪文字。
- 主体不稳定:商品图、品牌 IP、人物形象需要保持一致,不能每次都“重新发明”。
- 版式难复用:运营同学需要的是一组可调整模板,而不是一次性的图片。
- 质量难判断:如果没有自动评判,低质图会进入人工筛选,效率仍然被卡住。
因此,“生成-编辑-评判”闭环的核心意义,是把 AIGC 从玩具式输出变成工程化流水线:先生成候选,再让人或系统编辑关键元素,最后用规则、模型或人工反馈评判结果,并把反馈回流到下一轮生成。
生成:把需求拆成可控条件
在海报场景里,提示词通常不应只是一句话,而应拆成结构化条件。比如:
- 业务目标:新品推广、满减活动、节日营销、品牌曝光。
- 视觉主体:商品、门店、品牌 IP、人物或场景。
- 风格约束:国潮、极简、手绘、3D、霓虹、节日氛围。
- 文案区域:标题、副标题、价格、按钮、免责声明。
- 输出规格:比例、尺寸、渠道、是否需要留白。
这样做的好处是,生成模块可以稳定接入不同模型或工作流,而不是把所有需求揉进一段不可维护的长 prompt。对于团队实践,可以先从一个轻量的“海报任务描述 JSON”开始,让运营需求、生成服务、编辑器和评判器都读同一种数据结构。
编辑:让 AI 结果进入真实工作流
海报不是生成完就结束。真实业务里常见的编辑动作包括:换商品图、改价格、调整标题、替换背景、保留品牌 IP 姿态、局部重绘、扩图、抠图和重新排版。
这也是闭环里“编辑”特别关键的原因:它承认 AI 第一次输出不一定完美,但提供了低成本修正路径。一个可用的海报 AIGC 系统,最好把不可控的像素生成结果,拆回到可控的图层、蒙版、文案和布局参数中。这样运营和设计师不是在一张扁平图片上硬改,而是在可编辑资产上迭代。
可以这样实践:搭一个最小海报生成任务管线
下面示例不是对开源项目内部实现的复刻,而是一个可改造的最小工程骨架:用结构化 JSON 描述海报需求,生成 prompt,并用简单规则做质量预检。你可以把 call_image_model 替换成自己的文生图、图生图或工作流 API。
保存为 poster_pipeline.py 后运行:
import json
from dataclasses import dataclass, asdict
from typing import List
@dataclass
class PosterBrief:
campaign: str
product: str
audience: str
style: str
required_text: List[str]
size: str = "1024x1536"
def build_prompt(brief: PosterBrief) -> str:
text_slots = ";".join(brief.required_text)
return (
f"为{brief.audience}设计一张{brief.campaign}营销海报,"
f"主视觉是{brief.product},整体风格为{brief.style}。"
f"画面需要为这些文案预留清晰区域:{text_slots}。"
f"要求主体突出、层次清楚、适合移动端信息流展示,尺寸 {brief.size}。"
)
def call_image_model(prompt: str) -> dict:
# 实践时替换为你的图像生成 API。
# 这里返回模拟结果,便于直接运行和理解管线。
return {
"image_url": "./outputs/mock-poster.png",
"prompt": prompt,
"model": "replace-with-your-image-model"
}
def evaluate_result(brief: PosterBrief, result: dict) -> dict:
prompt = result["prompt"]
missing_terms = [term for term in brief.required_text if term not in prompt]
return {
"pass": len(missing_terms) == 0,
"missing_required_text": missing_terms,
"checks": [
"required_text_in_prompt",
"size_declared",
"style_declared"
]
}
if __name__ == "__main__":
brief = PosterBrief(
campaign="周末外卖满减活动",
product="一份热气腾腾的招牌牛肉饭",
audience="午餐高峰期的上班族",
style="明亮、干净、有食欲的商业摄影风",
required_text=["周末满减", "满30减8", "立即下单"]
)
prompt = build_prompt(brief)
result = call_image_model(prompt)
report = evaluate_result(brief, result)
print(json.dumps({
"brief": asdict(brief),
"generation": result,
"evaluation": report
}, ensure_ascii=False, indent=2))
运行:
python poster_pipeline.py
这个小例子刻意保留了三个接口点:
PosterBrief:沉淀业务输入,避免 prompt 散落在各处。call_image_model:接入生成模型、工作流编排或队列服务。evaluate_result:从简单规则开始,逐步替换为图文一致性、OCR、审美评分、品牌合规等评判模块。
评判:规模化落地的隐形门槛
如果系统每天只生成几十张图,人工挑选还能勉强应付;一旦进入外卖活动、品牌物料和 IP 运营等高频场景,评判能力就会成为吞吐量瓶颈。
一个实用的评判层通常可以分三级建设:
- 规则评判:尺寸、文件大小、必填文案、禁用词、留白区域。
- 模型评判:主体一致性、图文匹配度、OCR 可读性、美学分、清晰度。
- 人工反馈:运营选择、设计师修改、投放效果数据,反哺下一轮生成策略。
这里的关键不是追求一次性自动判断所有好坏,而是先过滤明显不可用的结果,把人工精力留给更有价值的创意判断。
落地建议:先闭环,再追求惊艳
海报 AIGC 的工程目标,不应只是“生成一张惊艳图片”,而是稳定地产出可用资产。团队可以按这个顺序推进:
- 先选定一个窄场景,例如外卖单品活动图、节日品牌海报或 IP 社媒配图。
- 用结构化 brief 管理输入,减少 prompt 随机性。
- 保留编辑入口,让生成结果能被业务人员继续修改。
- 建立最小评判集,从尺寸、文案、清晰度、合规规则做起。
- 把人工选择和修改记录下来,逐步形成数据闭环。
这类系统的边界也要讲清楚:AIGC 能显著提升候选方案产出和局部编辑效率,但品牌调性、法律合规、活动策略仍需要人来负责。真正可靠的海报生成平台,不是替代设计判断,而是把重复劳动、候选探索和质量初筛交给机器,让人把时间花在更高层的创意决策上。