本地视频缩略图生成器。通过亮度、锐度和场景切换得分挑选最佳帧,合成专业级缩略图
openclaw- thumbnail- forge.v0.3. 0. 0. 是一个用于视频的实用缩略图生成器
功能概述
openclaw- thumbnail- forge.v0.3. 0. 0. 是一个用于视频的实用缩略图生成器是一项面向实际任务的技能,主要用于构建专业缩略图创建者通常在Photoshop或Canva中制作, 但作为本地的 CLI w。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
openclaw-thumbnail-forge
v0.3.0
一款实用的视频缩略图生成工具。它能构建出创作者通常在 Photoshop 或 Canva 中手动制作的专业级缩略图,但整个流程完全本地化、通过 CLI 执行,无需 API 密钥、不依赖任何在线服务,也无任何 AI 组件。
该技能的功能
scripts/check_deps.sh— 验证ffmpeg、ffprobe、python3(以及 Python 包Pillow)是否已安装。scripts/pick_frames.py— 从视频中提取候选帧,并依据综合评分(融合清晰度、亮度、对比度及 ffmpeg 场景变化检测得分)对帧进行排序。输出 Top-N 帧为 PNG 文件,并附带一份 JSON 报告。scripts/compose_thumbnail.py— 将单张源帧合成为成品缩略图:添加加粗标题文字、副标题、渐变条、可选 Logo 叠加层,并自动增强对比度。支持自定义字体与配色方案。scripts/export_sizes.py— 一条命令即可将成品缩略图导出为所有主流平台尺寸(YouTube、Shorts、Instagram 正方形、X/Twitter、LinkedIn)。scripts/make_variants.py— 为同一缩略图生成四种可用于 A/B 测试的变体(不同配色方案、文字位置、对比度等级)。v0.3.0 新增:--auto-pick参数可立即调用score_thumbnail.py对四个变体打分,将最高分变体复制至,并写入包含完整排名信息的/winner.png winner.json。一步完成,一键决策。scripts/score_thumbnail.py(v0.2.0 新增)— 对一个或多个成品缩略图,在六项客观视觉指标上进行评分,并选出最可能带来点击的版本。为每张缩略图输出一个数值化的点击可能性得分(0–100),并解释各项指标对该结果的贡献。
该技能不具备的功能
为明确预期,以下功能**不提供**:
- 不使用 AI 主体检测或人脸识别。帧排序与点击可能性评分均为统计型方法,非语义理解。
- 不下载字体、图库照片或任何远程资源。字体路径需用户自行提供,或使用系统默认字体。
- 不执行 OCR、语音转录或生成式编辑。
- 不会向用户指定目录之外的路径读写任何文件。
- 点击可能性评分器是一个确定性启发式算法,而非真实机器学习 CTR 模型。它建模了业界广泛引用的缩略图设计规则(冲击力、焦点突出、色彩冲击、文字带、亮度、边缘密度)。请将其输出视为辅助决策的“决胜参考”,而非绝对保证。
必要依赖项
bash scripts/check_deps.sh
验证 ffmpeg、ffprobe、python3 是否可用,并确认 PIL(即 Pillow)可被成功导入。Pillow 是本项目唯一的 Python 依赖:
pip install Pillow
工作流
1. 从视频中选取最佳候选帧
python3 scripts/pick_frames.py input.mp4 ./frames/ --top 10 --interval 2.0
每 2 秒提取一帧,对每帧打分,并将得分最高的 10 帧保存为 frames/frame_001.png 至 frames/frame_010.png,同时生成包含逐帧得分的 frames/report.json。
可调参数:
--interval— 采样间隔(默认 2.0)--top— 保留的最高分帧数(默认 10)--min-brightness <0-255>/--max-brightness <0-255>— 拒绝过暗或过曝的帧--min-sharpness— 拒绝模糊帧--relax-on-empty(v0.2.0 新增)— 若无帧通过全部筛选条件(如极短视频、极暗画面、单主体静止画面),则以极宽松阈值重试一次,确保至少输出一个候选帧
若视频时长小于 2 * interval,脚本将自动回退为均匀采样 3 帧,避免返回零候选。
2. 基于单帧合成成品缩略图
python3 scripts/compose_thumbnail.py frames/frame_003.png thumb.png --title "10 ffmpeg Tricks I Wish I Knew Sooner" --subtitle "A practical tour" --color-scheme bold-yellow --position bottom
内置配色方案:bold-yellow、clean-white、red-alert、cool-blue、tech-green。每种方案定义了标题颜色、描边色、阴影及渐变条透明度。
文字位置选项:top、bottom、center。脚本会自动适配标题字号以匹配可用宽度,并在文字后添加可读性强的渐变条,确保缩略图在小尺寸下依然清晰可辨。
可选 Logo 叠加:
python3 scripts/compose_thumbnail.py frames/frame_003.png thumb.png --title "Your Title" --logo logo.png --logo-corner top-right --logo-scale 0.12
v0.2.0 起,脚本将拒绝空标题 --title ""(不再静默生成无文字缩略图),并在输入图像损坏或无法读取时打印清晰错误提示(而非泄露 Python traceback)。
3. 一次性导出所有平台尺寸
python3 scripts/export_sizes.py thumb.png ./out/
生成以下文件:
out/youtube_1280x720.pngout/shorts_1080x1920.pngout/instagram_1080x1080.pngout/x_1200x675.pngout/linkedin_1200x627.png
4. 生成 A/B 测试变体
python3 scripts/make_variants.py frames/frame_003.png ./variants/ --title "10 ffmpeg Tricks" --subtitle "A practical tour"
生成 4 种不同配色与文字位置的变体,适用于点击率分流测试。
v0.3.0 新增:--auto-pick 可在生成变体的同时立即选出最优者,一条命令完成:
python3 scripts/make_variants.py frames/frame_003.png ./variants/ --title "10 ffmpeg Tricks" --subtitle "A practical tour" --auto-pick
该命令除生成 4 个变体外,还将最高分变体复制为 ./variants/winner.png,并写入含完整排名与分析的 ./variants/winner.json。原始四个 variant_*.png 文件保持不变,便于您人工复核并选择其他变体。
5. 对成品缩略图进行点击可能性评分(v0.2.0 新增)
python3 scripts/score_thumbnail.py variants/*.png
对每张缩略图在六项客观指标上评分,并输出带高亮胜出者的排序列表:
| 子评分项 | 衡量内容 |
|---|---|
punch |
全局亮度对比度 |
focal_pop |
分块均值亮度方差 —— 当存在明显焦点区域时值较高 |
color_punch |
饱和度均值 + 饱和度标准差(合并计算) |
text_band |
是否存在高对比度水平文字带(连续多行高边缘密度) |
brightness |
与理想中间调的距离(过暗或过曝将受罚) |
edge_density |
平均边缘强度 —— 在中等值处达峰值,极端值受罚 |
每个子评分项均归一化至 [0, 100] 区间,并按权重 0.18 / 0.22 / 0.15 / 0.20 / 0.12 / 0.13 加权合成。最终 click_score 范围为 [0, 100]。
当输入两张及以上缩略图时,脚本还会输出解释性说明:对每一对比(相对于胜出者),是哪一项指标导致得分差距、差距大小是多少。
JSON 模式:
python3 scripts/score_thumbnail.py variants/*.png --output ranking.json --json
完整流水线示例
# 1) 查找最佳候选帧 python3 scripts/pick_frames.py my_video.mp4 ./frames/ --top 5 --interval 1.5 # 2) 基于最高分帧生成四个变体 python3 scripts/make_variants.py frames/frame_001.png ./variants/ --title "Your Title Here" --subtitle "Optional subtitle" # 3) 对变体评分并选出点击胜出者 python3 scripts/score_thumbnail.py variants/*.png --output ranking.json # 4) 将选定变体导出至所有平台尺寸 python3 scripts/export_sizes.py variants/variant_b_clean_white_top.png ./out/
退出码
| 码值 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | 部分失败(无帧通过筛选;输入中无可评分图像) |
| 2 | 错误(参数非法、路径不安全、输入缺失或损坏、ffmpeg/ffprobe 执行失败) |
安全性保障
- 所有 Python 工具脚本均使用
subprocess.run并传入参数列表(从不启用shell=True),且通过严格正则白名单校验输入/输出路径,拒绝含 Shell 元字符的路径。 - 本技能仅读写用户显式指定的输入/输出路径,绝不越界。
- 不读取任何环境变量用于凭据认证。无需任何 token、密钥或 API key。
- 不发起任何形式的远程调用。仅调用本地安装的
ffmpeg和 PythonPillow库。
已知限制
- 帧评分与缩略图点击可能性评分均为启发式算法,非 AI 驱动。它们无法识别“主体面部是否可见”,而是最大化客观图像质量信号及视觉层级代理指标。
- 若未指定
--font,默认使用系统默认字体;若未找到可用字体,则回退至 Pillow 的位图字体(效果朴素)。建议显式传入--font以获得优质排版效果。 compose_thumbnail.py不执行自动背景去除。如需孤立主体,请先在其他工具中完成主体抠图步骤。
v0.3.0 更新内容
scripts/make_variants.py新增--auto-pick参数。生成四个 A/B 变体后,自动运行scripts/score_thumbnail.py进行评分,将最高分变体复制至,并写入含完整排名与推理过程的/winner.png ,消除典型工作流中的手动第二步。/winner.json - 稳健解析评分器嵌套的
winner结构(如winner.winner_file、winner.ranked[]),若未来评分器版本结构变更,则自动回退至原始results[]数组。 - 无任何现有 CLI 参数变更;
--auto-pick为纯新增参数。四个变体文件名(variant_a_...png、variant_b_...png、variant_c_...png、variant_d_...png)保持不变。
v0.2.0 更新内容
新增功能
scripts/score_thumbnail.py— 确定性本地点击可能性评分器。基于六项视觉指标(冲击力、焦点突出、色彩冲击、文字带、亮度、边缘密度)对一张或多张成品缩略图评分并排序。纯 Pillow + 标准库实现,无机器学习、无远程调用。
缺陷修复
compose_thumbnail.py与make_variants.py现在会对空--title ""报出清晰错误,而非静默生成无文字缩略图。compose_thumbnail.py现在可捕获PIL.UnidentifiedImageError(输入图像损坏或非图像格式),并打印简洁单行错误,而非泄露 Python traceback。pick_frames.py现在在ffprobe处理非视频输入失败、视频时长为零、或输入路径含 Shell 元字符时,正确返回退出码 2(而非 0)。依赖退出码的流水线现可正常工作。pick_frames.py不再对极短视频(< 2 * interval)静默生成零帧。现改为对短片回退为均匀采样 3 帧;新增--relax-on-empty标志可在默认宽松阈值仍无候选时,再以极宽松阈值重试一次。- 移除了
probe_duration中冗余的重复 ffprobe 调用。
无破坏性变更:所有现有 CLI 参数、输出文件名、评分公式及判定阈值均保持不变。v0.1.0 的脚本与流水线可继续正常运行。
许可证
MIT。详见 LICENSE。
热门AI工具
相关专题
AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。
0
2026.09.20
PHP中文网特设OpenClaw免费大模型专区,提供详尽调用指南。涵盖免费API申请、模型配置及本地部署教程,助您零成本畅享AI智能体验。无论是新手入门还是进阶应用,这里都有实用干货,轻松跨越创作门槛,开启高效智能办公新方式。
79
2026.06.29
本专题专为零基础用户设计,带你从环境搭建到实战应用,系统掌握开源AI Agent OpenClaw。内容涵盖Node.js/Docker安装、API配置、Skills技能扩展及多平台集成,通过整理文件、自动化办公等真实案例,助你快速上手。无论你是想提升效率的职场人还是技术爱好者,都能在此找到从入门到精通的完整路径,打造专属的本地化AI助手。
302
2026.05.06
《OpenClawAI硬件指南最新版》合集聚焦AI硬件入门与进阶,从核心组件解析到实战搭建,系统讲解算力配置、设备选型与优化方案。内容通俗易懂,适合开发者与科技爱好者快速掌握AI硬件要点,构建高效稳定的智能计算环境。
308
2026.03.20
围绕龙虾OpenClawAI使用中的安全风险,本合集系统梳理常见漏洞与隐患,提供实用防护方法与最新安全指南,帮助用户在稳定运行的同时规避风险,提升整体使用安全性与体验。
89
2026.03.20
OpenClawAI Skills 是 OpenClaw 智能体的核心功能模块,用于定义和管理 AI 可执行的具体能力,如查询天气、发送消息、操作文件等。通过技能系统,用户可灵活扩展智能体功能,实现高度定制化的自动化任务。
338
2026.03.20
《OpenClawAI初学者教程:如何使用和设置》是一套面向新手的入门指南,涵盖环境搭建、基础配置、模型加载及简单推理操作。通过本教程,你将快速掌握OpenClawAI的核心功能,轻松开启AI开发之旅。
61
2026.03.19
本合集涵盖2026最新版OpenClaw(小龙虾)本地部署全流程,适用于Windows系统,包含环境配置、模型接入、Web界面启动及飞书/Telegram/QQ等多平台对接。无论你是小白还是开发者,10分钟内即可完成安装,快速体验AI智能体“长手干活”的强大能力!
101
2026.03.19
《OpenClaw如何卸载?OpenClawAI小龙虾安全卸载最新指南》为您提供详尽、安全的卸载步骤,帮助用户彻底移除OpenClaw及其相关组件。本指南针对Windows与macOS系统分别说明操作流程,涵盖停止后台进程、清除配置文件、删除残留数据等关键环节,确保无痕卸载,避免系统冲突或隐私泄露。无论您是因更换工具、解决兼容问题,还是出于安全考虑,本文都将助您高效、安心地完成卸载操作。请务必按照最新版本指引执行,以保障设备稳定与数据安
60
2026.03.19
热门下载
相关下载
精品课程
共1课时 | 164人学习
共0课时 | 0人学习
共1课时 | 206人学习