首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI商业海报设计:从提示词到可交付稿的工程化实践

AI商业海报设计:从提示词到可交付稿的工程化实践

原创
作者头像
用户12687280
发布于 2026-09-25 16:59:56
发布于 2026-09-25 16:59:56
380
举报

AI商业海报设计不是“输入一句话生成一张图”那么简单。商业海报必须满足品牌一致性、信息层级、转化引导与合规要求。专业做法是:可控生成 + 精准排版 + 多端适配。本文拆解完整工作流,并给出可运行的 Python 代码。

一、专业工作流

  1. 策略层:明确目标(拉新/促销/品牌)、受众、核心卖点、CTA。
  2. 视觉层:确定风格板、品牌色、字体、参考图。
  3. 生成层:用文生图/图生图产出背景,ControlNet 控制构图与留白。
  4. 合成层:叠加标题、副标、按钮、Logo、二维码。
  5. 输出层:导出 1:1、9:16、16:9,预留平台安全区。
  6. 合规层:检查广告法禁用词、字体版权、肖像权。

二、提示词工程

商业海报提示词应结构化:主体 + 场景 + 风格 + 光影 + 色彩 + 构图 + 画质 + 负面。例如:

商业护肤海报背景,产品位于画面下方三分之一,上方大面积留白,极简高级,柔和自然光,浅灰与香槟金,影棚质感,无文字,无水印,超清,4k。负面:文字、水印、畸形、杂乱、低分辨率。

三、代码实现:AI生成 + Pillow排版

安装依赖:pip install openai pillow requests。以下代码调用 DALL·E 3 生成竖版背景,再用 Pillow 完成专业排版。

代码语言:javascript
复制
import os, io, requests
from openai import OpenAI
from PIL import Image, ImageDraw, ImageFont

client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def generate_bg(prompt):
    resp = client.images.generate(
        model="dall-e-3",
        prompt=prompt,
        size="1024x1792",   # 竖版,接近 9:16
        quality="hd",
        n=1
    )
    url = resp.data[0].url
    return Image.open(io.BytesIO(requests.get(url).content)).convert("RGB")

prompt = ("商业护肤海报背景,产品位于画面下方三分之一,上方大面积留白,"
          "极简高级,柔和自然光,浅灰与香槟金,影棚质感,"
          "无文字,无水印,超清,4k")
bg = generate_bg(prompt).resize((1080, 1920))

def draw_poster(bg, title, subtitle, cta, brand,
                font_path="SourceHanSansCN-Bold.otf"):
    img = bg.copy()
    draw = ImageDraw.Draw(img)
    W, H = img.size
    title_font = ImageFont.truetype(font_path, 88)
    sub_font = ImageFont.truetype(font_path, 42)
    cta_font = ImageFont.truetype(font_path, 38)
    brand_font = ImageFont.truetype(font_path, 32)

    # 安全区:左右 8%,顶部 10%,底部 12%
    margin = int(W * 0.08)
    y = int(H * 0.12)

    def wrap(text, font, max_w):
        lines, cur = [], ""
        for ch in text:
            if draw.textlength(cur + ch, font=font) <= max_w:
                cur += ch
            else:
                lines.append(cur); cur = ch
        if cur: lines.append(cur)
        return lines

    for line in wrap(title, title_font, W - margin * 2):
        draw.text((margin, y), line, font=title_font, fill="#1A1A1A")
        y += 110
    y += 20
    for line in wrap(subtitle, sub_font, W - margin * 2):
        draw.text((margin, y), line, font=sub_font, fill="#555555")
        y += 60

    # CTA 按钮
    btn_w, btn_h = 360, 96
    btn_x, btn_y = margin, H - int(H * 0.18)
    draw.rounded_rectangle([btn_x, btn_y, btn_x + btn_w, btn_y + btn_h],
                           radius=48, fill="#C9A96A")
    draw.text((btn_x + 48, btn_y + 28), cta, font=cta_font, fill="#FFFFFF")

    draw.text((margin, H - int(H * 0.08)), brand,
              font=brand_font, fill="#1A1A1A")
    return img

poster = draw_poster(bg, "焕活新肌", "28天见证透亮光感",
                     "立即体验", "AURORA")
poster.save("poster_9x16.jpg", quality=95)

# 多尺寸导出
for ratio, size in {"1:1": (1080, 1080), "16:9": (1920, 1080)}.items():
    poster.resize(size).save(f"poster_{ratio.replace(':','x')}.jpg",
                             quality=95)

四、专业检查清单

  • 留白与安全区:文字不压主体,避开平台 UI 遮挡区。
  • 字体授权:商用必须确认版权,优先使用思源黑体等开源字体。
  • 对比度:正文与背景对比度 ≥ 4.5:1。
  • 合规:禁用“最”“第一”等绝对化用语,医疗宣称需资质。
  • 版本管理:归档提示词、种子、参数、输出文件,便于迭代。

结语

AI商业海报设计是策略、生成、排版、合规的系统工程。代码把重复劳动自动化,设计师聚焦创意与品牌调性,才能稳定产出可交付的商业作品。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、专业工作流
  • 二、提示词工程
  • 三、代码实现:AI生成 + Pillow排版
  • 四、专业检查清单
  • 结语
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档