电商直播贴片生成器 / Ecommerce Livestream Overlay Generator

v2.0.0

电商直播贴片生成器 / 电商直播视觉包装工具。 适用于淘宝直播、抖音直播带货、拼多多直播、快手直播等电商直播场景。 输入品牌、产品、促销信息或产品照片,自动生成完整电商直播视觉包装: 背景、标题栏、主播形象、价格卡、产品货架、福利条、促销贴片。 支持绿幕抠图、自动合成预览、打包交付。 E-commerce liv...

0· 179·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for gaoyuji12138/ecommerce-livestream-overlay-generator.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "电商直播贴片生成器 / Ecommerce Livestream Overlay Generator" (gaoyuji12138/ecommerce-livestream-overlay-generator) from ClawHub.
Skill page: https://clawhub.ai/gaoyuji12138/ecommerce-livestream-overlay-generator
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: VOLCENGINE_ARK_API_KEY
Required binaries: python3, pip3
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install ecommerce-livestream-overlay-generator

ClawHub CLI

Package manager switcher

npx clawhub@latest install ecommerce-livestream-overlay-generator
Security Scan
Capability signals
CryptoCan make purchasesRequires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description promise (generate livestream overlay components) aligns with what the SKILL.md instructs: calling the Volcano Engine image-generation endpoint and performing local image processing with Python+Pillow+OpenCV+NumPy. Requiring python3/pip3 and VOLCENGINE_ARK_API_KEY is expected and proportionate.
Instruction Scope
Instructions explicitly send text prompts and optional user-supplied product photos to the Volcano Engine API and save generated images locally. The SKILL.md also provides local Python scripts for background/green removal and compositing. This scope matches the stated purpose, but users should note the skill will transmit prompts and any uploaded photos to the external API (declared in the doc). The SKILL references an agent 'built-in visual capability' for local product recognition — that's plausible for the agent platform but is not implemented in code here (instruction-only).
Install Mechanism
This is an instruction-only skill with no install spec or bundled code to fetch. It tells users to pip-install common imaging packages (Pillow, opencv-python-headless, numpy), which is proportionate to the stated local processing tasks. No remote download of arbitrary executables is present.
Credentials
Only one required environment variable is declared: VOLCENGINE_ARK_API_KEY (primary credential). That directly matches the documented use of the Volcano Engine API. No unrelated credentials or extra secrets are requested.
Persistence & Privilege
The skill does not request permanent 'always' inclusion and does not attempt to modify other skills or system-wide settings. It states generated images will be saved locally (expected for delivery).
Assessment
This skill is coherent but it transmits text prompts and any product photos you upload to the Volcano Engine (火山引擎) image-generation API — only provide images you are comfortable sharing with that third party. Keep your VOLCENGINE_ARK_API_KEY secret and consider using a scoped or revocable key. The SKILL.md tells you to pip-install imaging packages locally; review those commands before running them. Also be aware of intellectual-property and likeness/privacy issues when generating or uploading images of people or trademarked products. If you need higher assurance, verify the GitHub homepage source and confirm the exact implementation before providing sensitive assets or long-lived API credentials.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🎨 Clawdis
Binspython3, pip3
EnvVOLCENGINE_ARK_API_KEY
Primary envVOLCENGINE_ARK_API_KEY
douyinvk978bfc9g7nz07tv1cx7a61jyx85pbzsecommercevk978bfc9g7nz07tv1cx7a61jyx85pbzsimage-generationvk978bfc9g7nz07tv1cx7a61jyx85pbzslatestvk978bfc9g7nz07tv1cx7a61jyx85pbzslivestreamvk978bfc9g7nz07tv1cx7a61jyx85pbzsoverlayvk978bfc9g7nz07tv1cx7a61jyx85pbzspddvk978bfc9g7nz07tv1cx7a61jyx85pbzsproduct-displayvk978bfc9g7nz07tv1cx7a61jyx85pbzsstreamingvk978bfc9g7nz07tv1cx7a61jyx85pbzstaobaovk978bfc9g7nz07tv1cx7a61jyx85pbzsvolcano-enginevk978bfc9g7nz07tv1cx7a61jyx85pbzs
179downloads
0stars
15versions
Updated 10h ago
v2.0.0
MIT-0

直播间装修贴片生成 Skill

一、前置条件

依赖

  • Python 3 + Pillow + opencv-python-headless + numpy
  • 火山方舟 API Key

API Key 获取

  1. 前往 火山引擎控制台 注册并登录
  2. 在「模型推理」页面开通豆包视觉模型
  3. 在控制台凭证页面创建 API Key

每个用户需要自己的 API Key:使用时从环境变量 VOLCENGINE_ARK_API_KEY 读取。

安装依赖

pip3 install Pillow==12.2.0 opencv-python-headless==4.13.0 numpy==2.3.2

二、数据隐私与透明度

数据流向

数据类型发送目标用途是否持久化
文本 Prompt(品牌/促销文案等)火山引擎 API图像生成请求❌ 仅传输,不存储
用户产品照片火山引擎 API作为图像生成参考输入❌ 仅传输,不存储
生成的图片本地磁盘交付给用户✅ 保存到本地输出目录

AI 内置视觉能力:当用户仅提供产品照片未附文字说明时,由 AI Agent 内置视觉能力识别图中商品信息(本地运行),无需额外 API 调用。

本 Skill 不会做的事:

  • ❌ 在本地或远程存储、记录或缓存用户输入数据(文本 Prompt、产品照片)
  • ❌ 将数据转发到火山引擎以外的任何第三方
  • ❌ 进行任何购买、支付或金融操作
  • ❌ 进行任何加密货币或区块链操作

⚠️ 用户产品照片和文本 Prompt 会发送至火山引擎 API。上传敏感或专有产品图片前,请阅读火山引擎隐私政策。API 返回的生成图片会保存到本地输出目录。

三、需求确认(正式生成前必须执行)

⚠️ 收到用户生成请求后,不要立即开始生成图片。先确认以下信息,确保一次性出图到位。

2.1 必须确认的信息

信息说明必填
品牌如 戴森、茅台、三只松鼠等
主推商品具体品名和型号
促销活动满减、买赠、积分兑换等具体内容
风格偏好如有特殊要求(颜色、氛围、调性)

2.2 确认流程

  1. 用户已提供完整信息 → 列出理解的需求摘要,请用户确认后直接开始
  2. 用户信息不完整 → 只追问缺失的必要信息,其他自动推导
  3. 用户只发了商品图片没文字 → 识别图中商品,推测品牌和品类,列出理解的需求摘要请用户确认
  4. 用户说"按案例来"/"照着做" → 直接用下方案例的需求生成

2.4 需求描述案例(首次触发时主动展示)

收到用户的生成请求后,主动展示以下案例,让用户可以照着描述或直接要求按案例生成。

示例需求描述

做一套戴森吹风机直播间贴片,主品是戴森Supersonic HD16吹风机和Airwrap多功能美发棒,买吹风机送两支造型风嘴,满3000减300,直播间限定礼盒包装

首次回复模板

你可以直接告诉我你的品牌和促销信息,比如:

> 做一套戴森吹风机直播间贴片,主品是戴森Supersonic HD16吹风机和Airwrap多功能美发棒,买吹风机送两支造型风嘴,满3000减300,直播间限定礼盒包装

也可以直接说「按戴森案例来」,我就直接用这个需求生成。

你的需求是什么?

最低限度只需提供:品牌 + 主推商品 + 促销活动(三个核心信息) 文案、风格色调、人物造型、权益均由 AI 自动推导生成,用户可选择性修改。

四、文案自动生成规则

3.1 主标题

  • 必须含品牌名并具有氛围感
  • 禁用"官方""旗舰"等字样
  • 不能直接写商品名,要有宣传感和下单欲望

3.2 副标题

  • 核心利益点(福利/功效/场景)或正在进行的活动
  • 简洁有力

3.3 促销竖卡

  • 根据促销活动拆分为 2-3 层
  • 每层包含:金额/权益 + 使用条件

3.4 权益文案

  • 通常 3 个:赠品相关 + 正品保障 + 物流/售后
  • ⚠️ 避免使用"正品""保障"等触发审核的词,替换为"品质""保证"

五、组件清单与尺寸

⚠️ 尺寸已根据 doubao-seedream-4-5-251128 的最低像素限制调整

#组件尺寸绿幕说明
1背景图1440×2560C4D 场景
2标题横卡3328×1109异形贴纸
3人物1440×2560素颜+幼态脸+精致造型(不用手持商品)
4促销竖卡1920×1920正方形异形贴纸
5桌面商品贴3328×110940+单品密集排列
6权益下贴3328×1109铺满底部

六、Prompt 写法标准

核心原则

  • 所有组件使用统一风格前缀确保色调一致
  • 必须包含反向约束条件
  • 背景图使用"纯色均匀绿色背景"(不是#00FF00)

5.1 背景图 Prompt

约束:无文字、无人物、无产品。

模板

融合[风格描述]的C4D商业空间场景。[主色调]为主色调,[辅助色]辅助,[点缀色]点缀,[中性色]平衡。空间结构[结构描述],[氛围]氛围。灯光[灯光描述],突显质感与层次。材质[材质],展现[风格]魅力。布局上[元素1]、[元素2]、[元素3]等抽象展示元素散落,营造[整体感受]空间体验。

5.2 标题横卡 Prompt

模板

纯色均匀绿色背景#00FF00。画面正中是一个[颜色]渐变的异形横条卡片,卡片有[边框质感],四边是不规则的艺术形状。卡片内部左侧[文字区域底色],大字「[主标题]」用[字体描述],下方「[副标题]」用[字体描述]。卡片右侧是[产品插画描述]。整个卡片颜色浓郁厚重,绝对没有白色底色区域,不要任何绿色青色蓝绿色。卡片是一个完整的实体贴纸,边界清晰。

5.3 人物 Prompt

⚠️ 核心规则(v2 更新):

  1. 人物模型用 doubao-seedream-5-0-260128(其他组件仍用 doubao-seedream-4-5-251128
  2. 完全不化妆的素颜(不是"清透裸妆")
  3. 不手持商品,双手自然下垂微曲(v2 取消了手持商品)
  4. 网红幼态脸短中庭,眼部轮廓深邃有水润感,唇部有果冻感水润饱满
  5. 服装必须提前设计好,prompt 中完整描述上衣+下装(不含鞋子)+ 配饰
  6. 发色尽量黑色,发质柔顺有光泽,发型精致可加配饰,符合品牌调性
  7. 背景用"纯色均匀绿色"(不是#00FF00)

模板

纯色均匀绿色背景(无渐变无纹理)。竖版人像,头顶到大腿中段,人物居中占满画面。25岁年轻女主播,完全素颜,冷白皮,网红幼态脸短中庭,{眼型描述},眼部深邃有水润感,{眼周描述},唇部{唇型描述}有果冻感水润{唇色描述},{气质描述}。面部无任何妆容。身穿{上衣描述},下身{下装描述},{配饰描述}。{发型发色描述},{发型配饰描述}。正面柔和灯光,双手自然下垂微曲。

人物造型设计示例(v2 版)

兰蔻菁纯:

网红幼态脸短中庭,眼型圆眼微微下垂显无辜感,眼部轮廓深邃有水润感,眼周皮肤细腻透亮,唇部饱满嘟嘟唇有果冻感水润透亮,五官精致甜美亲和。身穿白色细针织短款开衫,内搭米白色蕾丝吊带,下身穿高腰浅粉色百褶缎面半裙,胸前戴一条玫瑰金细锁骨链,左手腕戴一只玫瑰金细手镯,右手戴一枚简约珍珠戒指。黑色长直发柔顺有光泽披落至锁骨下方,头顶偏右侧夹一个珍珠小发夹,几缕碎发自然垂落在脸颊两侧修饰脸型。

5.4 促销竖卡 Prompt

⚠️ 尺寸从 896×1344 改为 1920×1920(正方形)

模板

纯色均匀绿色背景#00FF00。画面正中是一个紧凑的竖向异形标签贴纸,整体为[深色系]实心底色,没有任何白色区域、没有任何浅色区域、没有任何渐变到白色的部分,不要任何绿色青色蓝绿色。贴纸形状为圆角矩形加顶部弧形装饰。顶部有[装饰元素]。大字「[大标题]」用[字体描述];下方分三层:「[内容1]」「[内容2]」「[内容3]」。整个贴纸颜色浓郁深实,边界清晰锐利,是一个实心异形贴纸。贴纸占据画面约40%面积,紧凑不松散。

5.5 桌面商品贴 Prompt(⚠️ 与原始 skill 完全不同)

⚠️ 关键区别:

  1. 白色哑光大理石展示桌面(不是纯绿底+白平面)
  2. 分层聚核+左右镜像+前后递进布局逻辑
  3. 商品总数至少40个以上单品(不是"丰富一些")
  4. 中层核心区分左中右三块,中心区视觉焦点

模板

纯色均匀绿色背景。画面下方白色哑光大理石展示桌面(占画面底部40%),产品按分层聚核+左右镜像+前后递进布局,≥40单品密集排列。【中层核心区】左中右三块,中心视觉焦点:{产品布局描述}。所有产品竖立正面朝向观众,阶梯状层次。除商品和白色金属陈列架外无其他内容,禁止出现人体任何部位。光线均匀自然,纯静物陈列。

⚠️ prod_layout 里不能出现"最前方留手持位"——手持商品是人物图的事,桌面商品贴是纯产品陈列

5.7 用户商品图(可选)

当用户提供真实商品照片时:

a) 去背景:根据商品图的背景类型选择策略

商品背景去背景方法
白色/浅色纯色背景HSV 阈值去除白色区域
深色纯色背景HSV 阈值去除对应深色
复杂场景背景GrabCut 或 Rembg
import cv2, numpy as np
def remove_white_bg(img_path, output_path):
    """HSV 阈值去除白色/浅色背景,输出 RGBA PNG"""
    img = cv2.imread(img_path)
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    mask = cv2.bitwise_or(
        cv2.inRange(hsv, np.array([0,0,200]), np.array([180,30,255])),
        cv2.inRange(hsv, np.array([0,0,160]), np.array([180,50,240])))
    k = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7,7))
    mask = cv2.GaussianBlur(cv2.morphologyEx(cv2.morphologyEx(mask, cv2.MORPH_CLOSE, k, 5), cv2.MORPH_OPEN, k, 3), (5,5), 0)
    mask = (mask > 200).astype(np.uint8) * 255
    b, g, r = cv2.split(img)
    cv2.imwrite(output_path, cv2.merge([b, g, r, 255 - mask]))

b) 桌面商品贴 Prompt 调整:中心区留白,供用户商品图叠加

在原有的桌面商品贴 prompt 中,将中心区描述改为:
"中心区域留出足够的空白空间用于放置主推商品(大约占中心30%面积保持干净),
周边按分层聚核加左右镜像加前后递进逻辑摆放配套产品"

c) 合成时叠加:用户商品图缩放后放在产品区域中心偏上

d) 新增交付物

文件名说明
用户商品图.png去背景后的用户商品图,已定位到画布坐标

5.6 权益下贴 Prompt

模板

左右对称构图,平视视角。核心元素呈现在上半部分:三个简单权益图标,下方对应文字「[权益1] / [权益2] / [权益3]」。背景[背景描述]。风格:平面,光影简约。色彩:[主色],简洁大方。

七、生图 API

项目内容
地址https://ark.cn-beijing.volces.com/api/v3/images/generations
方式POST
Content-Typeapplication/json
通用模型doubao-seedream-4-5-251128
人物模型doubao-seedream-5-0-260128(仅人物组件用此模型)

请求参数

{
  "model": "doubao-seedream-4-5-251128",
  "stream": false,
  "watermark": false,
  "sequential_image_generation": "disabled",
  "prompt": "<中文prompt>",
  "size": "<宽>x<高>"
}

请求示例

八、绿幕抠图

对组件 2(标题横卡)、3(人物)、4(促销竖卡)、5(桌面商品贴)执行绿幕去除。

import cv2, numpy as np
def remove_green(img_path, output_path):
    """HSV 阈值去除绿幕背景,输出 RGBA PNG"""
    img = cv2.imread(img_path)
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    mask = cv2.bitwise_or(
        cv2.inRange(hsv, np.array([35,80,80]), np.array([85,255,255])),
        cv2.inRange(hsv, np.array([30,40,120]), np.array([90,255,255])))
    k = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5))
    mask = cv2.GaussianBlur(cv2.morphologyEx(cv2.morphologyEx(mask, cv2.MORPH_CLOSE, k, 3), cv2.MORPH_OPEN, k, 2), (3,3), 0)
    mask = (mask > 127).astype(np.uint8) * 255
    b, g, r = cv2.split(img)
    cv2.imwrite(output_path, cv2.merge([b, g, r, 255 - mask]))

九、合成预览

⚠️ 布局参数与原始 skill 完全不同

布局参数

layout = {
    "title":   {"scale": 0.95, "pos": "center-top", "y_pct": 0.07},
    "person":  {"scale": 0.70, "pos": "left", "x_pct": 0.15, "y_pct": 0.14},
    "promo":   {"scale": 0.40, "pos": "right", "x_pct": 0.55, "y_pct": 0.22},
    "product": {"zoom": 1.2,  "pos": "bottom-full", "above": "benefit"},
    "benefit": {"scale": 1.0,  "pos": "bottom-full"},
}

合成代码

from PIL import Image
def compose_preview(bg_path, person_nobg, title_nobg, promo_nobg, product_nobg, benefit_path, output_path):
    bg = Image.open(bg_path).convert("RGBA"); cw, ch = bg.size
    def fit(img, w_ratio, center=True):
        w = int(cw * w_ratio); s = w / img.width
        r = img.resize((w, int(img.height * s)), Image.LANCZOS)
        return r, (cw - w) // 2 if center else cw - w
    def fit_full(img):
        s = cw / img.width; return img.resize((cw, int(img.height * s)), Image.LANCZOS)
    def zoom_crop(img, zoom):
        w = int(cw * zoom); s = w / img.width; h = int(img.height * s)
        r = img.resize((w, h), Image.LANCZOS); cx = (w - cw) // 2
        return r.crop((cx, 0, cx + cw, h))
    title = Image.open(title_nobg).convert("RGBA")
    person = Image.open(person_nobg).convert("RGBA")
    promo = Image.open(promo_nobg).convert("RGBA")
    product = Image.open(product_nobg).convert("RGBA")
    benefit = Image.open(benefit_path).convert("RGBA")
    tr, tx = fit(title, 0.95); ty = int(ch * 0.07)
    prr, prx = fit(promo, 0.40, center=False); prx = int(cw * 0.55); pry = int(ch * 0.22)
    per, perx = fit(person, 0.70); perx = int(cw * 0.15); pery = int(ch * 0.14)
    pdr = zoom_crop(product, 1.2); pdy = ch - fit_full(benefit).height - pdr.height
    bfr = fit_full(benefit); bfy = ch - bfr.height
    canvas = bg.copy()
    for img, pos in [(prr,(prx,pry)),(per,(perx,pery)),(pdr,(0,pdy)),(tr,(tx,ty)),(bfr,(0,bfy))]:
        canvas.paste(img, pos, img)
    canvas.convert("RGB").save(output_path, "JPEG", quality=95)

后处理:人物提亮

合成前对人物图层单独提亮,避免合成后人物偏暗:

from PIL import ImageEnhance
person_bright = ImageEnhance.Brightness(person).enhance(1.17)

⚠️ 只提亮人物图层(17%),不动其他图层。最终交付的人物.png 也使用提亮后的版本。

十、打包交付

交付文件(固定7个)

文件名格式说明
背景.pngPNG 1440×2560全铺
标题横卡.pngPNG 1440×2560 透明内容在预览位置
人物.pngPNG 1440×2560 透明已提亮处理(不标注"提亮")
促销竖卡.pngPNG 1440×2560 透明内容在预览位置
桌面商品贴.pngPNG 1440×2560 透明内容在预览位置
权益下贴.pngPNG 1440×2560 透明内容在预览位置
预览.jpgJPG 1440×2560合成预览效果

若提供了用户商品图,该商品图会合成到桌面商品贴的中心区域,不单独输出。

交付方式(二选一,自动判断)

方式一:对话内直接发送(当通道支持文件发送时)

  1. 先发送预览图(预览.jpg)到对话
  2. 再发送压缩包(命名为「{品牌名}直播间_全套贴图.zip」,内含上述7个文件)

方式二:桌面文件夹(当通道不支持文件发送时)

  1. 在用户桌面创建文件夹,命名为「{品牌名}直播间贴片」
  2. 文件夹内只放上述7个文件,不包含中间文件、不包含压缩包
  3. open 命令直接打开预览图,让用户看到效果
  4. open 命令直接打开文件夹,让用户浏览文件

⚠️ 注意:webchat(Control UI)当前不支持文件发送,走方式二。飞书、微信等走方式一。

十、完整工作流

1. 收集需求(品牌、促销活动、可选:用户商品图)
2. 分析品牌风格 → 确定色调
3. 为人物设计造型(幼态脸+水润眼+果冻唇+服装+发型发色+配饰)
4. 自动生成缺失文案
5. 编写 6 个组件的 prompt(人物用 v2 模板,不用手持商品)
   - 若有用户商品图:桌面商品贴 prompt 中心区留白
6. 通用组件调用 doubao-seedream-4-5-251128,人物组件调用 doubao-seedream-5-0-260128
7. 对组件 2/3/4/5 执行绿幕抠图
8. 对人物图层提亮17%(ImageEnhance.Brightness 1.17)
9. [可选] 对用户商品图执行去背景(白底/浅色背景用HSV阈值)
10. 合成预览图(使用提亮后的人物图层,用户商品图叠加在桌面产品区中央)
11. 打包交付

Comments

Loading comments...