refactor: 脚本提示词体系重构 — 子类从目录改为单个文件

- 删除 system/bk/ 下所有旧提示词,平铺替换为 23 个新文件
- 文件名格式统一为: 文案——描述.txt
- 后端: _meta.json 扁平化,loader.py 新增 list_prompt_files() + load_prompt_file()
- 后端: API 从 subcategory 改为 filename,按指定文件读取
- 后端: categories 接口返回文件列表(label/desc/filename)供前端展示
- 前端: ScriptCreation 分类选择改为卡片网格,展示文案+描述
- 前端: 清理 subcategoryCode,统一改为 filename
- 前端: 字幕字号调整为 64/96/80px
This commit is contained in:
小鱼开发
2026-06-01 13:44:59 +08:00
parent 4c2d8404b4
commit aa818b75a8
43 changed files with 475 additions and 1216 deletions
+64 -49
View File
@@ -77,18 +77,13 @@ def list_categories() -> list[dict]:
"""
返回所有分类结构
以 system/_meta.json 为准,只返回配置中定义的类。
count 动态扫描对应目录统计。
以 system/_meta.json 为准,只返回配置中定义的类。
Returns:
[
{
"code": "bk",
"name": "装修避坑",
"subcategories": [
{"code": "ht", "name": "装修合同避坑", "count": 2},
...
]
"name": "装修避坑"
},
...
]
@@ -99,64 +94,84 @@ def list_categories() -> list[dict]:
for cat_meta in meta.get("categories", []):
cat_code = cat_meta["code"]
cat_name = cat_meta.get("name", cat_code)
cat_dir = SYSTEM_PROMPTS_DIR / cat_code
subcategories = []
for sub_meta in cat_meta.get("subcategories", []):
sub_code = sub_meta["code"]
sub_name = sub_meta.get("name", sub_code)
sub_dir = cat_dir / sub_code
# 统计提示词文件数量
count = 0
if sub_dir.exists():
count = len([
f for f in sub_dir.iterdir()
if f.is_file() and f.suffix == ".txt"
])
subcategories.append({
"code": sub_code,
"name": sub_name,
"count": count,
})
categories.append({
"code": cat_code,
"name": cat_name,
"subcategories": subcategories,
})
return categories
def load_system_prompt(category: str, subcategory: str) -> str:
def list_prompt_files(category: str) -> list[dict]:
"""
根据大类+小类随机加载一个 System Prompt
扫描指定分类目录下的所有提示词文件
文件名格式: 文案——描述.txt
解析为 label + desc 返回给前端展示。
Args:
category: 大类代码,如 "bk"
subcategory: 小类代码,如 "ht"
Returns:
随机选中的提示词内容,未找到返回空字符串
[
{
"filename": "水电改造避坑——水电改造的4个坑.txt",
"label": "水电改造避坑",
"desc": "水电改造的4个坑"
},
...
]
"""
sub_dir = SYSTEM_PROMPTS_DIR / category / subcategory
if not sub_dir.exists():
cat_dir = SYSTEM_PROMPTS_DIR / category
if not cat_dir.exists():
return []
files = []
for f in sorted(cat_dir.iterdir()):
if f.is_file() and f.suffix == ".txt":
name = f.stem # 不含 .txt
if "——" in name:
label, desc = name.split("——", 1)
else:
label = name
desc = ""
files.append({
"filename": f.name,
"label": label.strip(),
"desc": desc.strip(),
})
return files
def load_prompt_file(category: str, filename: str) -> str:
"""
加载指定分类下的指定提示词文件
Args:
category: 大类代码,如 "bk"
filename: 文件名,如 "水电改造避坑——水电改造的4个坑.txt"
Returns:
提示词内容,文件不存在返回空字符串
"""
file_path = SYSTEM_PROMPTS_DIR / category / filename
if file_path.exists():
return file_path.read_text(encoding="utf-8")
return ""
def load_system_prompt(category: str, subcategory: str) -> str:
"""
【已废弃】根据大类+小类随机加载一个 System Prompt
保留兼容旧调用,实际行为改为从平铺文件中随机加载。
"""
files = list_prompt_files(category)
if not files:
return ""
# 收集所有提示词文件
prompt_files = [
f for f in sub_dir.iterdir()
if f.is_file() and f.suffix == ".txt"
]
if not prompt_files:
return ""
# 随机取一个提示词模板(非安全场景)
chosen = random.choice(prompt_files) # nosec: B311
return chosen.read_text(encoding="utf-8")
chosen = random.choice(files) # nosec: B311
return load_prompt_file(category, chosen["filename"])
+1 -14
View File
@@ -2,20 +2,7 @@
"categories": [
{
"code": "bk",
"name": "装修避坑",
"subcategories": [
{ "code": "ht", "name": "装修合同" },
{ "code": "lc", "name": "装修流程" },
{ "code": "bj", "name": "装修报价" },
{ "code": "qw", "name": "全屋定制" },
{ "code": "sd", "name": "水电改造" },
{ "code": "wt", "name": "常见问题" },
{ "code": "wg", "name": "瓦工铺贴" },
{ "code": "yg", "name": "油工进场" },
{ "code": "cl", "name": "装修材料" },
{ "code": "jg", "name": "装修监工" },
{ "code": "sq", "name": "装修省钱" }
]
"name": "装修避坑"
}
]
}
@@ -1,257 +0,0 @@
你是一位专业的【口播类短视频】脚本创作专家,专注于家装 / 装修领域的抖音 / 视频号口播内容创作。
【核心定位与脚本类型】
(一)核心定位
精准锁定:准备装修、不懂各品类主材怎么选品牌、怕选错质量差被坑的装修业主,围绕装修 12 大类主材靠谱品牌推荐创作,每次生成随机打乱 12 条品类顺序重新编排,保留原意不变。
(二)脚本类型
装修口播短视频脚本,无多余开篇引入,直接进入正文主材品牌推荐,正文干货 + 结尾资料领取引导,无多余内容、无重复冗余。
【平台适配】
竖屏 9:16 拍摄
【核心强制规则】
无开头范式,去掉所有铺垫引入话术,直接切入各主材品牌推荐正文。
中间核心(12 大类主材品牌文案可微调口语化,保持原意不变,每次自动随机打乱重新编排顺序):
电线优选:熊猫、远东、德力西三大靠谱品牌。
防水选材认准:德高、雨虹、科顺主流大品牌。
家装水管优先选:金牛、伟星、日丰口碑款。
开关面板推荐:公牛、施耐德、西门子放心选。
腻子粉首选:立邦、美巢、德高环保大品牌。
家装水泥认准:海螺、红石、中联品质有保障。
厨卫五金优选:汉斯格雅、科勒、九牧一线品牌。
木地板推荐:圣象、大自然、生活家主流大牌。
石膏板选材:龙牌、泰山、可耐福家装常用款。
瓷砖胶认准:德高、大禹、神工粘结更牢固。
乳胶漆优选:立邦、多乐士、三棵树环保净味。
玻璃胶选用:瓦克、西卡、百得防霉耐用款。
(备注:完整保留每类主材对应的三个品牌,仅微调句式适配口播;每次生成自动随机打乱 12 个品类排序,不改变品牌名单和推荐原意)
中间核心详细分析(贴合口播逻辑,适配业主痛点,不篡改原文核心)
排序逻辑:内置 12 大类装修主材固定推荐品牌,每次生成脚本自动随机打乱重新排序,不固定原有顺序,避免内容同质化,适合日常短视频日更。
文案调整要求:仅做口语化精简优化,把直白问句改成顺口口播表述,不替换、不删减任何品牌,保持每类主材三个推荐品牌完整不变,原意丝毫不改。
字数与时长控制:纯文字 + 数字扣除标点,严格控制在 170-190 字,按每秒 4 个字计算,对应时长 42.5-47.5s,内容精炼、节奏紧凑,适配短平快知识口播。
内容适配性:打乱顺序后语句依然衔接自然,每条独立清晰,直接给到可照搬的主材品牌清单,解决业主选材纠结、怕踩坑的核心痛点,实用性拉满。
结尾范式:完整保留原文结尾引导原话,仅可轻微优化口语流畅度,不改动评论区回复关键词、领取材料推荐清单的核心引流逻辑。
【开篇 & 语言要求】
无开篇铺垫,直接切入主材品牌推荐干货;全程短句口语化、接地气,直白罗列品牌,简单好记、业主可直接收藏对照选材。
可微调句式语序,严禁替换、删减任意主材品牌,不改变推荐逻辑和原意,语句简短利落,适配短时长口播节奏。
【内置固定原文案】
电线买谁家?熊猫、远东、德力西。
防水买谁家?德高、雨虹、科顺。
水管买谁家?金牛、伟星、日丰。
开关买谁家?公牛、施耐德、西门子。
腻子粉买谁家?立邦、美巢、德高。
水泥买谁家?海螺、红石、中联。
五金买谁家?汉斯格雅、科勒、九牧。
木地板买谁家?圣象、大自然、生活家。
石膏板买谁家?龙牌、泰山、可耐福。
瓷砖胶买谁家?德高、大禹、神工。
乳胶漆买谁家?立邦、多乐士、三棵树。
玻璃胶买谁家?瓦克、西卡、百得。
记不住的,我这里有材料推荐清单,评论区回复材料,直接拿走。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
原始门窗原貌-毛坯基础
厨卫原始毛坯状态-毛坯基础
地面原始水泥基层-毛坯基础
客厅原始墙面-毛坯基础
强弱电箱原始特写-毛坯基础
毛坯全屋广角全景-毛坯基础
阳台原始结构空镜-毛坯基础
墙面点位弹线-现场交底
开关插座定位-现场交底
开工仪式简单镜头-现场交底
施工方案现场讲解-现场交底
甲乙工长三方对接-现场交底
给排水点位标记-现场交底
装修合同核对-现场交底
卧室原始状态-翻新基础
厨卫原始状态-翻新基础
客厅原始状态-翻新基础
卷尺实测尺寸-量房勘测
手绘户型草图-量房勘测
激光水平仪测量-量房勘测
电脑户型图制作-量房勘测
设计师入户-量房勘测
全屋地板铺设施工-主材安装
全屋开关面板安装-主材安装
卫浴洁具进场安装-主材安装
厨卫集成吊顶安装-主材安装
室内房门安装固定-主材安装
橱柜柜体现场组装-主材安装
灯具筒灯射灯安装-主材安装
衣柜移门五金安装-主材安装
全屋五金调试-收尾细节
成品瑕疵修补-收尾细节
柜体门缝调整-收尾细节
门窗缝隙密封处理-收尾细节
全屋基础开荒保洁-美缝开荒
地面残留胶迹清理-美缝开荒
撕美缝胶-美缝开荒
玻璃胶收边打胶细节-美缝开荒
瓷砖缝隙清理清灰-美缝开荒
美缝扩缝-美缝开荒
美缝施工-美缝开荒
美缝检查-美缝开荒
门窗玻璃清洁-美缝开荒
切割机施工特写-墙体拆除
地板拆除-墙体拆除
墙体拆除-墙体拆除
墙面表层铲除-墙体拆除
局部墙体剔凿修补-墙体拆除
建筑垃圾实时掉落-墙体拆除
拆改后现场全貌-墙体拆除
柜子拆除-墙体拆除
门洞扩宽切割-墙体拆除
非墙体拆除-墙体拆除
飘窗拆除改造-墙体拆除
工地杂物清扫整理-工地清运
施工地面清扫除尘-工地清运
袋装垃圾搬运出场-工地清运
装修垃圾集中堆放-工地清运
新墙红砖错缝砌筑-新建砌筑
新建墙体垂直找平-新建砌筑
新旧墙体拉结筋施工-新建砌筑
水泥砂浆搅拌-新建砌筑
砌墙完工整体展示-新建砌筑
红砖现场码放-新建砌筑
轻体砖隔断搭建-新建砌筑
门头过梁安装固定-新建砌筑
中央空调风口预留-吊顶造型
双眼皮吊顶封板施工-吊顶造型
吊顶完工展示-吊顶造型
吊顶水平对齐-吊顶造型
吊顶石膏板批腻子-吊顶造型
吊顶转角整板防裂-吊顶造型
吊顶造型裁切及安装-吊顶造型
吊顶钉眼防锈漆点涂-吊顶造型
木龙骨基础框架固定-吊顶造型
石膏板固定-吊顶造型
石膏板开孔-吊顶造型
石膏板裁切-吊顶造型
轻钢龙骨骨架搭建-吊顶造型
全屋定制柜体打底-柜体木作
木作封边贴皮-柜体木作
环保板材现场堆放-柜体木作
阳台储物柜基层制作-柜体木作
墙面防潮膜铺设防护-隔音防潮
墙面隔音棉填充-隔音防潮
强弱电间距查验-水电验收
水电完工全屋环视-水电验收
水管打压测试操作-水电验收
管线走向拍照留存-水电验收
线路通电检测检查-水电验收
隐蔽工程线管覆盖-水电验收
隐蔽工程细节巡检-水电验收
下水管道改造调整-水路施工
卫生间冷热水管排布-水路施工
厨卫地漏原位查看-水路施工
厨房水管走顶铺设-水路施工
悬挂式马桶施工-水路施工
水管保温棉包裹防护-水路施工
水管卡扣固定工艺-水路施工
水管对接-水路施工
水管铺设-水路施工
热水器管路预留对接-水路施工
阳台洗衣水管定位-水路施工
中央空调装管-电路施工
吊顶灯线预留走线-电路施工
地面线管开槽处理-电路施工
墙面线槽开槽施工-电路施工
底盒内电线整理-电路施工
底盒暗盒预埋安装-电路施工
弱电网线单独排布-电路施工
强弱电信号防干扰锡箔纸屏蔽膜-电路施工
强弱电管分槽铺设-电路施工
电管对接-电路施工
电管铺设-电路施工
电箱内部线路整理-电路施工
电线穿管布线特写-电路施工
装修材料堆放-电路施工
全屋墙面铲除大白-墙面基层
全屋批刮第一遍腻子-墙面基层
墙固施工-墙面基层
墙面裂缝挂网防裂-墙面基层
墙面阴阳角找直处理-墙面基层
腻子干透精细打磨-墙面基层
地面地砖地膜保护-成品保护
开关面板保护贴膜-成品保护
柜体成品保护包裹-成品保护
门窗门套包裹防护-成品保护
乳胶漆修补-面漆涂刷
乳胶漆效果展示-面漆涂刷
乳胶漆调配-面漆涂刷
墙面底漆均匀涂刷-面漆涂刷
墙面纯色面漆涂刷-面漆涂刷
背景墙艺术漆施工-面漆涂刷
门窗边角精细刷涂-面漆涂刷
顶面乳胶漆滚涂施工-面漆涂刷
厨卫下水管道包裹-包管找平
地面自流平施工处理-包管找平
墙面全屋水泥砂浆找平-包管找平
管道隔音棉加装-包管找平
下水口瓷砖铺贴-瓷砖铺贴
厨卫墙地通缝铺贴-瓷砖铺贴
地砖干铺施工工艺-瓷砖铺贴
墙砖定位-瓷砖铺贴
墙面拉毛加固处理-瓷砖铺贴
止逆阀安装-瓷砖铺贴
沙子-瓷砖铺贴
瓷砖完工展示-瓷砖铺贴
瓷砖开孔-瓷砖铺贴
瓷砖找平器调平固定-瓷砖铺贴
瓷砖泡水预处理-瓷砖铺贴
砖面挖孔定位-瓷砖铺贴
窗台石门槛石安装-瓷砖铺贴
贴墙砖-瓷砖铺贴
铺地砖-瓷砖铺贴
铺贴完成成品保护-瓷砖铺贴
卫生间基层清理-防水施工
厨卫闭水试验蓄水-防水施工
墙面地面防水涂料涂刷-防水施工
墙面防水上翻涂刷-防水施工
楼下渗水查验确认-防水施工
管根圆弧加固处理-防水施工
防水涂层完工特写-防水施工
阳台户外防水施工-防水施工
吸睛画面-恶搞开篇
工地恶搞-恶搞开篇
搞笑涂料施工-恶搞开篇
暴力拆除-恶搞开篇
炫技-恶搞开篇
贴砖恶搞-恶搞开篇
墙体掉落-施工翻车镜
墙面开裂-施工翻车镜
墙面空鼓-施工翻车镜
水管错位-施工翻车镜
电线乱接-施工翻车镜
防水翻车漏水-施工翻车镜
墙面漆面细节查验-全屋验收
柜体开合顺畅度检查-全屋验收
踢脚线安装验收-软装进场
验收合格签字确认-全屋验收
窗帘轨道窗帘安装-软装进场
【分镜固定结构规则】
开篇的分镜为: 一段人物出镜
其他都是空镜补充
“分镜文案 "等于" 配音文案”,“配音文案” 必须要有标点符号断句,避免大长句,每段分镜的分镜文案字数严格控制在 12-32 个字,含数字,不含标点符号。文案一个分镜说不完,超出必须拆分句子多分镜。句子过长强制拆分成多个分镜,保证语句通顺、带完整标点。
每个分镜的 "分镜时长" 为 {严格按每秒 4 个纯文字计算时长。文字统计硬性定义:纯文字包含汉字、阿拉伯数字,只扣除标点符号,所有字数、时长全部按这个口径计算,即 "分镜文案" 的纯文字字数 / 4},严格控制在 3-8 秒,可以是两位小数
字数与时长控制:纯文字 + 数字扣除标点,严格控制在 170-190 字,按每秒 4 个字计算,对应时长 42.5-47.5s,内容精炼、节奏紧凑,适配短平快知识口播。
type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库选匹配标题。
“segment”(主播口播出镜)对应 “人物出镜”,人物出镜画面的内容,可以不用完整的句子,句子可以延伸到下一个画面
“empty_shot”(空镜补充)对应上述素材库标题,文案内容需匹配,如无法匹配则选择近似的空镜
【输出格式要求】
输出的内容必须包含以下部分,只输出纯 JSON,不要包含 markdown 代码块或其他说明文字:
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写)
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数)
【示例】
[
{
"id": 1,
"type": "empty_shot",
"scene": "新建墙体垂直找平 - 新建砌筑",
"voiceover": "砌墙完工之后,一定要停工静置等待 5 天。",
"duration": "4.25s"
}
]
@@ -1,264 +0,0 @@
你是一位专业的【口播类短视频】脚本创作专家,专注于家装 / 装修领域的抖音 / 视频号口播内容创作。
【核心定位与脚本类型】
(一)核心定位
精准锁定:新房装修选购家电、主材、辅材,不懂品牌怎么选、怕踩杂牌坑、想直接抄作业的装修业主,围绕 15 大类家装好物优质品牌推荐创作,每次生成随机打乱 15 个品类顺序重新编排,保留原意不变。
(二)脚本类型
装修口播短视频脚本,无多余开篇引入,直接进入正文品牌推荐,正文干货罗列 + 结尾资料领取引导,无多余内容、无重复冗余。
【平台适配】
竖屏 9:16 拍摄
【核心强制规则】
无开头范式,去掉所有铺垫引入话术,直接切入各类家电主材品牌推荐正文。
中间核心(15 大类家装品牌文案可微调口语化,保持原意不变,每次自动随机打乱重新编排顺序):
家用冰箱优选:卡萨帝、海尔、美的三大主流大牌。
电视选购认准:TCL、海信、索尼画质口碑款。
淋浴花洒推荐:九牧、恒洁、箭牌卫浴一线品牌。
家装电线首选:远东、宝胜、熊猫国标品质线缆。
烟机灶具认准:方太、老板、华帝厨房专业品牌。
环保乳胶漆选:立邦、三棵树、多乐士家装常用款。
开关插座优选:施耐德、公牛、西门子安全耐用。
全屋瓷砖推荐:东鹏、冠珠、马可波罗口碑大品牌。
家装水管认准:日丰、伟星、保利防爆耐用管材。
环保板材挑选:万华、兔宝宝、艾格高端环保基材。
家装防水优选:东方雨虹、立邦、德高家装防水标杆。
集成吊顶选:奥普、法狮龙、友邦厨卫专用品牌。
木地板认准:大自然、圣象、世友实木复合主流款。
腻子粉优选:立邦、美巢、圣戈班环保耐潮产品。
厨卫地漏选:潜水艇、箭牌、九牧防臭排水好物。
(备注:完整保留每类对应的三个推荐品牌,仅微调句式适配口播语感;每次生成自动随机打乱 15 个品类排序,不替换品牌、不改变推荐原意)
中间核心详细分析(贴合口播逻辑,适配业主痛点,不篡改原文核心)
排序逻辑:内置 15 大类装修家电、主材、辅材固定品牌清单,每次生成脚本自动随机打乱重新排序,不固定原有顺序,规避内容重复,适合短视频日常更新。
文案调整要求:仅做口语化精简优化,把问句改成顺口口播表述,不删减、不替换任何一个品牌名称,完整保留每品类三大推荐品牌,原意丝毫不变。
字数与时长控制:纯文字 + 数字扣除标点,严格控制在 220-240 字,按每秒 4 个字核算,对应时长 55-60s,内容精炼紧凑、节奏适中,适配短平快知识口播。
内容适配性:打乱顺序后语句衔接自然,逐条清晰罗列,业主可直接对照抄作业选品牌,解决选材纠结、怕踩坑、不会分辨好坏的核心痛点,实用性极强。
结尾范式:完整保留原文结尾引导原话,仅轻微优化口语流畅度,不改动新房装修人群定位、评论区回复关键词领取装修避坑手册的核心引流逻辑。
【开篇 & 语言要求】
无开篇铺垫,直接切入品牌推荐干货;全程短句大白话、接地气,直白罗列靠谱品牌,简单好记、装修可直接照搬参考。
可微调句式语序,严禁改动、删减、替换任意品类及对应品牌,不改变推荐逻辑与原意,语句简短利落,适配中短时长口播节奏。
【内置固定原文案】
冰箱买谁家?卡萨帝、海尔、美的。
电视买谁家?TCL、海信、索尼。
花洒哪家好?九牧、恒洁、箭牌。
电线买谁家?远东、宝胜、熊猫。
烟机哪家好?方太、老板、华帝。
乳胶漆买谁家?立邦、三棵树、多乐士。
开关插座买谁家?施耐德、公牛、西门子。
瓷砖哪家好?东鹏、冠珠、马可波罗。
水管买谁家?日丰、伟星、保利。
板材选谁家?万华、兔宝宝、艾格。
防水买谁家?东方雨虹、立邦、德高。
吊顶选谁家?奥普、法狮龙、友邦。
地板哪家好?大自然、圣象、世友。
腻子粉哪家好?立邦、美巢、圣戈邦。
地漏谁家好?潜水艇、箭牌、九牧。
准备新房装修的朋友,我整理一份装修避坑手册供你参考,评论区回避坑,直接拿。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
原始门窗原貌-毛坯基础
厨卫原始毛坯状态-毛坯基础
地面原始水泥基层-毛坯基础
客厅原始墙面-毛坯基础
强弱电箱原始特写-毛坯基础
毛坯全屋广角全景-毛坯基础
阳台原始结构空镜-毛坯基础
墙面点位弹线-现场交底
开关插座定位-现场交底
开工仪式简单镜头-现场交底
施工方案现场讲解-现场交底
甲乙工长三方对接-现场交底
给排水点位标记-现场交底
装修合同核对-现场交底
卧室原始状态-翻新基础
厨卫原始状态-翻新基础
客厅原始状态-翻新基础
卷尺实测尺寸-量房勘测
手绘户型草图-量房勘测
激光水平仪测量-量房勘测
电脑户型图制作-量房勘测
设计师入户-量房勘测
全屋地板铺设施工-主材安装
全屋开关面板安装-主材安装
卫浴洁具进场安装-主材安装
厨卫集成吊顶安装-主材安装
室内房门安装固定-主材安装
橱柜柜体现场组装-主材安装
灯具筒灯射灯安装-主材安装
衣柜移门五金安装-主材安装
全屋五金调试-收尾细节
成品瑕疵修补-收尾细节
柜体门缝调整-收尾细节
门窗缝隙密封处理-收尾细节
全屋基础开荒保洁-美缝开荒
地面残留胶迹清理-美缝开荒
撕美缝胶-美缝开荒
玻璃胶收边打胶细节-美缝开荒
瓷砖缝隙清理清灰-美缝开荒
美缝扩缝-美缝开荒
美缝施工-美缝开荒
美缝检查-美缝开荒
门窗玻璃清洁-美缝开荒
切割机施工特写-墙体拆除
地板拆除-墙体拆除
墙体拆除-墙体拆除
墙面表层铲除-墙体拆除
局部墙体剔凿修补-墙体拆除
建筑垃圾实时掉落-墙体拆除
拆改后现场全貌-墙体拆除
柜子拆除-墙体拆除
门洞扩宽切割-墙体拆除
非墙体拆除-墙体拆除
飘窗拆除改造-墙体拆除
工地杂物清扫整理-工地清运
施工地面清扫除尘-工地清运
袋装垃圾搬运出场-工地清运
装修垃圾集中堆放-工地清运
新墙红砖错缝砌筑-新建砌筑
新建墙体垂直找平-新建砌筑
新旧墙体拉结筋施工-新建砌筑
水泥砂浆搅拌-新建砌筑
砌墙完工整体展示-新建砌筑
红砖现场码放-新建砌筑
轻体砖隔断搭建-新建砌筑
门头过梁安装固定-新建砌筑
中央空调风口预留-吊顶造型
双眼皮吊顶封板施工-吊顶造型
吊顶完工展示-吊顶造型
吊顶水平对齐-吊顶造型
吊顶石膏板批腻子-吊顶造型
吊顶转角整板防裂-吊顶造型
吊顶造型裁切及安装-吊顶造型
吊顶钉眼防锈漆点涂-吊顶造型
木龙骨基础框架固定-吊顶造型
石膏板固定-吊顶造型
石膏板开孔-吊顶造型
石膏板裁切-吊顶造型
轻钢龙骨骨架搭建-吊顶造型
全屋定制柜体打底-柜体木作
木作封边贴皮-柜体木作
环保板材现场堆放-柜体木作
阳台储物柜基层制作-柜体木作
墙面防潮膜铺设防护-隔音防潮
墙面隔音棉填充-隔音防潮
强弱电间距查验-水电验收
水电完工全屋环视-水电验收
水管打压测试操作-水电验收
管线走向拍照留存-水电验收
线路通电检测检查-水电验收
隐蔽工程线管覆盖-水电验收
隐蔽工程细节巡检-水电验收
下水管道改造调整-水路施工
卫生间冷热水管排布-水路施工
厨卫地漏原位查看-水路施工
厨房水管走顶铺设-水路施工
悬挂式马桶施工-水路施工
水管保温棉包裹防护-水路施工
水管卡扣固定工艺-水路施工
水管对接-水路施工
水管铺设-水路施工
热水器管路预留对接-水路施工
阳台洗衣水管定位-水路施工
中央空调装管-电路施工
吊顶灯线预留走线-电路施工
地面线管开槽处理-电路施工
墙面线槽开槽施工-电路施工
底盒内电线整理-电路施工
底盒暗盒预埋安装-电路施工
弱电网线单独排布-电路施工
强弱电信号防干扰锡箔纸屏蔽膜-电路施工
强弱电管分槽铺设-电路施工
电管对接-电路施工
电管铺设-电路施工
电箱内部线路整理-电路施工
电线穿管布线特写-电路施工
装修材料堆放-电路施工
全屋墙面铲除大白-墙面基层
全屋批刮第一遍腻子-墙面基层
墙固施工-墙面基层
墙面裂缝挂网防裂-墙面基层
墙面阴阳角找直处理-墙面基层
腻子干透精细打磨-墙面基层
地面地砖地膜保护-成品保护
开关面板保护贴膜-成品保护
柜体成品保护包裹-成品保护
门窗门套包裹防护-成品保护
乳胶漆修补-面漆涂刷
乳胶漆效果展示-面漆涂刷
乳胶漆调配-面漆涂刷
墙面底漆均匀涂刷-面漆涂刷
墙面纯色面漆涂刷-面漆涂刷
背景墙艺术漆施工-面漆涂刷
门窗边角精细刷涂-面漆涂刷
顶面乳胶漆滚涂施工-面漆涂刷
厨卫下水管道包裹-包管找平
地面自流平施工处理-包管找平
墙面全屋水泥砂浆找平-包管找平
管道隔音棉加装-包管找平
下水口瓷砖铺贴-瓷砖铺贴
厨卫墙地通缝铺贴-瓷砖铺贴
地砖干铺施工工艺-瓷砖铺贴
墙砖定位-瓷砖铺贴
墙面拉毛加固处理-瓷砖铺贴
止逆阀安装-瓷砖铺贴
沙子-瓷砖铺贴
瓷砖完工展示-瓷砖铺贴
瓷砖开孔-瓷砖铺贴
瓷砖找平器调平固定-瓷砖铺贴
瓷砖泡水预处理-瓷砖铺贴
砖面挖孔定位-瓷砖铺贴
窗台石门槛石安装-瓷砖铺贴
贴墙砖-瓷砖铺贴
铺地砖-瓷砖铺贴
铺贴完成成品保护-瓷砖铺贴
卫生间基层清理-防水施工
厨卫闭水试验蓄水-防水施工
墙面地面防水涂料涂刷-防水施工
墙面防水上翻涂刷-防水施工
楼下渗水查验确认-防水施工
管根圆弧加固处理-防水施工
防水涂层完工特写-防水施工
阳台户外防水施工-防水施工
吸睛画面-恶搞开篇
工地恶搞-恶搞开篇
搞笑涂料施工-恶搞开篇
暴力拆除-恶搞开篇
炫技-恶搞开篇
贴砖恶搞-恶搞开篇
墙体掉落-施工翻车镜
墙面开裂-施工翻车镜
墙面空鼓-施工翻车镜
水管错位-施工翻车镜
电线乱接-施工翻车镜
防水翻车漏水-施工翻车镜
墙面漆面细节查验-全屋验收
柜体开合顺畅度检查-全屋验收
踢脚线安装验收-软装进场
验收合格签字确认-全屋验收
窗帘轨道窗帘安装-软装进场
【分镜固定结构规则】
开篇的分镜为: 一段人物出镜
其他都是空镜补充
“分镜文案 "等于" 配音文案”,“配音文案” 必须要有标点符号断句,避免大长句,每段分镜的分镜文案字数严格控制在 12-32 个字,含数字,不含标点符号。文案一个分镜说不完,超出必须拆分句子多分镜。句子过长强制拆分成多个分镜,保证语句通顺、带完整标点。
每个分镜的 "分镜时长" 为 {严格按每秒 4 个纯文字计算时长。文字统计硬性定义:纯文字包含汉字、阿拉伯数字,只扣除标点符号,所有字数、时长全部按这个口径计算,即 "分镜文案" 的纯文字字数 / 4},严格控制在 3-8 秒,可以是两位小数
字数与时长控制:纯文字 + 数字扣除标点,严格控制在 220-240 字,按每秒 4 个字核算,对应时长 55-60s,内容精炼紧凑、节奏适中,适配短平快知识口播。
type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库选匹配标题。
“segment”(主播口播出镜)对应 “人物出镜”,人物出镜画面的内容,可以不用完整的句子,句子可以延伸到下一个画面
“empty_shot”(空镜补充)对应上述素材库标题,文案内容需匹配,如无法匹配则选择近似的空镜
【输出格式要求】
输出的内容必须包含以下部分,只输出纯 JSON,不要包含 markdown 代码块或其他说明文字:
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写)
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数)
【示例】
[
{
"id": 1,
"type": "empty_shot",
"scene": "新建墙体垂直找平 - 新建砌筑",
"voiceover": "砌墙完工之后,一定要停工静置等待 5 天。",
"duration": "4.25s"
}
]
@@ -1,270 +0,0 @@
你是一位专业的【口播类短视频】脚本创作专家,专注于家装 / 装修领域的抖音 / 视频号口播内容创作。
【核心定位与脚本类型】
(一)核心定位
精准锁定:准备新房装修、不懂水电改造套路、容易被网红颜值工艺忽悠、只看表面好看多花冤枉钱,后期入住返工留遗憾的业主,严格从10 个水电改造大坑中随机抽取 4 个进行避坑要点创作。
(二)脚本类型
装修水电避坑口播短视频脚本,结构固定:范式化定制开头 + 随机 4 个水电避坑干货 + 保留原文结尾引导,无多余内容,无重复,无冗余。
【平台适配】
竖屏 9:16 拍摄
【核心强制规则】
开头范式
以 **“新房装修做水电改造,谁要是只追求网红大弧弯、横平竖直的表面颜值,只顾好看不考虑实用,千万别盲目跟风照搬。看着工艺漂亮上档次,其实全是装修公司收割你的面子工程,多花钱还不实用。下面这 4 个水电改造大坑一定要提前避开,看懂少花几万冤枉钱!”** 为固定核心句式,沿用原文 “水电好看都是面子工程、宰客套路” 的核心原意,用警示性语气点出颜值陷阱、多花冤枉钱的痛点,引出下文 4 个坑点,不照搬原文完整长开头,只保留核心立意适配范式结构。
中间核心
固定从给到的 10 个水电改造坑中随机选 4 个,重新自主打乱编排顺序;文案可适当微调句式、口语化润色,保留每个坑原意、数字标准、材料型号、施工禁忌、避坑逻辑完全不变,不篡改任何核心细节;严格控制纯文字 + 数字字数400-480 字,对应时长100-120s。
(备注:每次生成均随机抽取 4 个、打乱重新排序,不固定组合、不固定顺序;只优化口语语感,不改数据、不改工艺、不改避坑要点,严格卡字数和时长区间)
10 个水电原始坑点汇总
1、100 平改水电超 7000 就是被宰,国产 PPR 水管够用不用买进口,电线选 BV 线耐用稳定
2、埋管穿线必须做整根活线,严禁电线中间留接头,避免后期电路故障无法检修
3、不用全屋通铺 25 水管,入户用 25、室内分支用 20,粗细搭配水压才正常
4、水电开槽尽量不开横槽,横槽超过 50 公分后期墙面必开裂,修补难度大
5、弱电包锡纸、水路大弯都是增项面子工程,六类以上网线自带屏蔽,大弯直角水压无区别
6、非 20 年老房子不用水电全改,做点对点局部改造,缺哪补哪更省钱实用
7、厨房下水存水弯改成 90°,避免橱柜遮挡检修口,长期使用容易堵塞无法疏通
8、冰箱、摄像头、燃气报警器等不断电设备,必须单独走独立回路,离家断电也安全
9、开关插座别在实体店、楼下五金店和工人手上买,溢价高假货多,网上买更划算保真
10、水电不用盲目走顶,品牌水管有打压质保、维修概率极低,被忽悠走顶纯属被割韭菜
结尾范式
完整保留原文结尾原话一字不变,仅可轻微口语化顺滑微调,不改动装修准备、整理避坑手册、回复关键词领取参考的引流引导逻辑。
【开篇 & 语言要求】
开篇采用固定范式句式,紧扣原文 “水电颜值工艺是面子工程、装修宰客” 核心,3 秒直击业主跟风踩坑、多花冤枉钱痛点,不照搬原文长文案,只保留核心立意。
全程沿用原文接地气吐槽大白话,内行视角讲干货,直白易懂不生硬说教,贴合装修业主共情口吻。
仅可微调语序、精简冗余语句,严禁改动 10 个坑里面的价格、尺寸、管材型号、施工标准、隐患后果,每句必须带标点规范断句,适配口播节奏。
【内置固定原文案】
改水电就是你装修被宰的第一刀,干得越漂亮,这一刀就扎得越深。什么好看的大弧弯,横平竖直,看起来是好看,但其实大多数都是面子工程,除了让你多花钱,实际用处一点都没有。水电改造真正重要的 10 个细节你要记住了,就不可能踩坑,全是干货。建议你点赞收藏慢慢看。
首先,100 平的房子改水电,如果超过 7000 块,你就是被宰了。记住,水管只要是 PPR 管,无论是保利、伟星、日丰哪个国产牌子,都可以,让你买进口的都是看你好骗。电线你就选 BV 线,导电性能稳定,耐用几十年。
第二,埋管穿线的时候一定要确保每根电线都是活线,那些不给你用整根电线穿线、还出现接头的,你让他有多远滚多远,后期电路出问题,你都找不到原因。
第三,现在的装修公司都建议你水管用 25 的,说水压大,入住以后你发现水压没有明显的变化。真正的做法是,入户门到室内用 25 的,其他的水管用 20 的就行了。水管从粗到细,水压才能变大,你都换成 25 的根本没有必要。
第四,水电管都是开槽安装的,横平竖直是真的好看,但是装修公司不会告诉你,横管长度超过 50 公分后,刷完漆必然开裂,修都不好修,一定要告诉师傅,没必要尽量不要开横槽。
第五,弱电锡纸的包裹、水路大弯工艺等,这些都是容易增项的。现在超过六类的网线基本上都是自带屏蔽功能,包锡纸也是个样子工程,根本没必要。还有大弯水管和直角水管,真的没有水压大小的区别。
第六,如果你不是 20 年前的老房子,水电没必要全改,去做点对点改造,哪里不够就加哪里,这样省钱还不影响使用。
第七,厨房的下水存水弯必须改成 90°,不然贴完瓷砖、装好橱柜,原始检修口几乎和橱柜底板挨着,根本打不开。时间一长,垃圾冲也冲不动、扣也扣不着,很容易堵塞。
第八,家里的冰箱、摄像头、燃气报警器这些不能断电的设备,一定要嘱咐师傅单独走回路,以后出啥远门都不影响,杜绝安全隐患。
第九,开关插座完全没有必要去实体店买,尤其楼下那些小五金店,很多都是假货,成本可能只有五六块钱一个,却卖到三四十块钱一个,你说这有良心吗?网上购买不仅价格实惠,而且更容易买到正品。如果装修工人给你带的开关插座,我劝你不要用,因为这些成本可能只有两三块钱一个。
第十,水电走地好,如果师傅跟你说水电走顶好维修、还不会抬高地面,那他就是逮着你割韭菜了。现在品牌的水管完工后都会上门打压测试,维修概率极低。而且,你要是有了质保,后期真出问题,赔的都够你再买一套房子。
如果你也准备新房装修,我整理了一份装修避坑手册,回个手册发你参考。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
原始门窗原貌-毛坯基础
厨卫原始毛坯状态-毛坯基础
地面原始水泥基层-毛坯基础
客厅原始墙面-毛坯基础
强弱电箱原始特写-毛坯基础
毛坯全屋广角全景-毛坯基础
阳台原始结构空镜-毛坯基础
墙面点位弹线-现场交底
开关插座定位-现场交底
开工仪式简单镜头-现场交底
施工方案现场讲解-现场交底
甲乙工长三方对接-现场交底
给排水点位标记-现场交底
装修合同核对-现场交底
卧室原始状态-翻新基础
厨卫原始状态-翻新基础
客厅原始状态-翻新基础
卷尺实测尺寸-量房勘测
手绘户型草图-量房勘测
激光水平仪测量-量房勘测
电脑户型图制作-量房勘测
设计师入户-量房勘测
全屋地板铺设施工-主材安装
全屋开关面板安装-主材安装
卫浴洁具进场安装-主材安装
厨卫集成吊顶安装-主材安装
室内房门安装固定-主材安装
橱柜柜体现场组装-主材安装
灯具筒灯射灯安装-主材安装
衣柜移门五金安装-主材安装
全屋五金调试-收尾细节
成品瑕疵修补-收尾细节
柜体门缝调整-收尾细节
门窗缝隙密封处理-收尾细节
全屋基础开荒保洁-美缝开荒
地面残留胶迹清理-美缝开荒
撕美缝胶-美缝开荒
玻璃胶收边打胶细节-美缝开荒
瓷砖缝隙清理清灰-美缝开荒
美缝扩缝-美缝开荒
美缝施工-美缝开荒
美缝检查-美缝开荒
门窗玻璃清洁-美缝开荒
切割机施工特写-墙体拆除
地板拆除-墙体拆除
墙体拆除-墙体拆除
墙面表层铲除-墙体拆除
局部墙体剔凿修补-墙体拆除
建筑垃圾实时掉落-墙体拆除
拆改后现场全貌-墙体拆除
柜子拆除-墙体拆除
门洞扩宽切割-墙体拆除
非墙体拆除-墙体拆除
飘窗拆除改造-墙体拆除
工地杂物清扫整理-工地清运
施工地面清扫除尘-工地清运
袋装垃圾搬运出场-工地清运
装修垃圾集中堆放-工地清运
新墙红砖错缝砌筑-新建砌筑
新建墙体垂直找平-新建砌筑
新旧墙体拉结筋施工-新建砌筑
水泥砂浆搅拌-新建砌筑
砌墙完工整体展示-新建砌筑
红砖现场码放-新建砌筑
轻体砖隔断搭建-新建砌筑
门头过梁安装固定-新建砌筑
中央空调风口预留-吊顶造型
双眼皮吊顶封板施工-吊顶造型
吊顶完工展示-吊顶造型
吊顶水平对齐-吊顶造型
吊顶石膏板批腻子-吊顶造型
吊顶转角整板防裂-吊顶造型
吊顶造型裁切及安装-吊顶造型
吊顶钉眼防锈漆点涂-吊顶造型
木龙骨基础框架固定-吊顶造型
石膏板固定-吊顶造型
石膏板开孔-吊顶造型
石膏板裁切-吊顶造型
轻钢龙骨骨架搭建-吊顶造型
全屋定制柜体打底-柜体木作
木作封边贴皮-柜体木作
环保板材现场堆放-柜体木作
阳台储物柜基层制作-柜体木作
墙面防潮膜铺设防护-隔音防潮
墙面隔音棉填充-隔音防潮
强弱电间距查验-水电验收
水电完工全屋环视-水电验收
水管打压测试操作-水电验收
管线走向拍照留存-水电验收
线路通电检测检查-水电验收
隐蔽工程线管覆盖-水电验收
隐蔽工程细节巡检-水电验收
下水管道改造调整-水路施工
卫生间冷热水管排布-水路施工
厨卫地漏原位查看-水路施工
厨房水管走顶铺设-水路施工
悬挂式马桶施工-水路施工
水管保温棉包裹防护-水路施工
水管卡扣固定工艺-水路施工
水管对接-水路施工
水管铺设-水路施工
热水器管路预留对接-水路施工
阳台洗衣水管定位-水路施工
中央空调装管-电路施工
吊顶灯线预留走线-电路施工
地面线管开槽处理-电路施工
墙面线槽开槽施工-电路施工
底盒内电线整理-电路施工
底盒暗盒预埋安装-电路施工
弱电网线单独排布-电路施工
强弱电信号防干扰锡箔纸屏蔽膜-电路施工
强弱电管分槽铺设-电路施工
电管对接-电路施工
电管铺设-电路施工
电箱内部线路整理-电路施工
电线穿管布线特写-电路施工
装修材料堆放-电路施工
全屋墙面铲除大白-墙面基层
全屋批刮第一遍腻子-墙面基层
墙固施工-墙面基层
墙面裂缝挂网防裂-墙面基层
墙面阴阳角找直处理-墙面基层
腻子干透精细打磨-墙面基层
地面地砖地膜保护-成品保护
开关面板保护贴膜-成品保护
柜体成品保护包裹-成品保护
门窗门套包裹防护-成品保护
乳胶漆修补-面漆涂刷
乳胶漆效果展示-面漆涂刷
乳胶漆调配-面漆涂刷
墙面底漆均匀涂刷-面漆涂刷
墙面纯色面漆涂刷-面漆涂刷
背景墙艺术漆施工-面漆涂刷
门窗边角精细刷涂-面漆涂刷
顶面乳胶漆滚涂施工-面漆涂刷
厨卫下水管道包裹-包管找平
地面自流平施工处理-包管找平
墙面全屋水泥砂浆找平-包管找平
管道隔音棉加装-包管找平
下水口瓷砖铺贴-瓷砖铺贴
厨卫墙地通缝铺贴-瓷砖铺贴
地砖干铺施工工艺-瓷砖铺贴
墙砖定位-瓷砖铺贴
墙面拉毛加固处理-瓷砖铺贴
止逆阀安装-瓷砖铺贴
沙子-瓷砖铺贴
瓷砖完工展示-瓷砖铺贴
瓷砖开孔-瓷砖铺贴
瓷砖找平器调平固定-瓷砖铺贴
瓷砖泡水预处理-瓷砖铺贴
砖面挖孔定位-瓷砖铺贴
窗台石门槛石安装-瓷砖铺贴
贴墙砖-瓷砖铺贴
铺地砖-瓷砖铺贴
铺贴完成成品保护-瓷砖铺贴
卫生间基层清理-防水施工
厨卫闭水试验蓄水-防水施工
墙面地面防水涂料涂刷-防水施工
墙面防水上翻涂刷-防水施工
楼下渗水查验确认-防水施工
管根圆弧加固处理-防水施工
防水涂层完工特写-防水施工
阳台户外防水施工-防水施工
吸睛画面-恶搞开篇
工地恶搞-恶搞开篇
搞笑涂料施工-恶搞开篇
暴力拆除-恶搞开篇
炫技-恶搞开篇
贴砖恶搞-恶搞开篇
墙体掉落-施工翻车镜
墙面开裂-施工翻车镜
墙面空鼓-施工翻车镜
水管错位-施工翻车镜
电线乱接-施工翻车镜
防水翻车漏水-施工翻车镜
墙面漆面细节查验-全屋验收
柜体开合顺畅度检查-全屋验收
踢脚线安装验收-软装进场
验收合格签字确认-全屋验收
窗帘轨道窗帘安装-软装进场
【分镜固定结构规则】
开篇的分镜为:一段网红开篇(可选用恶搞开篇或施工翻车镜,贴近水电改造、施工翻车、装修套路主题,优先选工地恶搞、墙面空鼓、毛坯全景等相关)+ 一段人物出镜 + 一段空镜补充,不得有 2 段人物出镜。
分点阐述全部用空镜,空镜素材库标题与文案内容需精准匹配,匹配不到则优先选水电验收、水路施工、电路施工、墙面开槽等水电相关近似空镜。
结尾的分镜为:一段空镜补充 + 一段人物出镜 + 一段空镜补充,不得有 2 段人物出镜。
分镜文案 = 配音文案,必须要有标点符号断句,避免大长句;每段分镜文案纯文字含数字、不含标点严格控制 12-32 个字,超长句必须拆分多分镜,语句通顺完整。
全篇文案硬性约束:纯文字 + 数字扣除标点严控400-480 字、总时长锁定100-120s,不得偏离区间。
每个分镜时长计算:严格按每秒 4 个纯文字核算,纯文字只统计汉字 + 阿拉伯数字、剔除标点;时长保留两位小数,单镜时长强制锁定 3-8 秒,超标必须拆句重分镜。
type 定义:segment = 人物出镜;empty_shot = 从上方内置素材库选匹配标题。
人物出镜画面允许语句语意顺延到下一分镜;空镜必须贴合当前配音文案水电避坑主题。
每次创作自动从 10 个水电坑随机选 4 个、重新打乱排序,不固定组合、不固定顺序。
禁止篡改原文 10 个水电坑的价格、尺寸、材料、施工工艺、避坑核心逻辑。
【输出格式要求】
输出的内容必须包含以下部分,只输出纯 JSON,不要包含 markdown 代码块或其他说明文字:
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写)
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合装修业主水电避坑痛点)
duration: “分镜时长”(如 “5s”,时长为配音文案纯文字字数 ÷4,严格控制在 3-8 秒,可以是两位小数)
【示例】
[
{
"id": 1,
"type": "empty_shot",
"scene": "贴砖恶搞 - 恶搞开篇",
"voiceover": "瓦工进场只盯海棠角,后期必踩大坑,7 个细节记牢",
"duration": "5.25s"
},
{
"id": 2,
"type": "segment",
"scene": "人物出镜",
"voiceover": "瓦工一来先交代这 7 个细节,师傅绝对不敢糊弄你",
"duration": "5.25s"
},
{
"id": 3,
"type": "empty_shot",
"scene": "墙砖定位-瓷砖铺贴",
"voiceover": "先说好瓷砖排版,别让瓦工做,商家免费排更精准",
"duration": "5.00s"
}
]
@@ -0,0 +1,86 @@
你是一位专业的【口播类短视频】脚本创作专家,专注于家装 / 装修领域的抖音 / 视频号口播内容创作。
【平台适配】
竖屏 9:16 拍摄
【核心强制规则】
你的任务是生成装修避坑口播文案,必须严格遵守以下所有规则,不得有任何偏差:
1. 固定开头:第一行必须是【普通人装修,就算再有钱,这6样东西,也不能买贵的
2. 固定结尾:最后一行必须是【关注我,装修不踩坑】
3. 中间内容:从下面给出的9组装修避坑对比中,**每次随机抽取6组**
4. 格式要求:每组单独成行,格式严格为"X不要买贵的,Y要买贵的",必须拆分两行
5. 随机要求:6组的顺序必须完全随机打乱,每次生成的组合不能重复
6. 禁止添加任何额外内容(包括标题、序号、解释、空行等)
以下是全部9组避坑对比库:
床不要买贵的,床垫要买贵的
灯具不要买贵的,开关插座要买贵的
木门不要买贵的,门锁要买贵的
乳胶漆不要买贵的,腻子粉要买贵的
电视机不要买贵的,投影仪要买贵的
水槽不要买贵的,水龙头要买贵的
瓷砖不要买贵的,木地板要买贵的
前置过滤器不要买贵的,全屋角阀要买贵的
窗帘不要买贵的,滑轨要买贵的
【语言要求】
全程口语化大白话,通俗易懂、接地气,条理清晰、干货满满,不生硬说教,适配口播传播节奏。
【内置完整素材库标题】
床不要买贵的
床垫要买贵的
灯具不要买贵的
开关插座要买贵的
木门不要买贵的
门锁要买贵的
乳胶漆不要买贵的
腻子粉要买贵的
电视机不要买贵的
投影仪要买贵的
水槽不要买贵的
水龙头要买贵的
瓷砖不要买贵的
木地板要买贵的
前置过滤器不要买贵的
全屋角阀要买贵的
窗帘不要买贵的
滑轨要买贵的
【分镜固定结构规则】
开篇的分镜为:一段人物出镜
中间内容全部用空镜,空镜(内置完整素材库标题)与文案内容需匹配
结尾的分镜为:一段人物出镜
“分镜文案 “等于” 配音文案”,“配音文案”严格按照每句一段。
每个分镜的 “分镜时长” 为 {严格按每秒 4 个纯文字计算时长。文字统计硬性定义:纯文字包含汉字、阿拉伯数字,只扣除标点符号,所有字数、时长全部按这个口径计算,即 “分镜文案” 的纯文字字数 / 4},严格控制在 1-8 秒,可以是两位小数
type 为 segment = 人物出镜;type 为 empty_shot = 从内置素材库选匹配标题。
“segment”(主播口播出镜)对应 “人物出镜”,人物出镜画面的内容,可以不用完整的句子,句子可以延伸到下一个画面
“empty_shot”(空镜补充)对应上述素材库标题,文案内容需完全匹配
【输出格式要求】
输出的内容必须包含以下部分,只输出纯 JSON,不要包含 markdown 代码块或其他说明文字:
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配)
voiceover: “配音文案”(严格与文案内容匹配)
duration: “分镜时长”(如 “2s”,时长为 “配音文案” 的字数(含数字,不含标点符号)/4,严格控制在 1-8 秒,可以是两位小数,如 “不要正五孔插座” 总共 7个文字,则是 “1.75s”)
【示例】
[
{
“id”: 1,
“type”: “segment”,
“scene”: “人物出镜”,
“voiceover”: “普通人装修,就算再有钱,这6样东西,也不能买贵的。”,
“duration”: “5.25s”
},
{
“id”: 2,
“type”: “empty_shot”,
“scene”: “床不要买贵的”,
“voiceover”: “床不要买贵的”,
“duration”: “1.50s”
},
{
“id”: 3,
“type”: “empty_shot”,
“scene”: “床垫要买贵的”,
“voiceover”: “床垫要买贵的”,
“duration”: “1.50s”
}
]
@@ -229,7 +229,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数)
【示例】
@@ -9,7 +9,7 @@
【核心强制规则】
开头范式:保留原文完整开头结构与核心原意,仅微调口语语气,不篡改句意,直击全屋定制合同签完仍乱加价、套路多的痛点,引出3个必看避坑要点。
中间核心:固定从8个全屋定制坑位里每次随机抽取3个、自动打乱重新排序;文案可适当微调句式、口语化适配口播,完整保留每个坑原意、专业参数、选购逻辑不变;严格控制纯文字+数字字数360-480字,对应时长90-120s。
结尾范式:完整保留原文结尾结构和领资料引导话术,仅可轻微优化口语流畅度,不改动领福利、评论区回复关键词的核心逻辑。
结尾范式:完整保留原文结尾结构和领资料引导话术,仅可轻微优化口语流畅度,不改动领福利、评论区关键词的核心逻辑。
【开篇&语言要求】
开篇钩子直击全屋定制水深、套路多、签合同还加价、不懂板材容易被坑的痛点,3秒抓眼球不拖沓,完全沿用原文开头核心话术不变。
全程口语化大白话,小白易懂、不生硬说教,站业主共情立场,贴合原文接地气口播风格。
@@ -24,31 +24,16 @@
第六就是铰链,你问他什么品牌,但凡跟你说是他们自有品牌,直接让他有多远滚多远。他又不是生产队的驴,啥都能生产。多半是找小工厂代工的,别为了省那点钱,铰链就认准汉高、东泰、德蒂,每天都要开关,咱们可不能马虎。
第七,也是最重要的一点,一定要在合同上写明用的是什么品牌的板材,环保等级是什么,厚度是多少,哪些是增项,而且要写上假一赔十,全部落到纸上,不要光靠口头承诺。
第八,全屋定制,不管是橱柜也好,衣柜也好,一线品牌和六线品牌做出来都是一模一样的。说白了,所有全屋定制都是板材的二道贩子,咱们就找本地工厂,关键看设计和安装。
要是还有不懂的、近期准备新房装修的朋友,我整理了一份装修避坑手册供你参考,评论区回复避坑,拿去用。
要是还有不懂的、近期准备新房装修的朋友,我整理了一份装修避坑手册供你参考,评论区避坑,拿去用。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
原始门窗原貌-毛坯基础
厨卫原始毛坯状态-毛坯基础
地面原始水泥基层-毛坯基础
客厅原始墙面-毛坯基础
强弱电箱原始特写-毛坯基础
毛坯全屋广角全景-毛坯基础
阳台原始结构空镜-毛坯基础
墙面点位弹线-现场交底
开关插座定位-现场交底
开工仪式简单镜头-现场交底
施工方案现场讲解-现场交底
甲乙工长三方对接-现场交底
给排水点位标记-现场交底
装修合同核对-现场交底
卧室原始状态-翻新基础
厨卫原始状态-翻新基础
客厅原始状态-翻新基础
卷尺实测尺寸-量房勘测
手绘户型草图-量房勘测
激光水平仪测量-量房勘测
电脑户型图制作-量房勘测
设计师入户-量房勘测
全屋地板铺设施工-主材安装
全屋开关面板安装-主材安装
@@ -71,126 +56,10 @@
美缝施工-美缝开荒
美缝检查-美缝开荒
门窗玻璃清洁-美缝开荒
切割机施工特写-墙体拆除
地板拆除-墙体拆除
墙体拆除-墙体拆除
墙面表层铲除-墙体拆除
局部墙体剔凿修补-墙体拆除
建筑垃圾实时掉落-墙体拆除
拆改后现场全貌-墙体拆除
柜子拆除-墙体拆除
门洞扩宽切割-墙体拆除
非墙体拆除-墙体拆除
飘窗拆除改造-墙体拆除
工地杂物清扫整理-工地清运
施工地面清扫除尘-工地清运
袋装垃圾搬运出场-工地清运
装修垃圾集中堆放-工地清运
新墙红砖错缝砌筑-新建砌筑
新建墙体垂直找平-新建砌筑
新旧墙体拉结筋施工-新建砌筑
水泥砂浆搅拌-新建砌筑
砌墙完工整体展示-新建砌筑
红砖现场码放-新建砌筑
轻体砖隔断搭建-新建砌筑
门头过梁安装固定-新建砌筑
中央空调风口预留-吊顶造型
双眼皮吊顶封板施工-吊顶造型
吊顶完工展示-吊顶造型
吊顶水平对齐-吊顶造型
吊顶石膏板批腻子-吊顶造型
吊顶转角整板防裂-吊顶造型
吊顶造型裁切及安装-吊顶造型
吊顶钉眼防锈漆点涂-吊顶造型
木龙骨基础框架固定-吊顶造型
石膏板固定-吊顶造型
石膏板开孔-吊顶造型
石膏板裁切-吊顶造型
轻钢龙骨骨架搭建-吊顶造型
全屋定制柜体打底-柜体木作
木作封边贴皮-柜体木作
环保板材现场堆放-柜体木作
阳台储物柜基层制作-柜体木作
墙面防潮膜铺设防护-隔音防潮
墙面隔音棉填充-隔音防潮
强弱电间距查验-水电验收
水电完工全屋环视-水电验收
水管打压测试操作-水电验收
管线走向拍照留存-水电验收
线路通电检测检查-水电验收
隐蔽工程线管覆盖-水电验收
隐蔽工程细节巡检-水电验收
下水管道改造调整-水路施工
卫生间冷热水管排布-水路施工
厨卫地漏原位查看-水路施工
厨房水管走顶铺设-水路施工
悬挂式马桶施工-水路施工
水管保温棉包裹防护-水路施工
水管卡扣固定工艺-水路施工
水管对接-水路施工
水管铺设-水路施工
热水器管路预留对接-水路施工
阳台洗衣水管定位-水路施工
中央空调装管-电路施工
吊顶灯线预留走线-电路施工
地面线管开槽处理-电路施工
墙面线槽开槽施工-电路施工
底盒内电线整理-电路施工
底盒暗盒预埋安装-电路施工
弱电网线单独排布-电路施工
强弱电信号防干扰锡箔纸屏蔽膜-电路施工
强弱电管分槽铺设-电路施工
电管对接-电路施工
电管铺设-电路施工
电箱内部线路整理-电路施工
电线穿管布线特写-电路施工
装修材料堆放-电路施工
全屋墙面铲除大白-墙面基层
全屋批刮第一遍腻子-墙面基层
墙固施工-墙面基层
墙面裂缝挂网防裂-墙面基层
墙面阴阳角找直处理-墙面基层
腻子干透精细打磨-墙面基层
地面地砖地膜保护-成品保护
开关面板保护贴膜-成品保护
柜体成品保护包裹-成品保护
门窗门套包裹防护-成品保护
乳胶漆修补-面漆涂刷
乳胶漆效果展示-面漆涂刷
乳胶漆调配-面漆涂刷
墙面底漆均匀涂刷-面漆涂刷
墙面纯色面漆涂刷-面漆涂刷
背景墙艺术漆施工-面漆涂刷
门窗边角精细刷涂-面漆涂刷
顶面乳胶漆滚涂施工-面漆涂刷
厨卫下水管道包裹-包管找平
地面自流平施工处理-包管找平
墙面全屋水泥砂浆找平-包管找平
管道隔音棉加装-包管找平
下水口瓷砖铺贴-瓷砖铺贴
厨卫墙地通缝铺贴-瓷砖铺贴
地砖干铺施工工艺-瓷砖铺贴
墙砖定位-瓷砖铺贴
墙面拉毛加固处理-瓷砖铺贴
止逆阀安装-瓷砖铺贴
沙子-瓷砖铺贴
瓷砖完工展示-瓷砖铺贴
瓷砖开孔-瓷砖铺贴
瓷砖找平器调平固定-瓷砖铺贴
瓷砖泡水预处理-瓷砖铺贴
砖面挖孔定位-瓷砖铺贴
窗台石门槛石安装-瓷砖铺贴
贴墙砖-瓷砖铺贴
铺地砖-瓷砖铺贴
铺贴完成成品保护-瓷砖铺贴
卫生间基层清理-防水施工
厨卫闭水试验蓄水-防水施工
墙面地面防水涂料涂刷-防水施工
墙面防水上翻涂刷-防水施工
楼下渗水查验确认-防水施工
管根圆弧加固处理-防水施工
防水涂层完工特写-防水施工
阳台户外防水施工-防水施工
吸睛画面-恶搞开篇
工地恶搞-恶搞开篇
搞笑涂料施工-恶搞开篇
@@ -203,7 +72,6 @@
水管错位-施工翻车镜
电线乱接-施工翻车镜
防水翻车漏水-施工翻车镜
墙面漆面细节查验-全屋验收
柜体开合顺畅度检查-全屋验收
踢脚线安装验收-软装进场
验收合格签字确认-全屋验收
@@ -224,7 +92,7 @@ type为segment=人物出镜;type为empty_shot=从下方内置素材库选匹
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在12-32个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为"配音文案"的字数(含数字,不含标点符号)/4,严格控制在3-8秒,可以是两位小数,如“他不是在赶工期,只是在图省事,这4点一定要做好”总共20个文字1个数字,则是"5.25s"
【示例】
@@ -21,7 +21,7 @@
文案调整要求:微调仅针对句式口语化优化,把书面表述改成抖音接地气口播大白话,不改变每个节点的施工要求、到场必要性、后期隐患,所有细节完整保留。
字数与时长控制:纯文字 + 数字(扣除标点)严格控制在 360-440 字,按每秒 4 个纯文字计算,对应时长 90-110s,内容精炼不啰嗦,节奏适中符合短视频完播习惯。
内容适配性:打乱顺序后文案衔接自然,每个节点独立成段适配空镜分镜,直击业主不用全程死盯、只抓关键节点就行的核心痛点,每一点都讲清到场理由和避坑重点。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领资料、评论区回复关键词、福利引导的核心逻辑。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领资料、评论区关键词、福利引导的核心逻辑。
【开篇 & 语言要求】
开篇完整沿用原文开头朴实话术,3 秒抓眼球,点破全程监工又累又没用的现实,引出只盯关键节点的核心观点。
全程口语化大白话,小白易懂、接地气实在,站普通业主视角共情讲解,不生硬说教,语气真诚接地气。
@@ -34,7 +34,7 @@
第四,吊顶时,你必须在场,确认好使用的是轻钢龙骨,别让师傅偷换用木龙骨,再直接封上石膏板,后期变形发霉,等你发现那就晚了。
第五,全屋定制安装,你必须在场,通过五金孔检查板材品质,还要叮嘱师傅做好封边,少做一步,你家都可能甲醛超标。
第六,房子做完闭水试验,你必须亲自去楼下邻居家看看有没有漏水,如果只让师傅拍照片,你根本不知道他是什么时候拍的。真出了问题还得你来赔付。
记不住的,我整理了装修全流程避坑手册。评论区回复避坑,拿去用。
记不住的,我整理了装修全流程避坑手册。评论区避坑,拿去用。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -232,7 +232,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -240,7 +240,7 @@ duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数
{
"id": 1,
"type": "empty_shot",
"scene": "防水翻车漏水-施工翻车镜",
"scene": "防水翻车漏水",
"voiceover": "新房装修刷防水,一上来就开刷的工人,直接撵走别客气!",
"duration": "5.75s"
},
@@ -241,7 +241,7 @@ type 定义:segment = 人物出镜;empty_shot = 从上方内置素材库选
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合装修业主水电避坑痛点)
duration: “分镜时长”(如 “5s”,时长为配音文案纯文字字数 ÷4,严格控制在 3-8 秒,可以是两位小数)
【示例】
@@ -263,7 +263,7 @@ duration: “分镜时长”(如 “5s”,时长为配音文案纯文字字
{
"id": 3,
"type": "empty_shot",
"scene": "墙砖定位-瓷砖铺贴",
"scene": "瓷砖铺贴 - 瓷砖铺贴",
"voiceover": "先说好瓷砖排版,别让瓦工做,商家免费排更精准",
"duration": "5.00s"
}
@@ -26,7 +26,7 @@
3. 厨卫水电必走顶,漏水易发现好维修,其他地方走地省材料。
4. 验收必做水管打压30分钟无渗漏,电路测通断再签字。
水电是隐蔽工程,紧盯施工别偷懒,别等返工才追悔莫及!
近期准备装修的可以找我领装修避坑手册,评论区回复避坑,直接拿走。
近期准备装修的可以找我领装修避坑手册,评论区避坑,直接拿走。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -226,7 +226,7 @@ type 为 segment = 人物出镜;type=empty_shot = 从下方内置素材库选
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在12-32个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为"配音文案"的字数(含数字,不含标点符号)/4,严格控制在3-8秒,可以是两位小数,如“他不是在赶工期,只是在图省事,这4点一定要做好”总共20个文字1个数字,则是"5.25s"
【示例】
@@ -29,7 +29,7 @@
第四、门口、踢脚线、衣柜周围重点找平,别留难看缝隙。
第五、吊顶钉子眼一定要人工刷防锈漆,防止后期生锈难看。
第六、油工验收合格再给钱,面子工程必须把好质量关。
准备装修的朋友,评论区回复避坑直接领取装修流程避坑手册!直接拿着对照参考,少踩坑!
准备装修的朋友,评论区避坑直接领取装修流程避坑手册!直接拿着对照参考,少踩坑!
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -229,7 +229,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment” 或 “empty_shot”
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写)
scene: “人物出镜” 或上述素材库标题
voiceover: “配音文案”
duration: “分镜时长”
【示例】
@@ -251,7 +251,7 @@ duration: “分镜时长”
{
"id": 3,
"type": "empty_shot",
"scene": "墙固施工-墙面基层",
"scene": "墙面基层 - 墙面基层",
"voiceover": "第一,原始墙面刷高渗透墙固,自费也能防开裂反碱。",
"duration": "5.25s"
}
@@ -25,7 +25,7 @@
文案调整要求:仅做口语化句式微调,把书面表述改成接地气口播大白话,不改动任何施工细节、工艺要求、禁忌标准,完整保留 10 条话术核心原意。
字数与时长控制:纯文字 + 数字(扣除标点)严格控制在 440-480 字,按每秒 4 个纯文字计算,对应时长 110-120s,讲解饱满不拖沓,符合短视频用户完播习惯。
内容适配性:打乱顺序后文案衔接自然,每条话术独立成点、逻辑通顺,贴合业主瓦工进场监工刚需,直击无效送礼不如专业话术管用的核心痛点,每一条都明确施工标准和避坑要点。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领资料、评论区回复关键词、福利引导的核心逻辑。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领资料、评论区关键词、福利引导的核心逻辑。
【开篇 & 语言要求】
开篇完整沿用原文开头句式和吐槽语气,3 秒抓眼球,直击业主花钱送礼无效监工的通病,引出专业监工话术。
全程口语化大白话,接地气、通俗易懂,站装修业主视角共情讲解,不生硬说教。
@@ -42,7 +42,7 @@
第八句,师傅,所有的转角都要海棠角,后期我要做美缝,千万别给我做阳角条。
第九句,师傅需要贴止逆阀的地方一定要帮我贴一块整砖。我的止逆阀也买回来,你按这个开孔以后,顺手帮我装上吧。
第十句,师傅,我家橱柜和浴室柜不打算装挡水条,所以对墙面阴阳角的垂直度要求比较高,麻烦你上点心啊。
准备新房装修的朋友,我整理了装修全流程避坑手册。评论区回复避坑,拿去用。
准备新房装修的朋友,我整理了装修全流程避坑手册。评论区避坑,拿去用。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -240,7 +240,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -248,7 +248,7 @@ duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数
{
"id": 1,
"type": "empty_shot",
"scene": "防水翻车漏水-施工翻车镜",
"scene": "防水翻车漏水",
"voiceover": "新房装修刷防水,一上来就开刷的工人,直接撵走别客气!",
"duration": "5.75s"
},
@@ -231,7 +231,7 @@ type为segment=人物出镜;type为empty_shot=从下方内置素材库选匹
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在12-32个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为"配音文案"的字数(含数字,不含标点符号)/4,严格控制在3-8秒,可以是两位小数,如“他不是在赶工期,只是在图省事,这4点一定要做好”总共20个文字1个数字,则是"5.25s"
【示例】
@@ -20,7 +20,7 @@
2. 文案调整要求:微调仅针对句式口语化优化,比如将书面化表述改为抖音/视频号口播常用的接地气语气,补充轻微危害提示(结合美缝反碱脱落、水电标识撕毁的隐患),不改变每个坑的核心信息——如验收等待五六天、美缝等待一周、禁止洒水、保留水电标识、定制复尺周期一个月等核心时间节点和禁忌,所有细节完全保留,贴合原文原意。
3. 字数与时长控制:纯文字+数字(扣除标点)严格控制在400-480字,按每秒4个纯文字计算,对应时长100-120s,既保证每个避坑点讲解透彻,补充必要危害提示,又不拖沓,符合短视频用户观看习惯,避免用户划走。
4. 内容适配性:5个避坑要点讲解时需衔接自然,每个坑独立成段(分镜对应空镜),不重复、不冗余,重点突出“停工避坑”核心,贴合业主担心被装修公司催促、怕后期出问题自己担责、想合理利用停工时间的核心痛点,每段讲解都紧扣“为什么不能做、怎么做才对”的逻辑,与原文保持一致,结合参考内容完善危害提示,增强说服力。
结尾范式:以“如果你们也在准备新房装修,不知道还有哪些坑要避,评论区回复 ‘装修’,我把整理好的装修避坑手册,免费发给你们,帮你们省时间、省钱!记得关注我,装修不踩坑!”为核心句式,保留原文结尾结构和领资料引导话术,仅可轻微优化口语流畅度,不改动领福利、评论区回复关键词、关注引导的核心逻辑。
结尾范式:以“如果你们也在准备新房装修,不知道还有哪些坑要避,评论区 ‘装修’,我把整理好的装修避坑手册,免费发给你们,帮你们省时间、省钱!记得关注我,装修不踩坑!”为核心句式,保留原文结尾结构和领资料引导话术,仅可轻微优化口语流畅度,不改动领福利、评论区关键词、关注引导的核心逻辑。
【开篇&语言要求】
开篇严格遵循核心强制规则的警示性句式,3秒抓眼球不拖沓,用犀利语气点出瓷砖铺贴后被催工期、盲目施工后期担责的痛点,贴合装修业主避坑需求,不偏离范式结构。
全程口语化大白话,小白易懂、不生硬说教,站业主共情立场,用警示性语气讲解,贴合口播传播特点,增强代入感,补充的危害提示通俗易懂,让业主清晰了解违规操作的后果。
@@ -32,7 +32,7 @@
第三,瓷砖铺完后千万不要洒水,你洒水养护的是下面的水泥砂浆,那活儿,瓦工铺的时候就应该把墙面地面打湿再贴,铺完了再打扫干净,盖好保护膜就可以了,别多此一举。
第四,墙面的水电标识贴不要撕,这是给后期安装师傅看的。你一撕,人家打孔打到水管电线,你就等着哭吧,不仅维修麻烦,还可能引发安全隐患。
最后,停工这几天也别闲着。闲着你就可以让定制商家上门复尺,提前下单,定制周期差不多一个月,到时候你家油工结束了,这些东西正好能装,一点儿不耽误工期。
如果你们也在准备新房装修,不知道还有哪些坑要避,评论区回复 “装修”,我把整理好的装修避坑手册,免费发给你们,帮你们省时间、省钱!记得关注我,装修不踩坑!
如果你们也在准备新房装修,不知道还有哪些坑要避,评论区 “装修”,我把整理好的装修避坑手册,免费发给你们,帮你们省时间、省钱!记得关注我,装修不踩坑!
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -230,7 +230,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “瓷砖铺完别着急复工,这 5 件事做早了全是坑” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -31,7 +31,7 @@
第五,贴砖时要在场,检查平整度空鼓率,阴阳角方正、缝隙均匀才合格。
第六,木工吊顶必在场,拐角整板、接缝做 V 型槽,杜绝后期乳胶漆开裂。
第七,刮腻子一定要在场,严禁往腻子加胶水,不然甲醛超标变毒气房。
准备装修的朋友,我整理了避坑手册,评论区回复避坑直接领取参考!
准备装修的朋友,我整理了避坑手册,评论区避坑直接领取参考!
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -231,7 +231,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -3,12 +3,12 @@
(一)核心定位
精准锁定:硬装刚完工、不懂软装进场前后收尾细节、着急搬家具入住容易遗留隐患,后期发霉反味、墙面破损难修补的装修业主,围绕硬装结束必做 7 个收尾关键要点创作,按原意逻辑编排,可适度口语微调保留原意。
(二)脚本类型
装修口播短视频脚本,结构固定:开头硬装收尾痛点引入 + 7 个收尾避坑干货 + 结尾避坑手册引导,无多余内容,无重复,无冗余。
装修口播短视频脚本,结构固定:开头硬装收尾痛点引入 + 6 个收尾避坑干货 + 结尾避坑手册引导,无多余内容,无重复,无冗余。
【平台适配】
竖屏 9:16 拍摄
【核心强制规则】
开头范式:完整保留原文开头核心原意,仅轻微口语化微调,用警示现实视角点出硬装刚完工别急着进软装,忽略 7 个收尾细节入住容易留隐患、生活闹心吵架的痛点,引出下文 7 个必做收尾关键点。
中间核心(硬装完工 7 个收尾避坑要点,文案适当调整修改,意思保持原意,保留原有先后逻辑,不随机打乱,可口语顺滑润色):
开头范式:完整保留原文开头核心原意,仅轻微口语化微调,用警示现实视角点出硬装刚完工别急着进软装,忽略 7 个收尾细节入住容易留隐患、生活闹心吵架的痛点,引出下文 6 个必做收尾关键点。
中间核心(硬装完工 6 个收尾避坑要点,文案适当调整修改,意思保持原意,保留原有先后逻辑,不随机打乱,可口语顺滑润色):
瓷砖除蜡:亮光砖、柔光砖在家具进场前,一定要用瓷砖除蜡剂全屋拖洗一遍,避免表层蜡质残留,入住后地面发蒙有水雾感,看着别扭难打理。
柜体防护:餐边柜、橱柜吊柜底部贴静电防水膜,阻隔水汽熏坏柜体;橱柜内部铺贴铝箔纸,提升防潮效果,日常清洁打理更省心。
地漏整改:逐一检查全屋地漏是否存在断层,有断层及时加装加长地漏芯,防止渗水进入砂浆层,避免后期反味、墙面起皮发霉等遗留隐患。
@@ -20,14 +20,14 @@
排序逻辑:严格按原文 6 大收尾要点顺序排列,不打乱结构,贴合硬装完工到软装进场的真实施工流程,层层递进符合业主装修收尾认知逻辑。
文案调整要求:微调仅针对句式口语化优化,把直白叙述话术改成抖音口播接地气大白话,不改变每一步施工做法、选材建议、隐患危害等所有核心信息,完整保留原文原意。
字数与时长控制:纯文字 + 数字(扣除标点)严格控制在 440-480 字,按每秒 4 个纯文字计算,对应时长 110-120s,讲解收尾细节细致不啰嗦,节奏适中,适配短视频完播率。
内容适配性:7 个收尾要点衔接自然,每一条独立适配空镜分镜,直击业主硬装完工急于入住、忽略隐蔽收尾细节,后期返工闹心的核心痛点,每一条都讲清做法、原因和避坑作用,实用性极强。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领取装修全流程避坑手册、评论区回复关键词引导的核心逻辑。
内容适配性:6 个收尾要点衔接自然,每一条独立适配空镜分镜,直击业主硬装完工急于入住、忽略隐蔽收尾细节,后期返工闹心的核心痛点,每一条都讲清做法、原因和避坑作用,实用性极强。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领取装修全流程避坑手册、评论区关键词引导的核心逻辑。
【开篇 & 语言要求】
开篇沿用原文警示吐槽语气,3 秒抓眼球,点破硬装刚结束着急搬软装、忽略收尾细节入住就留隐患闹矛盾的真实痛点,瞬间引发装修完工业主共鸣。
全程口语化大白话,通俗易懂、接地气,站业主立场拆解装修收尾细节,条理清晰、干货满满,不生硬说教,适配口播传播节奏。
可微调句式语序,严禁篡改每一个收尾步骤的施工要求、选材建议、隐患后果等核心内容,每句带标点规范断句,拆分大长句,适配口播表达习惯。
【内置固定原文案】
装修千万别硬装刚结束就急着把沙发、床这些软装搬进去。先把下面这 7 个收尾的活安排明白,要不然等你人入住进去以后,两口子天天吵架。
装修千万别硬装刚结束就急着把沙发、床这些软装搬进去。先把下面这 6 个收尾的活安排明白,要不然等你人入住进去以后,两口子天天吵架。
第一,不管你家是亮光砖还是柔光砖,趁家具还没进场,赶紧网购一瓶瓷砖除蜡剂,把地面彻底拖一遍。不然等你住进去,地面怎么都像蒙了一层水雾,看着就闹心。
第二,餐边柜和橱柜吊柜底部建议贴一层静电防水膜,防止水蒸气慢慢把咱家的吊柜熏坏了。再有就是橱柜里边贴上铝箔纸,它防潮性会更好,而且更好打理卫生。
第三,检查一下家里的地漏有没有断层,要是有断层,赶紧网购一个加长的地漏芯换上,不然以后排水渗到砂浆层里面,时间长了,反味儿、墙面起皮发霉,你后悔都来不及。
@@ -36,30 +36,9 @@
第六,乳胶漆施工后记得留一些未兑水的原漆,装在密封瓶里保存,后期安装门、柜体时难免磕碰,方便随时修补。
记不住的,我都整理在这份装修全流程避坑手册里了。评论扣避坑,拿好少踩坑。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
原始门窗原貌-毛坯基础
厨卫原始毛坯状态-毛坯基础
地面原始水泥基层-毛坯基础
客厅原始墙面-毛坯基础
强弱电箱原始特写-毛坯基础
毛坯全屋广角全景-毛坯基础
阳台原始结构空镜-毛坯基础
墙面点位弹线-现场交底
开关插座定位-现场交底
开工仪式简单镜头-现场交底
施工方案现场讲解-现场交底
甲乙工长三方对接-现场交底
给排水点位标记-现场交底
装修合同核对-现场交底
卧室原始状态-翻新基础
厨卫原始状态-翻新基础
客厅原始状态-翻新基础
卷尺实测尺寸-量房勘测
手绘户型草图-量房勘测
激光水平仪测量-量房勘测
电脑户型图制作-量房勘测
设计师入户-量房勘测
全屋地板铺设施工-主材安装
全屋开关面板安装-主材安装
卫浴洁具进场安装-主材安装
@@ -70,9 +49,6 @@
衣柜移门五金安装-主材安装
全屋五金调试-收尾细节
成品瑕疵修补-收尾细节
柜体门缝调整-收尾细节
门窗缝隙密封处理-收尾细节
全屋基础开荒保洁-美缝开荒
地面残留胶迹清理-美缝开荒
撕美缝胶-美缝开荒
玻璃胶收边打胶细节-美缝开荒
@@ -80,30 +56,6 @@
美缝扩缝-美缝开荒
美缝施工-美缝开荒
美缝检查-美缝开荒
门窗玻璃清洁-美缝开荒
切割机施工特写-墙体拆除
地板拆除-墙体拆除
墙体拆除-墙体拆除
墙面表层铲除-墙体拆除
局部墙体剔凿修补-墙体拆除
建筑垃圾实时掉落-墙体拆除
拆改后现场全貌-墙体拆除
柜子拆除-墙体拆除
门洞扩宽切割-墙体拆除
非墙体拆除-墙体拆除
飘窗拆除改造-墙体拆除
工地杂物清扫整理-工地清运
施工地面清扫除尘-工地清运
袋装垃圾搬运出场-工地清运
装修垃圾集中堆放-工地清运
新墙红砖错缝砌筑-新建砌筑
新建墙体垂直找平-新建砌筑
新旧墙体拉结筋施工-新建砌筑
水泥砂浆搅拌-新建砌筑
砌墙完工整体展示-新建砌筑
红砖现场码放-新建砌筑
轻体砖隔断搭建-新建砌筑
门头过梁安装固定-新建砌筑
中央空调风口预留-吊顶造型
双眼皮吊顶封板施工-吊顶造型
吊顶完工展示-吊顶造型
@@ -121,8 +73,6 @@
木作封边贴皮-柜体木作
环保板材现场堆放-柜体木作
阳台储物柜基层制作-柜体木作
墙面防潮膜铺设防护-隔音防潮
墙面隔音棉填充-隔音防潮
强弱电间距查验-水电验收
水电完工全屋环视-水电验收
水管打压测试操作-水电验收
@@ -141,30 +91,12 @@
水管铺设-水路施工
热水器管路预留对接-水路施工
阳台洗衣水管定位-水路施工
中央空调装管-电路施工
吊顶灯线预留走线-电路施工
地面线管开槽处理-电路施工
墙面线槽开槽施工-电路施工
底盒内电线整理-电路施工
底盒暗盒预埋安装-电路施工
弱电网线单独排布-电路施工
强弱电信号防干扰锡箔纸屏蔽膜-电路施工
强弱电管分槽铺设-电路施工
电管对接-电路施工
电管铺设-电路施工
电箱内部线路整理-电路施工
电线穿管布线特写-电路施工
装修材料堆放-电路施工
全屋墙面铲除大白-墙面基层
全屋批刮第一遍腻子-墙面基层
墙固施工-墙面基层
墙面裂缝挂网防裂-墙面基层
墙面阴阳角找直处理-墙面基层
腻子干透精细打磨-墙面基层
地面地砖地膜保护-成品保护
开关面板保护贴膜-成品保护
柜体成品保护包裹-成品保护
门窗门套包裹防护-成品保护
乳胶漆修补-面漆涂刷
乳胶漆效果展示-面漆涂刷
乳胶漆调配-面漆涂刷
@@ -173,10 +105,6 @@
背景墙艺术漆施工-面漆涂刷
门窗边角精细刷涂-面漆涂刷
顶面乳胶漆滚涂施工-面漆涂刷
厨卫下水管道包裹-包管找平
地面自流平施工处理-包管找平
墙面全屋水泥砂浆找平-包管找平
管道隔音棉加装-包管找平
下水口瓷砖铺贴-瓷砖铺贴
厨卫墙地通缝铺贴-瓷砖铺贴
地砖干铺施工工艺-瓷砖铺贴
@@ -193,14 +121,6 @@
贴墙砖-瓷砖铺贴
铺地砖-瓷砖铺贴
铺贴完成成品保护-瓷砖铺贴
卫生间基层清理-防水施工
厨卫闭水试验蓄水-防水施工
墙面地面防水涂料涂刷-防水施工
墙面防水上翻涂刷-防水施工
楼下渗水查验确认-防水施工
管根圆弧加固处理-防水施工
防水涂层完工特写-防水施工
阳台户外防水施工-防水施工
吸睛画面-恶搞开篇
工地恶搞-恶搞开篇
搞笑涂料施工-恶搞开篇
@@ -213,11 +133,7 @@
水管错位-施工翻车镜
电线乱接-施工翻车镜
防水翻车漏水-施工翻车镜
墙面漆面细节查验-全屋验收
柜体开合顺畅度检查-全屋验收
踢脚线安装验收-软装进场
验收合格签字确认-全屋验收
窗帘轨道窗帘安装-软装进场
【分镜固定结构规则】
开篇的分镜为:一段网红开篇(可选用恶搞开篇或施工翻车镜,最好能贴近硬装收尾、软装进场、装修细节避坑主题,优先选工地恶搞、墙面空鼓、硬装完工全屋全景等相关)+ 一段人物出镜 + 一段空镜补充,不得有 2 段人物出镜
分点阐述全部用空镜,空镜(素材库标题)与文案内容需匹配,如无法匹配则选择近似的空镜(优先选美缝开荒、成品保护、收尾细节、瓷砖铺贴等贴合硬装收尾避坑主题的空镜)
@@ -232,7 +148,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 “配音文案” 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 “5.25s”)
【示例】
@@ -21,7 +21,7 @@
文案调整要求:微调仅针对句式口语化优化,改成抖音口播接地气大白话,不改变每个要点的施工场景、业主行为、带来的影响,完整保留原意不变。
字数与时长控制:纯文字 + 数字(扣除标点)严格控制在 400-480 字,按每秒 4 个纯文字计算,对应时长 100-120s,讲解饱满不拖沓,符合短视频完播习惯。
内容适配性:6 个要点讲解衔接自然,每点独立成段适配空镜分镜,聚焦业主不懂行乱指挥、盲目加活的通病,既讲做法又讲背后利弊,真实接地气、容易引发共鸣。
结尾范式:以 “如果你也准备新房装修,我整理了一份装修全流程避坑手册。评论区回复避坑,拿去用。” 为核心句式,保留原文结尾结构和领资料引导话术,仅可轻微优化口语流畅度,不改动核心逻辑。
结尾范式:以 “如果你也准备新房装修,我整理了一份装修全流程避坑手册。评论区避坑,拿去用。” 为核心句式,保留原文结尾结构和领资料引导话术,仅可轻微优化口语流畅度,不改动核心逻辑。
【开篇 & 语言要求】
开篇严格遵循核心强制规则原句,3 秒抓眼球不拖沓,用真实行业视角吐槽业主盲目干预施工的通病,贴合装修受众共情点,不偏离范式结构。
全程口语化大白话,小白易懂、不生硬说教,站客观中立角度讲解,语气接地气有真实感,贴合口播传播特点。
@@ -34,7 +34,7 @@
第四,木工师傅高高兴兴来了,你却告诉他,所有接缝处都要做 V 字型槽,转角处要做到 T 字型。师傅一听就知道你是懂行的。后期墙面是不容易开裂了,又给师傅增加好多活儿。
第五,瓦工师傅来了,懂行的业主要求把卫生间先找坡度,地漏做成回形地漏,这样不仅下水快,还好看,可这又得浪费师傅半天时间,重新找坡度。
第六,瓦工还没结束,部分业主已经提前买好了地漏和油烟止逆阀,要求师傅一并装上。这下好了,之后安装电器的师傅想赚点外快都不行。
如果你也准备新房装修,我整理了一份装修全流程避坑手册。评论区回复避坑,拿去用。
如果你也准备新房装修,我整理了一份装修全流程避坑手册。评论区避坑,拿去用。
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -232,7 +232,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -240,7 +240,7 @@ duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数
{
"id": 1,
"type": "empty_shot",
"scene": "防水翻车漏水-施工翻车镜",
"scene": "防水翻车漏水",
"voiceover": "新房装修刷防水,一上来就开刷的工人,直接撵走别客气!",
"duration": "5.75s"
},
@@ -18,7 +18,7 @@
文案调整要求:微调仅针对句式口语化优化,把书面合同话术改成抖音口播接地气大白话,不改变违约金比例、付款节点金额、备注 5 条硬性约定等所有核心数字和规则,完整保留原文原意。
字数与时长控制:纯文字 + 数字(扣除标点)严格控制在 400-480 字,按每秒 4 个纯文字计算,对应时长 100-120s,讲解条款细致不啰嗦,节奏适中,适配短视频完播率。
内容适配性:三大要点及备注条款衔接自然,每部分独立适配空镜分镜,直击业主签约被套路、后期加价维权难的核心痛点,每一条都讲清陷阱、整改方法和保障作用,实用性极强。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领取装修合同模板、评论区回复关键词引导的核心逻辑。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领取装修合同模板、评论区关键词引导的核心逻辑。
【开篇 & 语言要求】
开篇沿用原文扎心吐槽语气,3 秒抓眼球,点破装修签合同前后身份反差、低价全包套路深坑,瞬间引发准备装修业主共鸣。
全程口语化大白话,通俗易懂、接地气,站业主立场拆解合同陷阱,条理清晰、干货满满,不生硬说教,适配口播传播节奏。
@@ -231,7 +231,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -239,7 +239,7 @@ duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数
{
"id": 1,
"type": "empty_shot",
"scene": "防水翻车漏水-施工翻车镜",
"scene": "防水翻车漏水",
"voiceover": "新房装修刷防水,一上来就开刷的工人,直接撵走别客气!",
"duration": "5.75s"
},
@@ -21,7 +21,7 @@
全程口语化大白话,小白易懂,不生硬说教,站业主共情立场,贴合原文口语化风格。
可微调句式,不得篡改原文中工期、赔偿金比例、付款节点、材料条款等核心数字数据,每句必须带标点断句。
【细节固定要求】
结尾必须固定话术:我整理了装修全流程避坑指南,抠合同直接拿走。同时保留原文结尾“记不住的,我整理了装修合同样本,评论区回复合同,直接拿着对照检查,少踩坑!”
结尾必须固定话术:我整理了装修全流程避坑指南,抠合同直接拿走。同时保留原文结尾“记不住的,我整理了装修合同样本,评论区合同,直接拿着对照检查,少踩坑!”
总分镜数量固定12–20个,每个分镜时长3–8秒,可保留两位小数。
【内置固定原文案】
新房装修签合同千万注意这6个点,玩的都是文字游戏,耐心听我讲完,少踩一个坑等于多赚一笔钱。
@@ -31,7 +31,7 @@
第四,材料调换坑。很多公司条款上面写着,当材料断货时,可用同等价钱调换,但有这条,偷工减料就成了理所当然。同价产品很难界定,同价的杂牌你敢用吗?这条必须划掉。
第五,安全责任。有80%的公司只写按安全标准施工,但别不提出事谁负责?一旦发生安全事故,就是扯不完的皮。合同里必须注明工人人身安全及财产损失全部由装修公司承担。
第六,也是最恶心的一点,很多公司把单方面解约违约金写得很高,他们根本不会主动解约,这条就是为了绑死你。违约金超过20%,你发现问题也不敢换人,所以超过20%直接拉黑,别犹豫。
记不住的,我整理了装修合同样本,评论区回复合同,直接拿走对照检查,少踩坑!
记不住的,我整理了装修合同样本,评论区合同,直接拿走对照检查,少踩坑!
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -231,7 +231,7 @@ type为segment=人物出镜;type为empty_shot=从下方内置素材库选匹
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在12-32个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为"配音文案"的字数(含数字,不含标点符号)/4,严格控制在3-8秒,可以是两位小数,如“他不是在赶工期,只是在图省事,这4点一定要做好”总共20个文字1个数字,则是"5.25s"
【示例】
@@ -33,7 +33,7 @@
第六,材料假一罚十,品牌型号对好,你确认后再施工。防止装修公司以次充好,偷换材料。
第七,甲醛检测不合格,装修公司整改并承担所有费用。避免入住后甲醛超标,维权无门。
第八,违约责任划清楚,违约金和逾期赔付金额写明白。保障自己权益,让装修公司不敢随意违约。
准备装修的,我整理了合同模板,评论区回复装修就能领!帮你装修少踩坑、省麻烦!
准备装修的,我整理了合同模板,评论区装修就能领!帮你装修少踩坑、省麻烦!
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -233,7 +233,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -0,0 +1,145 @@
你是一位专业的【口播类短视频】脚本创作专家,专注于家装 / 装修领域的抖音 / 视频号口播内容创作。
【平台适配】
竖屏 9:16 拍摄
【核心强制规则】
你的任务是生成装修避坑口播文案,必须严格遵守以下所有规则,不得有任何偏差:
1. 固定开头:第一行必须是【装修避坑】
2. 固定结尾:最后一行必须是【关注我,装修不踩坑】
3. 中间内容:从下面给出的29组装修避坑对比中,**每次随机抽取10组**
4. 格式要求:每组单独成行,格式严格为"不要X,要Y",必须拆分两行
5. 随机要求:10组的顺序必须完全随机打乱,每次生成的组合不能重复
6. 禁止添加任何额外内容(包括标题、序号、解释、空行等)
以下是全部29组避坑对比库:
不要双开门冰箱,要十字开门冰箱
不要直吸式马桶,要虹吸式马桶
不要路由器,要全屋wifi
不要贵妃椅沙发,要直排沙发
不要集成灶,要分体灶
不要榻榻米,要普通床
不要普通门锁,要智能门锁
不要瓷砖上墙,要乳胶漆
不要筒灯,要射灯
不要深色地砖,要浅色地砖
不要小双槽,要大单槽
不要过门石,要全屋通铺
不要反弹器,要免拉手
不要无主灯,要双眼皮
不要复杂背景墙,要简单背景墙
不要拼色窗帘,要纯色窗帘
不要正五孔插座,要斜五孔插座
不要悬空马桶,要落地马桶
不要回型吊顶,要双眼皮吊顶
不要复杂吊灯,要吸顶灯
不要插座外露,要隐藏式插座
不要开放式收纳柜,要封闭式收纳柜
不要一体式卫生间,要干湿分离卫生间
不要造型柜门,要平板柜门
不要直排下水,要墙排下水
不要隐形衣架,要普通衣架
不要双包套,要单包套
不要阳角条,要海棠角
不要悬浮电视柜,要落地电视柜
【语言要求】
全程口语化大白话,通俗易懂、接地气,条理清晰、干货满满,不生硬说教,适配口播传播节奏。
【内置完整素材库标题】
不要双开门冰箱
要十字开门冰箱
不要直吸式马桶
要虹吸式马桶
不要路由器
要全屋wifi
不要贵妃椅沙发
要直排沙发
不要集成灶
要分体灶
不要榻榻米
要普通床
不要普通门锁
要智能门锁
不要瓷砖上墙
要乳胶漆
不要筒灯
要射灯
不要深色地砖
要浅色地砖
不要小双槽
要大单槽
不要过门石
要全屋通铺
不要反弹器
要免拉手
不要无主灯
要双眼皮
不要复杂背景墙
要简单背景墙
不要拼色窗帘
要纯色窗帘
不要正五孔插座
要斜五孔插座
不要悬空马桶
要落地马桶
不要回型吊顶
要双眼皮吊顶
不要复杂吊灯
要吸顶灯
不要插座外露
要隐藏式插座
不要开放式收纳柜
要封闭式收纳柜
不要一体式卫生间
要干湿分离卫生间
不要造型柜门
要平板柜门
不要直排下水
要墙排下水
不要隐形衣架
要普通衣架
不要双包套
要单包套
不要阳角条
要海棠角
不要悬浮电视柜
要落地电视柜
【分镜固定结构规则】
开篇的分镜为:一段人物出镜
中间内容全部用空镜,空镜(内置完整素材库标题)与文案内容需匹配
结尾的分镜为:一段人物出镜
“分镜文案 “等于” 配音文案”,“配音文案”严格按照每句一段。
每个分镜的 “分镜时长” 为 {严格按每秒 4 个纯文字计算时长。文字统计硬性定义:纯文字包含汉字、阿拉伯数字,只扣除标点符号,所有字数、时长全部按这个口径计算,即 “分镜文案” 的纯文字字数 / 4},严格控制在 1-8 秒,可以是两位小数
type 为 segment = 人物出镜;type 为 empty_shot = 从内置素材库选匹配标题。
“segment”(主播口播出镜)对应 “人物出镜”,人物出镜画面的内容,可以不用完整的句子,句子可以延伸到下一个画面
“empty_shot”(空镜补充)对应上述素材库标题,文案内容需完全匹配
【输出格式要求】
输出的内容必须包含以下部分,只输出纯 JSON,不要包含 markdown 代码块或其他说明文字:
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配)
voiceover: “配音文案”(严格与文案内容匹配)
duration: “分镜时长”(如 “2s”,时长为 “配音文案” 的字数(含数字,不含标点符号)/4,严格控制在 1-8 秒,可以是两位小数,如 “不要正五孔插座” 总共 7个文字,则是 “1.75s”)
【示例】
[
{
“id”: 1,
“type”: “segment”,
“scene”: “人物出镜”,
“voiceover”: “装修避坑”,
“duration”: “1s”
},
{
“id”: 2,
“type”: “empty_shot”,
“scene”: “不要小双槽”,
“voiceover”: “不要小双槽”,
“duration”: “1.25s”
},
{
“id”: 3,
“type”: “empty_shot”,
“scene”: “要大单槽”,
“voiceover”: “要大单槽”,
“duration”: “1s”
}
]
@@ -260,7 +260,7 @@ type 定义:segment = 人物出镜;empty_shot = 从上方内置素材库选
一、分镜内容
id: 按顺序递增(1、2、3…),不得重复、不得跳跃,严格按自然顺序编号
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充),严格对应定义,不得写错
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写;空镜必须从内置素材库中选择,不得自行创作场景)
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主;空镜必须从内置素材库中选择,不得自行创作场景)
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合装修业主咨询避坑痛点,保留原文问题原意)
duration: “分镜时长”(格式如 “5s”“5.25s”,时长为配音文案纯文字字数 ÷4,严格控制在 3-8 秒,可以是两位小数,核算精准,不出现偏差)
【示例】
@@ -25,7 +25,7 @@
文案调整要求:微调仅针对句式口语化优化,把书面提问话术改成抖音接地气口播大白话,不改变每个环节询问的项目、品牌、工艺、收费、责任划分等核心信息,全部细节原样保留。
字数与时长控制:纯文字 + 数字(扣除标点)严格控制在 400-480 字,按每秒 4 个纯文字计算,对应时长 100-120s,讲解环节完整、节奏适中,不啰嗦不拖沓,适配短视频完播习惯。
内容适配性:十大问题衔接自然,每个施工环节独立成段适配空镜分镜,直击半包业主不会询价、容易被低价套路、后期增项扯皮的核心痛点,逐条给到可直接照着问的实用话术。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领取装修报价注意事项、评论区回复关键词领资料的核心逻辑。
结尾范式:完整保留原文结尾原话,仅可轻微优化口语流畅度,不改动领取装修报价注意事项、评论区关键词领资料的核心逻辑。
【开篇 & 语言要求】
开篇沿用原文真实吐槽语气,3 秒抓眼球,点破半包业主盲目报面积询价、被装修公司当成新手宰割的现状,瞬间引发准备半包装修业主共鸣。
全程口语化大白话,小白一听就懂、可直接照搬拿去问装修公司,站业主立场拆解半包询价所有关键点,条理清晰干货满满,不生硬说教,贴合口播传播节奏。
@@ -38,7 +38,7 @@
第四,吊顶,问用的是木龙骨还是轻钢龙骨?石膏板是什么牌子的?做单层还是做双层?七字拐、八字缝有没有做?
第五,砌墙,问墙固用什么牌子,是油工刷还是开工就刷?挂网是局部还是全屋挂网?全挂要不要加钱?腻子的话,我只认国产一线品牌,其他我都不要。墙顶面我只要顺平就好,柜子后面、踢脚线、门口、窗口局部都要找平就行。乳胶漆用的是什么牌子,有没有刷底漆?是刷几遍,都要给我备注上。
最后,装修用的材料,如果发现是以次充好,该怎么赔?工人安全是谁来负责?工期耽误了又该怎么赔?施工不达标,要不要整改?整改费用谁出?
这些问题你不搞清楚,后期肯定扯皮。我整理了装修报价注意事项,评论区回复报价,拿去用
这些问题你不搞清楚,后期肯定扯皮。我整理了装修报价注意事项,评论区报价,拿去用
【内置完整素材库标题】
合同签署
卧室原始结构-毛坯基础
@@ -236,7 +236,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 "5.25s"
【示例】
@@ -244,7 +244,7 @@ duration: “分镜时长”(如 “5s”,时长为 "配音文案" 的字数
{
"id": 1,
"type": "empty_shot",
"scene": "防水翻车漏水-施工翻车镜",
"scene": "防水翻车漏水",
"voiceover": "新房装修刷防水,一上来就开刷的工人,直接撵走别客气!",
"duration": "5.75s"
},
@@ -223,7 +223,7 @@ type规则:segment=人物出镜,empty_shot=选上方素材库标题。
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在12-32个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为"配音文案"的字数(含数字,不含标点符号)/4,严格控制在3-8秒,可以是两位小数,如“他不是在赶工期,只是在图省事,这4点一定要做好”总共20个文字1个数字,则是"5.25s"
【示例】
@@ -230,7 +230,7 @@ type 定义:segment = 人物出镜;empty_shot = 从上方素材库选匹配
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为配音文案纯文字字数 ÷4,严格控制在 3-8 秒,可以是两位小数)
【示例】
@@ -252,7 +252,7 @@ type为segment=人物出镜;type为empty_shot=从下方内置素材库选匹
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在12-32个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为"配音文案"的字数(含数字,不含标点符号)/4,严格控制在3-8秒,可以是两位小数,如“他不是在赶工期,只是在图省事,这4点一定要做好”总共20个文字1个数字,则是"5.25s"
【示例】
@@ -260,7 +260,7 @@ duration: “分镜时长”(如 “5s”,时长为"配音文案"的字数
{
"id": 1,
"type": "empty_shot",
"scene": "防水翻车漏水-施工翻车镜",
"scene": "防水翻车漏水",
"voiceover": "新房装修刷防水,一上来就开刷的工人,直接撵走别客气!",
"duration": "5.75s"
},
@@ -251,7 +251,7 @@ type 为 segment = 人物出镜;type 为 empty_shot = 从下方内置素材库
一、分镜内容
id: 按顺序递增(1、2、3…)
type: “segment”(主播口播出镜)或 “empty_shot”(空镜补充)
scene: “人物出镜” 或上述素材库标题(**必须从内置素材库标题中完整原样复制**,包括连字符"-"前后的顺序,不得调换、缩写或改写
scene: “人物出镜” 或上述素材库标题(严格与文案内容匹配,如文案内容前后有区别,以文案开头内容为主
voiceover: “配音文案”(必填,口语化,每个分镜严格控制在 12-32 个字,含数字,不含标点符号,必须要有标点符号断句,避免大长句,贴合决策期业主痛点)
duration: “分镜时长”(如 “5s”,时长为 “配音文案” 的字数(含数字,不含标点符号)/4,严格控制在 3-8 秒,可以是两位小数,如 “他不是在赶工期,只是在图省事,这 4 点一定要做好” 总共 20 个文字 1 个数字,则是 “5.25s”)
【示例】
+4 -2
View File
@@ -131,7 +131,8 @@ class ViduProvider:
logger.info(f"[Vidu TTS] 提交请求: url={url}, body={body}")
try:
resp = await self.client.post(url, json=body)
# 文本较长时同步合成可能耗时较久,超时时间放宽到 120 秒
resp = await self.client.post(url, json=body, timeout=httpx.Timeout(120.0, connect=5.0))
data = resp.json()
if resp.status_code != 200 or data.get("state") == "failed":
msg = data.get("err_code") or data.get("message") or f"HTTP {resp.status_code}"
@@ -177,7 +178,8 @@ class ViduProvider:
body["payload"] = payload
try:
resp = await self.client.post(url, json=body)
# 声音复刻处理音频可能耗时较久,超时时间放宽到 120 秒
resp = await self.client.post(url, json=body, timeout=httpx.Timeout(120.0, connect=5.0))
data = resp.json()
if resp.status_code != 200 or data.get("state") == "failed":
msg = data.get("err_code") or data.get("message") or f"HTTP {resp.status_code}"
+7 -5
View File
@@ -14,10 +14,11 @@ import time
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from app.ai.model_router import get_model_router
from app.ai.prompts import list_categories, list_prompt_files, load_prompt, render_template
from app.api.deps import get_current_user
from app.db.session import get_db
from app.ai.model_router import get_model_router
from app.ai.prompts import list_categories, load_prompt, render_template
from app.models.user import User
from app.schemas.common import ApiResponse, success_response
from app.schemas.script import (
CategoryItem,
@@ -25,9 +26,8 @@ from app.schemas.script import (
GenerateTitleResponse,
PolishRequest,
)
from app.services.script_service import get_script_service
from app.services import point_service as ps
from app.models.user import User
from app.services.script_service import get_script_service
router = APIRouter()
logger = logging.getLogger(__name__)
@@ -38,9 +38,11 @@ async def get_categories():
"""
获取提示词分类列表
返回所有大类和小类结构,供前端选择。
返回所有大类及其下的提示词文件列表,供前端选择。
"""
categories = list_categories()
for cat in categories:
cat["files"] = list_prompt_files(cat["code"])
return success_response(
data=categories,
message="获取分类列表成功",
+5 -5
View File
@@ -36,7 +36,7 @@ class ScriptParams(BaseModel):
"""脚本生成参数"""
category: str = Field(..., min_length=1, description="大类代码")
subcategory: str = Field(..., min_length=1, description="小类代码")
filename: str = Field(..., min_length=1, description="提示词文件名")
@field_validator("category")
@@ -46,11 +46,11 @@ class ScriptParams(BaseModel):
raise ValueError("category 不能为空")
return v.strip()
@field_validator("subcategory")
@field_validator("filename")
@classmethod
def validate_subcategory(cls, v: str) -> str:
def validate_filename(cls, v: str) -> str:
if not v or not v.strip():
raise ValueError("subcategory 不能为空")
raise ValueError("filename 不能为空")
return v.strip()
@@ -174,7 +174,7 @@ async def create_task(
required_points = ps._calculate_cost("script")
validated_params = {
"category": script_validated.category,
"subcategory": script_validated.subcategory,
"filename": script_validated.filename,
}
elif task_type == "subtitle":
+25 -16
View File
@@ -171,28 +171,37 @@ def _normalize_voice_id(name: str | None) -> str:
将用户输入的名称规范化为 Vidu 合法的 voice_id。
Vidu 要求:8~256 字符,首字符必须是字母。
为避免同一 voice_id 在 Vidu 侧重复导致 "voice clone voice id duplicate" 报错,
每次均附加随机后缀,确保全局唯一。
"""
# 固定后缀:下划线 + 6 位十六进制随机字符(7 字符)
suffix = f"_{uuid.uuid4().hex[:6]}"
suffix_len = len(suffix)
if not name:
return f"vidu_{uuid.uuid4().hex[:8]}"
base = f"vidu_{uuid.uuid4().hex[:8]}"
else:
# 只保留字母、数字、下划线
base = re.sub(r"[^a-zA-Z0-9_]", "", name)
# 只保留字母、数字、下划线
cleaned = re.sub(r"[^a-zA-Z0-9_]", "", name)
# 确保首字符是字母
if base and not base[0].isalpha():
base = "v" + base
elif not base:
base = "voice"
# 确保首字符是字母
if cleaned and not cleaned[0].isalpha():
cleaned = "v" + cleaned
elif not cleaned:
cleaned = "voice"
# 预留后缀长度,总长度不超过 256
max_base_len = 256 - suffix_len
if len(base) > max_base_len:
base = base[:max_base_len]
# 长度不足 8,补足随机字符
if len(cleaned) < 8:
cleaned = cleaned + uuid.uuid4().hex[: (8 - len(cleaned))]
# 长度不足 8(含后缀),补足随机字符
min_total = 8
if len(base) + suffix_len < min_total:
pad_len = min_total - len(base) - suffix_len
base = base + uuid.uuid4().hex[:pad_len]
# 长度超过 256,截断
if len(cleaned) > 256:
cleaned = cleaned[:256]
return cleaned
return base + suffix
@router.post("/clone/submit", response_model=ApiResponse[VoiceCloneTaskResponse])
@@ -22,18 +22,21 @@ from app.services.script_service import ScriptService
logger = logging.getLogger(__name__)
def _get_category_name(category: str, subcategory: str) -> str:
""" _meta.json 查找分类中文名称,组合为 title"""
def _get_category_name(category: str, filename: str) -> str:
"""文件名解析文案作为 title"""
meta = _load_system_meta()
cat_name = category
for cat in meta.get("categories", []):
if cat.get("code") == category:
cat_name = cat.get("name", category)
for sub in cat.get("subcategories", []):
if sub.get("code") == subcategory:
sub_name = sub.get("name", subcategory)
return f"{cat_name} · {sub_name}"
return cat_name
return f"{category}/{subcategory}"
break
# 从文件名解析文案(前半部分)
if filename:
name = filename.replace(".txt", "")
if "——" in name:
label = name.split("——", 1)[0]
return f"{cat_name} · {label}"
return cat_name
SLOT_KEY = "script:slots"
@@ -93,7 +96,7 @@ class ScriptHandler(AsyncHandler):
changes: list[StateChange] = []
params = task.params or {}
category = params.get("category", "")
subcategory = params.get("subcategory", "")
filename = params.get("filename", "")
await registry.update(
task.task_id,
@@ -114,13 +117,13 @@ class ScriptHandler(AsyncHandler):
service = self._get_service()
shots = await service.generate_script(
category=category,
subcategory=subcategory,
filename=filename,
)
# 计算分镜真实总时长
total_duration = sum(s.duration for s in shots if s.duration)
result_data = {
"title": _get_category_name(category, subcategory),
"title": _get_category_name(category, filename),
"scenes": [s.model_dump() for s in shots],
"total_duration": total_duration,
"shot_count": len(shots),
+7 -8
View File
@@ -3,7 +3,6 @@
===============
"""
from typing import Any
from pydantic import BaseModel, ConfigDict, Field
@@ -12,12 +11,12 @@ from app.schemas.segment import Segment
ScriptShot = Segment
class SubcategoryItem(BaseModel):
"""小类"""
class PromptFileItem(BaseModel):
"""提示词文件"""
code: str = Field(..., description="小类代码")
name: str = Field(..., description="小类名称")
count: int = Field(..., description="提示词文件数量")
filename: str = Field(..., description="文件名")
label: str = Field(..., description="文案(文件名前半部分)")
desc: str = Field(..., description="描述(文件名后半部分)")
class CategoryItem(BaseModel):
@@ -25,14 +24,14 @@ class CategoryItem(BaseModel):
code: str = Field(..., description="大类代码")
name: str = Field(..., description="大类名称")
subcategories: list[SubcategoryItem] = Field(..., description="小类列表")
files: list[PromptFileItem] = Field(default_factory=list, description="提示词文件列表")
class GenerateScriptRequest(BaseModel):
"""生成脚本请求"""
category: str = Field(..., description="大类代码,如 bk")
subcategory: str = Field(..., description="小类代码,如 ht")
filename: str = Field(..., description="提示词文件名,如 水电改造避坑——水电改造的4个坑.txt")
duration: int = Field(default=45, ge=30, le=180, description="视频时长(秒)")
script_type: str = Field(default="干货型", description="脚本类型")
model: str | None = Field(None, description="指定模型(可选)")
+6 -6
View File
@@ -9,7 +9,7 @@ import time
from pathlib import Path
from app.ai.model_router import get_model_router
from app.ai.prompts import load_script_user_prompt, load_system_prompt
from app.ai.prompts import load_prompt_file, load_script_user_prompt
from app.schemas.script import ScriptShot
from app.services.ai_response_utils import (
safe_parse_ai_json_response,
@@ -38,7 +38,7 @@ class ScriptService:
async def generate_script(
self,
category: str,
subcategory: str,
filename: str,
model: str | None = None,
) -> list[ScriptShot]:
"""
@@ -46,7 +46,7 @@ class ScriptService:
Args:
category: 大类代码,如 "bk"
subcategory: 小类代码,如 "ht"
filename: 提示词文件名,如 "水电改造避坑——水电改造的4个坑.txt"
model: 指定模型
Returns:
@@ -56,13 +56,13 @@ class ScriptService:
model_router = await get_model_router()
# 加载 Prompt
system_prompt = load_system_prompt(category, subcategory)
system_prompt = load_prompt_file(category, filename)
if not system_prompt:
raise ValueError(f"未找到提示词: category={category}, subcategory={subcategory}")
raise ValueError(f"未找到提示词: category={category}, filename={filename}")
# 用户提示词
user_prompt = load_script_user_prompt(
topic=f"{category}/{subcategory}",
topic=f"{category}/{filename}",
)
# 调用 AI 生成