90 lines
4.1 KiB
SQL
90 lines
4.1 KiB
SQL
-- ============================================================
|
|
-- MiniMax-H3 — 完整 uapi + uapiio 部署 SQL
|
|
-- ============================================================
|
|
|
|
-- === 1. uapiio ===
|
|
INSERT IGNORE INTO uapiio (id, name, description, input_fields) VALUES (
|
|
'm_h3_video_gen_io',
|
|
'MiniMax-H3 视频生成',
|
|
'MiniMax-H3 视频生成v2接口。支持文生视频、图生视频(首帧)。',
|
|
'[
|
|
{"name":"model","label":"模型","uitype":"text","defaultvalue":"MiniMax-H3","hidden":true},
|
|
{"name":"prompt","label":"提示词","required":true,"uitype":"text"},
|
|
{"name":"image_files","label":"参考图片(首帧)","uitype":"image"},
|
|
{"name":"resolution","label":"分辨率","uitype":"code","data":[{"value":"768P","text":"768P"},{"value":"2K","text":"2K"}],"defaultvalue":"768P"},
|
|
{"name":"duration","label":"视频时长","uitype":"code","data":[{"value":4,"text":"4秒"},{"value":5,"text":"5秒"},{"value":6,"text":"6秒"},{"value":8,"text":"8秒"},{"value":10,"text":"10秒"},{"value":12,"text":"12秒"},{"value":15,"text":"15秒"}],"defaultvalue":5},
|
|
{"name":"ratio","label":"宽高比","uitype":"code","data":[{"value":"adaptive","text":"自适应"},{"value":"21:9","text":"21:9"},{"value":"16:9","text":"16:9"},{"value":"4:3","text":"4:3"},{"value":"1:1","text":"1:1"},{"value":"3:4","text":"3:4"},{"value":"9:16","text":"9:16"}],"defaultvalue":"adaptive"}
|
|
]'
|
|
);
|
|
|
|
-- === 2. uapi: 创建任务 (async) ===
|
|
-- data: bricks字段 → MiniMax content数组格式
|
|
-- response: {{response}} 透传,由 chunk_match='task_id' 提取task_id
|
|
INSERT IGNORE INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
|
|
'm_h3_create_task',
|
|
'minimax',
|
|
'video_generation_v2',
|
|
'MiniMax-H3 创建视频任务',
|
|
'创建 MiniMax-H3 视频生成任务,返回 task_id 用于轮询结果',
|
|
'0',
|
|
'async',
|
|
'/v2/video_generation',
|
|
'POST',
|
|
'task_id',
|
|
'{"Content-Type": "application/json", "Authorization": "Bearer {{apikey}}"}',
|
|
NULL,
|
|
'{
|
|
"model": "{{model or ''MiniMax-H3''}}",
|
|
"content": [
|
|
{% if image_files %}{% if isinstance(image_files, str) %}{% set image_files = [image_files] %}{% endif %}{% for img in image_files %}
|
|
{"type": "image_url", "image_url": {"url": "{{b64media2url(request, img)}}"}, "role": "first_frame"}{% if not loop.last or prompt %},{% endif %}{% endfor %}{% endif %}{% if prompt %}
|
|
{"type": "text", "text": {{json.dumps(prompt)}}}{% endif %}
|
|
],
|
|
"resolution": "{{resolution or ''768P''}}",
|
|
"duration": {{duration or 5}}{% if ratio %},
|
|
"ratio": "{{ratio}}"{% endif %}
|
|
}',
|
|
'{{response}}',
|
|
'm_h3_video_gen_io'
|
|
);
|
|
|
|
-- === 3. uapi: 查询任务 (sync) ===
|
|
-- response: 按Sage async task规范转换
|
|
-- output.task_status: SUCCEEDED → video+usage, FAILED → error
|
|
INSERT IGNORE INTO uapi (id, upappid, name, title, description, need_auth, stream, path, httpmethod, chunk_match, headers, params, data, response, ioid) VALUES (
|
|
'm_h3_query_task',
|
|
'minimax',
|
|
'query_video_generation',
|
|
'MiniMax-H3 查询视频任务',
|
|
'按 task_id 查询 MiniMax-H3 视频生成任务状态与结果',
|
|
'0',
|
|
'sync',
|
|
'/v2/query/video_generation/{{task_id}}',
|
|
'GET',
|
|
'',
|
|
'{"Authorization": "Bearer {{apikey}}"}',
|
|
NULL,
|
|
NULL,
|
|
'{
|
|
{% if output.task_status == ''SUCCEEDED'' %}
|
|
"video": "{{downloadfile2url(request, output.video_url)}}",
|
|
"usage": {{json.dumps(output.usage)}},
|
|
{% elif output.task_status == ''FAILED'' %}
|
|
"error": "{{output.code}}:{{output.message}}",
|
|
{% endif %}
|
|
"status": "{{output.task_status}}"
|
|
}',
|
|
'm_h3_video_gen_io'
|
|
);
|
|
|
|
-- === 4. upapp ===
|
|
INSERT IGNORE INTO upapp (id, name, baseurl, myappid, ownerid, description) VALUES (
|
|
'minimax', 'minimax', 'https://api.minimax.chat', 'minimax', 'platform',
|
|
'MiniMax 视频生成平台。提供 H3 视频生成模型。'
|
|
);
|
|
|
|
-- === 5. upappkey (请替换真实 API Key) ===
|
|
-- INSERT IGNORE INTO upappkey (id, upappid, orgid, apikey, enabled_date, expired_date) VALUES (
|
|
-- 'mk_minimax_default', 'minimax', 'platform', '<RC4_ENCODED_KEY>', '2025-01-01', '9999-12-31'
|
|
-- );
|