mcpField
V
video-stickfigure

video-stickfigure

github.com/zrt-ai-labCreative & media29649 installsUpdated 14w ago
Repository

About video-stickfigure

video-stickfigure is a skill for creating stick-figure images for video scenes using AI image generation, then unifying the backgrounds through HSV processing. It specifies prompt patterns, visual checks, file naming, and delivery requirements.

Key features

  1. 01AI-generated stick-figure images
  2. 02Prompt templates for two backgrounds
  3. 03Mood-matched scene elements
  4. 04HSV background color unification
  5. 05Image validation and output naming

Use cases

  1. 01Creating a set of stick-figure scene images
  2. 02Maintaining a consistent chalkboard background
  3. 03Checking image quality and scene counts
  4. 04Preparing unified images for later video steps

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/zrt-ai-lab/opencode-skills --skill video-stickfigure

After installing, type/video-stickfigurein Claude Code to confirm it loaded.

Bundled filesREADME.md

Details

From the project README

火柴人生图技能

🚨 核心原则

必须使用AI生图!禁止用PIL画线条!

检查标准:生成的图片文件 > 50KB


🔧 生图工具

使用 image-service skill:

python ~/.openclaw/skills/image-service/scripts/text_to_image.py "[prompt]" -r 9:16 -o stick1.png

📝 Prompt模板

深墨绿背景版(推荐·默认)
minimalist chalk-style stick figure on dark green chalkboard background #3c5b45,
white chalk line art, simple 5-stroke drawing style,
[动作描述],
exaggerated pose, hand-drawn feel, chalk texture,
no shading, no gradient, stark contrast,
vertical composition 9:16, no text, no watermark
纯黑背景版(备选)
minimalist stick figure, pure black background #000000,
white line art only, simple 5-stroke drawing,
[动作描述],
exaggerated pose, no shading, no gradient, no gray,
stark contrast, cartoon style,
vertical composition 9:16, no text, no watermark

选择建议:

  • 深墨绿版:有黑板质感,视觉更柔和 ✅ 推荐
  • 纯黑版:对比度更高,更简洁
动作描述 + 氛围元素(必须包含!)

火柴人不能孤零零的!必须加氛围元素来衬托情绪!

情绪/概念人物动作🌟 氛围元素(必加!)
衰老/疲惫person slumped over, tired posture+ withered leaves falling, dim shadows, cracked ground
枯萎/消沉person wilting like a dying plant+ dead tree nearby, falling petals, dark clouds
向上/成长person climbing stairs upward+ sunlight rays from above, distant mountain peak, stars
扛事/承担person lifting heavy weight overhead+ storm clouds, rain drops, lightning in background
看远/远眺person standing on cliff, hand over eyes+ vast horizon, clouds below feet, sunrise glow
容人/包容person with arms wide open+ small figures approaching, warm light rays, hearts floating
愉悦/快乐person jumping with joy, arms raised+ confetti, sparkles, fireworks in sky
成长/蜕变person breaking out of shell+ butterfly wings emerging, light beams, blooming flowers
思考/沉思person sitting cross-legged, hand on chin+ floating question marks, gears, light bulb above head
行动/奔跑person running forward with determination+ motion lines, wind effect, path stretching ahead
Prompt组装公式
[基础模板] + [人物动作] + [氛围元素] + [后缀]

示例:衰老场景

minimalist chalk-style stick figure on dark green chalkboard background #3c5b45,
white chalk line art, simple 5-stroke drawing style,
person slumped over tired posture aging feeling,
withered leaves falling around, dim shadows, cracked ground beneath,
exaggerated pose, hand-drawn feel, chalk texture,
no shading, no gradient, stark contrast,
vertical composition 9:16, no text, no watermark

示例:爬台阶场景

minimalist chalk-style stick figure on dark green chalkboard background #3c5b45,
white chalk line art, simple 5-stroke drawing style,
person climbing stairs upward with determination,
sunlight rays streaming from above, distant mountain peak visible, glowing stars,
exaggerated pose, hand-drawn feel, chalk texture,
no shading, no gradient, stark contrast,
vertical composition 9:16, no text, no watermark
⚠️ 氛围元素规则
  1. 必须添加 - 不加氛围元素的火柴人图太单调
  2. 与情绪匹配 - 消极情绪用暗元素,积极情绪用亮元素
  3. 不要太多 - 2-3个氛围元素足够,太多会杂乱
  4. 保持简约 - 氛围元素也是粉笔画风格,不要写实

🎨 HSV背景统一处理(必做!)

AI无法精确控制颜色!生图后必须用代码统一背景色!

处理脚本
import cv2
import numpy as np

def unify_background_hsv(input_path, output_path, target_hex="#3c5b45"):
    """
    用HSV范围替换统一背景色
    """
    img = cv2.imread(input_path)
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    
    # 绿色系HSV范围(覆盖AI生成的各种绿色)
    lower = np.array([35, 20, 20])
    upper = np.array([85, 255, 255])
    
    # 创建掩码
    mask = cv2.inRange(hsv, lower, upper)
    
    # 目标颜色 BGR
    target_bgr = tuple(int(target_hex.lstrip('#')[i:i+2], 16) for i in (4, 2, 0))
    
    # 替换背景
    result = img.copy()
    result[mask > 0] = target_bgr
    
    cv2.imwrite(output_path, result)
    return output_path

# 批量处理
import glob
for f in glob.glob("stick*.png"):
    if "_unified" not in f:
        out = f.replace(".png", "_unified.png")
        unify_background_hsv(f, out)
        print(f"处理完成: {out}")
命令行版本
python3 << 'EOF'
import cv2
import numpy as np
import glob
import sys

target_hex = "#3c5b45"
target_bgr = tuple(int(target_hex.lstrip('#')[i:i+2], 16) for i in (4, 2, 0))

for f in glob.glob("stick*.png"):
    if "_unified" in f:
        continue
    img = cv2.imread(f)
    hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    mask = cv2.inRange(hsv, np.array([35,20,20]), np.array([85,255,255]))
    result = img.copy()
    result[mask > 0] = target_bgr
    out = f.replace(".png", "_unified.png")
    cv2.imwrite(out, result)
    print(f"✅ {f} -> {out}")
EOF

✅ 检查清单(必须全部通过!)

在交付图片前,必须确认:

检查项标准不通过则
文件大小每张 > 50KB重新AI生图
图片数量与场景数量一致补充生成
背景颜色统一为 #3c5b45执行HSV处理
火柴人可见白色线条清晰重新生成
# 快速检查文件大小
ls -la stick*_unified.png | awk '{if($5<50000) print "❌ "$9" 太小: "$5"B"; else print "✅ "$9": "$5"B"}'

📁 输出规范

文件说明
stick1.png, stick2.png, ...AI生成的原始图片
stick1_unified.png, ...HSV处理后的统一背景图片

后续流程只使用 *_unified.png 文件!


🚫 常见错误

错误后果正确做法
用PIL画线条视频看起来像测试图用image-service AI生图
跳过HSV处理背景色深浅不一必须执行HSV统一
文件<50KB图片质量差重新生成
用原图不用unified背景不统一只用_unified.png
火柴人没有氛围元素画面单调无感染力prompt必须加氛围元素

Comments

Markdown supported