fix: 严格限制视频画面文字

This commit is contained in:
Azmat@qq.com
2026-09-15 16:24:11 +08:00
parent 1df03c1f09
commit 243a3aa54b
2 changed files with 8 additions and 1 deletions
+1 -1
View File
@@ -939,7 +939,7 @@ OPENING_SHOT_DIRECTIVE = (
# 提示词正文里残留的「字幕:…」「花字:…」会和上面的禁令打架 —— 模型看到具体字幕内容就会画出来。 # 提示词正文里残留的「字幕:…」「花字:…」会和上面的禁令打架 —— 模型看到具体字幕内容就会画出来。
# 来源:脚本【声音】栏、视频提炼稿逐字照抄的画面花字、用户自己写的提示词。这里在送出前统一抹掉。 # 来源:脚本【声音】栏、视频提炼稿逐字照抄的画面花字、用户自己写的提示词。这里在送出前统一抹掉。
_CAPTION_WORDS = r"(?:字幕|花字|艺术字|贴片|水印|角标|标题栏|弹幕)" _CAPTION_WORDS = r"(?:字幕|花字|艺术字|贴片|水印|角标|标题栏|标题页|弹幕|屏显文字|屏幕文字|文字叠加|文本叠加|文字浮层)"
_CAPTION_FIELD_LINE_RE = re.compile(rf"^\s*[-•*]?\s*{_CAPTION_WORDS}\s*[:].*$") _CAPTION_FIELD_LINE_RE = re.compile(rf"^\s*[-•*]?\s*{_CAPTION_WORDS}\s*[:].*$")
_CAPTION_FIELD_INLINE_RE = re.compile(rf"[,;、]?\s*{_CAPTION_WORDS}\s*[:][^;。\n]*") _CAPTION_FIELD_INLINE_RE = re.compile(rf"[,;、]?\s*{_CAPTION_WORDS}\s*[:][^;。\n]*")
# 无冒号的写法同样要清:「右下角加字幕」「配上花字」「画面无字幕」等。 # 无冒号的写法同样要清:「右下角加字幕」「配上花字」「画面无字幕」等。
@@ -64,6 +64,13 @@ class VideoCaptionPolicyTests(SimpleTestCase):
"0-3s:中近景;固定机位;女主捧杯", "0-3s:中近景;固定机位;女主捧杯",
) )
def test_strips_newer_screen_text_directives(self):
"""用户不一定会说「字幕」;同义的屏显/文字叠加指令也不能到达视频模型。"""
for directive in ("加屏显文字", "做文字叠加", "加文本叠加", "加文字浮层", "插入标题页"):
with self.subTest(directive=directive):
cleaned = strip_caption_directives(f"0-3s:近景;推近;人物看向镜头,{directive}")
self.assertEqual(cleaned, "0-3s:近景;推近;人物看向镜头")
def test_strips_even_the_negated_form(self): def test_strips_even_the_negated_form(self):
"""「画面无字幕」也要清:模型不区分肯定否定,看到这个词就更容易画出来。""" """「画面无字幕」也要清:模型不区分肯定否定,看到这个词就更容易画出来。"""
self.assertEqual( self.assertEqual(