@henjicc/ai-sdk 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +275 -211
- package/README.md +580 -577
- package/dist/capabilities/speech-recognition/bailian/module.js +40 -26
- package/dist/capabilities/speech-recognition/bailian/parse.js +9 -2
- package/dist/capabilities/speech-recognition/bailian/presets.d.ts +9 -1
- package/dist/capabilities/speech-recognition/bailian/presets.js +7 -2
- package/dist/capabilities/speech-recognition/bailian/realtime/presets.d.ts +2 -1
- package/dist/capabilities/speech-recognition/bailian/realtime/presets.js +2 -0
- package/dist/capabilities/speech-recognition/bailian/types.d.ts +2 -0
- package/dist/capabilities/speech-recognition/bailian/upload.js +11 -58
- package/dist/capabilities/speech-recognition/index.d.ts +5 -0
- package/dist/capabilities/speech-recognition/siliconflow/presets.d.ts +2 -3
- package/dist/capabilities/speech-recognition/siliconflow/presets.js +0 -2
- package/dist/capabilities/translation/bailian/types.d.ts +3 -0
- package/dist/capabilities/translation/bailian/types.js +6 -4
- package/dist/catalog/apimart/flux-3-image.model.d.ts +3 -0
- package/dist/catalog/apimart/flux-3-image.model.js +62 -0
- package/dist/catalog/apimart/flux-3-video.model.d.ts +3 -0
- package/dist/catalog/apimart/flux-3-video.model.js +120 -0
- package/dist/catalog/apimart/gemini-omni-1.2-flash.model.d.ts +3 -0
- package/dist/catalog/apimart/gemini-omni-1.2-flash.model.js +175 -0
- package/dist/catalog/apimart/gemini-omni-flash.model.js +30 -37
- package/dist/catalog/apimart/gpt-image-2.5.model.js +1 -1
- package/dist/catalog/apimart/gpt-image-2.6.model.d.ts +3 -0
- package/dist/catalog/apimart/gpt-image-2.6.model.js +103 -0
- package/dist/catalog/apimart/gpt-image-2.model.js +1 -1
- package/dist/catalog/apimart/grok-imagine-2.0.model.js +1 -1
- package/dist/catalog/apimart/grok-imagine-video-1.5.model.d.ts +3 -0
- package/dist/catalog/apimart/grok-imagine-video-1.5.model.js +85 -0
- package/dist/catalog/apimart/happyhorse-1.1.model.d.ts +3 -0
- package/dist/catalog/apimart/happyhorse-1.1.model.js +78 -0
- package/dist/catalog/apimart/kling-3.0-omni.model.js +12 -2
- package/dist/catalog/apimart/kling-3.0-turbo.model.js +5 -2
- package/dist/catalog/apimart/kling-3.0.model.js +1 -1
- package/dist/catalog/apimart/kling-4.0.model.d.ts +3 -0
- package/dist/catalog/apimart/kling-4.0.model.js +149 -0
- package/dist/catalog/apimart/midjourney-video.model.js +31 -32
- package/dist/catalog/apimart/midjourney.model.js +11 -1
- package/dist/catalog/apimart/minimax-h3-max.model.d.ts +3 -0
- package/dist/catalog/apimart/minimax-h3-max.model.js +101 -0
- package/dist/catalog/apimart/minimax-h3.model.js +8 -3
- package/dist/catalog/apimart/nano-banana-2-lite.model.js +1 -1
- package/dist/catalog/apimart/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/apimart/nano-banana-2.1.model.js +49 -0
- package/dist/catalog/apimart/nano-banana-2.model.js +1 -1
- package/dist/catalog/apimart/nano-banana-pro.model.js +1 -1
- package/dist/catalog/apimart/qwen-image-3.0.model.js +1 -1
- package/dist/catalog/apimart/seedance-2.0-fast.model.js +1 -1
- package/dist/catalog/apimart/seedance-2.0-mini.model.js +4 -4
- package/dist/catalog/apimart/seedance-2.0.model.js +1 -1
- package/dist/catalog/apimart/seedance-2.5.model.js +27 -5
- package/dist/catalog/apimart/seedream-5.0-flash.model.d.ts +3 -0
- package/dist/catalog/apimart/seedream-5.0-flash.model.js +52 -0
- package/dist/catalog/apimart/seedream-5.0-lite.model.js +4 -4
- package/dist/catalog/apimart/seedream-5.0-pro.model.js +1 -1
- package/dist/catalog/apimart/veo-3.1.model.d.ts +3 -0
- package/dist/catalog/apimart/veo-3.1.model.js +132 -0
- package/dist/catalog/apimart/wan-2.7-image.model.d.ts +3 -0
- package/dist/catalog/apimart/wan-2.7-image.model.js +80 -0
- package/dist/catalog/apimart/wan-3.0.model.d.ts +3 -0
- package/dist/catalog/apimart/wan-3.0.model.js +101 -0
- package/dist/catalog/apimart/z-image-turbo.model.js +1 -1
- package/dist/catalog/audio/tts-common.d.ts +2 -1
- package/dist/catalog/audio/tts-common.js +5 -1
- package/dist/catalog/bailian/cosyvoice-v3.5.model.js +1 -1
- package/dist/catalog/bailian/minimax-h3.model.d.ts +3 -0
- package/dist/catalog/bailian/minimax-h3.model.js +95 -0
- package/dist/catalog/bailian/minimax-speech-2.8.model.js +1 -1
- package/dist/catalog/bailian/qwen-audio-3.1-tts-flash.model.js +14 -3
- package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.d.ts +2 -0
- package/dist/catalog/bailian/qwen-audio-3.1-tts-plus.model.js +44 -0
- package/dist/catalog/bailian/qwen-image-3.0.model.js +1 -1
- package/dist/catalog/bailian/wan-3.0.model.d.ts +3 -0
- package/dist/catalog/bailian/wan-3.0.model.js +104 -0
- package/dist/catalog/bailian/z-image-turbo.model.js +1 -1
- package/dist/catalog/consumer-contract.d.ts +16 -1
- package/dist/catalog/consumer-contract.js +31 -0
- package/dist/catalog/continuation.d.ts +20 -0
- package/dist/catalog/continuation.js +41 -0
- package/dist/catalog/fal/bria-creative-upscale.model.js +1 -1
- package/dist/catalog/fal/eleven-v3-tts.model.js +1 -1
- package/dist/catalog/fal/eleven-v4-tts.model.d.ts +2 -0
- package/dist/catalog/fal/eleven-v4-tts.model.js +38 -0
- package/dist/catalog/fal/flux-3-video.model.d.ts +2 -0
- package/dist/catalog/fal/flux-3-video.model.js +187 -0
- package/dist/catalog/fal/flux-3.model.d.ts +2 -0
- package/dist/catalog/fal/flux-3.model.js +69 -0
- package/dist/catalog/fal/gemini-omni-1.2-flash.model.d.ts +2 -0
- package/dist/catalog/fal/gemini-omni-1.2-flash.model.js +129 -0
- package/dist/catalog/fal/gemini-omni-flash.model.js +1 -1
- package/dist/catalog/fal/gpt-image-2.5.model.js +1 -1
- package/dist/catalog/fal/gpt-image-2.6.model.d.ts +2 -0
- package/dist/catalog/fal/gpt-image-2.6.model.js +97 -0
- package/dist/catalog/fal/gpt-image-2.model.js +1 -1
- package/dist/catalog/fal/grok-imagine-2.0.model.js +1 -1
- package/dist/catalog/fal/grok-imagine-video-1.5.model.d.ts +2 -0
- package/dist/catalog/fal/grok-imagine-video-1.5.model.js +121 -0
- package/dist/catalog/fal/hailuo-02.model.js +8 -4
- package/dist/catalog/fal/hailuo-2.3.model.js +1 -1
- package/dist/catalog/fal/ic-light-v2.model.js +1 -1
- package/dist/catalog/fal/ideogram-upscale.model.js +1 -1
- package/dist/catalog/fal/kling-3.0-omni.model.js +1 -1
- package/dist/catalog/fal/kling-3.0-turbo.model.js +5 -2
- package/dist/catalog/fal/kling-3.0.model.js +4 -1
- package/dist/catalog/fal/kling-4.0-flash.model.d.ts +2 -0
- package/dist/catalog/fal/kling-4.0-flash.model.js +132 -0
- package/dist/catalog/fal/kling-4.0.model.d.ts +2 -0
- package/dist/catalog/fal/kling-4.0.model.js +169 -0
- package/dist/catalog/fal/kling-image-o1.model.js +1 -1
- package/dist/catalog/fal/kling-video-o1.model.js +18 -7
- package/dist/catalog/fal/kling-video-v2.6-pro.model.js +3 -2
- package/dist/catalog/fal/ltx-2.3.model.d.ts +2 -0
- package/dist/catalog/fal/ltx-2.3.model.js +223 -0
- package/dist/catalog/fal/ltx-2.model.js +2 -1
- package/dist/catalog/fal/minimax-h3-max.model.d.ts +2 -0
- package/dist/catalog/fal/minimax-h3-max.model.js +132 -0
- package/dist/catalog/fal/minimax-h3.model.js +3 -4
- package/dist/catalog/fal/minimax-speech-2.8.model.js +1 -1
- package/dist/catalog/fal/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/fal/nano-banana-2.1.model.js +68 -0
- package/dist/catalog/fal/nano-banana-2.model.js +1 -1
- package/dist/catalog/fal/nano-banana-pro.model.js +1 -1
- package/dist/catalog/fal/nano-banana.model.js +1 -1
- package/dist/catalog/fal/pixverse-v5.5.model.js +9 -4
- package/dist/catalog/fal/qwen-image-3.0.model.js +2 -2
- package/dist/catalog/fal/qwen3-tts-1.7b.model.js +4 -3
- package/dist/catalog/fal/seedance-2.0-fast.model.js +1 -1
- package/dist/catalog/fal/seedance-2.0-mini.model.js +1 -1
- package/dist/catalog/fal/seedance-2.0.model.js +1 -1
- package/dist/catalog/fal/seedance-2.5.model.js +5 -2
- package/dist/catalog/fal/seedance.model.js +3 -2
- package/dist/catalog/fal/seedream-5.0-lite.model.js +1 -1
- package/dist/catalog/fal/seedream-5.0-pro.model.js +1 -1
- package/dist/catalog/fal/seedream-v4.5.model.js +1 -1
- package/dist/catalog/fal/seedream-v4.model.js +1 -1
- package/dist/catalog/fal/seedvr2-image-upscale.model.js +1 -1
- package/dist/catalog/fal/topaz-image-upscale.model.js +1 -1
- package/dist/catalog/fal/topaz-transparent-upscale.model.js +1 -1
- package/dist/catalog/fal/utils/klingV4.d.ts +17 -0
- package/dist/catalog/fal/utils/klingV4.js +33 -0
- package/dist/catalog/fal/veo-3.1.model.js +5 -2
- package/dist/catalog/fal/vidu-q2.model.js +20 -8
- package/dist/catalog/fal/wan-2.5-preview.model.js +4 -1
- package/dist/catalog/fal/wan-3.0.model.d.ts +2 -0
- package/dist/catalog/fal/wan-3.0.model.js +135 -0
- package/dist/catalog/fal/z-image-turbo.model.js +10 -9
- package/dist/catalog/grsai/gpt-image-2.5.model.js +13 -31
- package/dist/catalog/grsai/gpt-image-2.6.model.d.ts +2 -0
- package/dist/catalog/grsai/gpt-image-2.6.model.js +37 -0
- package/dist/catalog/grsai/gpt-image-2.model.js +5 -2
- package/dist/catalog/grsai/nano-banana-2-lite.model.js +1 -1
- package/dist/catalog/grsai/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/grsai/nano-banana-2.1.model.js +29 -0
- package/dist/catalog/grsai/nano-banana-2.model.js +1 -1
- package/dist/catalog/grsai/nano-banana-pro.model.js +1 -1
- package/dist/catalog/grsai/wan-3.0.model.d.ts +2 -0
- package/dist/catalog/grsai/wan-3.0.model.js +78 -0
- package/dist/catalog/index.d.ts +1 -0
- package/dist/catalog/index.js +205 -124
- package/dist/catalog/kie/eleven-v3-dialogue.model.js +1 -1
- package/dist/catalog/kie/flux-3-klein.model.d.ts +2 -0
- package/dist/catalog/kie/flux-3-klein.model.js +58 -0
- package/dist/catalog/kie/gemini-3.1-flash-tts.model.js +7 -4
- package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.d.ts +2 -0
- package/dist/catalog/kie/gemini-3.8-flash-lite-tts.model.js +11 -0
- package/dist/catalog/kie/gemini-3.8-flash-tts.model.d.ts +2 -0
- package/dist/catalog/kie/gemini-3.8-flash-tts.model.js +11 -0
- package/dist/catalog/kie/gemini-omni-video.model.js +8 -30
- package/dist/catalog/kie/gemini38Tts.d.ts +3 -0
- package/dist/catalog/kie/gemini38Tts.js +40 -0
- package/dist/catalog/kie/gpt-image-2.5.model.js +1 -1
- package/dist/catalog/kie/gpt-image-2.6.model.d.ts +2 -0
- package/dist/catalog/kie/gpt-image-2.6.model.js +87 -0
- package/dist/catalog/kie/gpt-image-2.model.js +8 -12
- package/dist/catalog/kie/grok-imagine-2.0.model.js +1 -1
- package/dist/catalog/kie/grok-imagine-video-1.5.model.d.ts +2 -0
- package/dist/catalog/kie/grok-imagine-video-1.5.model.js +52 -0
- package/dist/catalog/kie/grok-imagine-video.model.js +7 -3
- package/dist/catalog/kie/grok-imagine.model.js +4 -2
- package/dist/catalog/kie/hailuo-02.model.js +6 -4
- package/dist/catalog/kie/hailuo-2-3.model.js +1 -1
- package/dist/catalog/kie/happyhorse-1.1.model.js +5 -2
- package/dist/catalog/kie/kling-3.0-omni.model.js +51 -23
- package/dist/catalog/kie/kling-3.0-turbo.model.js +1 -1
- package/dist/catalog/kie/kling-3.0.model.js +1 -8
- package/dist/catalog/kie/kling-4.0-flash.model.d.ts +2 -0
- package/dist/catalog/kie/kling-4.0-flash.model.js +16 -0
- package/dist/catalog/kie/kling-4.0.model.d.ts +2 -0
- package/dist/catalog/kie/kling-4.0.model.js +17 -0
- package/dist/catalog/kie/kling-v2-6.model.js +1 -1
- package/dist/catalog/kie/kling40.d.ts +21 -0
- package/dist/catalog/kie/kling40.js +129 -0
- package/dist/catalog/kie/minimax-h3.model.js +16 -21
- package/dist/catalog/kie/nano-banana-2-lite.model.js +1 -1
- package/dist/catalog/kie/nano-banana-2.1.model.d.ts +2 -0
- package/dist/catalog/kie/nano-banana-2.1.model.js +34 -0
- package/dist/catalog/kie/nano-banana-2.model.js +2 -2
- package/dist/catalog/kie/nano-banana-pro.model.js +1 -1
- package/dist/catalog/kie/qwen-image-3.0.model.js +2 -10
- package/dist/catalog/kie/seedance-1.5-pro.model.js +2 -1
- package/dist/catalog/kie/seedance-2.0-fast.model.js +5 -1
- package/dist/catalog/kie/seedance-2.0-mini.model.js +5 -1
- package/dist/catalog/kie/seedance-2.0.model.js +5 -1
- package/dist/catalog/kie/seedance-2.5.model.js +10 -20
- package/dist/catalog/kie/seedance-v1.model.js +8 -4
- package/dist/catalog/kie/seedream-4.0.model.js +1 -1
- package/dist/catalog/kie/seedream-4.5.model.js +1 -1
- package/dist/catalog/kie/seedream-5.0-lite.model.js +1 -1
- package/dist/catalog/kie/seedream-5.0-pro.model.js +1 -1
- package/dist/catalog/kie/wan-3.0-prime.model.d.ts +2 -0
- package/dist/catalog/kie/wan-3.0-prime.model.js +15 -0
- package/dist/catalog/kie/wan-3.0.model.d.ts +2 -0
- package/dist/catalog/kie/wan-3.0.model.js +15 -0
- package/dist/catalog/kie/wan30.d.ts +10 -0
- package/dist/catalog/kie/wan30.js +78 -0
- package/dist/catalog/kie/z-image.model.js +1 -1
- package/dist/catalog/modelscope/flux-1-krea-dev.model.js +4 -2
- package/dist/catalog/modelscope/majicmix-realistic.model.js +3 -2
- package/dist/catalog/modelscope/modelscope-custom.model.js +3 -2
- package/dist/catalog/modelscope/qwen-image-2512.model.d.ts +5 -0
- package/dist/catalog/modelscope/{qwen-image.model.js → qwen-image-2512.model.js} +11 -8
- package/dist/catalog/modelscope/qwen-image-edit-2511.model.d.ts +5 -0
- package/dist/catalog/modelscope/{qwen-image-edit-2509.model.js → qwen-image-edit-2511.model.js} +9 -7
- package/dist/catalog/modelscope/sdxl-14-ckpt.model.js +3 -2
- package/dist/catalog/modelscope/utils.js +2 -2
- package/dist/catalog/modelscope/z-image-turbo.model.js +3 -2
- package/dist/catalog/ppio/kling-3.0.model.js +4 -1
- package/dist/catalog/ppio/minimax-speech.model.js +2 -1
- package/dist/catalog/shared/mediaPresence.d.ts +8 -1
- package/dist/catalog/shared/mediaPresence.js +21 -1
- package/dist/catalog/shared/nanoBanana21.d.ts +11 -0
- package/dist/catalog/shared/nanoBanana21.js +30 -0
- package/dist/catalog/shared/shotList.d.ts +31 -0
- package/dist/catalog/shared/shotList.js +48 -0
- package/dist/catalog/shared/subjectElements.d.ts +36 -0
- package/dist/catalog/shared/subjectElements.js +93 -0
- package/dist/catalog/siliconflow/moss-ttsd-0.5.model.js +1 -1
- package/dist/catalog/validate.js +14 -1
- package/dist/catalog/volcengine/seedance-2.0-fast.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.0-fast.model.js +11 -0
- package/dist/catalog/volcengine/seedance-2.0-mini.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.0-mini.model.js +11 -0
- package/dist/catalog/volcengine/seedance-2.0.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.0.model.js +11 -0
- package/dist/catalog/volcengine/seedance-2.5.model.d.ts +2 -0
- package/dist/catalog/volcengine/seedance-2.5.model.js +11 -0
- package/dist/catalog/volcengine/seedance.d.ts +17 -0
- package/dist/catalog/volcengine/seedance.js +192 -0
- package/dist/catalog/volcengine/seedream-5.0-lite.model.js +2 -1
- package/dist/catalog/volcengine/seedream-5.0.js +1 -1
- package/dist/catalog/volcengine-speech/seed-icl-2.0.model.d.ts +1 -0
- package/dist/catalog/volcengine-speech/seed-icl-2.0.model.js +52 -10
- package/dist/catalog/volcengine-speech/seed-tts-2.0-voices.d.ts +2 -0
- package/dist/catalog/volcengine-speech/seed-tts-2.0-voices.js +438 -0
- package/dist/catalog/volcengine-speech/seed-tts-2.0.model.js +4 -4
- package/dist/discovery/index.js +13 -6
- package/dist/generation/core.d.ts +6 -0
- package/dist/generation/core.js +10 -2
- package/dist/index.d.ts +8 -0
- package/dist/index.js +9 -0
- package/dist/llm/bigmodel/preset.js +2 -1
- package/dist/llm/bigmodel/profiles.js +0 -6
- package/dist/llm/chat.d.ts +8 -0
- package/dist/llm/chat.js +18 -2
- package/dist/llm/chatTypes.d.ts +6 -0
- package/dist/llm/defaults.d.ts +2 -2
- package/dist/llm/defaults.js +3 -3
- package/dist/llm/groq/preset.js +18 -2
- package/dist/llm/modelCatalog.d.ts +9 -2
- package/dist/llm/modelCatalog.js +17 -4
- package/dist/llm/modelCatalogEntries.d.ts +2 -0
- package/dist/llm/modelCatalogEntries.js +197 -42
- package/dist/llm/providerPresets.d.ts +3 -0
- package/dist/llm/providerPresets.js +145 -32
- package/dist/llm/providerReasoningRequest.js +28 -11
- package/dist/llm/siliconflow/index.js +1 -1
- package/dist/llm/siliconflow/preset.js +30 -0
- package/dist/llm/types.d.ts +6 -0
- package/dist/packs/models/{ppio/wan-2.5-preview.d.ts → apimart/flux-3-image.d.ts} +1 -1
- package/dist/packs/models/apimart/flux-3-image.js +7 -0
- package/dist/packs/models/apimart/flux-3-video.d.ts +6 -0
- package/dist/packs/models/apimart/flux-3-video.js +7 -0
- package/dist/packs/models/apimart/gemini-omni-1.2-flash.d.ts +6 -0
- package/dist/packs/models/apimart/gemini-omni-1.2-flash.js +7 -0
- package/dist/packs/models/{modelscope/qwen-image.d.ts → apimart/gpt-image-2.6.d.ts} +1 -1
- package/dist/packs/models/apimart/gpt-image-2.6.js +7 -0
- package/dist/packs/models/apimart/grok-imagine-video-1.5.d.ts +6 -0
- package/dist/packs/models/apimart/grok-imagine-video-1.5.js +7 -0
- package/dist/packs/models/apimart/happyhorse-1.1.d.ts +6 -0
- package/dist/packs/models/apimart/happyhorse-1.1.js +7 -0
- package/dist/packs/models/apimart/kling-4.0.d.ts +6 -0
- package/dist/packs/models/apimart/kling-4.0.js +7 -0
- package/dist/packs/models/apimart/minimax-h3-max.d.ts +6 -0
- package/dist/packs/models/apimart/minimax-h3-max.js +7 -0
- package/dist/packs/models/{ppio/minimax-hailuo-2.3.d.ts → apimart/nano-banana-2.1.d.ts} +1 -1
- package/dist/packs/models/{ppio/minimax-hailuo-2.3.js → apimart/nano-banana-2.1.js} +4 -4
- package/dist/packs/models/apimart/seedream-5.0-flash.d.ts +6 -0
- package/dist/packs/models/apimart/seedream-5.0-flash.js +7 -0
- package/dist/packs/models/apimart/veo-3.1.d.ts +6 -0
- package/dist/packs/models/apimart/veo-3.1.js +7 -0
- package/dist/packs/models/apimart/wan-2.7-image.d.ts +6 -0
- package/dist/packs/models/apimart/wan-2.7-image.js +7 -0
- package/dist/packs/models/apimart/wan-3.0.d.ts +6 -0
- package/dist/packs/models/apimart/wan-3.0.js +7 -0
- package/dist/packs/models/bailian/cosyvoice-v3.5.js +1 -1
- package/dist/packs/models/bailian/minimax-h3.d.ts +6 -0
- package/dist/packs/models/bailian/minimax-h3.js +7 -0
- package/dist/packs/models/bailian/minimax-speech-2.8.js +1 -1
- package/dist/packs/models/bailian/qwen-audio-3.1-tts-flash.js +1 -1
- package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.d.ts +6 -0
- package/dist/packs/models/bailian/qwen-audio-3.1-tts-plus.js +7 -0
- package/dist/packs/models/bailian/qwen-image-3.0.js +1 -1
- package/dist/packs/models/bailian/wan-3.0.d.ts +6 -0
- package/dist/packs/models/bailian/wan-3.0.js +7 -0
- package/dist/packs/models/bailian/z-image-turbo.js +1 -1
- package/dist/packs/models/fal/eleven-v4-tts.d.ts +6 -0
- package/dist/packs/models/{ppio/wan-2.5-preview.js → fal/eleven-v4-tts.js} +4 -4
- package/dist/packs/models/fal/flux-3-video.d.ts +6 -0
- package/dist/packs/models/fal/flux-3-video.js +7 -0
- package/dist/packs/models/{ppio/wan-2.6.d.ts → fal/flux-3.d.ts} +1 -1
- package/dist/packs/models/{ppio/wan-2.6.js → fal/flux-3.js} +4 -4
- package/dist/packs/models/fal/gemini-omni-1.2-flash.d.ts +6 -0
- package/dist/packs/models/fal/gemini-omni-1.2-flash.js +7 -0
- package/dist/packs/models/fal/gpt-image-2.6.d.ts +6 -0
- package/dist/packs/models/fal/gpt-image-2.6.js +7 -0
- package/dist/packs/models/fal/grok-imagine-video-1.5.d.ts +6 -0
- package/dist/packs/models/fal/grok-imagine-video-1.5.js +7 -0
- package/dist/packs/models/fal/kling-4.0-flash.d.ts +6 -0
- package/dist/packs/models/fal/kling-4.0-flash.js +7 -0
- package/dist/packs/models/fal/kling-4.0.d.ts +6 -0
- package/dist/packs/models/{ppio/wan-2.7.js → fal/kling-4.0.js} +4 -4
- package/dist/packs/models/{ppio/wan-2.7.d.ts → fal/ltx-2.3.d.ts} +1 -1
- package/dist/packs/models/fal/ltx-2.3.js +7 -0
- package/dist/packs/models/fal/minimax-h3-max.d.ts +6 -0
- package/dist/packs/models/fal/minimax-h3-max.js +7 -0
- package/dist/packs/models/fal/nano-banana-2.1.d.ts +6 -0
- package/dist/packs/models/fal/nano-banana-2.1.js +7 -0
- package/dist/packs/models/fal/wan-3.0.d.ts +6 -0
- package/dist/packs/models/fal/wan-3.0.js +7 -0
- package/dist/packs/models/grsai/gpt-image-2.6.d.ts +6 -0
- package/dist/packs/models/grsai/gpt-image-2.6.js +7 -0
- package/dist/packs/models/grsai/nano-banana-2.1.d.ts +6 -0
- package/dist/packs/models/grsai/nano-banana-2.1.js +7 -0
- package/dist/packs/models/grsai/wan-3.0.d.ts +6 -0
- package/dist/packs/models/grsai/wan-3.0.js +7 -0
- package/dist/packs/models/kie/flux-3-klein.d.ts +6 -0
- package/dist/packs/models/kie/flux-3-klein.js +7 -0
- package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.d.ts +6 -0
- package/dist/packs/models/kie/gemini-3.8-flash-lite-tts.js +7 -0
- package/dist/packs/models/kie/{eleven-turbo-2.5-tts.d.ts → gemini-3.8-flash-tts.d.ts} +1 -1
- package/dist/packs/models/kie/{eleven-turbo-2.5-tts.js → gemini-3.8-flash-tts.js} +1 -1
- package/dist/packs/models/kie/gpt-image-2.6.d.ts +6 -0
- package/dist/packs/models/kie/gpt-image-2.6.js +7 -0
- package/dist/packs/models/kie/grok-imagine-video-1.5.d.ts +6 -0
- package/dist/packs/models/kie/grok-imagine-video-1.5.js +7 -0
- package/dist/packs/models/kie/kling-4.0-flash.d.ts +6 -0
- package/dist/packs/models/kie/kling-4.0-flash.js +7 -0
- package/dist/packs/models/kie/kling-4.0.d.ts +6 -0
- package/dist/packs/models/kie/kling-4.0.js +7 -0
- package/dist/packs/models/kie/nano-banana-2.1.d.ts +6 -0
- package/dist/packs/models/kie/nano-banana-2.1.js +7 -0
- package/dist/packs/models/kie/wan-3.0-prime.d.ts +6 -0
- package/dist/packs/models/kie/wan-3.0-prime.js +7 -0
- package/dist/packs/models/kie/wan-3.0.d.ts +6 -0
- package/dist/packs/models/kie/wan-3.0.js +7 -0
- package/dist/packs/models/modelscope/flux-1-krea-dev.js +1 -1
- package/dist/packs/models/modelscope/majicmix-realistic.js +1 -1
- package/dist/packs/models/modelscope/modelscope-custom.js +1 -1
- package/dist/packs/models/modelscope/qwen-image-2512.d.ts +6 -0
- package/dist/packs/models/modelscope/{qwen-image.js → qwen-image-2512.js} +2 -2
- package/dist/packs/models/modelscope/{qwen-image-edit-2509.d.ts → qwen-image-edit-2511.d.ts} +1 -1
- package/dist/packs/models/modelscope/{qwen-image-edit-2509.js → qwen-image-edit-2511.js} +2 -2
- package/dist/packs/models/modelscope/sdxl-14-ckpt.js +1 -1
- package/dist/packs/models/modelscope/z-image-turbo.js +1 -1
- package/dist/packs/models/volcengine/seedance-2.0-fast.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.0-fast.js +7 -0
- package/dist/packs/models/volcengine/seedance-2.0-mini.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.0-mini.js +7 -0
- package/dist/packs/models/volcengine/seedance-2.0.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.0.js +7 -0
- package/dist/packs/models/volcengine/seedance-2.5.d.ts +6 -0
- package/dist/packs/models/volcengine/seedance-2.5.js +7 -0
- package/dist/packs/models/volcengine/seedream-5.0-flash.js +1 -1
- package/dist/packs/models/volcengine/seedream-5.0-lite.js +1 -1
- package/dist/packs/models/volcengine/seedream-5.0-pro.js +1 -1
- package/dist/packs/provider-adapters/bailian.js +1 -1
- package/dist/packs/provider-adapters/modelscope.js +1 -1
- package/dist/packs/provider-adapters/volcengine.js +1 -1
- package/dist/packs/provider-packs/apimart.d.ts +1 -1
- package/dist/packs/provider-packs/apimart.js +35 -22
- package/dist/packs/provider-packs/bailian.d.ts +1 -1
- package/dist/packs/provider-packs/bailian.js +8 -5
- package/dist/packs/provider-packs/fal.d.ts +1 -1
- package/dist/packs/provider-packs/fal.js +52 -40
- package/dist/packs/provider-packs/grsai.d.ts +1 -1
- package/dist/packs/provider-packs/grsai.js +8 -5
- package/dist/packs/provider-packs/kie.d.ts +1 -1
- package/dist/packs/provider-packs/kie.js +41 -32
- package/dist/packs/provider-packs/modelscope.js +2 -2
- package/dist/packs/provider-packs/ppio.d.ts +1 -1
- package/dist/packs/provider-packs/ppio.js +2 -6
- package/dist/packs/provider-packs/volcengine.d.ts +1 -1
- package/dist/packs/provider-packs/volcengine.js +8 -4
- package/dist/pricing/index.d.ts +1 -0
- package/dist/pricing/index.js +1 -0
- package/dist/pricing/mediaContext.d.ts +6 -1
- package/dist/pricing/mediaContext.js +12 -5
- package/dist/pricing/tokenPricing.d.ts +36 -0
- package/dist/pricing/tokenPricing.js +26 -0
- package/dist/providers/bailian.d.ts +1 -1
- package/dist/providers/bailian.js +71 -4
- package/dist/providers/fal.js +11 -1
- package/dist/providers/helpers.d.ts +1 -1
- package/dist/providers/helpers.js +17 -5
- package/dist/providers/kie.js +16 -5
- package/dist/providers/metadata.js +2 -2
- package/dist/providers/openai-speech.d.ts +6 -0
- package/dist/providers/openai-speech.js +31 -0
- package/dist/providers/providerAccessErrors.d.ts +3 -0
- package/dist/providers/providerAccessErrors.js +73 -0
- package/dist/providers/siliconflow.js +2 -27
- package/dist/providers/volcengine-speech.d.ts +1 -1
- package/dist/providers/volcengine-speech.js +31 -8
- package/dist/providers/volcengine-voice-clone.d.ts +3 -0
- package/dist/providers/volcengine-voice-clone.js +138 -0
- package/dist/providers/volcengine.d.ts +1 -1
- package/dist/providers/volcengine.js +89 -11
- package/dist/runtime/retry.js +3 -0
- package/dist/tool-packs/fal-erase/models/bria-eraser.model.js +1 -1
- package/dist/tool-packs/fal-erase/models/finegrain-eraser.model.js +1 -1
- package/dist/tool-packs/fal-erase/models/flux-pro-erase.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/control-light.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/outpaint.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/photo-restoration.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/pixelcut-background-removal.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/product-photography.model.js +1 -1
- package/dist/tool-packs/fal-image-utilities/models/relighting.model.js +1 -1
- package/dist/tool-packs/fal-multi-angle/models/flux-2-multiple-angles.model.js +1 -1
- package/dist/tool-packs/fal-multi-angle/models/perspective-change.model.js +1 -1
- package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2511-multiple-angles.model.js +1 -1
- package/dist/types/model.d.ts +68 -12
- package/dist/types/model.js +3 -0
- package/dist/types/modelTags.d.ts +142 -0
- package/dist/types/modelTags.js +44 -0
- package/dist/types/runtime.d.ts +3 -0
- package/dist/types/speechTimings.d.ts +15 -0
- package/dist/types/speechTimings.js +1 -0
- package/dist/upload/apimart-upload.d.ts +1 -1
- package/dist/upload/apimart-upload.js +37 -15
- package/dist/upload/bailian-oss-upload.d.ts +32 -0
- package/dist/upload/bailian-oss-upload.js +74 -0
- package/dist/upload/{fal-legacy.js → fal-host-fetch.js} +2 -2
- package/dist/upload/fal-transport.d.ts +6 -0
- package/dist/upload/fal-transport.js +2 -1
- package/dist/upload/index.d.ts +2 -2
- package/dist/upload/index.js +4 -7
- package/dist/upload/kie-upload.d.ts +1 -1
- package/dist/upload/kie-upload.js +34 -12
- package/dist/upload/media-binary.js +1 -0
- package/dist/upload/media-fields.js +7 -2
- package/dist/upload/preprocess-core.d.ts +2 -0
- package/dist/upload/preprocess-core.js +2 -0
- package/dist/upload/preprocess.d.ts +1 -1
- package/dist/upload/preprocess.js +12 -3
- package/dist/upload/provider-preprocessors/apimart.d.ts +1 -1
- package/dist/upload/provider-preprocessors/apimart.js +13 -5
- package/dist/upload/provider-preprocessors/bailian.d.ts +8 -0
- package/dist/upload/provider-preprocessors/bailian.js +45 -0
- package/dist/upload/provider-preprocessors/kie.d.ts +1 -1
- package/dist/upload/provider-preprocessors/kie.js +26 -9
- package/dist/upload/provider-preprocessors/ppio.d.ts +1 -2
- package/dist/upload/provider-preprocessors/ppio.js +2 -29
- package/dist/upload/provider-preprocessors/public-host.d.ts +5 -0
- package/dist/upload/provider-preprocessors/public-host.js +7 -0
- package/dist/upload/provider-preprocessors/volcengine.d.ts +5 -0
- package/dist/upload/provider-preprocessors/volcengine.js +10 -0
- package/dist/upload/public-host-upload.d.ts +7 -0
- package/dist/upload/public-host-upload.js +55 -0
- package/dist/upload/upload-response.js +12 -7
- package/docs/README.md +26 -26
- package/docs/consumers.md +150 -124
- package/docs/llm-adaptation/README.md +180 -166
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +108 -104
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +94 -76
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +89 -84
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +126 -126
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +238 -234
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +131 -87
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +112 -84
- package/docs/llm-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +88 -88
- package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -32
- package/docs/model-adaptation/Bria-/345/210/233/346/204/217/346/224/276/345/244/247/Bria-/345/210/233/346/204/217/346/224/276/345/244/247_Fal.md +31 -31
- package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -85
- package/docs/model-adaptation/Eleven-v4/Eleven-v4_Fal.md +49 -0
- package/docs/model-adaptation/FLUX-2-/345/244/232/350/247/222/345/272/246/FLUX-2-/345/244/232/350/247/222/345/272/246_Fal.md +107 -107
- package/docs/model-adaptation/FLUX-3/FLUX-3_APIMart.md +65 -0
- package/docs/model-adaptation/FLUX-3/FLUX-3_Fal.md +48 -0
- package/docs/model-adaptation/FLUX-3-Klein/FLUX-3-Klein_KIE.md +38 -0
- package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_APIMart.md +84 -0
- package/docs/model-adaptation/FLUX-3-Video/FLUX-3-Video_Fal.md +80 -0
- package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -31
- package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -34
- package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +47 -47
- package/docs/model-adaptation/Fun-ASR-Flash-2026-06-15/Fun-ASR-Flash-2026-06-15_/347/231/276/347/202/274.md +45 -45
- package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +57 -57
- package/docs/model-adaptation/Fun-ASR-Realtime-2026-02-28/Fun-ASR-Realtime-2026-02-28_/347/231/276/347/202/274.md +39 -39
- package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +217 -213
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -173
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -94
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +138 -137
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +97 -93
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_APIMart.md +66 -66
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Fal.md +55 -55
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_Grsai.md +59 -53
- package/docs/model-adaptation/GPT-Image-2.5/GPT-Image-2.5_KIE.md +55 -55
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_APIMart.md +101 -0
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Fal.md +55 -0
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_Grsai.md +32 -0
- package/docs/model-adaptation/GPT-Image-2.6/GPT-Image-2.6_KIE.md +51 -0
- package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -62
- package/docs/model-adaptation/Gemini-3.8-Flash-Lite-TTS/Gemini-3.8-Flash-Lite-TTS_KIE.md +22 -0
- package/docs/model-adaptation/Gemini-3.8-Flash-TTS/Gemini-3.8-Flash-TTS_KIE.md +38 -0
- package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_APIMart.md +79 -0
- package/docs/model-adaptation/Gemini-Omni-1.2-Flash/Gemini-Omni-1.2-Flash_Fal.md +60 -0
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +131 -124
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -84
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +132 -129
- package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +38 -36
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -250
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -84
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -105
- package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_APIMart.md +68 -0
- package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_Fal.md +47 -0
- package/docs/model-adaptation/Grok-Imagine-Video-1.5/Grok-Imagine-Video-1.5_KIE.md +37 -0
- package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +95 -93
- package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +58 -56
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -88
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -51
- package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_APIMart.md +66 -0
- package/docs/model-adaptation/HappyHorse-1.1/HappyHorse-1.1_KIE.md +31 -27
- package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +99 -99
- package/docs/model-adaptation/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247/Ideogram-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +41 -41
- package/docs/model-adaptation/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261/Image-Apps-v2-/345/225/206/345/223/201/346/221/204/345/275/261_Fal.md +72 -72
- package/docs/model-adaptation/Image-Apps-v2-/346/211/251/345/233/276/Image-Apps-v2-/346/211/251/345/233/276_Fal.md +93 -93
- package/docs/model-adaptation/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215/Image-Apps-v2-/347/205/247/347/211/207/344/277/256/345/244/215_Fal.md +86 -86
- package/docs/model-adaptation/Image-Apps-v2-/351/207/215/346/211/223/345/205/211/Image-Apps-v2-/351/207/215/346/211/223/345/205/211_Fal.md +84 -84
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -112
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +91 -89
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -106
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +120 -119
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +130 -125
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -107
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +148 -143
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +88 -85
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +86 -83
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -84
- package/docs/model-adaptation/Kling-4.0/Kling-4.0_APIMart.md +76 -0
- package/docs/model-adaptation/Kling-4.0/Kling-4.0_Fal.md +115 -0
- package/docs/model-adaptation/Kling-4.0/Kling-4.0_KIE.md +61 -0
- package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_Fal.md +55 -0
- package/docs/model-adaptation/Kling-4.0-Flash/Kling-4.0-Flash_KIE.md +33 -0
- package/docs/model-adaptation/LTX-2.3/LTX-2.3_Fal.md +121 -0
- package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +402 -396
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +237 -234
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +112 -108
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +118 -111
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_/347/231/276/347/202/274.md +65 -0
- package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_APIMart.md +78 -0
- package/docs/model-adaptation/MiniMax-H3-Max/MiniMax-H3-Max_Fal.md +62 -0
- package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -170
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -89
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -99
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -82
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +72 -70
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -79
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -65
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -64
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_APIMart.md +35 -0
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Fal.md +37 -0
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_Grsai.md +35 -0
- package/docs/model-adaptation/Nano-Banana-2.1/Nano-Banana-2.1_KIE.md +36 -0
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -83
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -89
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -82
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -64
- package/docs/model-adaptation/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244/Pixelcut-/350/203/214/346/231/257/347/247/273/351/231/244_Fal.md +79 -79
- package/docs/model-adaptation/Qwen-Audio-3.1-TTS-Plus/Qwen-Audio-3.1-TTS-Plus_/347/231/276/347/202/274.md +59 -0
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -117
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +85 -84
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -103
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -138
- package/docs/model-adaptation/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246/Qwen-Image-Edit-2511-/345/244/232/350/247/222/345/272/246_Fal.md +57 -57
- package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +68 -68
- package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +40 -40
- package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +40 -40
- package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +44 -44
- package/docs/model-adaptation/Qwen3-ASR-Flash-2026-02-10/Qwen3-ASR-Flash-2026-02-10_/347/231/276/347/202/274.md +37 -37
- package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +45 -45
- package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +58 -58
- package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime-2026-02-10/Qwen3-ASR-Flash-Realtime-2026-02-10_/347/231/276/347/202/274.md +37 -37
- package/docs/model-adaptation/README.md +371 -328
- package/docs/model-adaptation/Seed-ICL-2.0/Seed-ICL-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +65 -0
- package/docs/model-adaptation/SeedASR-2.0-File/SeedASR-2.0-File_/347/201/253/345/261/261/345/274/225/346/223/216.md +115 -115
- package/docs/model-adaptation/SeedASR-2.0-Realtime/SeedASR-2.0-Realtime_/347/201/253/345/261/261/345/274/225/346/223/216.md +147 -147
- package/docs/model-adaptation/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247/SeedVR2-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +45 -45
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -121
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -97
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +87 -86
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_/347/201/253/345/261/261/345/274/225/346/223/216.md +101 -0
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -89
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -95
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +79 -78
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +93 -89
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -96
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +79 -78
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_/347/201/253/345/261/261/345/274/225/346/223/216.md +98 -0
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +217 -212
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +98 -94
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +94 -89
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_/347/201/253/345/261/261/345/274/225/346/223/216.md +102 -0
- package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_APIMart.md +64 -0
- package/docs/model-adaptation/Seedream-5.0-Flash/Seedream-5.0-Flash_/347/201/253/345/261/261/345/274/225/346/223/216.md +18 -18
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +113 -106
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -91
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -89
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_/347/201/253/345/261/261/345/274/225/346/223/216.md +110 -108
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -194
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -100
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -141
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_/347/201/253/345/261/261/345/274/225/346/223/216.md +137 -137
- package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +73 -73
- package/docs/model-adaptation/TTS-/345/244/232/344/276/233/345/272/224/345/225/206-2026-09.md +52 -6
- package/docs/model-adaptation/TTS-/346/227/266/351/227/264/346/210/263-2026-10.md +36 -0
- package/docs/model-adaptation/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247/Topaz-/345/233/276/347/211/207/346/224/276/345/244/247_Fal.md +87 -87
- package/docs/model-adaptation/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247/Topaz-/351/200/217/346/230/216/345/233/276/346/224/276/345/244/247_Fal.md +34 -34
- package/docs/model-adaptation/Veo-3.1/Veo-3.1_APIMart.md +90 -0
- package/docs/model-adaptation/Wan-2.7-Image/Wan-2.7-Image_APIMart.md +81 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_APIMart.md +74 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_Fal.md +60 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_Grsai.md +35 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_KIE.md +38 -0
- package/docs/model-adaptation/Wan-3.0/Wan-3.0_/347/231/276/347/202/274.md +96 -0
- package/docs/model-adaptation/Wan-3.0-Prime/Wan-3.0-Prime_KIE.md +20 -0
- package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +80 -80
- package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +79 -79
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -88
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +103 -95
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -71
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -122
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +99 -97
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +240 -240
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +190 -172
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +136 -121
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -217
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +159 -131
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/200/231/351/200/211/344/276/233/345/272/224/345/225/206/350/260/203/347/240/224-/345/233/276/347/211/207/345/267/245/345/205/267.md +151 -151
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//345/277/253/351/200/237/351/200/202/351/205/215/344/276/233/345/272/224/345/225/206.md +65 -65
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//346/264/276/346/254/247/344/272/221.md +170 -147
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/201/253/345/261/261/345/274/225/346/223/216.md +191 -183
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +339 -282
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/241/205/345/237/272/346/265/201/345/212/250.md +180 -153
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +205 -207
- package/docs/model-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +339 -338
- package/docs/model-adaptation//351/200/217/350/247/206/345/217/230/346/215/242//351/200/217/350/247/206/345/217/230/346/215/242_Fal.md +59 -59
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -77
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -81
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -169
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227//344/276/233/345/272/224/345/225/206/345/237/237/345/220/215.md +83 -83
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227//351/224/231/350/257/257/345/244/204/347/220/206.md +72 -72
- package/examples/form-renderer/README.md +17 -17
- package/examples/form-renderer/cli.ts +32 -32
- package/examples/form-renderer/index.ts +144 -144
- package/examples/form-renderer/package.json +16 -16
- package/examples/form-renderer/tsconfig.json +14 -14
- package/examples/llm-chat/README.md +38 -38
- package/examples/llm-chat/index.ts +100 -100
- package/examples/llm-chat/package.json +19 -19
- package/examples/llm-chat/tsconfig.json +14 -14
- package/examples/minimal-node/README.md +31 -31
- package/examples/minimal-node/index.ts +138 -138
- package/examples/minimal-node/package.json +17 -17
- package/examples/minimal-node/tsconfig.json +14 -14
- package/package.json +259 -258
- package/dist/catalog/grsai/gptImage25Sizes.d.ts +0 -1
- package/dist/catalog/grsai/gptImage25Sizes.js +0 -76
- package/dist/catalog/kie/eleven-turbo-2.5-tts.model.d.ts +0 -2
- package/dist/catalog/kie/eleven-turbo-2.5-tts.model.js +0 -29
- package/dist/catalog/modelscope/qwen-image-edit-2509.model.d.ts +0 -5
- package/dist/catalog/modelscope/qwen-image.model.d.ts +0 -5
- package/dist/catalog/ppio/minimax-hailuo-2.3.model.d.ts +0 -7
- package/dist/catalog/ppio/minimax-hailuo-2.3.model.js +0 -114
- package/dist/catalog/ppio/wan-2.5-preview.model.d.ts +0 -7
- package/dist/catalog/ppio/wan-2.5-preview.model.js +0 -198
- package/dist/catalog/ppio/wan-2.6.model.d.ts +0 -7
- package/dist/catalog/ppio/wan-2.6.model.js +0 -206
- package/dist/catalog/ppio/wan-2.7.model.d.ts +0 -2
- package/dist/catalog/ppio/wan-2.7.model.js +0 -373
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +0 -70
- package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +0 -76
- package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +0 -82
- package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +0 -84
- package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +0 -122
- /package/dist/upload/{fal-legacy.d.ts → fal-host-fetch.d.ts} +0 -0
|
@@ -5,7 +5,7 @@ export const apimartZImageTurboModel = defineModel({
|
|
|
5
5
|
meta: {
|
|
6
6
|
id: 'apimart-z-image-turbo', canonicalModelId: 'z-image-turbo', seriesId: 'z-image', seriesRank: 1,
|
|
7
7
|
provider: 'apimart', type: 'image',
|
|
8
|
-
tags: ['text-to-image'
|
|
8
|
+
tags: ['text-to-image'], aliases: ['z-image-turbo-apimart'],
|
|
9
9
|
polling: { interval: 3000, maxAttempts: 200, expectedAttempts: 40 }
|
|
10
10
|
},
|
|
11
11
|
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { JsonObject, JsonValue } from '../../types/runtime.js';
|
|
2
|
-
|
|
2
|
+
/** maxChars 是供应商单次请求的文本上限,按 Unicode 字符计;超过时在发请求前拒绝。 */
|
|
3
|
+
export declare function speechText(params: JsonObject, maxChars?: number): string;
|
|
3
4
|
export declare function speechString(value: JsonValue): string | undefined;
|
|
4
5
|
export declare function speechNumber(value: JsonValue): number | undefined;
|
|
5
6
|
export declare function speechCharacterPrice(params: JsonObject, perThousand: number): number;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/** maxChars 是供应商单次请求的文本上限,按 Unicode 字符计;超过时在发请求前拒绝。 */
|
|
2
|
+
export function speechText(params, maxChars) {
|
|
2
3
|
const value = typeof params.text === 'string' ? params.text : params.prompt;
|
|
3
4
|
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
4
5
|
throw new Error('语音合成需要非空文本');
|
|
5
6
|
}
|
|
7
|
+
if (maxChars !== undefined && [...value].length > maxChars) {
|
|
8
|
+
throw new Error(`语音合成单次最多 ${maxChars} 字,请分段生成`);
|
|
9
|
+
}
|
|
6
10
|
return value;
|
|
7
11
|
}
|
|
8
12
|
export function speechString(value) {
|
|
@@ -3,7 +3,7 @@ import { speechCharacterPrice, speechNumber, speechString, speechText } from '..
|
|
|
3
3
|
export const bailianCosyVoice35Model = defineModel({
|
|
4
4
|
meta: {
|
|
5
5
|
id: 'bailian-cosyvoice-v3.5', canonicalModelId: 'cosyvoice-v3.5', provider: 'bailian', type: 'audio',
|
|
6
|
-
tags: ['text-to-audio'
|
|
6
|
+
tags: ['text-to-audio'],
|
|
7
7
|
},
|
|
8
8
|
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
9
9
|
params: [
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/** 阿里云百炼托管的 MiniMax H3 视频生成(运行时契约):https://help.aliyun.com/zh/model-studio/minimax-video-generation-api-reference */
|
|
2
|
+
import { defineModel } from '../defineModel.js';
|
|
3
|
+
import { countUploadedImages, hasUploadedImage, resolveUploadedAudioSources, resolveUploadedImageSources, resolveUploadedVideoDurationSeconds, resolveUploadedVideoSources, } from '../shared/mediaPresence.js';
|
|
4
|
+
const RATIOS = ['21:9', '16:9', '4:3', '1:1', '3:4', '9:16'];
|
|
5
|
+
// 北京地域刊例价(元/秒),输入参考视频按生成分辨率同价计费:https://help.aliyun.com/zh/model-studio/minimax-h3
|
|
6
|
+
const RATES = { '768P': 0.5, '2K': 0.8 };
|
|
7
|
+
function resolution(params) {
|
|
8
|
+
return params.bailianMiniMaxH3Resolution === '768P' ? '768P' : '2K';
|
|
9
|
+
}
|
|
10
|
+
function duration(params) {
|
|
11
|
+
return Math.min(15, Math.max(4, Math.round(Number(params.bailianMiniMaxH3Duration || 6))));
|
|
12
|
+
}
|
|
13
|
+
const isReference = (params) => params.bailianMiniMaxH3Mode === 'reference-to-video';
|
|
14
|
+
export const bailianMiniMaxH3Model = defineModel({
|
|
15
|
+
meta: {
|
|
16
|
+
id: 'bailian-minimax-h3', canonicalModelId: 'minimax-h3', seriesId: 'hailuo', seriesRank: 3,
|
|
17
|
+
provider: 'bailian', type: 'video',
|
|
18
|
+
tags: ['text-to-video', 'image-to-video', 'start-end-frame', 'reference-mode'],
|
|
19
|
+
polling: { interval: 15000, maxAttempts: 120, expectedAttempts: 12 },
|
|
20
|
+
},
|
|
21
|
+
// 参考视频、参考音频各最多 3 段(单段 2–15 秒、合计 ≤ 15 秒),本地文件经百炼临时存储上传成 oss:// 地址。
|
|
22
|
+
inputLimits: {
|
|
23
|
+
images: { max: 2 }, videos: { max: 0 }, audios: { max: 0 },
|
|
24
|
+
rules: [
|
|
25
|
+
{ when: 'bailianMiniMaxH3Mode === "reference-to-video"', images: { max: 9 }, videos: { max: 3 }, audios: { max: 3 } },
|
|
26
|
+
{
|
|
27
|
+
imageConstraints: { minShortSidePx: 256, maxLongSidePx: 5760, minAspectRatio: 0.4, maxAspectRatio: 2.5 },
|
|
28
|
+
videoConstraints: { minShortSidePx: 256, maxLongSidePx: 5760, minAspectRatio: 0.4, maxAspectRatio: 2.5 },
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
params: [
|
|
33
|
+
{ id: 'bailianMiniMaxH3Mode', type: 'dropdown', order: 1, default: 'text-image-to-video', options: [{ value: 'text-image-to-video' }, { value: 'reference-to-video' }] },
|
|
34
|
+
{
|
|
35
|
+
id: 'bailianMiniMaxH3AspectRatio', type: 'dropdown', order: 2, default: 'smart',
|
|
36
|
+
// 图生视频的比例由输入图片决定,官方忽略所传比例。
|
|
37
|
+
visible: { condition: (params) => isReference(params) || !hasUploadedImage(params) },
|
|
38
|
+
options: [{ value: 'smart' }, ...RATIOS.map(value => ({ value }))],
|
|
39
|
+
},
|
|
40
|
+
{ id: 'bailianMiniMaxH3Resolution', type: 'dropdown', order: 3, default: '2K', options: [{ value: '768P' }, { value: '2K' }] },
|
|
41
|
+
{ id: 'bailianMiniMaxH3Duration', type: 'number', order: 4, default: 6, min: 4, max: 15, step: 1 },
|
|
42
|
+
],
|
|
43
|
+
endpoints: '/api/v1/services/aigc/video-generation/video-synthesis',
|
|
44
|
+
request: {
|
|
45
|
+
builder: (params) => {
|
|
46
|
+
const prompt = typeof params.prompt === 'string' ? params.prompt.trim().slice(0, 7000) : '';
|
|
47
|
+
if (!prompt)
|
|
48
|
+
throw new Error('MiniMax H3 的提示词不能为空');
|
|
49
|
+
const images = resolveUploadedImageSources(params);
|
|
50
|
+
const rawRatio = String(params.bailianMiniMaxH3AspectRatio || 'smart');
|
|
51
|
+
const ratio = RATIOS.includes(rawRatio) ? rawRatio : undefined;
|
|
52
|
+
const parameters = { resolution: resolution(params), duration: duration(params), watermark: false };
|
|
53
|
+
let media = [];
|
|
54
|
+
if (isReference(params)) {
|
|
55
|
+
const videos = resolveUploadedVideoSources(params);
|
|
56
|
+
const audios = resolveUploadedAudioSources(params);
|
|
57
|
+
// 参考音频不能单独使用是 MiniMax 上游限制(APIMart 文档写明),百炼文档只列了组合方式。
|
|
58
|
+
if (images.length + videos.length === 0)
|
|
59
|
+
throw new Error('MiniMax H3 参考生视频至少需要一张参考图或一段参考视频');
|
|
60
|
+
media = [
|
|
61
|
+
...images.slice(0, 9).map(url => ({ type: 'image_url', url })),
|
|
62
|
+
...videos.slice(0, 3).map(url => ({ type: 'feature', url })),
|
|
63
|
+
...audios.slice(0, 3).map(url => ({ type: 'driving_audio', url })),
|
|
64
|
+
];
|
|
65
|
+
parameters.ratio = ratio ?? 'adaptive';
|
|
66
|
+
}
|
|
67
|
+
else if (images.length > 0) {
|
|
68
|
+
if (images.length > 2)
|
|
69
|
+
throw new Error('MiniMax H3 首尾帧最多 2 张图片');
|
|
70
|
+
media = images.map((url, index) => ({ type: index === 0 ? 'first_frame' : 'last_frame', url }));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
// 文生视频必须指定具体比例,不接受 adaptive。
|
|
74
|
+
parameters.ratio = ratio ?? '16:9';
|
|
75
|
+
}
|
|
76
|
+
const input = { prompt };
|
|
77
|
+
if (media.length > 0)
|
|
78
|
+
input.media = media;
|
|
79
|
+
return { model: 'MiniMax/MiniMax-H3', input, parameters };
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
pricing: {
|
|
83
|
+
currency: '¥',
|
|
84
|
+
calculator: (params) => {
|
|
85
|
+
const rate = RATES[resolution(params)];
|
|
86
|
+
const inputSeconds = isReference(params) && resolveUploadedVideoSources(params).length > 0
|
|
87
|
+
? Math.min(15, resolveUploadedVideoDurationSeconds(params, 15))
|
|
88
|
+
: 0;
|
|
89
|
+
const extraImages = isReference(params) ? Math.max(0, countUploadedImages(params) - 5) : 0;
|
|
90
|
+
return rate * (duration(params) + inputSeconds) + extraImages * 0.2;
|
|
91
|
+
},
|
|
92
|
+
description: '768P 每秒 ¥0.5,2K 每秒 ¥0.8;参考视频时长按生成分辨率同价计入;参考图 5 张以内免费,超出每张 ¥0.2;音频免费',
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
export default bailianMiniMaxH3Model;
|
|
@@ -3,7 +3,7 @@ import { speechCharacterPrice, speechNumber, speechString, speechText } from '..
|
|
|
3
3
|
export const bailianMinimaxSpeech28Model = defineModel({
|
|
4
4
|
meta: {
|
|
5
5
|
id: 'bailian-minimax-speech-2.8', canonicalModelId: 'minimax-speech-2.8', provider: 'bailian', type: 'audio',
|
|
6
|
-
tags: ['text-to-audio'
|
|
6
|
+
tags: ['text-to-audio'],
|
|
7
7
|
},
|
|
8
8
|
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
9
9
|
params: [
|
|
@@ -4,7 +4,7 @@ export const bailianQwenAudio31TtsFlashModel = defineModel({
|
|
|
4
4
|
meta: {
|
|
5
5
|
id: 'bailian-qwen-audio-3.1-tts-flash', canonicalModelId: 'qwen-audio-3.1-tts-flash',
|
|
6
6
|
provider: 'bailian', type: 'audio',
|
|
7
|
-
tags: ['text-to-audio'
|
|
7
|
+
tags: ['text-to-audio'],
|
|
8
8
|
},
|
|
9
9
|
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
10
10
|
params: [
|
|
@@ -28,8 +28,19 @@ export const bailianQwenAudio31TtsFlashModel = defineModel({
|
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
pricing: {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
estimateKind: 'upper-bound',
|
|
32
|
+
currency: '¥', calculator: params => {
|
|
33
|
+
const text = typeof params.text === 'string' ? params.text : typeof params.prompt === 'string' ? params.prompt : '';
|
|
34
|
+
const instruction = speechString(params.bailianQwenTtsInstruction) ?? '';
|
|
35
|
+
const speed = Math.min(2, Math.max(0.5, speechNumber(params.bailianQwenTtsSpeed) ?? 1));
|
|
36
|
+
// 公开文档/模型卡片未提供输入上限或音频 Token/秒。按当前输入全文作预算,
|
|
37
|
+
// 采用慢速 1 字/秒、每音频秒 100 Token 的保守工程假设,不冒充官方折算。
|
|
38
|
+
const characters = Array.from(text).length;
|
|
39
|
+
const inputTokens = new TextEncoder().encode(text + instruction).length;
|
|
40
|
+
const outputTokens = Math.ceil(characters / speed) * 100;
|
|
41
|
+
return (inputTokens * 1.5 + outputTokens * 12) / 1_000_000;
|
|
42
|
+
},
|
|
43
|
+
description: '估算上限(非账单保证):输入 ¥1.5/百万 Token、输出 ¥12/百万 Token。官方未公布文本上限及音频折算;按当前全文、慢速每秒1字÷语速、每秒100音频Token及UTF-8字节作为输入Token预算。实际按供应商用量结算。',
|
|
33
44
|
},
|
|
34
45
|
});
|
|
35
46
|
export default bailianQwenAudio31TtsFlashModel;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { defineModel } from '../defineModel.js';
|
|
2
|
+
import { speechNumber, speechString, speechText } from '../audio/tts-common.js';
|
|
3
|
+
/** 百炼计费字符:汉字(含繁体、日文汉字、韩文汉字)记 2 个,其余字符记 1 个。 */
|
|
4
|
+
function billingCharacters(text) {
|
|
5
|
+
return Array.from(text).reduce((sum, char) => sum + (/\p{Script=Han}/u.test(char) ? 2 : 1), 0);
|
|
6
|
+
}
|
|
7
|
+
export const bailianQwenAudio31TtsPlusModel = defineModel({
|
|
8
|
+
meta: {
|
|
9
|
+
id: 'bailian-qwen-audio-3.1-tts-plus', canonicalModelId: 'qwen-audio-3.1-tts-plus',
|
|
10
|
+
provider: 'bailian', type: 'audio',
|
|
11
|
+
tags: ['text-to-audio'],
|
|
12
|
+
},
|
|
13
|
+
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
14
|
+
params: [
|
|
15
|
+
{ id: 'bailianQwenTtsPlusVoice', type: 'composite', valueType: 'string', order: 1, default: 'longanlingxin_v3.1' },
|
|
16
|
+
{ id: 'bailianQwenTtsPlusInstruction', type: 'text', order: 2, default: '' },
|
|
17
|
+
{ id: 'bailianQwenTtsPlusSpeed', type: 'number', order: 3, default: 1, min: 0.5, max: 2, step: 0.1 },
|
|
18
|
+
],
|
|
19
|
+
endpoints: '/api/v1/services/audio/tts/SpeechSynthesizer',
|
|
20
|
+
request: {
|
|
21
|
+
builder: (params) => {
|
|
22
|
+
const input = {
|
|
23
|
+
text: speechText(params),
|
|
24
|
+
voice: speechString(params.bailianQwenTtsPlusVoice) ?? 'longanlingxin_v3.1',
|
|
25
|
+
format: 'mp3',
|
|
26
|
+
rate: speechNumber(params.bailianQwenTtsPlusSpeed) ?? 1,
|
|
27
|
+
};
|
|
28
|
+
const instruction = speechString(params.bailianQwenTtsPlusInstruction);
|
|
29
|
+
if (instruction)
|
|
30
|
+
input.instruction = instruction;
|
|
31
|
+
return { model: 'qwen-audio-3.1-tts-plus', input };
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
pricing: {
|
|
35
|
+
currency: '¥',
|
|
36
|
+
// 北京地域 ¥1.4/万字符,只按待合成文本计费:https://help.aliyun.com/zh/model-studio/model-pricing
|
|
37
|
+
calculator: params => {
|
|
38
|
+
const text = typeof params.text === 'string' ? params.text : typeof params.prompt === 'string' ? params.prompt : '';
|
|
39
|
+
return billingCharacters(text) * 1.4 / 10_000;
|
|
40
|
+
},
|
|
41
|
+
description: '¥1.4/万字符(汉字记 2 个字符,其余记 1 个);只按待合成文本计费',
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
export default bailianQwenAudio31TtsPlusModel;
|
|
@@ -6,7 +6,7 @@ export const bailianQwenImage30Model = defineModel({
|
|
|
6
6
|
meta: {
|
|
7
7
|
id: 'bailian-qwen-image-3.0', canonicalModelId: 'qwen-image-3.0', seriesId: 'qwen-image', seriesRank: 3,
|
|
8
8
|
provider: 'bailian', type: 'image',
|
|
9
|
-
tags: ['text-to-image', 'image-to-image'
|
|
9
|
+
tags: ['text-to-image', 'image-to-image'],
|
|
10
10
|
aliases: ['qwen-image-3-official']
|
|
11
11
|
},
|
|
12
12
|
inputLimits: { images: { max: 3 }, videos: { max: 0 } },
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/** 阿里云百炼官方万相 3.0 视频生成(标准版 / Prime 版,运行时契约) */
|
|
2
|
+
import { defineModel } from '../defineModel.js';
|
|
3
|
+
import { resolveUploadedImageSources, resolveUploadedVideoDurationSeconds, resolveUploadedVideoSources } from '../shared/mediaPresence.js';
|
|
4
|
+
const RATIOS = ['16:9', '4:3', '1:1', '3:4', '9:16', '21:9'];
|
|
5
|
+
const RESOLUTIONS = ['480P', '720P', '1080P'];
|
|
6
|
+
// 北京地域刊例价(元/秒),输入与输出视频同价:https://help.aliyun.com/zh/model-studio/model-pricing
|
|
7
|
+
// 标准版当前限时 7 折,按原价预估,避免折扣结束后低估费用。
|
|
8
|
+
const RATES = {
|
|
9
|
+
standard: { '480P': 0.3, '720P': 0.6, '1080P': 1.2 },
|
|
10
|
+
prime: { '480P': 0.45, '720P': 0.9, '1080P': 1.8 },
|
|
11
|
+
};
|
|
12
|
+
function audioSources(params) {
|
|
13
|
+
const pick = (value) => Array.isArray(value)
|
|
14
|
+
? value.filter((item) => typeof item === 'string' && item.trim().length > 0) : [];
|
|
15
|
+
const uploaded = pick(params.uploadedAudioFilePaths);
|
|
16
|
+
return uploaded.length > 0 ? uploaded : pick(params.audios);
|
|
17
|
+
}
|
|
18
|
+
function duration(params) {
|
|
19
|
+
return Math.min(30, Math.max(2, Math.round(Number(params.bailianWan30Duration || 5))));
|
|
20
|
+
}
|
|
21
|
+
/** 有参考视频时官方要求输入总时长 + 输出时长 ≤ 30 秒;读得到素材时长就把输出时长收进这个范围。 */
|
|
22
|
+
function outputDuration(params) {
|
|
23
|
+
if (params.bailianWan30Mode !== 'reference-to-video' || resolveUploadedVideoSources(params).length === 0)
|
|
24
|
+
return duration(params);
|
|
25
|
+
return Math.max(2, Math.min(duration(params), 30 - Math.ceil(resolveUploadedVideoDurationSeconds(params))));
|
|
26
|
+
}
|
|
27
|
+
function resolution(params) {
|
|
28
|
+
return RESOLUTIONS.includes(String(params.bailianWan30Resolution)) ? String(params.bailianWan30Resolution) : '720P';
|
|
29
|
+
}
|
|
30
|
+
export const bailianWan30Model = defineModel({
|
|
31
|
+
meta: {
|
|
32
|
+
id: 'bailian-wan-3.0', canonicalModelId: 'wan-3.0', seriesId: 'wan', seriesRank: 3,
|
|
33
|
+
provider: 'bailian', type: 'video',
|
|
34
|
+
tags: ['text-to-video', 'image-to-video', 'start-end-frame', 'reference-mode'],
|
|
35
|
+
polling: { interval: 15000, maxAttempts: 120, expectedAttempts: 16 },
|
|
36
|
+
},
|
|
37
|
+
// 参考视频、参考音频各最多 5 段(单段 1–15 秒、合计 ≤ 15 秒),本地文件经百炼临时存储上传成 oss:// 地址。
|
|
38
|
+
inputLimits: {
|
|
39
|
+
images: { max: 2 }, videos: { max: 0 }, audios: { max: 0 },
|
|
40
|
+
rules: [
|
|
41
|
+
{ when: 'bailianWan30Mode === "reference-to-video"', images: { max: 10 }, videos: { max: 5 }, audios: { max: 5 } },
|
|
42
|
+
{ imageConstraints: { minShortSidePx: 240, maxLongSidePx: 8000, minAspectRatio: 1 / 8, maxAspectRatio: 8 } },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
params: [
|
|
46
|
+
{ id: 'bailianWan30Variant', type: 'dropdown', order: 1, default: 'standard', options: [{ value: 'standard' }, { value: 'prime' }] },
|
|
47
|
+
{ id: 'bailianWan30Mode', type: 'dropdown', order: 2, default: 'text-image-to-video', options: [{ value: 'text-image-to-video' }, { value: 'reference-to-video' }] },
|
|
48
|
+
{ id: 'bailianWan30AspectRatio', type: 'dropdown', order: 3, default: 'smart', options: [{ value: 'smart' }, ...RATIOS.map(value => ({ value }))] },
|
|
49
|
+
{ id: 'bailianWan30Resolution', type: 'dropdown', order: 4, default: '720P', options: RESOLUTIONS.map(value => ({ value })) },
|
|
50
|
+
{ id: 'bailianWan30Duration', type: 'number', order: 5, default: 5, min: 2, max: 30, step: 1 },
|
|
51
|
+
{ id: 'bailianWan30Audio', type: 'switch', order: 6, default: true },
|
|
52
|
+
],
|
|
53
|
+
endpoints: '/api/v1/services/aigc/video-generation/video-synthesis',
|
|
54
|
+
request: {
|
|
55
|
+
builder: (params) => {
|
|
56
|
+
const images = resolveUploadedImageSources(params);
|
|
57
|
+
const reference = params.bailianWan30Mode === 'reference-to-video';
|
|
58
|
+
const prompt = typeof params.prompt === 'string' ? params.prompt.slice(0, 20000) : '';
|
|
59
|
+
const rawRatio = String(params.bailianWan30AspectRatio || 'smart');
|
|
60
|
+
const media = reference
|
|
61
|
+
? [
|
|
62
|
+
...images.slice(0, 10).map(url => ({ type: 'reference_image', url })),
|
|
63
|
+
...resolveUploadedVideoSources(params).slice(0, 5).map(url => ({ type: 'reference_video', url })),
|
|
64
|
+
...audioSources(params).slice(0, 5).map(url => ({ type: 'reference_audio', url })),
|
|
65
|
+
]
|
|
66
|
+
: images.slice(0, 2).map((url, index) => ({ type: index === 0 ? 'first_frame' : 'last_frame', url }));
|
|
67
|
+
if (!reference && images.length > 2)
|
|
68
|
+
throw new Error('万相 3.0 首尾帧最多 2 张图片');
|
|
69
|
+
if (!prompt.trim() && media.length === 0)
|
|
70
|
+
throw new Error('万相 3.0 需要填写提示词或上传素材');
|
|
71
|
+
const input = {};
|
|
72
|
+
if (prompt.trim())
|
|
73
|
+
input.prompt = prompt;
|
|
74
|
+
if (media.length > 0)
|
|
75
|
+
input.media = media;
|
|
76
|
+
return {
|
|
77
|
+
model: params.bailianWan30Variant === 'prime' ? 'wan3.0-video-prime' : 'wan3.0-video',
|
|
78
|
+
input,
|
|
79
|
+
parameters: {
|
|
80
|
+
// 官方默认 1080P(最贵),始终显式发送所选分辨率。
|
|
81
|
+
resolution: resolution(params),
|
|
82
|
+
// 智能比例交给模型按素材与意图自适应。
|
|
83
|
+
ratio: RATIOS.includes(rawRatio) ? rawRatio : 'adaptive',
|
|
84
|
+
duration: outputDuration(params),
|
|
85
|
+
audio: params.bailianWan30Audio !== false,
|
|
86
|
+
watermark: false,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
pricing: {
|
|
92
|
+
currency: '¥',
|
|
93
|
+
calculator: (params) => {
|
|
94
|
+
const variant = params.bailianWan30Variant === 'prime' ? 'prime' : 'standard';
|
|
95
|
+
// 输入视频与输出同价按秒计;读不到参考视频时长时按输出时长估,并封顶到合计 15 秒。
|
|
96
|
+
const inputSeconds = params.bailianWan30Mode === 'reference-to-video' && resolveUploadedVideoSources(params).length > 0
|
|
97
|
+
? Math.min(15, resolveUploadedVideoDurationSeconds(params, duration(params)))
|
|
98
|
+
: 0;
|
|
99
|
+
return RATES[variant][resolution(params)] * (outputDuration(params) + inputSeconds);
|
|
100
|
+
},
|
|
101
|
+
description: '标准版每秒 480P ¥0.3、720P ¥0.6、1080P ¥1.2(当前限时 7 折,按原价预估);Prime 每秒 480P ¥0.45、720P ¥0.9、1080P ¥1.8;参考视频的时长与输出同价计入;开关声音同价',
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
export default bailianWan30Model;
|
|
@@ -5,7 +5,7 @@ export const bailianZImageTurboModel = defineModel({
|
|
|
5
5
|
meta: {
|
|
6
6
|
id: 'bailian-z-image-turbo', canonicalModelId: 'z-image-turbo', seriesId: 'z-image', seriesRank: 1,
|
|
7
7
|
provider: 'bailian', type: 'image',
|
|
8
|
-
tags: ['text-to-image'
|
|
8
|
+
tags: ['text-to-image'], aliases: ['z-image-turbo-official']
|
|
9
9
|
},
|
|
10
10
|
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
11
11
|
params: [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ModelRuntimeDefinition, RuntimeMediaFieldConstraint, RuntimeMediaFieldKind, RuntimeParamDef, RuntimeVideoConstraints } from '../types/model.js';
|
|
1
|
+
import type { ModelRuntimeDefinition, RuntimeImageConstraints, RuntimeMediaDimensionConstraints, RuntimeMediaFieldConstraint, RuntimeMediaFieldKind, RuntimeParamDef, RuntimeVideoConstraints } from '../types/model.js';
|
|
2
2
|
import type { JsonObject } from '../types/runtime.js';
|
|
3
3
|
export interface ResolvedRuntimeInputCountLimit {
|
|
4
4
|
min: number;
|
|
@@ -8,6 +8,7 @@ export interface ResolvedRuntimeInputLimits {
|
|
|
8
8
|
images?: ResolvedRuntimeInputCountLimit;
|
|
9
9
|
videos?: ResolvedRuntimeInputCountLimit;
|
|
10
10
|
audios?: ResolvedRuntimeInputCountLimit;
|
|
11
|
+
imageConstraints?: RuntimeImageConstraints;
|
|
11
12
|
videoConstraints?: RuntimeVideoConstraints;
|
|
12
13
|
}
|
|
13
14
|
export interface RuntimeGenericMediaInput {
|
|
@@ -34,6 +35,20 @@ export interface RuntimeMediaInputContract {
|
|
|
34
35
|
* 未声明的媒体种类保持 undefined;消费方不能自行补成 URL 文本框。
|
|
35
36
|
*/
|
|
36
37
|
export declare function resolveRuntimeInputLimits(model: ModelRuntimeDefinition, params: JsonObject, context?: JsonObject): ResolvedRuntimeInputLimits;
|
|
38
|
+
export interface MediaDimensions {
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
}
|
|
42
|
+
export interface MediaDimensionViolation {
|
|
43
|
+
rule: keyof RuntimeMediaDimensionConstraints;
|
|
44
|
+
limit: number;
|
|
45
|
+
actual: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 按模型声明的尺寸约束检查一份素材,返回第一条不满足的规则;全部满足返回 null。
|
|
49
|
+
* 宿主在提交前用它拦下注定被供应商拒绝的素材,文案由宿主按 rule 自行组织。
|
|
50
|
+
*/
|
|
51
|
+
export declare function findMediaDimensionViolation(constraints: RuntimeMediaDimensionConstraints | undefined, size: MediaDimensions): MediaDimensionViolation | null;
|
|
37
52
|
/**
|
|
38
53
|
* 返回消费方应渲染的上传控件契约。
|
|
39
54
|
*
|
|
@@ -36,11 +36,42 @@ export function resolveRuntimeInputLimits(model, params, context = {}) {
|
|
|
36
36
|
resolved.images = mergeLimit(resolved.images, rule.images);
|
|
37
37
|
resolved.videos = mergeLimit(resolved.videos, rule.videos);
|
|
38
38
|
resolved.audios = mergeLimit(resolved.audios, rule.audios);
|
|
39
|
+
if (rule.imageConstraints)
|
|
40
|
+
resolved.imageConstraints = { ...rule.imageConstraints };
|
|
39
41
|
if (rule.videoConstraints)
|
|
40
42
|
resolved.videoConstraints = { ...rule.videoConstraints };
|
|
41
43
|
}
|
|
42
44
|
return resolved;
|
|
43
45
|
}
|
|
46
|
+
// 宽高比来自整数相除,边界值(如 1080×2700 = 0.4)不能因浮点舍入被误判。
|
|
47
|
+
const ASPECT_RATIO_EPSILON = 1e-6;
|
|
48
|
+
/**
|
|
49
|
+
* 按模型声明的尺寸约束检查一份素材,返回第一条不满足的规则;全部满足返回 null。
|
|
50
|
+
* 宿主在提交前用它拦下注定被供应商拒绝的素材,文案由宿主按 rule 自行组织。
|
|
51
|
+
*/
|
|
52
|
+
export function findMediaDimensionViolation(constraints, size) {
|
|
53
|
+
if (!constraints)
|
|
54
|
+
return null;
|
|
55
|
+
const aspectRatio = size.width / size.height;
|
|
56
|
+
const measured = {
|
|
57
|
+
minShortSidePx: Math.min(size.width, size.height),
|
|
58
|
+
maxLongSidePx: Math.max(size.width, size.height),
|
|
59
|
+
minPixels: size.width * size.height,
|
|
60
|
+
maxPixels: size.width * size.height,
|
|
61
|
+
minAspectRatio: aspectRatio,
|
|
62
|
+
maxAspectRatio: aspectRatio,
|
|
63
|
+
};
|
|
64
|
+
for (const rule of Object.keys(measured)) {
|
|
65
|
+
const limit = constraints[rule];
|
|
66
|
+
if (limit === undefined)
|
|
67
|
+
continue;
|
|
68
|
+
const actual = measured[rule];
|
|
69
|
+
const tolerance = rule.endsWith('AspectRatio') ? ASPECT_RATIO_EPSILON : 0;
|
|
70
|
+
if (rule.startsWith('min') ? actual < limit - tolerance : actual > limit + tolerance)
|
|
71
|
+
return { rule, limit, actual };
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
44
75
|
/**
|
|
45
76
|
* 返回消费方应渲染的上传控件契约。
|
|
46
77
|
*
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 续接生成的公共读写:完成时按模型声明取出续接引用,续接请求时读出 `__continuation`。
|
|
3
|
+
* 引用是平台内部标识(任务 ID、草稿缓存地址),只在请求构建里使用,不进入界面。
|
|
4
|
+
*/
|
|
5
|
+
import { type ModelRuntimeDefinition, type RuntimeContinuation, type RuntimeContinuationParam } from '../types/model.js';
|
|
6
|
+
import type { JsonObject, JsonValue } from '../types/runtime.js';
|
|
7
|
+
/** 完成结果能做的续接:动作标识 → 平台引用。没有可续接的动作时返回 undefined。 */
|
|
8
|
+
export declare function captureContinuations(model: Pick<ModelRuntimeDefinition, 'continuations'>, params: JsonObject, result: {
|
|
9
|
+
taskId?: string;
|
|
10
|
+
metadata: JsonValue;
|
|
11
|
+
}): Record<string, JsonObject> | undefined;
|
|
12
|
+
/** 找到源模型上的某个续接动作。 */
|
|
13
|
+
export declare function findContinuation(model: Pick<ModelRuntimeDefinition, 'continuations'> | undefined, id: string): RuntimeContinuation | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* 续接请求的完整参数:源参数经动作调整,再带上续接引用。
|
|
16
|
+
* 源参数里上一次续接的引用不再沿用,避免把多步续接混成一次。
|
|
17
|
+
*/
|
|
18
|
+
export declare function buildContinuationParams(sourceModelId: string, continuation: RuntimeContinuation, source: JsonObject, reference: JsonObject): JsonObject;
|
|
19
|
+
/** 读出请求参数里的续接引用;指定动作时只认这个动作。 */
|
|
20
|
+
export declare function readContinuation(params: JsonObject, id?: string): RuntimeContinuationParam | null;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 续接生成的公共读写:完成时按模型声明取出续接引用,续接请求时读出 `__continuation`。
|
|
3
|
+
* 引用是平台内部标识(任务 ID、草稿缓存地址),只在请求构建里使用,不进入界面。
|
|
4
|
+
*/
|
|
5
|
+
import { CONTINUATION_PARAM } from '../types/model.js';
|
|
6
|
+
function isObject(value) {
|
|
7
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
8
|
+
}
|
|
9
|
+
/** 完成结果能做的续接:动作标识 → 平台引用。没有可续接的动作时返回 undefined。 */
|
|
10
|
+
export function captureContinuations(model, params, result) {
|
|
11
|
+
const captured = {};
|
|
12
|
+
for (const continuation of model.continuations ?? []) {
|
|
13
|
+
if (continuation.available && !continuation.available(params))
|
|
14
|
+
continue;
|
|
15
|
+
const reference = continuation.capture(result);
|
|
16
|
+
if (reference)
|
|
17
|
+
captured[continuation.id] = reference;
|
|
18
|
+
}
|
|
19
|
+
return Object.keys(captured).length > 0 ? captured : undefined;
|
|
20
|
+
}
|
|
21
|
+
/** 找到源模型上的某个续接动作。 */
|
|
22
|
+
export function findContinuation(model, id) {
|
|
23
|
+
return model?.continuations?.find(continuation => continuation.id === id);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 续接请求的完整参数:源参数经动作调整,再带上续接引用。
|
|
27
|
+
* 源参数里上一次续接的引用不再沿用,避免把多步续接混成一次。
|
|
28
|
+
*/
|
|
29
|
+
export function buildContinuationParams(sourceModelId, continuation, source, reference) {
|
|
30
|
+
const { [CONTINUATION_PARAM]: _previous, ...rest } = source;
|
|
31
|
+
return { ...continuation.params(rest), [CONTINUATION_PARAM]: { id: continuation.id, sourceModelId, reference } };
|
|
32
|
+
}
|
|
33
|
+
/** 读出请求参数里的续接引用;指定动作时只认这个动作。 */
|
|
34
|
+
export function readContinuation(params, id) {
|
|
35
|
+
const value = params[CONTINUATION_PARAM];
|
|
36
|
+
if (!isObject(value) || typeof value.id !== 'string' || typeof value.sourceModelId !== 'string' || !isObject(value.reference))
|
|
37
|
+
return null;
|
|
38
|
+
if (id && value.id !== id)
|
|
39
|
+
return null;
|
|
40
|
+
return { id: value.id, sourceModelId: value.sourceModelId, reference: value.reference };
|
|
41
|
+
}
|
|
@@ -6,7 +6,7 @@ export const falBriaCreativeUpscaleModel = defineModel({
|
|
|
6
6
|
canonicalModelId: 'bria-creative-upscale',
|
|
7
7
|
provider: 'fal',
|
|
8
8
|
type: 'image',
|
|
9
|
-
tags: ['
|
|
9
|
+
tags: ['upscaling', 'transparent-background'],
|
|
10
10
|
polling: { interval: 3000, maxAttempts: 200, expectedAttempts: 45 },
|
|
11
11
|
},
|
|
12
12
|
acceptsPrompt: false,
|
|
@@ -3,7 +3,7 @@ import { speechCharacterPrice, speechNumber, speechString, speechText } from '..
|
|
|
3
3
|
export const falElevenV3TtsModel = defineModel({
|
|
4
4
|
meta: {
|
|
5
5
|
id: 'fal-eleven-v3-tts', canonicalModelId: 'eleven-v3-tts', provider: 'fal', type: 'audio',
|
|
6
|
-
tags: ['text-to-audio'
|
|
6
|
+
tags: ['text-to-audio'],
|
|
7
7
|
polling: { interval: 3000, maxAttempts: 120, expectedAttempts: 20 },
|
|
8
8
|
},
|
|
9
9
|
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { defineModel } from '../defineModel.js';
|
|
2
|
+
import { speechCharacterPrice, speechNumber, speechString, speechText } from '../audio/tts-common.js';
|
|
3
|
+
// 字段与价格来源:docs/model-adaptation/Eleven-v4/Eleven-v4_Fal.md(Fal 模型页与 OpenAPI,2026-11-07 读取)
|
|
4
|
+
const turbo = (params) => params.falElevenV4Version === 'turbo';
|
|
5
|
+
export const falElevenV4TtsModel = defineModel({
|
|
6
|
+
meta: {
|
|
7
|
+
id: 'fal-eleven-v4-tts', canonicalModelId: 'eleven-v4-tts', provider: 'fal', type: 'audio',
|
|
8
|
+
tags: ['text-to-audio'],
|
|
9
|
+
polling: { interval: 3000, maxAttempts: 120, expectedAttempts: 20 },
|
|
10
|
+
},
|
|
11
|
+
inputLimits: { images: { max: 0 }, videos: { max: 0 } },
|
|
12
|
+
params: [
|
|
13
|
+
{ id: 'falElevenV4Version', type: 'dropdown', order: 1, default: 'standard', options: [{ value: 'standard' }, { value: 'turbo' }] },
|
|
14
|
+
{ id: 'falElevenV4Voice', type: 'composite', valueType: 'string', order: 2, default: 'Rachel' },
|
|
15
|
+
{ id: 'falElevenV4Stability', type: 'number', order: 3, default: 0.5, min: 0, max: 1, step: 0.05 },
|
|
16
|
+
{ id: 'falElevenV4Language', type: 'text', order: 4, default: '' },
|
|
17
|
+
],
|
|
18
|
+
endpoints: { selector: params => turbo(params) ? 'elevenlabs/tts/eleven-v4-turbo' : 'elevenlabs/tts/eleven-v4' },
|
|
19
|
+
request: {
|
|
20
|
+
builder: (params) => {
|
|
21
|
+
const body = {
|
|
22
|
+
text: speechText(params, 5000),
|
|
23
|
+
voice: speechString(params.falElevenV4Voice) ?? 'Rachel',
|
|
24
|
+
stability: speechNumber(params.falElevenV4Stability) ?? 0.5,
|
|
25
|
+
};
|
|
26
|
+
const language = speechString(params.falElevenV4Language);
|
|
27
|
+
if (language)
|
|
28
|
+
body.language_code = language;
|
|
29
|
+
return body;
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
pricing: {
|
|
33
|
+
currency: '$',
|
|
34
|
+
calculator: params => speechCharacterPrice(params, turbo(params) ? 0.04 : 0.08),
|
|
35
|
+
description: 'v4 $0.08/千字符,v4 Turbo $0.04/千字符',
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
export default falElevenV4TtsModel;
|