fix: 严格限制视频画面文字
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user