1仕組みと動作原理
実行体は Python CLI(scripts/manga_style_video.py)です。ユーザーは自然言語のプロンプトを入力し、--style で画風を指定し、オプションで --image 参照画像を提供します。
python3 scripts/manga_style_video.py "女孩在樱花树下读书"
テンプレートとしてのスタイル:MANGA_STYLES 辞書が8つのスタイルコードを中国語/英語のスタイルプロンプトにマッピングし、最終的にユーザーの説明とスタイルプロンプトを結合して完全なプロンプトを作成します。
full_prompt = f"{prompt},{style_prompt}"
画像からの動画生成:キャラクターの一貫性を保つため、参照画像を base64 として読み込み、data URI としてリクエストの content に配置します。
img_url = f"data:image/{mime_type};base64,{img_base64}"
認証情報は環境変数 ARK_API_KEY から取得されます(まず load_env() で .env を読み込み、その後 require_env_key で厳格に検証)。
return require_env_key("ARK_API_KEY")
Volcengine Ark Seedance 非同期タスクの呼び出し:POST /contents/generations/tasks でタスクを作成し、その後10秒ごとに GET tasks/{id} をポーリングして succeeded/failed になるまで待機します。
BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"
生成成功後、curl サブプロセスを使用して動画をダウンロードします(コメントによると Python の SSL 問題を回避するためとされています)。
["curl", "-L", "-o", output_path, video_url, "--max-time", "120"],
スクリプトは明示的に TLS 証明書検証を無効化(CERT_NONE)しており、これが本スキルを Red 判定とする直接の根拠となっています。
ssl_context.verify_mode = ssl.CERT_NONE
出力はデフォルトで ~/Desktop/manga_{スタイル}_{タイムスタンプ}.mp4 に保存され、--output で上書き可能です。--no-wait の場合はタスク作成のみを行い完了を待ちません。
manga_{风格}_{时间戳}.mp4
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_style_video.py(SKILL.md で明記された CLI エントリポイントであり、ホスト上でエージェントにより実行)
- 网络端点: 外部ネットワークアクセスの宣言: POST https://ark.cn-beijing.volces.com/api/v3/contents/generations/tasks(タスク作成)
- 本地工作目录: ファイルの読み書きおよび成果物の出力: --output でパスを指定、またはデフォルトで ~/Desktop/manga_{style}_{timestamp}.mp4(curl -o でダウンロードして保存)
5二重目の独立検証
- [ok] 是否关闭 TLS 校验 — manga_style_video.py 开头 ssl_context.check_hostname=False、ssl_context.verify_mode=ssl.CERT_NONE(注释「忽略SSL验证」),后续两处 urllib.request.urlopen 均带该 context;确为安全降级,是判红档的直接依据。
- [ok] 网络调用清单是否完整 — urllib.request 两处(POST 创建任务、GET 轮询状态)+ curl 一处(下载视频);BASE_URL 固定为 ark.cn-beijing.volces.com/api/v3,全文无其它域名。
- [ok] 凭证读取点 — require_env_key('ARK_API_KEY') 为唯一 key 读取点;SKILL.md 前置要求段声明三级加载优先级(系统环境变量 / 当前目录 .env / 用户主目录 .env),与 load_env() 行为相符。
- [discrepancy] SKILL.md 参数表与 argparse 是否一致 — SKILL.md 参数说明表把 --output 的默认值标为「-」(无),但脚本在未传 --output 时会默认写 ~/Desktop/manga_{style}_{timestamp}.mp4——文档对默认输出目录的标注与实际不符。
- [unlocatable] env_utils 依赖能否在 skill 内定位 — 脚本把 ../../../common 插入 sys.path 后 import env_utils;该模块不在本 skill 目录内(bundle §1 仅列出 SKILL.md 与 1 个 py),bundle 内无法确认其存在与实现,属仓库级共享模块。
- [ok] 8 种风格数量 — SKILL.md 风格表列 8 种;脚本 MANGA_STYLES 字典正 8 个键(japanese/ghibli/chinese/cartoon/sketch/watercolor/manga_comic/chibi),两者吻合。
- [ok] quote 逐条复核 — 本报告全部 evidence.quote 以子串方式回 bundle 原文比对,无编造。
6結論
f8ad9990fab42dc5…