fix: skip aspect_ratio for kling-o1 models and detect image MIME via Pillow
kling-o1-pro and kling-o1-std silently fail when aspect_ratio is included in the payload — they derive it from the input image. Added VIDEO_ASPECT_RATIO_MODELS whitelist so only kling-elements and minimax-hailuo receive the parameter. Also switched image_to_base64 to use Pillow for format detection instead of trusting the file extension, which correctly handles files saved with the wrong extension. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -107,7 +107,14 @@ VIDEO_IMAGE_FIELDS: dict[VideoModel, str] = {
|
||||
VideoModel.MINIMAX_HAILUO: "image",
|
||||
}
|
||||
|
||||
# Kling Elements requires named aspect ratio slugs
|
||||
# Models that support an aspect_ratio parameter at all
|
||||
VIDEO_ASPECT_RATIO_MODELS: set[VideoModel] = {
|
||||
VideoModel.KLING_ELEMENTS_PRO,
|
||||
VideoModel.KLING_ELEMENTS_STD,
|
||||
VideoModel.MINIMAX_HAILUO,
|
||||
}
|
||||
|
||||
# Of those, these require named slug aspect ratios instead of "W:H" strings
|
||||
VIDEO_SLUG_ASPECT_RATIO_MODELS: set[VideoModel] = {
|
||||
VideoModel.KLING_ELEMENTS_PRO,
|
||||
VideoModel.KLING_ELEMENTS_STD,
|
||||
|
||||
Reference in New Issue
Block a user