jpskill.com
💼 ビジネス コミュニティ

ecommerce-livestream-overlay-generator

ブランド、商品、プロモーション情報から、ライブコマース配信に必要な背景、タイトル、価格表示、商品棚、特典バーなどを自動生成し、グリーンバック合成やプレビュー、パッケージ化された素材提供まで行うSkill。

📜 元の英語説明(参考)

Fully automated e-commerce livestream overlay generation. Given a brand, product, and promotional info (or a product photo directly), automatically generates a complete livestream visual package: background, title banner, host persona, pricing card, product shelf, and benefits bar. Supports green screen removal, auto-composite preview, and packaged delivery.

🇯🇵 日本人クリエイター向け解説

一言でいうと

ブランド、商品、プロモーション情報から、ライブコマース配信に必要な背景、タイトル、価格表示、商品棚、特典バーなどを自動生成し、グリーンバック合成やプレビュー、パッケージ化された素材提供まで行うSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o ecommerce-livestream-overlay-generator.zip https://jpskill.com/download/19132.zip && unzip -o ecommerce-livestream-overlay-generator.zip && rm ecommerce-livestream-overlay-generator.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/19132.zip -OutFile "$d\ecommerce-livestream-overlay-generator.zip"; Expand-Archive "$d\ecommerce-livestream-overlay-generator.zip" -DestinationPath $d -Force; ri "$d\ecommerce-livestream-overlay-generator.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して ecommerce-livestream-overlay-generator.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → ecommerce-livestream-overlay-generator フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[スキル名] ecommerce-livestream-overlay-generator

Eコマースライブストリームオーバーレイジェネレータースキル

I. 前提条件

依存関係

  • Python 3 + Pillow + opencv-python-headless + numpy
  • Volcano Engine (Doubao) API キー

依存関係のインストール

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

II. 要件確認(生成前に必ず完了してください)

⚠️ 生成リクエストを受け取っても、すぐに画像の生成を開始しないでください。ワンパスで成功させるために、まず以下の情報を確認してください。

2.1 必須情報

情報 説明 必須
ブランド 例:Dyson、Moutai、Three Squirrels
注目の製品 特定の製品名とモデル
プロモーション 割引、ギフト、ポイントなど
スタイルの好み 特別な要件(色、ムード、トーン)

2.2 確認フロー

  1. ユーザーが完全な情報を提供 → 理解を要約し、ユーザーに確認を求め、その後開始
  2. ユーザー情報が不完全 → 不足している必須フィールドのみを尋ね、残りは自動推論
  3. ユーザーがテキストなしの製品写真を送信 → 製品を特定し、ブランドとカテゴリを推論し、要約して確認
  4. ユーザーが「例を使用する」と発言 → 以下の Dyson の例を使用して直接生成

2.3 確認応答の例

要件を確認させてください。

📋 **ブランド**: Dyson
📋 **注目の製品**: Dyson Supersonic HD16 ヘアドライヤー + Airwrap Multi-Styler
📋 **プロモーション**: 3,000円ごとに300円オフ
📋 **ギフト**: ヘアドライヤー購入でスタイリングノズルアタッチメント2個無料
📋 **パッケージ**: ライブストリーム限定ギフトボックス
📋 **スタイル**: テックラグジュアリー(Dyson ブランドから推論)

私のコピーデザインはこちらです。
- メインタイトル: 「Dyson・サロン級スタイリング」
- サブタイトル: 「限定版・ラグジュアリー体験」
- 価格カード: 「3,000円以上で300円オフ / ヘアドライヤー購入でスタイリングノズル無料 / 限定ギフトボックス」
- 特典: 「2年保証 / 送料無料 / プレミアムギフト包装」

これでよろしければ、生成を開始します。変更をご希望の場合はお知らせください 👇

2.4 要件の例(最初のトリガー時に積極的に表示)

生成リクエストを受け取った際、ユーザーがそれに従うか、直接使用を依頼できるように、以下の例を積極的に表示してください。

要件の例:

Dyson のライブストリームオーバーレイセット全体を生成してください。注目の製品は Dyson Supersonic HD16 ヘアドライヤーと Airwrap Multi-Styler です。ヘアドライヤー購入でスタイリングノズルアタッチメント2個が無料になります。3,000円ごとに300円オフです。ライブストリーム限定ギフトボックス付きです。

最初の返信テンプレート:

ブランドとプロモーション情報をお知らせください。例えば、

> Dyson のライブストリームオーバーレイセット全体を生成してください。注目の製品は Dyson Supersonic HD16 ヘアドライヤーと Airwrap Multi-Styler です。ヘアドライヤー購入でスタイリングノズルアタッチメント2個が無料になります。3,000円ごとに300円オフです。ライブストリーム限定ギフトボックス付きです。

または、「Dyson の例を使用する」とだけ言っていただければ、その仕様で生成します。

ご要望は何ですか?

最低限必要なもの: ブランド + 注目の製品 + プロモーション(3つのコアフィールド) コピー、スタイル、ホストデザイン、特典はすべて AI によって自動生成されます。ユーザーはオプションで変更できます。

III. 自動コピーライティングルール

3.1 メインタイトル

  • ブランド名と雰囲気のある表現を必ず含める
  • 「公式」や「旗艦」などの言葉は絶対に使用しない
  • 製品名だけではなく、マーケティング的な魅力と購買意欲を喚起する内容にする

3.2 サブタイトル

  • コアとなるメリット(特典 / 効能 / シナリオ)または現在のキャンペーン
  • 簡潔でインパクトのあるもの

3.3 価格カード

  • プロモーションを2〜3段階に分割する
  • 各段階:金額/特典 + 条件

3.4 特典コピー

  • 通常3項目:ギフト関連 + 信頼性保証 + 物流/アフターサービス
  • ⚠️ 「本物」や「保証」など、監査を誘発する言葉は避ける — 代わりに「品質」や「安心」を使用する

IV. コンポーネントリストと寸法

⚠️ 寸法は doubao-seedream-4-5-251128 の最小ピクセル制限に合わせて調整されています

# コンポーネント サイズ グリーンバック 備考
1 背景 1440×2560 C4D シーン
2 タイトルバナー 3328×1109 ダイカットステッカー
3 ホストペルソナ 1440×2560 素顔 + 若々しい顔 + スタイリングされたルック(製品は手に持たない)
4 価格カード 1920×1920 正方形のダイカットステッカー
5 製品棚 3328×1109 40以上のアイテムが密に配置
6 特典バー 3328×1109 全幅の底部

V. プロンプト作成基準

コア原則

  • すべてのコンポーネントは、色の整合性のために統一されたスタイルプレフィックスを使用する
  • 否定的な制約を必ず含める
  • 背景には「純粋なディープグリーン」(#00FF00ではない)を使用する

5.1 背景プロンプト

制約: テキストなし、人物なし、製品なし。

テンプレート:

[スタイル説明]をブレンドした C4D 商業空間シーン。空間は[主要色]を基調とし、[補助色]で補完され、[アクセントカラー]のディテールが[中間色]によってバランスされています。空間構造は[構造説明]を呈し、[雰囲気]を醸し出しています。照明デザインは[照明説明]で質感と奥行きを強調しています。素材には[素材]が含まれ、[スタイル]の魅力を示しています。モジュラー抽象ディスプレイ要素が散りばめられており、例えば[要素1]、[要素2]、[要素3]などがあり、これらが一体となって[全体的な感覚]の空間体験を生み出しています。

5.2 タイトルバナープロンプト

テンプレート:

単色の均一な緑色の背景 #00FF00。フレームの中央には[色]のグラデーションのダイカット横型カードがあり、[ボーダーテクスチャ]、四辺に不規則な芸術的な縁があります。カードの内側、左側には[テキストエリアの背景色]があり、大きなテキスト「[メインタイトル]」が[フォント説明]で、その下に「[サブタイトル]」が[フォント説明]で書かれています。カードの右側には[製品イラスト説明]が描かれています。カード全体は豊かで深みのある色で、白い背景領域は一切なく、緑/シアン/ティールもありません。カードは鮮明でシャープな縁を持つ完全なソリッドステッカーです。

5.3 ホストペルソナプロンプト

⚠️ コアルール(v2 アップデート):

  1. ホストペルソナには doubao-seedream-5-0-260128 を使用する(他のコンポーネントは引き続き do

(原文はここで途切れています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

E-Commerce Livestream Overlay Generator Skill

I. Prerequisites

Dependencies

  • Python 3 + Pillow + opencv-python-headless + numpy
  • Volcano Engine (Doubao) API Key

Install dependencies

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

II. Requirement Confirmation (Must Complete Before Generation)

⚠️ Upon receiving a generation request, do NOT start generating images immediately. Confirm the following info first to ensure one-pass success.

2.1 Required Information

Info Description Required
Brand e.g. Dyson, Moutai, Three Squirrels
Featured Product Specific product name and model
Promotion Discounts, gifts, loyalty points, etc.
Style Preference Special requirements (color, mood, tone)

2.2 Confirmation Flow

  1. User provides complete info → Summarize understanding, ask user to confirm, then start
  2. User info is incomplete → Only ask for missing required fields, auto-infer the rest
  3. User sends a product photo with no text → Identify the product, infer brand & category, summarize and confirm
  4. User says "use the example" → Generate directly using the Dyson example below

2.3 Confirmation Example Reply

Let me confirm the requirements:

📋 **Brand**: Dyson
📋 **Featured Product**: Dyson Supersonic HD16 Hair Dryer + Airwrap Multi-Styler
📋 **Promotion**: ¥300 off every ¥3,000 spent
📋 **Gift**: Free 2 styling nozzle attachments with hair dryer purchase
📋 **Packaging**: Livestream-exclusive gift box
📋 **Style**: Tech-luxury (inferred from Dyson brand)

Here's my copy design:
- Main title: "Dyson · Salon-Grade Styling"
- Subtitle: "Limited Edition · Luxe Experience"
- Pricing card: "¥300 off ¥3,000+ / Free styling nozzles with hair dryer / Exclusive gift box"
- Benefits: "2-year warranty / Free shipping / Premium gift packaging"

If this looks good I'll start generating. Let me know if you want any changes 👇

2.4 Example Requirement (Show Proactively on First Trigger)

When receiving a generation request, proactively show the example below so the user can follow it or ask to use it directly.

Example requirement:

Generate a full Dyson livestream overlay set. Featured products: Dyson Supersonic HD16 Hair Dryer and Airwrap Multi-Styler. Free 2 styling nozzle attachments with hair dryer purchase. ¥300 off every ¥3,000 spent. Livestream-exclusive gift box.

First reply template:

You can just tell me your brand and promo info, like:

> Generate a full Dyson livestream overlay set. Featured products: Dyson Supersonic HD16 Hair Dryer and Airwrap Multi-Styler. Free 2 styling nozzle attachments with hair dryer purchase. ¥300 off every ¥3,000 spent. Livestream-exclusive gift box.

Or just say "use the Dyson example" and I'll generate with that spec.

What's your requirement?

Minimum needed: Brand + Featured Product + Promotion (3 core fields) Copy, style, host design, benefits are all auto-generated by AI. User can optionally modify.

III. Auto Copywriting Rules

3.1 Main Title

  • Must include brand name with atmospheric feel
  • NEVER use "official" or "flagship" or similar words
  • Don't just write the product name — it needs marketing appeal and purchase desire

3.2 Subtitle

  • Core benefit (perks / efficacy / scenario) or current campaign
  • Concise and impactful

3.3 Pricing Card

  • Split promotion into 2-3 tiers
  • Each tier: amount/benefit + conditions

3.4 Benefits Copy

  • Usually 3 items: gift-related + authenticity guarantee + logistics/after-sales
  • ⚠️ Avoid audit-triggering words like "authentic" or "guarantee" — use "quality" and "assured" instead

IV. Component List & Dimensions

⚠️ Dimensions calibrated for doubao-seedream-4-5-251128 minimum pixel limits

# Component Size Green Screen Notes
1 Background 1440×2560 C4D scene
2 Title Banner 3328×1109 Die-cut sticker
3 Host Persona 1440×2560 Bare-faced + youthful face + styled look (no product in hand)
4 Pricing Card 1920×1920 Square die-cut sticker
5 Product Shelf 3328×1109 40+ items dense arrangement
6 Benefits Bar 3328×1109 Full-width bottom

V. Prompt Writing Standards

Core Principles

  • All components use a unified style prefix for color consistency
  • Must include negative constraints
  • Background uses "pure deep green" (not #00FF00)

5.1 Background Prompt

Constraint: No text, no people, no products.

Template:

A C4D commercial space scene blending [style description]. The space uses [primary color] as the dominant tone, complemented by [secondary color], with [accent color] details, all balanced by [neutral color]. The spatial structure presents [structure description], creating a [atmosphere]. Lighting design [lighting description] highlights texture and depth. Materials include [materials], showcasing the charm of [style]. Modular abstract display elements are scattered throughout, such as [element 1], [element 2], and [element 3], together creating a [overall feeling] spatial experience.

5.2 Title Banner Prompt

Template:

Solid uniform green background #00FF00. Center of frame is a [color] gradient die-cut horizontal card with [border texture], irregular artistic edges on all four sides. Inside the card, left side has [text area background color], large text "[MAIN TITLE]" in [font description], below it "[SUBTITLE]" in [font description]. Right side of card shows [product illustration description]. The entire card has rich deep colors with absolutely no white background areas, no green/cyan/teal. The card is a complete solid sticker with crisp sharp edges.

5.3 Host Persona Prompt

⚠️ Core rules (v2 update):

  1. Use doubao-seedream-5-0-260128 for host persona (other components still use doubao-seedream-4-5-251128)
  2. Completely bare-faced, no makeup (not "natural nude makeup")
  3. Do NOT hold products — hands hang naturally, slightly bent (v2 removed hand-held product)
  4. Internet-celebrity youthful face with short midface, deep watery eyes, jelly-glossy lips
  5. Outfit must be pre-designed — fully describe top + bottom (no shoes) + accessories in prompt
  6. Hair color preferably black, silky smooth, styled with possible accessories matching brand tone
  7. Background uses "pure deep green" (not #00FF00)

Template:

Pure deep green uniform background, absolutely uniform pure color with no gradients, no texture, no shadows, no light spots, no impurities. Vertical portrait, person standing facing camera, framed from top of head to mid-thigh, person centered and occupying most of the frame, top of head very close to frame top. 25-year-old beautiful young female host, completely bare-faced with no makeup, cool-toned fair skin that is clear and translucent, internet-celebrity youthful face with short midface, {eye type description}, deep watery eyes, {eye area description}, lips {lip shape description} with jelly-glossy {lip color description}, {temperament description}. Completely bare-faced, no makeup on face whatsoever, no eyeshadow, eyeliner, mascara, blush, lipstick, or foundation. Wearing {top description}, {bottom description}, {accessories description}. {hair style and color description}, {hair accessories description}. Soft even front lighting. Person standing naturally, both arms hanging naturally with slight bend, relaxed elegant posture.

Face Differentiation (Must specify these dimensions each time):

Dimension Description Examples
Face shape Internet-celebrity youthful face, short midface (fixed) Heart/oval/melon/square-round
Eye type Round/almond/peach-blossom/phoenix Describe "slightly downturned for innocent look" or "slightly upturned for elegance"
Eye hydration Fixed requirement "Deep watery eyes, delicate translucent skin around eyes"
Lip jelly feel Fixed requirement "Full pouty lips with jelly-glossy translucent shine" / "Thin lips natural pale pink with jelly feel"
Temperament Sweet & approachable / cool & premium / elegant & intellectual / energetic / confident Varies by brand
Outfit Must be pre-designed, top + bottom + accessories No shoes
Hairstyle Must be pre-designed, primarily black + accessories Silky smooth, refined with design sense

Host Design Examples (v2):

Lancôme Absolue:

Internet-celebrity youthful face with short midface, round eyes slightly downturned for innocent look, deep watery eyes, delicate translucent skin around eyes, full pouty lips with jelly-glossy translucent shine, refined sweet and approachable features. Wearing white fine-knit cropped cardigan, layered over cream-white lace camisole, high-waisted light pink pleated satin midi skirt, rose-gold delicate collarbone chain on chest, rose-gold thin bracelet on left wrist, simple pearl ring on right hand. Long straight black hair silky smooth falling to below collarbone, a small pearl hair clip clipped on the right side of crown, a few wispy strands naturally framing the face.

Helena Rubinstein Re-Plasty:

Internet-celebrity youthful face with short midface, phoenix eyes slightly upturned, deep watery eyes with natural cool-premium feel at outer corners, thin lips natural pale pink with jelly-glossy hydration, refined cool-premium features. Wearing black high-neck slim-fit silk shirt, sleeves rolled up to elbows revealing slender wrists, black high-waisted wide-leg suit pants, a 2-carat diamond stud on left earlobe, ultra-fine silver chain bracelet on right wrist. Long straight black hair silky smooth with center part falling naturally to center of back, a minimalist black ultra-thin hairpin placed near right temple for clean structured look.

La Mer:

Internet-celebrity youthful face with short midface, bright large almond eyes, deep watery eyes with warm soulful gaze, standard lips with jelly-glossy natural pink full hydration, refined soft and clear features. Wearing pearl-white silk satin loose shirt with top button undone revealing delicate collarbone, puffy bubble sleeve design, champagne high-waisted satin wide-leg trousers, ultra-fine champagne-gold necklace with small pearl pendant on neck, white jade thin bracelet on left wrist. Long curly black hair silky smooth with natural large waves falling to shoulder blades, a loose refined French braid woven from left side of crown, tiny pearl hairpins scattered through the braid.

5.4 Pricing Card Prompt

⚠️ Size changed from 896×1344 to 1920×1920 (square)

Template:

Solid uniform green background #00FF00. Center of frame is a compact vertical die-cut label sticker, entirely [dark color scheme] solid background, absolutely no white areas, no light-colored areas, no gradients to white, no green/cyan/teal. Sticker shape is rounded rectangle with arched top decoration. Top has [decorative elements]. Large text "[HEADLINE]" in [font description]; below divided into three tiers: "[TIER 1]" "[TIER 2]" "[TIER 3]". The entire sticker has rich deep solid colors with crisp sharp edges, a solid die-cut sticker. Sticker occupies about 40% of frame area, compact not sparse.

5.5 Product Shelf Prompt (⚠️ Different from original skill)

⚠️ Key differences:

  1. White matte marble display tabletop (not pure green + white plane)
  2. Layered cluster + left-right mirror + front-back progression layout logic
  3. At least 40+ individual product units (not "make it rich")
  4. Middle core zone split into left-center-right sections, center as visual focal point

Template:

Background is pure deep green uniform. At the bottom of frame is a front-facing flat white premium display tabletop (white matte marble texture), completely horizontal with no tilt, occupying bottom 40% of frame height. Products arranged by layered cluster plus left-right mirror plus front-back progression logic, at least 40+ individual product units densely covering most tabletop area: [Middle core display zone split into left-center-right] Center visual focal point: {product layout description} [Overall layout requirements] All products standing upright facing the viewer. Height differences create stepped layering. Appropriate blank spacing between left/right zones and center zone for breathing room. Dense and full product arrangement, at least 40+ individual units. Nothing else besides products and white matte metal display stands, absolutely no hands, fingers, arms, or any human body parts. Even lighting. Pure still-life product display photo with no human presence whatsoever.

⚠️ Do NOT include "leave hand-holding space at front" in the layout — hand-held products are for the host persona image; the product shelf is pure product display.

5.6 User Product Photo (Optional)

When the user provides a real product photo:

a) Background removal: Select strategy based on product photo background

Product Background Removal Method
White/light solid background HSV threshold to remove white areas
Dark solid background HSV threshold to remove corresponding dark color
Complex scene background GrabCut or Rembg
import cv2
import numpy as np

def remove_white_bg(img_path, output_path):
    """Remove white/light background"""
    img = cv2.imread(img_path)
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    mask_w = cv2.inRange(hsv, np.array([0, 0, 200]), np.array([180, 30, 255]))
    mask_g = cv2.inRange(hsv, np.array([0, 0, 160]), np.array([180, 50, 240]))
    mask = cv2.bitwise_or(mask_w, mask_g)
    k = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7, 7))
    mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, k, iterations=5)
    mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, k, iterations=3)
    mask = cv2.GaussianBlur(mask, (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) Product Shelf Prompt adjustment: Leave center area blank for user's product

In the product shelf prompt, change the center zone description to:
"Leave sufficient blank space in the center area for the main featured product
(about 30% of center area kept clean), surrounding products arranged by
layered cluster plus left-right mirror plus front-back progression logic"

c) Composite overlay: User product photo scaled and placed at center of product area

# User product: scale to 25% of canvas width, center of product area
up_target_w = int(cw * 0.25)
ups = up_target_w / user_product.width
up_resized = user_product.resize((int(user_product.width * ups), int(user_product.height * ups)), Image.LANCZOS)
upx = (cw - up_resized.width) // 2
upy = pdy + int(pdr.height * 0.05)

# Paste order: user product after product shelf, before title banner
canvas.paste(pdr, (0, pdy), pdr)
canvas.paste(up_resized, (upx, upy), up_resized)  # ← user product
canvas.paste(tr, (tx, ty), tr)

5.7 Benefits Bar Prompt

Template:

Symmetrical left-right composition, eye-level view. Core elements in upper half: three simple benefit icons, with corresponding text below: "[BENEFIT 1] / [BENEFIT 2] / [BENEFIT 3]". Background [background description]. Style: flat design, minimalist lighting. Color: [primary color], clean and elegant.

VI. Image Generation API

Item Content
Endpoint https://ark.cn-beijing.volces.com/api/v3/images/generations
Method POST
Content-Type application/json
General model doubao-seedream-4-5-251128
Persona model doubao-seedream-5-0-260128 (host persona component only)

Request parameters

{
  "model": "doubao-seedream-4-5-251128",
  "stream": false,
  "watermark": false,
  "sequential_image_generation": "disabled",
  "prompt": "<prompt in Chinese>",
  "size": "<width>x<height>"
}

Request example

curl -s "https://ark.cn-beijing.volces.com/api/v3/images/generations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <API_KEY>" \
  -d '{
    "model": "doubao-seedream-4-5-251128",
    "stream": false,
    "watermark": false,
    "sequential_image_generation": "disabled",
    "prompt": "prompt content",
    "size": "1440x2560"
  }'

VII. Green Screen Removal

Execute green screen removal on components 2 (Title Banner), 3 (Host Persona), 4 (Pricing Card), and 5 (Product Shelf).

import cv2
import numpy as np

def remove_green(img_path, output_path):
    img = cv2.imread(img_path)
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    mask1 = cv2.inRange(hsv, np.array([35, 80, 80]), np.array([85, 255, 255]))
    mask2 = cv2.inRange(hsv, np.array([30, 40, 120]), np.array([90, 255, 255]))
    mask = cv2.bitwise_or(mask1, mask2)
    k = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
    mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, k, iterations=3)
    mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, k, iterations=2)
    mask = cv2.GaussianBlur(mask, (3, 3), 0)
    mask = (mask > 127).astype(np.uint8) * 255
    b, g, r = cv2.split(img)
    rgba = cv2.merge([b, g, r, 255 - mask])
    cv2.imwrite(output_path, rgba)

VIII. Composite Preview

⚠️ Layout parameters differ from original skill

Layout Parameters

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"},
}

Composite Code

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)
        x = (cw - w) // 2 if center else cw - w
        return r, x

    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

    # Layer order: background → pricing card → host → product shelf → title banner → benefits bar
    # To place title behind host, move tr paste before per paste
    canvas = bg.copy()
    canvas.paste(prr, (prx, pry), prr)
    canvas.paste(per, (perx, pery), per)
    canvas.paste(pdr, (0, pdy), pdr)
    canvas.paste(tr, (tx, ty), tr)
    canvas.paste(bfr, (0, bfy), bfr)

    canvas.convert("RGB").save(output_path, "JPEG", quality=95)

Post-processing: Host Brightness Boost

Boost the host layer brightness before compositing to prevent dark appearance:

from PIL import ImageEnhance

# Boost host layer by 17% before compositing
person_bright = ImageEnhance.Brightness(person).enhance(1.17)
# Use person_bright instead of person in compositing

⚠️ Only boost the host layer (17%). Do NOT touch other layers. The delivered 人物.png should also use the boosted version.

IX. Delivery & Packaging

Deliverables (Fixed 7 files)

Filename Format Notes
背景.png PNG 1440×2560 Full-bleed
标题横卡.png PNG 1440×2560 transparent Content at preview position
人物.png PNG 1440×2560 transparent Brightness boosted (don't label "boosted")
促销竖卡.png PNG 1440×2560 transparent Content at preview position
桌面商品贴.png PNG 1440×2560 transparent Content at preview position
权益下贴.png PNG 1440×2560 transparent Content at preview position
预览.jpg JPG 1440×2560 Composite preview

If a user product photo is provided, it will be composited into the center of the product shelf — not delivered separately.

Delivery Methods (Auto-select based on channel)

Method 1: Send in chat (when channel supports file sending)

  1. Send preview image (预览.jpg) to chat first
  2. Send zip archive (named {Brand}_livestream_overlays.zip, containing all 7 files)
cd output/
zip -j "../{Brand}_livestream_overlays.zip" 背景.png 标题横卡.png 人物.png 促销竖卡.png 桌面商品贴.png 权益下贴.png 预览.jpg

Method 2: Desktop folder (when channel doesn't support file sending)

  1. Create folder on user's desktop named {Brand}_overlays
  2. Put only the 7 files inside — no intermediate files, no zip
  3. Use open command to show the preview image
  4. Use open command to open the folder

⚠️ Note: webchat (Control UI) does not support file sending — use Method 2. Feishu, WeChat etc. use Method 1.

X. Complete Workflow

1. Collect requirements (brand, promotion, optional: user product photo)
2. Analyze brand style → determine color palette
3. Design host appearance (youthful face + watery eyes + jelly lips + outfit + hairstyle + accessories)
4. Auto-generate missing copy
5. Write prompts for all 6 components (host uses v2 template, no hand-held products)
   - If user product photo: leave center blank in product shelf prompt
6. General components → doubao-seedream-4-5-251128, host → doubao-seedream-5-0-260128
7. Green screen removal on components 2/3/4/5
8. Boost host layer brightness by 17% (ImageEnhance.Brightness 1.17)
9. [Optional] Remove background from user product photo (white/light bg → HSV threshold)
10. Composite preview (use boosted host, user product overlaid at center of product area)
11. Package and deliver