1实现原理 · 为什么它能做到
三子命令 CLI(generate / from-script / create-script):generate 是主流程——拿主角图 + 主题,自动生成分镜脚本再逐镜出视频。
python3 scripts/manga_drama.py generate
所谓「主角识别」实为文件名启发式:取图片文件名 stem 拼一句描述,并未做任何图像识别。
return f"图片中的主角(基于文件名: {filename})"
5 种分镜模板(introduction/action/emotion/interaction/ending),每种一段带占位符的 default_prompt,由 generate_scene_prompt 做 format 填充。
"default_prompt": "{character}站在画面中央,微笑看向镜头,背景是柔和的光晕,漫画风格,温馨氛围,{style}"
分镜脚本以 JSON 落盘(create_drama_script),也可读入用户编辑过的脚本(from-script),支持逐镜自定义 prompt。
with open(output_file, 'w', encoding='utf-8') as f:
逐分镜调用 seedance_video.generate_video_task,主角图读成 base64 data URI 注入每个分镜请求,以保角色一致性。
img_url = f"data:image/{mime_type};base64,{img_base64}"
凭证取自 ARK_API_KEY(require_env_key),调用火山方舟 Seedance 异步任务并轮询到完成。
require_env_key("ARK_API_KEY")
脚本显式关闭 TLS 证书校验(CERT_NONE),生成结果用 curl 子进程下载。
ssl_context.verify_mode = ssl.CERT_NONE
产物落到 ~/Desktop/drama_{title}/,每分镜一个 mp4;单分镜失败不中断整体(try/except 继续)。
├── scene_1_introduction.mp4 # 分镜1
可选 --send-feishu 参数被 CLI 接受并一路传递,但 bundle 展示的生成代码内未见飞书发送实现。
| `--send-feishu` | ❌ | 发送到飞书 |
2核心能力
3外部依赖
| Kind | Dependency / Endpoint |
|---|---|
| cli | python3(运行自带脚本) |
| cli | curl(下载生成视频) |
| api | 火山方舟 Seedance 视频生成 |
| package | 仓库共享模块 common/env_utils(load_env / require_env_key) |
4管控建议与判定依据
- SKILL.md / 脚本: 调用未公开或逆向工程的私有 API / 伪造客户端标识
- SKILL.md / 脚本参数: 包含绕过自动化检测、关闭宿主沙箱或跳过 SSL 证书校验
- scripts/: 执行本地脚本或命令: python3 scripts/manga_drama.py <generate|from-script|create-script>(SKILL.m
- 网络端点: 声明外部网络访问: POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks(创建
- 本地工作目录: 文件读写与工件输出: 分镜脚本 JSON(create_drama_script 写 output_file)
5第二遍独立确认
- [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 原文比对,无编造。
6结论
aa82a767e5ae8459…