From bd857c760f051de84812b160237a99eb64ef0bd2 Mon Sep 17 00:00:00 2001 From: wxg0103 <727495428@qq.com> Date: Wed, 16 Sep 2026 09:12:05 +0800 Subject: [PATCH] chore: add MiniMax H3 image-to-video model parameters and credential --- .../minimax_model_provider/credential/itv.py | 34 +++++++++++++++++++ .../minimax_model_provider.py | 8 ++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/apps/models_provider/impl/minimax_model_provider/credential/itv.py b/apps/models_provider/impl/minimax_model_provider/credential/itv.py index 2bbb01c5abb..caa779dd961 100644 --- a/apps/models_provider/impl/minimax_model_provider/credential/itv.py +++ b/apps/models_provider/impl/minimax_model_provider/credential/itv.py @@ -109,3 +109,37 @@ def get_model_params_setting_form(self, model_name: str): :return: Parameter setting form. """ return MiniMaxModelParams() + + +class MiniMaxH3ImageParams(BaseForm): + """ + Parameters for the MiniMax H3 / H3-Max (V2) image-to-video model. + ratio is always adaptive for image-to-video, so it is not exposed. + """ + + resolution = SingleSelect( + _('Resolution'), text_field='label', value_field='value', + option_list=[ + {'label': '480P', 'value': '480P'}, + {'label': '768P', 'value': '768P'}, + {'label': '2K', 'value': '2K'}, + ], + required=True, default_value='768P', + ) + duration = SliderField( + _('Duration (seconds)'), _min=4, _max=15, _step=1, precision=0, + required=True, default_value=4, + ) + + +class MiniMaxH3ImageToVideoModelCredential(ImageToVideoModelCredential): + """ + Credential for the MiniMax H3 / H3-Max (V2) image-to-video model. + Uses the V2 endpoint and requires resolution / duration. + """ + + api_base = forms.TextInputField('API URL', required=True, + default_value='https://api.minimax.io/v2') + + def get_model_params_setting_form(self, model_name: str): + return MiniMaxH3ImageParams() diff --git a/apps/models_provider/impl/minimax_model_provider/minimax_model_provider.py b/apps/models_provider/impl/minimax_model_provider/minimax_model_provider.py index de5a6e788df..fef87b2f755 100644 --- a/apps/models_provider/impl/minimax_model_provider/minimax_model_provider.py +++ b/apps/models_provider/impl/minimax_model_provider/minimax_model_provider.py @@ -9,7 +9,10 @@ ModelTypeConst, ModelInfoManage, ) -from models_provider.impl.minimax_model_provider.credential.itv import ImageToVideoModelCredential +from models_provider.impl.minimax_model_provider.credential.itv import ( + ImageToVideoModelCredential, + MiniMaxH3ImageToVideoModelCredential, +) from models_provider.impl.minimax_model_provider.credential.llm import MiniMaxLLMModelCredential from models_provider.impl.minimax_model_provider.credential.tti import MiniMaxTextToImageModelCredential from models_provider.impl.minimax_model_provider.credential.tts import MiniMaxTTSModelCredential @@ -31,6 +34,7 @@ minimax_ttv_model_credential = TextToVideoModelCredential() minimax_h3_ttv_model_credential = MiniMaxH3TextToVideoModelCredential() minimax_itv_model_credential = ImageToVideoModelCredential() +minimax_h3_itv_model_credential = MiniMaxH3ImageToVideoModelCredential() minimax_m2_7 = ModelInfo( "MiniMax-M2.7", @@ -97,6 +101,8 @@ ] model_info_itv_list = [ + ModelInfo("MiniMax-H3", _(""), ModelTypeConst.ITV, minimax_h3_itv_model_credential, GenerationVideoModel), + ModelInfo("MiniMax-H3-Max", _(""), ModelTypeConst.ITV, minimax_h3_itv_model_credential, GenerationVideoModel), ModelInfo("MiniMax-Hailuo-2.3", _(""), ModelTypeConst.ITV, minimax_itv_model_credential, GenerationVideoModel), ] model_info_manage = (