优化角色替换

This commit is contained in:
Azmat@qq.com
2026-08-31 12:18:03 +08:00
parent cbd4f362d9
commit 5f855075d9
4 changed files with 40 additions and 13 deletions
+6 -4
View File
@@ -48,8 +48,9 @@ class ModelRequirements:
raise ValueError("reference_mode=single 时 reference_images 必须等于 1")
if self.reference_mode == "multiple" and self.reference_images < 2:
raise ValueError("reference_mode=multiple 时 reference_images 必须至少为 2")
if self.duration is not None and self.duration <= 0:
raise ValueError("duration 必须大于 0")
# Seedance 的视频编辑模式用 -1 表示“跟随参考视频时长”。
if self.duration is not None and self.duration <= 0 and self.duration != -1:
raise ValueError("duration 必须大于 0,或为 -1(跟随参考视频)")
if self.char_count is not None and self.char_count < 0:
raise ValueError("char_count 不能为负数")
if self.speed_ratio is not None and self.speed_ratio <= 0:
@@ -221,10 +222,11 @@ def match_model_requirements(model: ModelConfig, requirements: ModelRequirements
("languages", requirements.language, "语言"),
("output_formats", requirements.output_format, "输出格式"),
):
if required and required not in _set(capabilities.get(field_name)):
# 视频编辑的 adaptive 比例由火山按输入视频决定,不是模型静态能力表中的比例档。
if required and required != "adaptive" and required not in _set(capabilities.get(field_name)):
reasons.append(f"不支持{label} {required}")
if requirements.duration is not None:
if requirements.duration is not None and requirements.duration != -1:
durations = capabilities.get("durations")
supported = set(durations) if isinstance(durations, (list, tuple, set, frozenset)) else set()
if requirements.duration not in supported: