多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

DramaClaw 虾导项目初始化指南:剧本摄入到全局准备完成的 Step 1-7 实战手册

DramaClaw 虾导项目初始化指南:剧本摄入到全局准备完成的 Step 1-7 实战手册 【免费下载链接】dramaclawA general-purpose AIGC video engine: script to finished film in one pipeline — dramas, ads, product videos, otome games, and more. | 通用 AIGC 视频引擎 —— 从剧本到成片一条流水线漫剧、广告、电商、乙游皆可项目地址https://gitcode.com/gh_mirrors/dr/dramaclaw点击查看免费下载DramaClaw产品层面向用户的助手统称虾导是部署在开源仓库.hermes/skills/dramaclaw/下的 AI 小说转视频流水线 Agent Skill。本文以 init.md 为骨架系统讲解当前项目初始化阶段Step 1-7的完整执行协议从剧本上传、异步摄入、项目配置、角色提取、face_prompt 补齐、分集规划到肖像生成的每一步 API 契约、决策规则与源码依据。读完本文你将掌握虾导在项目已创建但未摄入的情况下如何从零把一部小说推进到全局准备完成CP1并理解两种运行模式逐步确认 / 自动推进下每一轮只能推进一个写任务的硬性纪律。流水线全景初始化阶段在整条链中的位置按照 SKILL.md 的流水线总览整条 DramaClaw 流水线被划分为三个大阶段阶段步骤范围文档项目内准备Step 1-7本文主题playbooks/init.md逐集生成Step 8-21身份规划→身份图→脚本→场景→草图→AI检测→全局视频优化→首帧→音频→单 beat 视频→合成→成片playbooks/episode.md恢复 / 断点已有进度时的续跑playbooks/resume.md后端主线固定为raw-content → rewrite → script/generate → scenes/props → sketches → grids → audio_generation_indextts2 → single_video逐 beat→ compose → final delivery。初始化阶段Steps 1-7负责点火让一个空项目具备ingested / configured / characters / episodes / portraits_done五项全局状态之后才能进入逐集制作。注意一个关键边界项目创建由前端/系统完成虾导不调用POST /projects会话必须已经绑定DRAMACLAW_PROJECT_ID。前置检查/pipeline/status决定从哪一步开始进入本 playbook 之前每次激活 skill 都必须先执行一次幂等的状态拉取GET ${DRAMACLAW_API_URL}/api/v1/projects/${DRAMACLAW_PROJECT_ID}/pipeline/status其中${DRAMACLAW_PROJECT_ID}必须先解析成当前会话的真实项目名禁止把占位符字面量拼进 URL。返回的global/episode_status/next_step决定入口分支返回情况含义处理HTTP 404当前会话绑定的项目不存在或不可访问停止提示用户先在前端创建/打开项目并绑定不调用POST /projects200 global各阶段全 false项目已存在但未摄入从 Step 1获取小说文件开始200 部分完成已有进度实际应走 resume.md如误路由到此退回按next_step定位从源码看/pipeline/status的初始化分支在 src/novelvideo/api/routes/pipeline.py 中实现global包含ingested / configured / characters / episodes / portraits_done五项布尔/数值状态并按优先级ingest → configure → characters → episodes → portraits推导next_step映射到_STEP_MAP中的任务类型如ingest_fast、build_characters、build_episodes与中文步骤名小说摄入角色提取分集规划。值得注意的是ingested的计算逻辑ingest_fast任务状态为completed或角色/分集已存在都算已摄入。失败处理HTTP 5xx / 网络错误时告知DramaClaw 后台状态暂时不可用并停止本轮不要凭历史状态推进HTTP 403 说明项目绑定异常同样停止。入口决策树什么消息才能触发初始化流程进入初始化流程的前提是当前消息已经带有剧本文档附件或前端已注入[DRAMACLAW_INGEST_AUTOMATION]/ 明确摄入上下文。如果用户只是用聊天文字要求创建/生成/写剧本不得进入下面流程必须直接告知只能通过虾料上传剧本文档——虾导不提供生成剧本功能也不从一句话主题创建短剧项目此规则在 SKILL.md §1 的剧本/短剧创建入口限制中有完整表述并明确禁止调用dramaclaw_generate_script、dramaclaw_plan_episodes等写接口。满足前置后初始化流程按如下决策树执行1. 获取小说文件 当前消息必须已有剧本文档附件或虾料摄入上下文 ├─ 有 → 使用前端提供的上传/摄入上下文 └─ 没有 → 停止提示通过虾料上传剧本文档 2. 自动执行不需要问用户 上传小说(1) → 启动摄入(2)。摄入是异步任务启动后立即收口 若状态仍为 queued/running只告知后台正在摄入中不等待完成后继续配置。 3. 智能推荐配置§5 决策点规则 摄入完成后分析小说内容再推荐 - 时代背景/关键词 → 视觉风格 - 角色名/背景 → 种族 - 人称视角 → 叙事方式 - 情节节奏 → rhythm 4. 一次性展示推荐方案让用户确认/修改 5. 确认后 → 配置项目(3)配置完成后询问运行模式不继续启动角色提取两个关键规则贯穿始终不要逐项问用户选择配置分析后一次性推荐但运行模式必须显式问。配置完成后必须问运行模式「要我每步确认还是自动推进每轮一步」然后Read references/run-modes.md按所选模式执行不继续启动角色提取。Steps 1-2上传小说与启动摄入异步任务Step 1上传小说 [SYNC]POST /projects/$PID/ingest/upload Body: multipart/form-data, filenovel.txt这是同步操作直接把剧本文档写入项目的uploads/目录。源码 src/novelvideo/api/routes/ingest.py 给出了该端点的完整实现细节可作为配置参考格式校验仅支持supported_novel_extensions_label()列出的扩展名否则返回error_type: unsupported文件名会先经sanitize_upload_filename清洗再校验is_safe_upload_target非法文件名直接拒绝。大小与字数上限上传字节数受MAX_NOVEL_UPLOAD_BYTES限制超限返回file_too_large解析后正文的计费字数受MAX_NOVEL_IMPORT_CHARS限制超限返回text_too_large并提示拆分后重新上传。章节预览上传即做章节解析build_chapter_preview未检测到有效章节内容会返回解析章节失败: 未检测到有效章节内容同时生成格式检查报告format_check。写入采用staging 暂存 os.replace原子替换失败自动清理。可选表单字段spine_template默认为项目配置中的值或drama决定章节预览是否包含场景块narrated模板不包含。Step 2摄入 [ASYNC → ingest_fast, ep0]POST /projects/$PID/ingest/start Body: {filename: novel.txt, rebuild: false}摄入是异步任务任务类型为ingest_fast、episode0。启动后立即收口若状态仍为queued/running只告知后台正在摄入中不等待完成再继续配置。任务状态与进度可用如下方式跟踪GET /projects/$PID/tasks/ingest_fast/0 SSE /projects/$PID/tasks/ingest_fast/0/stream从 ingest.py 的实现看ingest/start会再次做文件名安全校验、大小与字数校验并且对drama模板项目执行严格的剧本格式检查build_import_format_checkrequire_scene_headersTrue若格式检查级别为blocking直接返回error_type: screenplay_format与完整format_check报告。通过后任务通过get_task_backend().enqueue_project_task以queue_kinddefault、task_typeingest_fast入队并携带billing.billable_chars用于计费。响应返回task_type / task_id / task_key / backend / queue与提示语导入任务已进入队列。摄入路由边界摄入只有两个路径——/projects/{project}/ingest/upload和/projects/{project}/ingest/start。ingest_fast是任务类型而非 HTTP endpoint禁止推断/ingest/init、/ingest/setup、/ingest_script、/ingest_fast等变体路径这些路径的 404 不代表摄入模块未启用只代表路径错误SKILL.md §1 工具约束api-reference.md 摄入章节。覆盖重建的强制二次确认若项目已摄入过剧本且要重新摄入/覆盖/替换禁止直接调用ingest/start。第一次只问是否要覆盖当前项目用户明确回答覆盖后才进入第二次确认第二次必须告知覆盖会清空/重建当前项目已有角色、分集、脚本、草图、音频、视频等流水线结果用户明确确定/继续后才允许调用且必须传POST /projects/$PID/ingest/start Body: {filename: novel.txt, rebuild: true}这条硬性安全规则优先级高于直接覆盖/马上重做之类的一步式指令。Step 3配置项目——智能推荐 用户必选SYNC摄入完成后虾导分析小说内容再一次性推荐配置而不是逐项询问。配置写入PATCH /projects/$PID Body: {visual_style: ..., narration_style: ..., ethnicity: ..., rhythm: ...}智能推荐映射规则分析维度推荐依据推荐值visual_style视觉风格时代背景/关键词古代/武侠 →chinese_period_drama现代都市 →realistic末日 →post_apocalyptic二次元 →animenarration_style叙事方式原文人称first_person/third_person默认first_personethnicity种族姓名/地理Chinese/Japanese/Korean/Western默认Chineserhythm节奏情节密度fast(3s) /medium(4s) /slow(5s)默认medium其中rhythm直接对应每 beat 的时长档位直接影响后续视频时长预算。从 src/novelvideo/project_config.py 的默认配置看项目配置默认值为spine_template: drama、visual_style: chinese_period_drama、ethnicity: Chinese加载时若visual_style不在可用风格集合中会回退到默认值因此写入时务必使用仓库风格服务src/novelvideo/services/style_service.py认可的风格 ID。用户必选首次或用户主动问时展示配置项含义默认值tts_providertts_voice配音供应商与声线cosyvoicelonganling_v3video_backend视频后端huimeng_seedance-1.0-pro-fasthuimeng_seedance-1.5-pro仅在用户明确指定时使用旧值仅兼容历史任务video_resolution分辨率720x1280/1080x1920默认720x1280视频后端的默认规则在 SKILL.md §5 中重复强调默认统一为huimeng_seedance-1.0-pro-fast1.5-pro只在用户明确指定 1.5 Pro / 有声 1.5 / Huimeng 1.5 时传入不作为 dialogue beat 默认值seedance_pro/seedance-1.5-pro是旧兼容值默认不推荐。Step 4角色提取ASYNC → build_characters配置确认后进入角色提取。必须使用专用工具dramaclaw_build_characters不要自己拼路径它内部就是POST /projects/$PID/characters/builddramaclaw_build_characters # 触发提取项目默认取 DRAMACLAW_PROJECT_ID dramaclaw_get_task(task_typebuild_characters, episode0) # 轮询状态 SSE /projects/$PID/tasks/build_characters/0/stream # 或流式完成后读取角色列表GET /projects/$PID/charactersStep 4 失败处理若build_characters返回空结果从小说内容分析角色后通过手动添加接口逐个补齐POST /projects/$PID/characters Body: {name:角色名,role:主角,is_main:true,gender:female,age_group:youth,description:描述,face_prompt:面部特征}手动添加角色的字段在 api-reference.md 角色章节有完整定义name / role / is_main / gender / age_group / description / face_prompt。gender取值如femaleage_group取值如youth。落地约束POST/characters只传了name/role/gender/age时不要说已写入人设和外观提示词SKILL.md §1 grounding 规则。Step 5face_prompt 前置检查SYNC肖像生成依赖角色的face_prompt。进入肖像生成Step 7之前必须先读取角色列表检查核心角色/重要角色的face_promptGET /projects/$PID/characters PATCH /projects/$PID/characters/$CHAR_NAME Body: {face_prompt: 具体面部特征描述}缺失时优先使用专用工具dramaclaw_update_character_face_prompt(name$CHAR_NAME, face_prompt...)规则要点内容边界face_prompt只写脸部特征——发型、脸型、五官、肤色、年龄感、气质不要写服装、身份、场景。生成依据根据角色名、性别、年龄段、description 生成一句具体面部特征描述。补齐顺序只有缺失角色全部补齐后才允许进入肖像生成。肖像报错处理如果肖像任务报请先设置面部特征 (face_prompt)停在当前角色补齐该角色face_prompt后再重试不要跳过或继续生成其它依赖项。从源码看face_prompt是角色数据的核心字段之一src/novelvideo/api/routes/characters.py 在角色列表响应中直接透出face_prompt并支持 PATCH 更新在身份/肖像相关逻辑中face_prompt会被用作appearance_prompt或作为身份图生成的兜底外观描述Identity has no appearance_details, face_prompt, or costume_image 即表示三者皆空时无法生成。这解释了为什么 Step 5 是 Step 7 肖像生成的硬前置。Step 6分集规划ASYNC → build_episodesPOST /projects/$PID/episodes/plan Body: {target_episodes: 10, planning_mode: chapters} GET /projects/$PID/tasks/build_episodes/0 SSE /projects/$PID/tasks/build_episodes/0/streamplanning_mode: chapters表示按小说章节切分分集target_episodes为目标集数。完成后读取分集列表GET /projects/$PID/episodesStep 6.5角色分级标准在分集规划完成后、肖像生成前虾导按以下标准对角色分级决定哪些角色需要生成肖像与身份图级别条件处理核心角色is_maintrue或多集反复出场Portrait 身份图重要配角有人名2集以上出场Portrait 身份图一次性配角仅1集出场无关键剧情跳过分级的意义在于控制肖像/身份图生成成本与一致性工作量只有核心角色与重要配角进入图像生成管线。该分级结果会展示在 CP1 检查点用户可在此处修改角色分级。Step 7肖像生成SYNC与 CP1 检查点POST /projects/$PID/characters/$CHAR_NAME/portrait Body: {style: ..., ethnicity: ..., model: nanobanana}肖像按角色逐个生成model默认nanobananastyle/ethnicity与 Step 3 配置保持一致。从 pipeline.py 看global.portraits_done的判定是存在is_main角色且每个主要角色都已有compute_portrait_path指向的肖像文件——即肖像未齐时next_step仍会指向portraits。Step 7 完成 → 阶段过渡无论手动/自动模式初始化完成全局五项状态齐备后输出阶段摘要例如全局准备完成项目 X5角色(2核心3重要)10集肖像已生成随后按运行模式进入 CP1 检查点逐步确认模式从 Step 4 起每个写操作步骤前都停下问用户一次只推进一步。CP1 处展示核心角色 Portrait 级别 分集标题用户可改角色分级/外貌/分集数量确认后再问「执行下一步吗」。自动推进模式自动选择下一步但每轮最多启动一个写任务启动后立即收口。到 CP1展示核心角色分集标题时也必须停下等待用户继续。运行模式逐步确认 vs 自动推进运行模式在配置完成后由用户显式选择references/run-modes.md用户说法模式「每步确认 / 一步步 / 手动 / 每步问我」逐步确认模式「一次性 / 全自动 / 自动驾驶 / 一口气跑完 / 不用问我」自动推进模式每轮一步用户没说默认先问一句「要我每步确认还是自动推进每轮一步」两种模式共用同一套 pipeline 步骤顺序与专用工具区别只在于是否每步解释并确认两种模式都不能在一轮里连续启动多个写任务。模式一逐步确认step-by-step每一步的固定动作报下一步一句话要做什么步骤中文名 会调用的工具 前置是否已满足。例「下一步分集规划dramaclaw_plan_episodes目标 10 集。原文与角色已就绪可执行。」停下来问「执行这一步吗继续 / 跳过 / 调整参数 / 停」——然后结束本轮输出等用户回复不要自动往下做。用户回复后继续/执行/好/下一步→ 先查当前任务状态已有 queued/running 则告知后台正在生成中并停止无运行中任务则调对应专用工具启动当前一步 →立即收口。跳过→ 不执行直接报再下一步。改成 N 集/用某风格→ 按调整后参数执行。停/暂停→ 停在当前步。初始化阶段Steps 1-7的逐步顺序为上传小说 → 摄入(ingest) → 配置项目 → 角色提取dramaclaw_build_characters→ 角色 face_prompt 检查/补齐dramaclaw_update_character_face_prompt仅缺失角色→ 分集规划dramaclaw_plan_episodes→ 角色肖像dramaclaw_generate_portrait逐个核心角色。其中 Steps 1-2 是摄入准备动作可合并成「准备阶段」一次确认从 Step 3 配置项目起每个写操作步骤都单独确认。模式二自动推进bounded auto自动推进不是单轮跑完整集。为避免聊天超时和队列拥塞必须遵守一次用户消息最多启动1 个写操作/异步任务启动任务成功后立即收口告诉用户已进入队列/已启动提示下一步等任务完成后继续不在同一轮等待长任务完成不继续提交下一步任何失败、429、前置缺失、任务不存在、404 或网络错误都立即停止并反馈错误原文。自动推进的含义是用户下次说继续时按pipeline/status.next_step自动选择下一步不需要每步重新解释流程但每轮仍只推进一个任务。初始化阶段的执行纪律与常见错误处理单轮执行上限防超时硬规则一次用户消息最多只能启动1 个写操作/异步任务plan/build/generate/optimize/render/audio/video/compose/reingest 等。任务启动成功后必须立即收口回复已进入队列/已启动不要继续轮询到完成不要继续启动下一步不要在同一轮补跑整条流水线SKILL.md §1。错误即停任一写工具返回ok:false、HTTP 4xx/5xx、identity_plan_required、Task not found、当前项目...队列任务已满、404 或网络错误时本轮必须立即停止所有后续工具调用把后端error/detail/message原文转成简短自然语言告诉用户并说明应该等待、补哪个前置或重新选择正确入口。禁止在同一轮反复重试同一工具、改猜其它路径或继续往下执行。静默执行规则仅对本轮被允许执行的单个步骤适用不得用静默执行作为连续推进多个写任务的理由。执行本轮单步操作时不要在步骤内部叙述正在做什么/刚做了什么/接下来要做什么完成或启动后用一段话输出结果/状态。常见前置缺失对照报错场景说明摄入返回screenplay_format剧本格式检查blocking需按format_check报告修正后重传肖像任务报请先设置面部特征 (face_prompt)Step 5 前置未完成补齐该角色face_prompt后重试build_characters返回空结果走手动添加角色 fallbackStep 4 失败处理队列满 / 429后台正在生成中收口等待不重试、不换工具、不提交其它步骤从初始化到逐集生成的衔接初始化Steps 1-7完成后pipeline/status的global五项状态全部就绪next_step进入逐集维度identity_plan → identity_images → script → sketches → coloring → global_optimize → first_frames → tts → video → compose → done。此时逐步确认模式CP1 确认后每集从 Step 8身份规划dramaclaw_plan_identities开始逐步推进每完成一集问「继续做第 N1 集吗」自动推进模式用户每次说继续按next_step自动选择并只推进一个任务更细的逐集步骤与 API 契约见 playbooks/episode.md 与 references/pipeline-details.mdAPI 端点不确定时优先查 references/api-reference.md。一句话收束初始化阶段的灵魂是状态驱动——永远以pipeline/status.next_step为准一次一步、启动即收口、错误即停Step 1-7 走完剧本才真正变成了可逐集制作的工程。赞分享【免费下载链接】dramaclawA general-purpose AIGC video engine: script to finished film in one pipeline — dramas, ads, product videos, otome games, and more. | 通用 AIGC 视频引擎 —— 从剧本到成片一条流水线漫剧、广告、电商、乙游皆可项目地址https://gitcode.com/gh_mirrors/dr/dramaclaw点击查看免费下载相关推荐DramaClaw 虾导逐集生成阶段Steps 8-21从身份规划到成片交付的完整实操指南DramaClaw 虾导逐集生成阶段Steps 8 21从身份规划到成片交付的完整实操指南 本文聚焦 DramaClaw 通用 AIGC 视频引擎中“逐集Glide 命令完全指南从项目初始化到镜像管理的一站式实战手册Glide 命令完全指南从项目初始化到镜像管理的一站式实战手册 本篇指南系统讲解 GlideGo 语言包管理工具的全部核心命令 create / ini开发工具包管理器使用 CMake find_package 在源码树之外集成 PowerInfer / llama.cppsimple-cmake-pkg 示例全解析使用 CMake find_package 在源码树之外集成 PowerInfer / llama.cppsimple cmake pkg 示例全解析 在 P上一篇Visual C运行库一键修复Windows系统兼容性问题的终极解决方案下一篇Proxmark3图形界面实战指南解锁RFID安全测试新体验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表