manga-drama
Manga Drama Generator - A manga-style short drama generation tool based on Seedance. Supports using a main character's image as a base to automatically generate storyboard scripts and render videos. Suitable for creating manga-style short videos, character stories, animated shorts, and more. Use this skill when users want to generate manga-style video shorts, character stories, or comic dramas.
1How It Works & Mechanism
Three-subcommand CLI (generate / from-script / create-script): generate is the main workflow—taking a protagonist image + theme, automatically generating a storyboard script, and producing videos shot-by-shot.
python3 scripts/manga_drama.py generate
The so-called "protagonist recognition" is actually a filename heuristic: it extracts the stem of the image filename to assemble a one-sentence description without performing any actual image recognition.
return f"图片中的主角(基于文件名: {filename})"
Features 5 storyboard templates (introduction/action/emotion/interaction/ending), each containing a default_prompt with placeholders that generate_scene_prompt formats and fills.
"default_prompt": "{character}站在画面中央,微笑看向镜头,背景是柔和的光晕,漫画风格,温馨氛围,{style}"
Storyboard scripts are written to disk as JSON (create_drama_script) and can also be loaded from user-edited scripts (from-script), supporting shot-by-shot custom prompts.
with open(output_file, 'w', encoding='utf-8') as f:
Invokes seedance_video.generate_video_task shot-by-shot; the protagonist image is read as a base64 data URI and injected into each shot request to ensure character consistency.
img_url = f"data:image/{mime_type};base64,{img_base64}"
Credentials are retrieved from ARK_API_KEY (require_env_key), calling the Volcengine Ark Seedance async task and polling until completion.
require_env_key("ARK_API_KEY")
The script explicitly disables TLS certificate verification (CERT_NONE), and the generated results are downloaded using a curl subprocess.
ssl_context.verify_mode = ssl.CERT_NONE
Artifacts are saved to ~/Desktop/drama_{title}/, with one MP4 per shot; failure of a single shot does not interrupt the entire process (try/except continues).
├── scene_1_introduction.mp4 # 分镜1
The optional --send-feishu flag is accepted by the CLI and passed along, but no Feishu sending implementation is found in the bundled generation code.
| `--send-feishu` | ❌ | 发送到飞书 |
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| cli | python3(运行自带脚本) |
| cli | curl(下载生成视频) |
| api | 火山方舟 Seedance 视频生成 |
| package | 仓库共享模块 common/env_utils(load_env / require_env_key) |
4Recommended Governance & Evidence
- SKILL.md / 脚本: Calls undocumented or reverse-engineered private APIs / fakes client identity
- SKILL.md / 脚本参数: Includes bypassing automated detection, disabling host sandboxes, or skipping SSL certificate verification
- scripts/: Executes local scripts or commands: python3 scripts/manga_drama.py <generate|from-script|create-script> (SKILL.m
- 网络端点: Declares external network access: POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks (create
- 本地工作目录: File read/write and artifact output: Storyboard script JSON (create_drama_script writes to output_file)
5Second-Pass Verification
- [ok] 是否关闭 TLS 校验 — seedance_video.py 开头 ssl_context.check_hostname=False、ssl_context.verify_mode=ssl.CERT_NONE(注释「忽略SSL验证」),后续两处 urllib.request.urlopen 均带该 context;确为安全降级,判红档的直接依据。
- [discrepancy] 「主角识别」宣称是否名副其实 — SKILL.md 核心功能写「主角识别:分析提供的角色图片,提取角色特征」,但 seedance_video.analyze_image 只取图片文件名 stem 并返回「图片中的主角(基于文件名: xxx)」,未做任何图像识别——属能力夸大。
- [discrepancy] --send-feishu 是否有实现 — generate/from-script 均有 --send-feishu 参数并一路传递,但 bundle 展示的 seedance_video.generate_video_task 函数体内未见任何飞书发送逻辑,SKILL.md 也未给实现细节——疑似未完成或依赖未展示的外部步骤。
- [discrepancy] 声明依赖 seedance-video-generation 技能 — SKILL.md 写「需要依赖技能:seedance-video-generation」并引用 ../seedance-video-generation-1.0.3/SKILL.md,但实际自带 scripts/seedance_video.py 直连 API(注释「使用直接 API 调用(无需 SDK)」)——声明与实际实现不一致。
- [ok] 网络调用与凭证读取点 — urllib 两处(建任务、轮询)+ curl 一处(下载);BASE_URL 固定 ark.cn-beijing.volces.com/api/v3。require_env_key('ARK_API_KEY') 在 manga_drama.main 与 seedance_video.generate_video_task 中各出现一次。
- [ok] 写盘点 — 三处落点:create_drama_script 的 open(output_file,'w')、generate_drama 的 drama_dir.mkdir(parents=True, exist_ok=True)、download_video 的 curl -o;无删除操作。
- [unlocatable] env_utils 依赖能否在 skill 内定位 — 两个脚本都把 ../../../common 插入 sys.path 后 import env_utils;该模块不在本 skill 目录内(bundle §1 仅列出 SKILL.md 与 2 个 py),bundle 内无法确认其存在与实现。
- [ok] quote 逐条复核 — 本报告全部 evidence.quote 以子串方式回 bundle 原文比对,无编造。
6Verdict & Scenarios
aa82a767e5ae8459…