一键导入
一键导入
Skill 开发指南。当用户需要创建新 Skill 或更新已有 Skill 时触发,提供标准化模板、目录规范和最佳实践。
Fetch and summarize Feishu group chat history. Use when the user asks to read, review, or summarize messages from a Feishu group chat. Triggers: "看群聊记录", "群里聊了啥", "帮我看看这个群", "群消息历史", "chat history", "what did the group discuss". NOT for: sending messages (use message tool), reading documents (use feishu-doc skill), or wiki operations (use feishu-wiki skill).
Create cron jobs that reliably deliver reminders to Feishu (飞书) chats. Use when the user asks to set up scheduled reminders, periodic notifications, or any recurring task that should send messages to a Feishu conversation. Triggers: '飞书定时提醒', '定时任务发飞书', 'cron reminder to feishu', '每小时提醒', 'scheduled feishu message'.
Fetch content from Feishu (Lark) Wiki, Docs, Sheets, and Bitable. Automatically resolves Wiki URLs to real entities and converts content to Markdown.
短视频文案创作技能。包含爆款公式、黄金结构、三关校验。当需要撰写短视频文案时触发。
视频硬字幕/水印去除技能。自动配置基于 YaoFANGUK/video-subtitle-remover 的环境并执行去字幕。当用户要求"去除视频字幕"、"去水印"、"把这个视频的字幕干掉"时触发此技能。
| name | video-stickfigure |
| description | 火柴人图片生成技能。使用AI生成粉笔画风格火柴人,并用HSV统一背景色。当需要生成火柴人视频素材时触发。 |
必须使用AI生图!禁止用PIL画线条!
检查标准:生成的图片文件 > 50KB
使用 image-service skill:
python ~/.openclaw/skills/image-service/scripts/text_to_image.py "[prompt]" -r 9:16 -o stick1.png
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 |
[基础模板] + [人物动作] + [氛围元素] + [后缀]
示例:衰老场景
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
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必须加氛围元素 |