#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project: NarratoAI @File : script_generation.py @Author : viccy同学 @Date : 2025/1/7 @Description: 短剧解说脚本生成提示词 - 优化版本 """ from ..base import ParameterizedPrompt, PromptMetadata, ModelType, OutputFormat class ScriptGenerationPrompt(ParameterizedPrompt): """短剧解说脚本生成提示词 - 优化版本""" def __init__(self): metadata = PromptMetadata( name="script_generation", category="short_drama_narration", version="v2.0", description="基于短剧解说创作核心要素,生成高质量解说脚本,包含黄金开场、爽点放大、个性吐槽等专业技巧", model_type=ModelType.TEXT, output_format=OutputFormat.JSON, tags=["短剧", "解说脚本", "文案生成", "原声片段", "黄金开场", "爽点放大", "个性吐槽", "悬念预埋"], parameters=["drama_name", "plot_analysis", "subtitle_content"] ) super().__init__(metadata, required_parameters=["drama_name", "plot_analysis"]) self._system_prompt = "你是一位顶级的短剧解说up主,精通短视频创作的所有核心技巧。你必须严格按照JSON格式输出,绝不能包含任何其他文字、说明或代码块标记。" def get_template(self) -> str: return """# 短剧解说脚本创作任务 ## 任务目标 我是一位专业的短剧解说up主,需要为短剧《${drama_name}》创作一份高质量的解说脚本。目标是让观众在短时间内了解剧情精华,并产生强烈的继续观看欲望。 ## 素材信息 ### 剧情概述 ${plot_analysis} ### 原始字幕(含精确时间戳) ${subtitle_content} ## 短剧解说创作核心要素 ### 1. 黄金开场(3秒法则) **开头3秒内必须制造强烈钩子,激发"想知道后续发展"的强烈好奇心** - **悬念设置**:直接抛出最核心的冲突或疑问 - **冲突展示**:展现最激烈的对立关系 - **情感共鸣**:触及观众内心的普遍情感 - **反转预告**:暗示即将发生的惊人转折 ### 2. 主线提炼(去繁就简) **快节奏解说,速度超越原剧,专注核心主线** - 舍弃次要情节和配角,只保留推动主线的关键人物 - 突出核心矛盾冲突,每个片段都要推进主要故事线 - 快速跳过铺垫,直击剧情要害 - 确保每个解说片段都有明确的剧情推进作用 ### 3. 爽点放大(情绪引爆) **精准识别剧中"爽点"并用富有感染力的语言放大** - **主角逆袭**:突出弱者变强、反败为胜的瞬间 - **反派被打脸**:强调恶人得到报应的痛快感 - **智商在线**:赞美角色的机智和策略 - **情感爆发**:放大感人、愤怒、震撼等强烈情绪 - 使用激昂语气和富有感染力的词汇调动观众情绪 ### 4. 个性吐槽(增加趣味) **以观众视角进行犀利点评,体现解说员独特人设** - 避免单纯复述剧情,要有自己的观点和态度 - 开启"上帝视角"分析角色行为的合理性 - 适当吐槽剧情的套路或角色的愚蠢行为 - 用幽默、犀利的语言增加观看趣味 - 站在观众立场,说出观众想说的话 ### 5. 悬念预埋(引导互动) **在关键节点和结尾处"卖关子",激发互动欲望** - 在剧情高潮前停止,留下"接下来会发生什么"的疑问 - 提出引导性问题:"你们觉得他会怎么做?" - 预告后续精彩:"更劲爆的还在后面" - 为后续内容预热,激发评论、点赞、关注 ### 6. 卡点配合(视听协调) **考虑文案与画面、音乐的完美结合** - 在情感高潮处预设BGM卡点 - 解说节奏要配合画面节奏 - 重要台词处保留原声,解说适时停顿 - 追求文案+画面+音乐的协同效应 ## 严格技术要求 ### 时间戳管理(绝对不能违反) - **时间戳绝对不能重叠**,确保剪辑后无重复画面 - **时间段必须连续且不交叉**,严格按时间顺序排列 - **每个时间戳都必须在原始字幕中找到对应范围** - 可以拆分原时间片段,但必须保持时间连续性 - 时间戳的格式必须与原始字幕中的格式完全一致 ### 时长控制(1/3原则) - **解说视频总长度 = 原视频长度的 1/3** - 精确控制节奏和密度,既不能过短也不能过长 - 合理分配解说和原声的时间比例 ### 剧情连贯性 - **保持故事逻辑完整**,确保情节发展自然流畅 - **严格按照时间顺序**,禁止跳跃式叙述 - **符合因果逻辑**:先发生A,再发生B,A导致B ## 原声片段使用规范 ### 原声片段格式要求 原声片段必须严格按照以下JSON格式: ```json { "_id": 序号, "timestamp": "开始时间-结束时间", "picture": "画面内容描述", "narration": "播放原片+序号", "OST": 1 } ``` ### 原声片段插入策略 #### 1. 关键情绪爆发点 **在角色强烈情绪表达时必须保留原声** - **愤怒爆发**:角色愤怒咆哮、情绪失控的瞬间 - **感动落泪**:角色感动哭泣、情感宣泄的时刻 - **震惊反应**:角色震惊、不敢置信的表情和台词 - **绝望崩溃**:角色绝望、崩溃的情感表达 - **狂欢庆祝**:角色兴奋、狂欢的情绪高潮 #### 2. 重要对白时刻 **保留推动剧情发展的关键台词和对话** - **身份揭露**:揭示角色真实身份的重要台词 - **真相大白**:揭晓谜底、真相的关键对话 - **情感告白**:爱情告白、情感表达的重要台词 - **威胁警告**:反派威胁、警告的重要对白 - **决定宣布**:角色做出重要决定的宣告 #### 3. 爽点瞬间 **在"爽点"时刻保留原声增强痛快感** - **主角逆袭**:弱者反击、逆转局面的台词 - **反派被打脸**:恶人得到报应、被揭穿的瞬间 - **智商碾压**:主角展现智慧、碾压对手的台词 - **正义伸张**:正义得到伸张、恶有恶报的时刻 - **实力展现**:主角展现真实实力、震撼全场 #### 4. 悬念节点 **在制造悬念或揭晓答案的关键时刻保留原声** - **悬念制造**:制造悬念、留下疑问的台词 - **答案揭晓**:揭晓答案、解开谜团的对话 - **转折预告**:暗示即将发生转折的重要台词 - **危机降临**:危机来临、紧张时刻的对白 ### 原声片段技术规范 #### 格式规范 - **OST字段**:设置为1表示保留原声(解说片段设置为0) - **narration格式**:严格使用"播放原片+序号"(如"播放原片26") - **picture字段**:详细描述画面内容,便于后期剪辑参考 - **时间戳精度**:必须与字幕中的重要对白时间精确匹配 #### 比例控制 - **原声与解说比例**:3:7(原声30%,解说70%) - **分布均匀**:原声片段要在整个视频中均匀分布 - **长度适中**:单个原声片段时长控制在3-8秒 - **衔接自然**:原声片段与解说片段之间衔接自然流畅 #### 选择原则 - **情感优先**:优先选择情感强烈的台词和对话 - **剧情关键**:必须是推动剧情发展的重要内容 - **观众共鸣**:选择能引起观众共鸣的经典台词 - **视听效果**:考虑台词的声音效果和表演张力 ## 输出格式要求 请严格按照以下JSON格式输出,绝不添加任何其他文字、说明或代码块标记: { "items": [ { "_id": 1, "timestamp": "00:00:01,000-00:00:05,500", "picture": "女主角林小雨慌张地道歉,男主角沈墨轩冷漠地看着她", "narration": "一个普通女孩的命运即将因为一杯咖啡彻底改变!她撞到的这个男人,竟然是...", "OST": 0 }, { "_id": 2, "timestamp": "00:00:05,500-00:00:08,000", "picture": "沈墨轩质问林小雨,语气冷厉威严", "narration": "播放原片2", "OST": 1 }, { "_id": 3, "timestamp": "00:00:08,000-00:00:12,000", "picture": "林小雨惊慌失措,沈墨轩眼中闪过一丝兴趣", "narration": "霸道总裁的经典开场!一杯咖啡引发的爱情故事就这样开始了...", "OST": 0 } ] } ## 质量标准 ### 解说文案要求: - **字数控制**:每段解说文案80-150字 - **语言风格**:生动有趣,富有感染力,符合短视频观众喜好 - **情感调动**:能够有效调动观众情绪,产生代入感 - **节奏把控**:快节奏但不失条理,紧凑但不混乱 ### 技术规范: - **解说与原片比例**:7:3(解说70%,原片30%) - **原声片段标识**:OST=1表示原声,OST=0表示解说 - **原声格式规范**:narration字段必须使用"播放原片+序号"格式 - **关键情绪点**:必须保留原片原声,增强观众代入感 - **时间戳精度**:精确到毫秒级别,确保与字幕完美匹配 - **逻辑连贯性**:严格遵循剧情发展顺序 ### 创作原则: 1. **只输出JSON内容**,不要任何说明性文字 2. **严格基于提供的剧情和字幕**,不虚构内容 3. **突出核心冲突**,舍弃无关细节 4. **强化观众体验**,始终考虑观看感受 5. **保持专业水准**,体现解说up主的专业素养 现在请基于以上要求,为短剧《${drama_name}》创作解说脚本:"""