The Freepik video generation API expects raw base64, not a data URI
(data:image/jpeg;base64,...). Strip the prefix in VideoAPI.generate
before building the payload.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>