欢迎光临
我们一直在努力

Day 03 :AI 生成营销素材:从文字描述到海报

周五下午 4 点,老板走过来:"梅雅达工作室下个月有暑期班招生,帮我出一套海报,下周一要用。"我联系设计师,对方回了一句:"感冒了,下周再来。"这个场景对小型工作室、教育培训机构、个体创业者来说太常见了——"做一张海报"听起来简单,实际操作起来全是坑:

  • 请设计师:一张海报少说 300-800 块,一套下来好几千
  • 自己用模板工具:Canva、稿定设计确实能用,但改到满意可能要花半天
  • 找 AI 生图工具:Midjourney 要翻墙、DALL-E 要绑卡,门槛不低

有没有一种方案——用 Python 写几行代码,输入文字描述,直接出海报,而且免费?有。今天的主角是智谱的 CogView-4,国内目前最强的开源文生图模型之一,API 调用完全免费,而且原生支持中文提示词,甚至能在图片里写出汉字。

扩散模型到底在干嘛

写代码之前,花 3 分钟理解 AI 是怎么"画图"的。搞懂原理,写 Prompt 的时候就知道该怎么跟 AI 沟通。

扩散模型(Diffusion Model)的原理,说白了就是:先往一张清晰图片上加满噪点,直到变成纯雪花屏;然后训练 AI 学会"去噪",把雪花屏一步步还原成图片。

想象你有一张清晰的照片:

第一步:加噪(训练阶段)。你一步步往照片上撒沙子。第 1 步撒一点点,照片还有点轮廓;第 100 步撒完,整张照片全被沙子盖住,变成一块纯灰色的板子。这个过程叫前向扩散——从"有信息"到"纯噪声"。

第二步:去噪(生成阶段)。反过来,拿一块纯灰色的板子,让 AI 一步步把沙子吹掉。第 1 步吹掉一点,隐约出现一些色块;第 50 步,能看出大致的轮廓和颜色分布;第 100 步,一张全新的清晰图片出现了。这个过程叫反向去噪——从"纯噪声"到"有信息"。

关键来了:AI 学过的不是某一张具体的图,而是**"沙子应该怎么被吹掉"的规律**。所以给它一块全新的灰色板子,它能"吹"出一张从未存在过的图片。

纯噪声 ░░░░░ → 去噪1步 ░▒░░░ → 去噪50步 ▓▓▒░░ → 去噪100步 🖼️清晰图片

跟 Prompt 有什么关系? 去噪过程中,你的文字提示词就是导航仪。AI 在每一步去噪时,都会参考提示词来"决定"该怎么还原:

  • 你说"蓝色海洋",AI 就会把噪点往蓝色、波浪方向还原
  • 你说"赛博朋克风格的街道",AI 就会把噪点往霓虹灯、暗色调方向还原
  • 你说"海报上写’暑期招生’五个大字",AI 就会尝试在画面中渲染这几个字

所以提示词要尽量具体——方向越明确,AI 去噪时越不会跑偏。

准备工作:API Key 与依赖

第一步:获取 API Key

  • 打开 智谱开放平台 注册账号
  • 进入"用户设置" → “API Keys” → 创建一个新 Key
  • 设置环境变量(不要把 Key 写在代码里):
  • # Windows (PowerShell)
    $env:ZHIPUAI_API_KEY = "你的API Key"

    # Mac / Linux
    export ZHIPUAI_API_KEY="你的API Key"

    第二步:安装依赖

    pip install zhipuai requests

    完整代码:生成一套招生海报

    """
    Day03 – AI 生成营销素材:给梅雅达工作室生成招生海报
    依赖:pip install zhipuai requests
    环境变量:ZHIPUAI_API_KEY
    """

    import os
    import time
    import requests
    from pathlib import Path
    from zhipuai import ZhipuAI

    def get_client():
    """初始化智谱 AI 客户端"""
    api_key = os.environ.get("ZHIPUAI_API_KEY")
    if not api_key:
    raise ValueError("请先设置环境变量 ZHIPUAI_API_KEY")
    return ZhipuAI(api_key=api_key)

    def generate_single_image(client, prompt, size="1024×1024", output_path=None):
    """调用 cogview-4 生成单张图片并下载到本地"""
    response = client.images.generations(model="cogview-4", prompt=prompt, size=size)
    image_url = response.data[0].url
    output_path = output_path or f"poster_{int(time.time())}.png"
    Path(output_path).parent.mkdir(parents=True, exist_ok=True)
    with open(output_path, "wb") as f:
    f.write(requests.get(image_url, timeout=60).content)
    return output_path

    def generate_poster_series(client):
    """实战:给梅雅达编程工作室生成一套招生海报(3 张不同风格)"""
    output_dir = "day03_posters"
    # 海报 1:科技风(prompt 写法示例)
    prompt_1 = ("一张科技感十足的编程教育招生海报。深蓝色渐变背景,画面中央有发光的代码符号和电路纹理。"
    "海报上方用白色大字写着“暑期编程训练营”,下方写着“梅雅达编程工作室”。"
    "画面整体风格现代、专业,有未来感。竖版构图。")
    generate_single_image(client, prompt=prompt_1.strip(), size="720×1440",
    output_path=f"{output_dir}/01_tech_style.png")
    # 海报 2 温暖教育风、海报 3 极简风:同样换 prompt 与 output_path 即可
    # ……(完整三张海报见配套 day03.py)

    if __name__ == "__main__":
    client = get_client()
    generate_poster_series(client)

    运行结果

    🎨 正在生成:一张科技感十足的编程教育招生海报。…
    ✅ 生成成功!URL: 2026-09-17kt03bozi4vj.png
    💾 已保存至:day03_posters/01_tech_style.png
    🎨 正在生成:一张温暖明亮的编程教育海报。…
    ✅ 生成成功!URL: 2026-09-17kt03bozi4vj.png
    💾 已保存至:day03_posters/02_warm_style.png
    🎨 正在生成:一张极简风格的编程课程海报。…
    ✅ 生成成功!URL: 2026-09-17kt03bozi4vj.png
    💾 已保存至:day03_posters/03_minimal_style.png

    🎉 全部生成完毕!海报保存在 day03_posters/ 目录下

    从运行到出图,3 张海报大概 30-60 秒搞定。

    实际生成效果

    用真实 API Key 调用 CogView-4 生成的 3 张海报(本机实跑结果):

    !在这里插入图片描述

    !在这里插入图片描述

    !在这里插入图片描述

    控制台运行日志:

    !在这里插入图片描述

    Prompt 工程:出图质量的分水岭

    代码跑通了,你会发现一个现实——同样的代码,Prompt 写得好和写得差,出图质量天差地别。这就是 Prompt 工程的魅力。

    给你一个用了几个月的万能公式:

    主体描述 + 环境/背景 + 风格/氛围 + 文字内容(如果需要)+ 构图/尺寸要求

    反面教材:

    一张招生海报

    这种 Prompt 太笼统了,AI 完全不知道你想要什么,出来的东西基本是开盲盒。

    正面教材:

    一张面向家长的少儿编程招生海报。
    背景是明亮的教室环境,蓝白配色。
    画面中有孩子使用电脑的剪影。
    顶部大字写着"暑期编程班 火热报名中"。
    整体风格专业、可信、有亲和力。
    竖版构图,适合手机端查看。

    7 个实用技巧

    技巧 1:先说主体,再说细节

    AI 处理信息有优先级。先告诉它"画什么",再告诉它"怎么画"。

    ✅ 一只柴犬坐在咖啡馆门口,日系胶片风格,暖色调
    ❌ 暖色调的日系胶片风格的坐在咖啡馆门口的柴犬

    技巧 2:用具体名词替代抽象形容词

    ✅ 背景是浅灰色混凝土墙面,上面有淡淡的苔藓纹理
    ❌ 背景很有质感

    技巧 3:明确指定颜色方案

    ✅ 整体配色为深蓝底 + 金色文字 + 白色装饰线条

    技巧 4:指定光线方向

    ✅ 侧面自然光照射,光线从画面左侧 45 度角打过来

    技巧 5:写文字内容时用引号包裹

    CogView-4 支持中文文字渲染,用引号明确告诉 AI 要写什么:

    ✅ 海报中央用白色大字写着"暑期招生"

    技巧 6:加上"不要什么"也很有效

    CogView-4 的 API 没有直接的 negative prompt 参数,但你可以把不想要的元素从描述中排除,或者明确说"画面中不要出现人物"。

    技巧 7:一次只改一个变量

    对生成结果不满意时,每次只调整 Prompt 的一个部分,这样才能知道是哪个改动起了作用。一次改三四个地方,你根本不知道是改好了还是改坏了。

    前沿:Runway Media Router——让 AI 自动选模型

    生图模型已经多到数不过来:Midjourney、DALL-E、Stable Diffusion、CogView、FLUX……问题来了:怎么知道哪个模型最适合当前这个需求?

    这就是 2026 年 7 月 Runway 发布的 Media Router 要解决的问题。简单说,它是一个智能模型路由器——你不用手动选模型,它帮你自动挑最合适的。工作原理就三步:

    你的请求 → 路由器评估 → 自动选择最优模型 → 生成结果

    路由器的选择基于三个维度:

    维度含义举例
    质量优先 选效果最好的模型 最终交付的营销海报
    速度优先 选最快的模型 快速验证创意方向
    成本优先 选最便宜的模型 批量生成素材初稿

    你可以在后台配置好偏好(比如"这个工作流我要求质量优先,但单张成本不超过 X 元"),之后每次请求就自动按这个策略走。官方公告:Runway 官方博客 ,开发者入口:Runway 开发者文档

    Media Router 目前主要面向企业级开发者,但模型路由的思路可以直接借鉴:

    # 简化的模型路由思路
    def smart_generate(prompt, priority="quality"):
    """根据优先级自动选择生成方案"""
    if priority == "speed":
    # 快速方案:CogView-3-Flash(免费,速度快)
    return generate_with_cogview_flash(prompt)
    elif priority == "quality":
    # 高质量方案:CogView-4(免费,效果最好)
    return generate_with_cogview4(prompt)
    elif priority == "cost":
    # 本地免费方案:Stable Diffusion(有显卡就行)
    return generate_with_local_sd(prompt)

    核心是:不绑定单一模型,而是根据任务需求动态选择。今天 CogView-4 免费又好用,如果明天出了更好的免费模型,只需要在路由逻辑里加一行判断。

    本地部署:Stable Diffusion(有显卡的玩法)

    如果你有 NVIDIA 显卡(显存 ≥ 6GB),可以本地跑 Stable Diffusion,完全免费、无限生成、不联网:

    # 安装依赖
    pip install diffusers torch transformers accelerate

    # 最简单的文生图
    python -c "
    from diffusers import StableDiffusionPipeline
    import torch

    pipe = StableDiffusionPipeline.from_pretrained(
    'stable-diffusion-v1-5/stable-diffusion-v1-5',
    torch_dtype=torch.float16
    ).to('cuda')

    image = pipe('a cute cat wearing sunglasses').images[0]
    image.save('local_cat.png')
    "

    本地方案的优势:

    • 完全免费:没有 API 调用次数限制
    • 隐私安全:所有数据不出本机
    • 可定制:可以加载各种 LoRA、ControlNet 做精细控制

    劣势:

    • 需要好显卡(推荐 RTX 3060 12GB 以上)
    • 生成速度慢(单张 512×512 约 5-15 秒)
    • 不支持中文文字渲染

    建议:日常使用走 CogView-4 API(免费、快、支持中文),需要精细控制或批量生成时再考虑本地 SD。相关仓库:Stable Diffusion、Diffusers 文档、MJ 的 Prompt 指南(思路通用)。

    费用

    项目费用说明
    CogView-4 API ¥0 注册即送免费额度,够用很久
    CogView-3-Flash ¥0 永久免费模型,速度更快
    Stable Diffusion(本地) ¥0 开源免费,电费忽略不计
    Runway Media Router(基础版) ¥0 官方基础版全球免费

    整套方案从 API 到本地部署,一分钱不用花。如果你有显卡,连网都不用上。API 文档参考 智谱 API 文档 ,CogView-4 开源仓库在 GitHub 仓库 THUDM/CogView4 。

    自己动手改

    三道题,由易到难:

    题 1:生成朋友圈封面图

    修改代码,生成一张微信朋友圈封面图(尺寸 1080×1920),内容是"梅雅达编程工作室"的品牌宣传图。要求:竖版构图、包含工作室名称、风格自选。

    题 2:批量生成 + 自动重命名

    写一个脚本,根据 CSV 文件批量生成海报。CSV 格式如下:

    filename,prompt,size
    poster_a.png,科技风格海报,720×1440
    poster_b.png,温馨风格海报,1024×1024
    poster_c.png,极简风格海报,720×1440

    脚本读取 CSV,逐行调用 API 生成图片,并按 filename 列命名保存。配套脚本里的 batch_generate_from_csv() 是参考答案。

    题 3:实现简易模型路由

    参考文中的 smart_generate 思路,写一个完整的模型路由函数:

    • 输入:prompt + priority(speed/quality/cost)
    • 输出:根据优先级调用不同模型
    • 加上异常处理:如果主选模型报错,自动降级到备选模型
    • 记录每次调用的模型名称和耗时

    配套脚本里的 smart_generate() 实现了降级和计时,可以直接对照。把这三道题做完,"AI 生图"这件事基本就吃透了。

    赞(0)
    未经允许不得转载:171主机测评 » Day 03 :AI 生成营销素材:从文字描述到海报
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址