fix(canvas): 视频设置 - 按渠道能力隐藏尺寸并联动分辨率宽高

This commit is contained in:
ddCat committed 2026-08-29 11:05:59 +08:00
1 parent 6d77c250c1
commit 4b75504f75
15 files changed
+196 -50

No files matched your search

+6 -2
View File
@@ -532,8 +532,12 @@ func validateVideoCapabilityConfig(value *VideoCapabilityConfig) error {
if err := validateVideoDuration(value.Duration); err != nil {
return err
}
if len(value.Ratios) == 0 || strings.TrimSpace(value.DefaultRatio) == "" || !containsCapabilityString(value.Ratios, value.DefaultRatio) {
return BadAuthRequest("请至少配置一个画面比例,并选择默认比例")
if len(value.Ratios) == 0 {
if strings.TrimSpace(value.DefaultRatio) != "" {
return BadAuthRequest("未配置画面比例时不能设置默认比例")
}
} else if strings.TrimSpace(value.DefaultRatio) == "" || !containsCapabilityString(value.Ratios, value.DefaultRatio) {
return BadAuthRequest("默认画面比例必须属于支持值")
}
if len(value.Resolutions) == 0 {
if strings.TrimSpace(value.DefaultResolution) != "" {
@@ -237,6 +237,25 @@ func TestNormalizeVideoCapabilityAllowsOmittedResolution(t *testing.T) {
}
}
func TestNormalizeVideoCapabilityAllowsOmittedRatio(t *testing.T) {
profile := DefaultModelCapabilityConfigForModel("autodl-comfyui", "minimax_h3_lightx2v_no_pic").Video
profile.Ratios = nil
profile.DefaultRatio = ""
profile.Resolutions = []string{"480p竖", "480p横"}
profile.DefaultResolution = "480p竖"
result, err := NormalizeModelCapabilityConfig("video", "autodl-comfyui", &ModelCapabilityConfig{Version: 1, Video: profile})
if err != nil {
t.Fatalf("NormalizeModelCapabilityConfig() error = %v", err)
}
if result.Video == nil || len(result.Video.Ratios) != 0 || result.Video.DefaultRatio != "" {
t.Fatalf("normalized video ratios = %#v", result.Video)
}
if err := validateVideoTask(result.Video, canvasGenerationInput{Config: providerConfig{Model: "minimax_h3_lightx2v_no_pic", VideoSeconds: "6", VQuality: "480p竖"}}); err != nil {
t.Fatalf("validateVideoTask() error = %v", err)
}
}
func TestCapabilitySpecFromModelCapabilityConfigProjectsImageSizeOnce(t *testing.T) {
config := &ModelCapabilityConfig{
Version: 1,