knowledge-render
/knowledge-render
Renderuje klatki do filmu wiedzy 1920×1080 z osi czasu, z ilustracjami w stylu długiego zwoju i cięciami na tekst źródłowy.
- Autor
- nativejie ↗
- Repozytorium
- knowledge-video-agent ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 11.11.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 6
- Skrypty
- 4
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 1
Brak sygnałów. Repozytorium zmienione 11.11.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
- 4 skrypty w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.
Skrypty: scripts/build.py, scripts/fonts.py, scripts/gen_image.py, scripts/render.mjs
Co robi i kiedy
Renderuje klatki do filmu wiedzy 1920×1080 z osi czasu, z ilustracjami w stylu długiego zwoju i cięciami na tekst źródłowy.
Oryginalny opis (EN)
给知识视频出画面:按声音排好的时间轴,把每屏画成一帧帧动画再合上配音配乐,出 1920×1080 成片。B 类(神话 / 历史关系)用「Q 版淡彩长卷」:所有人物站在一幅长卷的云上,镜头沿长卷平移、点亮、牵红线;讲故事的句子切到整张插画;引原文的句子切到古籍书页;数字切到大字滚动。用户说「出画面」「渲染」「做成片」,或者是知识视频 Agent 的第 6 步时使用。要 Python 3(Pillow)、Node 18+、Chrome、ffmpeg;插画和人物贴纸要生图:自带 `scripts/gen_image.py`,接 OpenAI 兼容的图片接口(默认 Vizluma,也能接 OpenAI 官方或别的生图站),或者用户自己画好放进来。
Jak działa
- 步骤
- 别做
Podgląd SKILL.md
---
name: knowledge-render
description: 给知识视频出画面:按声音排好的时间轴,把每屏画成一帧帧动画再合上配音配乐,出 1920×1080 成片。B 类(神话 / 历史关系)用「Q 版淡彩长卷」:所有人物站在一幅长卷的云上,镜头沿长卷平移、点亮、牵红线;讲故事的句子切到整张插画;引原文的句子切到古籍书页;数字切到大字滚动。用户说「出画面」「渲染」「做成片」,或者是知识视频 Agent 的第 6 步时使用。要 Python 3(Pillow)、Node 18+、Chrome、ffmpeg;插画和人物贴纸要生图:自带 `scripts/gen_image.py`,接 OpenAI 兼容的图片接口(默认 Vizluma,也能接 OpenAI 官方或别的生图站),或者用户自己画好放进来。
---
# 画面
知识视频 Agent 的第 6 步。前面几步已经定了:台词(`script.json`)、出处(`facts.json`)、声音和时间轴(`timeline.json`、`audio/mix.wav`)。这一步只管画面,**不改台词、不改时间**。
产出都在 `知识/<题目>/render/`:
| 文件 | 是什么 | 谁写 |
|---|---|---|
| `world.json` | 长卷上谁站哪:每本书一栏,同一位人物在不同书里各站一次;红线(书里写的关系)、金色虚线(同一位在不同书里) | 你,照 `outline.json` 排 |
| `shots.json` | 每屏怎么动(见下) | 你,照 `script.json` 的 `do` / `art` 写 |
| `fig/` | 人物贴纸(透明底 png)和云 | 生图 + 抠图(`knowledge-ip` 的 `cutout.py`) |
| `art/` | 故事插画,16:9 | 生图 |
| `film.html` + `data.js` | 逐帧动画页 | `build.py` |
| `final.mp4` | 成片 | `render.mjs` + ffmpeg |
## 步骤
1. **排长卷**(`world.json`):一本书一栏,栏宽 600;地位高的站上面、个子大。先拿 `outline.json` 的节点和关系排,再截一张总览图看挤不挤。
2. **人物贴纸**:每位人物一张全身像(白底、正面、互不重叠排成一排,`gen_image.py` 出图),抠成透明底切开放进 `fig/`。画风先出样张给用户定,定了以后所有图都拿第一张当参考图,保持一致。
3. **写 `shots.json`**,一屏一条,键是屏号。屏的种类由字段决定:
- 长卷(默认):`focus` 镜头对准谁(不写就用 `anchor`)、`cam: "over"` 看整卷、`light` 点亮、`edges` 画红线、`rays` 身后放光(`purple: true` 变紫气)、`tags` 临时挂签(`at`、`text`、`dx`、`dy`,`say: true` 是对话框)、`reset` 全部变回影子、`pan: [起x, 止x]` 贴近平移、`title` 标题签、`layers` 画座次横线、`count` 数到第几个、`half` 画到一半停住的虚线 + 问号、`flag` 举旗、`litAll` + `gold` 全亮 + 金线串起来、`shake` 书名幡一起晃、`open` 卷轴打开(第一屏)。
- 插画:`art` 插画名,`fx` 动效(`sparkle` 金星、`embers` 火星、`smoke` 白烟、`petals` 花瓣、`dust` 尘土、`purple` 紫气、`shake` 开头一震),`tags` 贴在画上的红签(`x`、`y` 是画面比例),`wave` 声波(长啸),`scribble` 墨迹一笔笔写出来。连着几屏同一张插画,镜头接着慢慢平移,不会跳。
- 书页:`page: {fact, title, by, who, seal}`,原文从 `facts.json` 里那条的 `quote` 取,一个字一个字出来,最后盖章;`stamp: "十七个字"` 是一个字一个印落下来。
- 大数字:`num: {to, pre, unit, label, who, fmt: "yi", keep}`,`keep: true` 把上一屏的数留在上面,连成一道算式。
- `block: "pangu"`:盘古开天这种分层的故事镜头(天、地、人物三层),要专门的背景图。
- 插画、书页、大数字屏的左上角自动挂出处签(书名 + 第几回),用这屏 `facts` 的第一条,或者 `src` 指定。
4. **出插画**:每张一句话描述 + 画风段 + 参考图(同名人物的贴纸)。画面最下面五分之一留给字幕。
```bash
python3 <这个skill>/scripts/gen_image.py 知识/<题目>/render/art/naotiangong.png "<描述 + 画风段>" --size 16:9 --ref fig/悟空.png
```
接哪个生图站由环境变量定(`IMAGE_API_KEY`,换站再加 `IMAGE_BASE_URL`、`IMAGE_MODEL`,表在脚本开头):默认 [Vizluma](https://vizluma.online)(¥0.20/张,能带多张参考图,15 张插画约 ¥3);也能接 OpenAI 官方(`gpt-image-1`)或任何 OpenAI 兼容的生图站。没有 key 就把每张的描述列给用户,请他用自己的生图工具出图,按文件名放进 `art/`。
生图超时、断连**别自动重发**(可能已经扣费),先问用户那个站的后台有没有出图。
5. **合成 + 定格检查**:
```bash
python3 <这个skill>/scripts/build.py 知识/<题目> --fig 人物贴纸目录
cd 知识/<题目>/render
PAGE=film.html CHECK=check node <这个skill>/scripts/render.mjs still 1.4 3.2 … # 每屏截一张
```
每屏看一眼:字有没有压在脸上、镜头里该亮的人在不在、红签有没有出框、书页原文对不对。
6. **渲染 + 合声音**:
```bash
PAGE=film.html OUT=video.mp4 node <这个skill>/scripts/render.mjs video
ffmpeg -i video.mp4 -i ../audio/mix.wav -c:v copy -c:a aac -b:a 192k -shortest final.mp4
```
抽几屏定格对比前后帧:画面基本不动的时间别超过全片的 30%,不动的屏加动作(点亮、牵线、挂签、插画平移)。
7. **回给用户**:成片、总时长、插画几张花了多少。
## 别做
- **任何画面都不许有放大、推近、缩放动画。** 长卷每个镜头有一个固定的放大倍数,镜头里只平移;倍数变了就硬切。插画也是固定倍数 + 平移。
- 书页上的字只用 `facts.json` 里核对过的原文,不改一个字,不拿白话冒充原文。
- 插画里不出现文字(模型写的中文常出错);要字就在页面上用字体写。
- 别把宗教人物画成丑化、搞笑的样子;只讲书里怎么写。
Pliki w paczce (6)
- SKILL.md 6 KB
- assets/film.html 35 KB
- scripts/build.py 3 KB
- scripts/fonts.py 3 KB
- scripts/gen_image.py 9 KB
- scripts/render.mjs 4 KB
Wersje
W bazie nie ma innych skilli o nazwie knowledge-render.
Migawka bazy z 13.11.2026 · wersja paczki d265da4eaa1e (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 100knowledge-ip
Tworzy opcjonalną postać IP do wideo wiedzy: trzy propozycje, wybór, wycięcie tła i zestaw mimiki oraz gestów. - 100knowledge-topic
Ocenia pomysły na tematy wideo wiedzy według schematów popularnych materiałów i proponuje formę, długość, tytuł i serię. - 100hot-render
Zamienia scenariusz w gotowy pionowy lub poziomy film z danymi na ekranie, napisami, opcjonalnym lektorem i muzyką w czterech stylach. - 100hot-agent
Prowadzi od trendu z chińskich list popularności do gotowego filmu: wybór tematu, ocena, analiza, scenariusz, ujęcia i okładka. - 100zoetrope
Planuje, skryptuje i renderuje krótkie filmy MP4, WebM i GIF w Pythonie z Pillow i ffmpeg, w wielu stylach. - 85顶级波普视觉广告导演
Przygotowuje tabelę scen 12-sekundowego filmu z szybkimi cięciami dla produktów szybkozbywalnych w stylu pop Z i Y2K.