视频转漫画流水线

SKILL前端设计
前端设计 未标注权限 许可证不明确
安装这个技能

把一组视频素材自动转为漫画成品/半成品。抽帧并分析视频中的人物、场景、关键情节与画面风格,产出分镜脚本、角色形象锚点、逐格漫画画面与排版成品页。当用户要求「把视频做成漫画」「视频转漫画」「vlog 变漫画」「自动生成漫画分镜」「视频漫画化」「像 Looki 那样的漫画日记」或提供视频素材要求产出漫画时使用。

一句话选型结论

按资料字段整理

视频转漫画流水线是前端设计类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类前端设计 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_2fd58a73/video-to-comic
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

前端设计
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_2fd58a73仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791625070
正文体量14.3 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
出页面与组件

按描述生成页面结构和组件草稿。

调整样式与布局

改间距、配色与响应式布局。

生成设计说明

把设计稿整理成开发能接的说明。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在前端设计场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
视频转漫画流水线当前 未标注权限 未标注 未标注 未标注 有
前端设计 只读 GitHub 仓库 882.3 万 Codex、Claude、Cursor 有
Vercel 组合模式 联网访问 GitHub 仓库 385.9 万 Codex、Claude、Cursor 有
Vercel React native skills 前端 只读 GitHub 仓库 246.9 万 Codex、Claude、Cursor 有
adapt 搜索 浏览器控制 GitHub 仓库 202.7 万 Codex、Claude、Cursor 有
使用我的浏览器 浏览器控制 GitHub 仓库 184.8 万 Codex、Claude、Cursor 有

SKILL.md 全文

14.3 KB
模型实际读到的说明书原文,来自技能仓库

视频转漫画流水线(Video to Comic)

接收一组视频,输出可直接发布的漫画页(或可继续加工的半成品)。

与 photo-to-comic-strip 的关系:那个技能处理「已有照片」,本技能处理「原始视频」并多做前三个阶段的视频理解。画风库与角色锚点方法两边共享,改风格时两边都要改。


何时用 / 不用

情况 用什么
一段或多段视频,要自动出漫画 ✅ 本技能
手上已经是挑好的照片 photo-to-comic-strip
只是想把一张照片插画化 直接调用图像生成,别套流程

技能构成

文件 作用
scripts/extract_keyframes.py 阶段一:视频解析 + 抽帧 + 去重 + 联系表
scripts/shoot.py 阶段六:注入配置 + 截图 + 自动裁边
assets/comic-template.html 排版模板(4 种形态 × 2 套主题)
references/prompt-library.md 提示词库(画风段 / 锚点段 / 场景段 / 旁白指令)

两个脚本都只依赖 ffmpeg + Pillow,不需要 ffprobe / numpy / cv2。


启动前必做:告知成本

图像生成每张消耗约 5–10 积分,属额外计费。开工前必须向用户报清张数与总量,得到确认再跑。

形态 张数 估算消耗
四格 2×2 1 锚点 + 4 格 = 5 ~25–50
六格 2×3 1 + 6 = 7 ~35–70
九格 3×3 1 + 9 = 10 ~50–100
条漫 5 格 1 + 5 = 6 ~30–60

若不想消耗积分:只跑阶段一到三,交付分镜脚本 + 排版占位版 HTML(版式已排好、格子留空),用户后续自己补图。这同样是完整交付物。


工作目录约定

所有产物落在一个工作目录下,阶段间用文件传递,任何一步都能中断续跑:

<workdir>/
├── frames/            # 阶段一:关键帧
├── sheets/            # 阶段一:联系表(给模型看的)
├── frames.json        # 阶段一:清单
├── analysis.json      # 阶段二:视频理解结果
├── storyboard.json    # 阶段三:分镜脚本
├── anchor/
│   └── character-anchor.png   # 阶段四:角色锚点(跨批次长期复用)
├── panels/            # 阶段五:逐格漫画图
├── storyboard.json    # 阶段三:分镜脚本(shoot.py 的输入)
├── comic.html         # 阶段六:排版文件
└── comic.png          # 阶段六:成品图

阶段一 · 视频解析与关键帧提取

python {baseDir}/scripts/extract_keyframes.py \
  --input "<视频文件或包含视频的目录>" \
  --outdir "<workdir>" \
  --interval 8 --scene-threshold 0.30 --max-frames 48

参数怎么调:

参数 默认 什么时候改
--interval 8 长视频(>10 分钟)调到 15–20;短视频(<1 分钟)调到 2–3
--scene-threshold 0.30 抽到的帧太少调到 0.20;废帧太多调到 0.45
--max-frames 48 上限,控制后续读图成本。四格漫画其实 24–32 就够
--sheet-cols 5 联系表列数

脚本不依赖 ffprobe、numpy、cv2,只用 ffmpeg + Pillow。传目录时会按文件名自然序拼接,时间轴跨文件连续。

已内置的健壮性处理(不用你操心,但知道有这回事):

情况 脚本的处理
片段比 --interval 还短 有效间隔自动压到片段时长的一半,保证每段至少贡献两帧。否则 15 秒片段配 --interval 20 会一帧都抽不到
ffmpeg 新版移除了 -vsync 运行时探测参数名,新版用 -fps_mode passthrough,老版回退 -vsync 0。不加这个参数的话,被选中的 2 帧会被重复帧填满成 32 个文件,时间戳全错
素材画面高度重复 去重按「结构像 且 颜色也像」双条件判定;丢掉九成以上候选帧时告警并提示调参
片段数量多(几十上百个) 不逐条刷屏,末尾给汇总,明细写进 frames.json
中间文件残留 每次运行前清理旧的 frames/ 目录

产出:frames/(关键帧)、sheets/(联系表)、frames.json(含每帧时间戳、来源、类型、感知哈希)。


阶段二 · 内容分析(读图理解)

关键成本控制:先读 sheets/ 里的联系表(一张图含 20 帧),一次通读全片;再挑少数几张读 frames/ 原图做细节分析。

> ⚠️ 不要一上来就逐张读原图。48 帧原图会白白烧掉大量上下文,而联系表已经能覆盖 90% 的判断。

读联系表时,要求模型输出这份结构化结果,落到 analysis.json:

{
  &quot;main_line&quot;: &quot;一句话概括这条视频发生了什么&quot;,
  &quot;setting&quot;: &quot;地点、天气、时段&quot;,
  &quot;characters&quot;: [
    {
      &quot;role&quot;: &quot;主角&quot;,
      &quot;appearance&quot;: &quot;性别/年龄段/发型/体型/标志性特征&quot;,
      &quot;wardrobe&quot;: &quot;全程穿着的服装(含每段变化)&quot;,
      &quot;frames&quot;: [&quot;v01_003&quot;, &quot;v01_007&quot;]
    }
  ],
  &quot;beats&quot;: [
    { &quot;frame&quot;: &quot;v01_003&quot;, &quot;t&quot;: 12.4, &quot;what&quot;: &quot;发生了什么事&quot;, &quot;why&quot;: &quot;为什么值得画&quot; }
  ],
  &quot;visual_style&quot;: &quot;素材本身的影像风格(色调/光线/镜头语言)&quot;,
  &quot;suggested_genre&quot;: &quot;基于素材调性推荐的漫画画风&quot;,
  &quot;usable_frames&quot;: [&quot;v01_003&quot;, &quot;v01_007&quot;],
  &quot;rejected_frames&quot;: [{ &quot;frame&quot;: &quot;v01_011&quot;, &quot;reason&quot;: &quot;纯风景空镜/重复/糊&quot; }]
}

characters[].appearance 与 wardrobe 写得越细,阶段四的锚点越准。


阶段三 · 分镜脚本

用 references/prompt-library.md 里的「事件提炼」与「旁白生成」指令,把 analysis.json 压成 storyboard.json:

{
  &quot;title&quot;: &quot;漫画标题(≤10 字,有画面感)&quot;,
  &quot;date&quot;: &quot;2026-09-13&quot;,
  &quot;layout&quot;: &quot;grid-4&quot;,
  &quot;theme&quot;: &quot;paper&quot;,
  &quot;style_block&quot;: &quot;(逐字固定的画风段,整批共用)&quot;,
  &quot;panels&quot;: [
    {
      &quot;no&quot;: 1,
      &quot;source_frame&quot;: &quot;v01_003&quot;,
      &quot;shot&quot;: &quot;wide establishing shot&quot;,
      &quot;scene&quot;: &quot;英文场景描述:地点 + 动作 + 景别 + 光线 + 此刻服装&quot;,
      &quot;caption&quot;: &quot;中文旁白(≤12 字)&quot;,
      &quot;sfx&quot;: &quot;拟声词,可省&quot;
    }
  ]
}

选帧判据:读者看这几格能不能明白「这天发生了什么」。
纯风景空镜、重复画面、无信息量的过渡帧一律不选。

景别要有变化——四格里至少一格远景、一格特写。全是中景会很闷。


阶段四 · 角色锚点(一致性地基)

从 usable_frames 里挑人物最清晰的那一帧,用图像生成(image-to-image)转成漫画版人物。

prompt 用 references/prompt-library.md 的「角色锚点段」(画风段 + 角色描述 + 定妆照要求)。

产出存为 anchor/character-anchor.png,全片所有格子引用同一张。

纪律:

  • 锚点里服装定死成常穿那套
  • 换画风 = 重做锚点(绘本风锚点跑水墨风分镜,人物会精神分裂)
  • 锚点做好后给用户看一眼再往下跑——这一步不对,后面全废

阶段五 · 逐格生成

每格一次图像生成调用,输入两张图:

  • image1 = 该格对应的原始关键帧(定构图与场景)
  • image2 = 角色锚点(定人脸与服装)

prompt 结构:

[画风段,逐字固定] + [本格英文场景描述] + [角色一致性约束]

参数建议:

参数 值 理由
input_fidelity 中–高 越高越贴近原图;太高中和掉画风,建议先试中间值
size 与排版格子一致 四格用 1024x1024 或 1536x1024,条漫用 1536x1024
quality medium 先出草稿打版式,确认后再用 high 重跑

先跑 1 格试水,确认画风与人物一致性到位,再批量跑剩下的。别一口气跑完九格才发现风格不对。

常见问题与处置

症状 原因 处置
每格脸不一样 漏传锚点,或锚点没定死 检查 image2 是否传了;确认锚点只有一张
场景串味(头盔没摘) 场景描述里没写「此刻服装」 每格显式写 now wearing ...
四格画风不统一 风格段被改动了 风格段逐字固定,只换场景段
画面出现乱码汉字 模型自己画了字 prompt 加 no text, no lettering;已出的图用图像编辑模式擦除
人物姿态僵硬 只给了远景锚点 锚点用半身/全身清晰图,场景里写清动作

阶段六 · 排版输出

复制 assets/comic-template.html 到工作目录,改内嵌的 COMIC_CONFIG:

const COMIC_CONFIG = {
  layout: &quot;grid-4&quot;,     // grid-4 | grid-6 | grid-9 | strip
  theme: &quot;paper&quot;,       // paper(绘本·水墨)| dark(电竞·霓虹)
  title: &quot;周末骑行日记&quot;,
  date: &quot;2026-09-13&quot;,
  footer: &quot;山与我 · Mountain and Me&quot;,
  frames: [
    { src: &quot;panels/panel-01.png&quot;, caption: &quot;六点半就爬起来了&quot; },
    ...
  ]
};

模板特性:

  • 四种形态靠 layout 切换,两套主题靠 theme 切换
  • 缺图的格子自动显示「待生成 XX」占位——分镜没出图也能先看版式
  • 支持 sfx 字段渲染拟声词
  • 加 ?shot=1 去掉页面外边距,截图更干净
  • 支持 ?config=xxx.json 从外部喂配置(需经 http 服务,file:// 下会被 CORS 拦)

截图成图:用配套脚本一步到位。

python {baseDir}/scripts/shoot.py \
  --html {baseDir}/assets/comic-template.html \
  --config &quot;&lt;workdir&gt;/storyboard.json&quot; \
  --out &quot;&lt;workdir&gt;/comic.png&quot; \
  --width 1080 --height 1800

脚本做了三件省事的事:

  1. 自动注入配置 —— 把 storyboard.json 内联进模板再截图,无需起 http 服务,绕开 file:// 下 fetch 被 CORS 拦的问题。frames[].src 的相对路径按 JSON 文件所在目录解析。
  2. 自动定位浏览器 —— 优先用 chrome-headless-shell。⚠️ 本机实测:完整版 Chrome 加 --headless=new 会挂住不返回,必须走 headless-shell。
  3. 自动裁掉底部空白 —— 无头截图只能按窗口尺寸出图,窗口给高才不截断内容,代价是底部拖一片空白。脚本用逐行平均色找内容边界自动裁掉(背景是渐变,没法用比对单色的办法)。

--height 给足就行,裁切会自动处理。条漫(strip)形态内容很高,建议给 3600。

截图备选方案:browser-skill (bsk) 驱动真实 Chrome,适合模板里用了 ?config= 外部加载、或需要交互调整的场合。


降级方案

断点 降级做法
视频无法解析(编码异常/损坏) 让用户用系统播放器导出截图,从阶段二开始跑
图像生成不可用或不想消耗积分 只交付阶段一到三 + 排版占位版 HTML,用户自行补图
找不到人物清晰的帧 用场景帧生成「无主角」的风景漫画,或让用户补一张人像照片做锚点
联系表太大读不清 调小 --sheet-cols 或 --cell-width,拆成多张联系表

质量检查清单

交付前逐条过:

  • [ ] 四格连起来能讲清一件事(不是四张精美插画)
  • [ ] 主角四格都是同一张脸、同一套衣服(换装处有明确交代)
  • [ ] 景别有变化(至少有远景 + 特写)
  • [ ] 光线/时段连贯(不会一格清晨一格正午)
  • [ ] 每格旁白 ≤12 字,且不鸡汤
  • [ ] 画面里没有模型画出来的乱码文字
  • [ ] 手机竖屏看,格子里的字能看清

踩坑记录

  1. 每格必须写「此刻的服装」 —— 实测:只写「晚上在家看手机」,模型会让主角戴着骑行头盔坐沙发上。
  2. 风格段逐字固定 —— 改一个词,四格就像四个人画的。
  3. 不要依赖模型画字 —— 一律由排版层叠加。
  4. 联系表优先于原图 —— 先读联系表通读全片,再挑帧读原图,否则上下文会被撑爆。
  5. 先跑一格试水 —— 画风没锁定就批量跑,是纯粹的积分浪费。
  6. 锚点是长期资产 —— 同一个主角的锚点存下来,跨批次复用,这才是「日更漫画」能成立的前提。
  7. 完整版 Chrome 无头模式会挂住 —— 本机实测 --headless=new 跑到超时都不返回;截图一律走 chrome-headless-shell(shoot.py 已内置这个优先级)。
  8. ffprobe 不一定装了 —— 所以元信息从 ffmpeg -i 的 stderr 里解析,只有 ffmpeg 也能跑。
  9. ?shot=1 参数别丢 —— 它去掉页面外边距,截图才干净。
  10. -vsync 在新版 ffmpeg 已被移除 —— 传了会 Unrecognized option 直接报错退出、一个文件都不出。这个报错极具迷惑性:抽帧结果为空,很容易被误读成「这段视频没有场景切换」。pick_sync_flags() 会自动探测,改脚本时别再手写死 -vsync。
  11. 时间戳不要用公式推算 —— 一律从 showinfo 的 pts_time 取实际值。用 i*interval 推算的话,遇到比 interval 短的片段,整条时间线就错位了。
  12. 去重必须同时看结构和颜色 —— dHash 要先转灰度,色相信息全丢。只用它的话「同构图不同调色」的镜头会被判成同一帧(实测 24 帧去重后只剩 1 帧)。现在的签名是「dHash + 4×4 彩色缩略图」,两个维度都像才算重复。
  13. 颜色指纹别用「平均色」 —— 色彩分布均匀的画面(比如大片天空、彩条)平均下来会互相抵消成中性灰,色相怎么转都一样,等于没判断。要用缩小后的彩色图。

常见问题

5 问
答案由本站依据条目字段整理
视频转漫画流水线怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_2fd58a73/video-to-comic。安装方式为未标注。装完刷新技能列表或重开客户端。

视频转漫画流水线支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

视频转漫画流水线权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

视频转漫画流水线收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

视频转漫画流水线用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。