@henjicc/ai-sdk 0.2.8
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 +143 -0
- package/README.md +472 -0
- package/dist/capabilities/builtin-descriptors.d.ts +5 -0
- package/dist/capabilities/builtin-descriptors.js +32 -0
- package/dist/capabilities/client.d.ts +21 -0
- package/dist/capabilities/client.js +427 -0
- package/dist/capabilities/index.d.ts +5 -0
- package/dist/capabilities/index.js +5 -0
- package/dist/capabilities/media.d.ts +23 -0
- package/dist/capabilities/media.js +18 -0
- package/dist/capabilities/realtime.d.ts +2 -0
- package/dist/capabilities/realtime.js +1 -0
- package/dist/capabilities/speech-recognition/bailian/index.d.ts +3 -0
- package/dist/capabilities/speech-recognition/bailian/index.js +3 -0
- package/dist/capabilities/speech-recognition/bailian/module.d.ts +5 -0
- package/dist/capabilities/speech-recognition/bailian/module.js +232 -0
- package/dist/capabilities/speech-recognition/bailian/parse.d.ts +18 -0
- package/dist/capabilities/speech-recognition/bailian/parse.js +177 -0
- package/dist/capabilities/speech-recognition/bailian/presets.d.ts +17 -0
- package/dist/capabilities/speech-recognition/bailian/presets.js +53 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/index.d.ts +3 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/index.js +3 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/module.d.ts +5 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/module.js +303 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/presets.d.ts +13 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/presets.js +32 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/protocol.d.ts +38 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/protocol.js +192 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/types.d.ts +19 -0
- package/dist/capabilities/speech-recognition/bailian/realtime/types.js +1 -0
- package/dist/capabilities/speech-recognition/bailian/types.d.ts +21 -0
- package/dist/capabilities/speech-recognition/bailian/types.js +1 -0
- package/dist/capabilities/speech-recognition/bailian/upload.d.ts +9 -0
- package/dist/capabilities/speech-recognition/bailian/upload.js +93 -0
- package/dist/capabilities/speech-recognition/groq/index.d.ts +4 -0
- package/dist/capabilities/speech-recognition/groq/index.js +4 -0
- package/dist/capabilities/speech-recognition/groq/module.d.ts +5 -0
- package/dist/capabilities/speech-recognition/groq/module.js +226 -0
- package/dist/capabilities/speech-recognition/groq/parse.d.ts +3 -0
- package/dist/capabilities/speech-recognition/groq/parse.js +109 -0
- package/dist/capabilities/speech-recognition/groq/presets.d.ts +9 -0
- package/dist/capabilities/speech-recognition/groq/presets.js +23 -0
- package/dist/capabilities/speech-recognition/groq/types.d.ts +14 -0
- package/dist/capabilities/speech-recognition/groq/types.js +1 -0
- package/dist/capabilities/speech-recognition/index.d.ts +72 -0
- package/dist/capabilities/speech-recognition/index.js +25 -0
- package/dist/capabilities/speech-recognition/siliconflow/index.d.ts +3 -0
- package/dist/capabilities/speech-recognition/siliconflow/index.js +3 -0
- package/dist/capabilities/speech-recognition/siliconflow/module.d.ts +5 -0
- package/dist/capabilities/speech-recognition/siliconflow/module.js +183 -0
- package/dist/capabilities/speech-recognition/siliconflow/presets.d.ts +9 -0
- package/dist/capabilities/speech-recognition/siliconflow/presets.js +23 -0
- package/dist/capabilities/speech-recognition/siliconflow/types.d.ts +6 -0
- package/dist/capabilities/speech-recognition/siliconflow/types.js +1 -0
- package/dist/capabilities/speech-recognition/volcengine/index.d.ts +3 -0
- package/dist/capabilities/speech-recognition/volcengine/index.js +3 -0
- package/dist/capabilities/speech-recognition/volcengine/module.d.ts +5 -0
- package/dist/capabilities/speech-recognition/volcengine/module.js +260 -0
- package/dist/capabilities/speech-recognition/volcengine/parse.d.ts +5 -0
- package/dist/capabilities/speech-recognition/volcengine/parse.js +73 -0
- package/dist/capabilities/speech-recognition/volcengine/presets.d.ts +8 -0
- package/dist/capabilities/speech-recognition/volcengine/presets.js +21 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/index.d.ts +3 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/index.js +3 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/module.d.ts +5 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/module.js +450 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/presets.d.ts +8 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/presets.js +23 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/protocol.d.ts +21 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/protocol.js +223 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/types.d.ts +13 -0
- package/dist/capabilities/speech-recognition/volcengine/realtime/types.js +1 -0
- package/dist/capabilities/speech-recognition/volcengine/request-id.d.ts +1 -0
- package/dist/capabilities/speech-recognition/volcengine/request-id.js +27 -0
- package/dist/capabilities/speech-recognition/volcengine/types.d.ts +15 -0
- package/dist/capabilities/speech-recognition/volcengine/types.js +1 -0
- package/dist/capabilities/translation/bailian/index.d.ts +4 -0
- package/dist/capabilities/translation/bailian/index.js +4 -0
- package/dist/capabilities/translation/bailian/languages.d.ts +6 -0
- package/dist/capabilities/translation/bailian/languages.js +47 -0
- package/dist/capabilities/translation/bailian/module.d.ts +6 -0
- package/dist/capabilities/translation/bailian/module.js +310 -0
- package/dist/capabilities/translation/bailian/sse.d.ts +19 -0
- package/dist/capabilities/translation/bailian/sse.js +145 -0
- package/dist/capabilities/translation/bailian/types.d.ts +28 -0
- package/dist/capabilities/translation/bailian/types.js +13 -0
- package/dist/capabilities/translation/index.d.ts +62 -0
- package/dist/capabilities/translation/index.js +18 -0
- package/dist/capabilities/types.d.ts +81 -0
- package/dist/capabilities/types.js +1 -0
- package/dist/capabilities/validation.d.ts +8 -0
- package/dist/capabilities/validation.js +74 -0
- package/dist/catalog/apimart/gemini-omni-flash.model.d.ts +3 -0
- package/dist/catalog/apimart/gemini-omni-flash.model.js +185 -0
- package/dist/catalog/apimart/gpt-image-2.model.d.ts +3 -0
- package/dist/catalog/apimart/gpt-image-2.model.js +174 -0
- package/dist/catalog/apimart/grok-imagine-2.0.model.d.ts +3 -0
- package/dist/catalog/apimart/grok-imagine-2.0.model.js +145 -0
- package/dist/catalog/apimart/kling-3.0-omni.model.d.ts +3 -0
- package/dist/catalog/apimart/kling-3.0-omni.model.js +120 -0
- package/dist/catalog/apimart/kling-3.0-turbo.model.d.ts +3 -0
- package/dist/catalog/apimart/kling-3.0-turbo.model.js +54 -0
- package/dist/catalog/apimart/kling-3.0.model.d.ts +3 -0
- package/dist/catalog/apimart/kling-3.0.model.js +65 -0
- package/dist/catalog/apimart/midjourney-video.model.d.ts +3 -0
- package/dist/catalog/apimart/midjourney-video.model.js +113 -0
- package/dist/catalog/apimart/midjourney.model.d.ts +3 -0
- package/dist/catalog/apimart/midjourney.model.js +307 -0
- package/dist/catalog/apimart/minimax-h3.model.d.ts +3 -0
- package/dist/catalog/apimart/minimax-h3.model.js +107 -0
- package/dist/catalog/apimart/nano-banana-2-lite.model.d.ts +3 -0
- package/dist/catalog/apimart/nano-banana-2-lite.model.js +78 -0
- package/dist/catalog/apimart/nano-banana-2.model.d.ts +3 -0
- package/dist/catalog/apimart/nano-banana-2.model.js +92 -0
- package/dist/catalog/apimart/nano-banana-pro.model.d.ts +3 -0
- package/dist/catalog/apimart/nano-banana-pro.model.js +78 -0
- package/dist/catalog/apimart/qwen-image-3.0.model.d.ts +3 -0
- package/dist/catalog/apimart/qwen-image-3.0.model.js +92 -0
- package/dist/catalog/apimart/seedance-2.0-fast.model.d.ts +2 -0
- package/dist/catalog/apimart/seedance-2.0-fast.model.js +108 -0
- package/dist/catalog/apimart/seedance-2.0-mini.model.d.ts +2 -0
- package/dist/catalog/apimart/seedance-2.0-mini.model.js +108 -0
- package/dist/catalog/apimart/seedance-2.0.model.d.ts +2 -0
- package/dist/catalog/apimart/seedance-2.0.model.js +114 -0
- package/dist/catalog/apimart/seedance-2.5.model.d.ts +2 -0
- package/dist/catalog/apimart/seedance-2.5.model.js +137 -0
- package/dist/catalog/apimart/seedream-5.0-lite.model.d.ts +2 -0
- package/dist/catalog/apimart/seedream-5.0-lite.model.js +78 -0
- package/dist/catalog/apimart/seedream-5.0-pro.model.d.ts +2 -0
- package/dist/catalog/apimart/seedream-5.0-pro.model.js +145 -0
- package/dist/catalog/apimart/z-image-turbo.model.d.ts +2 -0
- package/dist/catalog/apimart/z-image-turbo.model.js +50 -0
- package/dist/catalog/bailian/qwen-image-3.0.model.d.ts +3 -0
- package/dist/catalog/bailian/qwen-image-3.0.model.js +90 -0
- package/dist/catalog/bailian/z-image-turbo.model.d.ts +3 -0
- package/dist/catalog/bailian/z-image-turbo.model.js +56 -0
- package/dist/catalog/conditions/evaluate.d.ts +15 -0
- package/dist/catalog/conditions/evaluate.js +98 -0
- package/dist/catalog/conditions/index.d.ts +3 -0
- package/dist/catalog/conditions/index.js +3 -0
- package/dist/catalog/conditions/parser.d.ts +20 -0
- package/dist/catalog/conditions/parser.js +107 -0
- package/dist/catalog/conditions/tokens.d.ts +11 -0
- package/dist/catalog/conditions/tokens.js +88 -0
- package/dist/catalog/consumer-contract.d.ts +45 -0
- package/dist/catalog/consumer-contract.js +123 -0
- package/dist/catalog/defineModel.d.ts +17 -0
- package/dist/catalog/defineModel.js +25 -0
- package/dist/catalog/fal/bria-creative-upscale.model.d.ts +2 -0
- package/dist/catalog/fal/bria-creative-upscale.model.js +32 -0
- package/dist/catalog/fal/gemini-omni-flash.model.d.ts +2 -0
- package/dist/catalog/fal/gemini-omni-flash.model.js +76 -0
- package/dist/catalog/fal/gpt-image-2.model.d.ts +2 -0
- package/dist/catalog/fal/gpt-image-2.model.js +141 -0
- package/dist/catalog/fal/grok-imagine-2.0.model.d.ts +2 -0
- package/dist/catalog/fal/grok-imagine-2.0.model.js +86 -0
- package/dist/catalog/fal/hailuo-02.model.d.ts +2 -0
- package/dist/catalog/fal/hailuo-02.model.js +152 -0
- package/dist/catalog/fal/hailuo-2.3.model.d.ts +2 -0
- package/dist/catalog/fal/hailuo-2.3.model.js +109 -0
- package/dist/catalog/fal/ic-light-v2.model.d.ts +2 -0
- package/dist/catalog/fal/ic-light-v2.model.js +83 -0
- package/dist/catalog/fal/ideogram-upscale.model.d.ts +2 -0
- package/dist/catalog/fal/ideogram-upscale.model.js +50 -0
- package/dist/catalog/fal/imageSizing.d.ts +3 -0
- package/dist/catalog/fal/imageSizing.js +12 -0
- package/dist/catalog/fal/imageUpscale.d.ts +4 -0
- package/dist/catalog/fal/imageUpscale.js +23 -0
- package/dist/catalog/fal/kling-3.0-omni.model.d.ts +2 -0
- package/dist/catalog/fal/kling-3.0-omni.model.js +99 -0
- package/dist/catalog/fal/kling-3.0-turbo.model.d.ts +2 -0
- package/dist/catalog/fal/kling-3.0-turbo.model.js +67 -0
- package/dist/catalog/fal/kling-3.0.model.d.ts +2 -0
- package/dist/catalog/fal/kling-3.0.model.js +80 -0
- package/dist/catalog/fal/kling-image-o1.model.d.ts +2 -0
- package/dist/catalog/fal/kling-image-o1.model.js +93 -0
- package/dist/catalog/fal/kling-video-o1.model.d.ts +2 -0
- package/dist/catalog/fal/kling-video-o1.model.js +167 -0
- package/dist/catalog/fal/kling-video-v2.6-pro.model.d.ts +2 -0
- package/dist/catalog/fal/kling-video-v2.6-pro.model.js +231 -0
- package/dist/catalog/fal/ltx-2.model.d.ts +2 -0
- package/dist/catalog/fal/ltx-2.model.js +221 -0
- package/dist/catalog/fal/minimax-h3.model.d.ts +2 -0
- package/dist/catalog/fal/minimax-h3.model.js +154 -0
- package/dist/catalog/fal/nano-banana-2.model.d.ts +2 -0
- package/dist/catalog/fal/nano-banana-2.model.js +126 -0
- package/dist/catalog/fal/nano-banana-pro.model.d.ts +2 -0
- package/dist/catalog/fal/nano-banana-pro.model.js +82 -0
- package/dist/catalog/fal/nano-banana.model.d.ts +2 -0
- package/dist/catalog/fal/nano-banana.model.js +86 -0
- package/dist/catalog/fal/pixverse-v5.5.model.d.ts +2 -0
- package/dist/catalog/fal/pixverse-v5.5.model.js +176 -0
- package/dist/catalog/fal/qwen-image-3.0.model.d.ts +2 -0
- package/dist/catalog/fal/qwen-image-3.0.model.js +90 -0
- package/dist/catalog/fal/seedance-2.0-fast.model.d.ts +2 -0
- package/dist/catalog/fal/seedance-2.0-fast.model.js +130 -0
- package/dist/catalog/fal/seedance-2.0-mini.model.d.ts +2 -0
- package/dist/catalog/fal/seedance-2.0-mini.model.js +124 -0
- package/dist/catalog/fal/seedance-2.0.model.d.ts +2 -0
- package/dist/catalog/fal/seedance-2.0.model.js +133 -0
- package/dist/catalog/fal/seedance-2.5.model.d.ts +2 -0
- package/dist/catalog/fal/seedance-2.5.model.js +133 -0
- package/dist/catalog/fal/seedance.model.d.ts +2 -0
- package/dist/catalog/fal/seedance.model.js +173 -0
- package/dist/catalog/fal/seedream-5.0-lite.model.d.ts +2 -0
- package/dist/catalog/fal/seedream-5.0-lite.model.js +92 -0
- package/dist/catalog/fal/seedream-5.0-pro.model.d.ts +2 -0
- package/dist/catalog/fal/seedream-5.0-pro.model.js +89 -0
- package/dist/catalog/fal/seedream-v4.5.model.d.ts +2 -0
- package/dist/catalog/fal/seedream-v4.5.model.js +154 -0
- package/dist/catalog/fal/seedream-v4.model.d.ts +2 -0
- package/dist/catalog/fal/seedream-v4.model.js +152 -0
- package/dist/catalog/fal/seedvr2-image-upscale.model.d.ts +3 -0
- package/dist/catalog/fal/seedvr2-image-upscale.model.js +73 -0
- package/dist/catalog/fal/topaz-image-upscale.model.d.ts +7 -0
- package/dist/catalog/fal/topaz-image-upscale.model.js +200 -0
- package/dist/catalog/fal/topaz-transparent-upscale.model.d.ts +2 -0
- package/dist/catalog/fal/topaz-transparent-upscale.model.js +35 -0
- package/dist/catalog/fal/utils/index.d.ts +9 -0
- package/dist/catalog/fal/utils/index.js +19 -0
- package/dist/catalog/fal/veo-3.1.model.d.ts +2 -0
- package/dist/catalog/fal/veo-3.1.model.js +196 -0
- package/dist/catalog/fal/vidu-q2.model.d.ts +2 -0
- package/dist/catalog/fal/vidu-q2.model.js +214 -0
- package/dist/catalog/fal/wan-2.5-preview.model.d.ts +2 -0
- package/dist/catalog/fal/wan-2.5-preview.model.js +116 -0
- package/dist/catalog/fal/z-image-turbo.model.d.ts +2 -0
- package/dist/catalog/fal/z-image-turbo.model.js +125 -0
- package/dist/catalog/grsai/gpt-image-2.model.d.ts +3 -0
- package/dist/catalog/grsai/gpt-image-2.model.js +117 -0
- package/dist/catalog/grsai/nano-banana-2-lite.model.d.ts +12 -0
- package/dist/catalog/grsai/nano-banana-2-lite.model.js +75 -0
- package/dist/catalog/grsai/nano-banana-2.model.d.ts +3 -0
- package/dist/catalog/grsai/nano-banana-2.model.js +100 -0
- package/dist/catalog/grsai/nano-banana-pro.model.d.ts +3 -0
- package/dist/catalog/grsai/nano-banana-pro.model.js +106 -0
- package/dist/catalog/index.d.ts +13 -0
- package/dist/catalog/index.js +224 -0
- package/dist/catalog/kie/gemini-omni-video.model.d.ts +2 -0
- package/dist/catalog/kie/gemini-omni-video.model.js +197 -0
- package/dist/catalog/kie/gpt-image-2.model.d.ts +2 -0
- package/dist/catalog/kie/gpt-image-2.model.js +151 -0
- package/dist/catalog/kie/grok-imagine-2.0.model.d.ts +2 -0
- package/dist/catalog/kie/grok-imagine-2.0.model.js +70 -0
- package/dist/catalog/kie/grok-imagine-video.model.d.ts +2 -0
- package/dist/catalog/kie/grok-imagine-video.model.js +108 -0
- package/dist/catalog/kie/grok-imagine.model.d.ts +2 -0
- package/dist/catalog/kie/grok-imagine.model.js +105 -0
- package/dist/catalog/kie/hailuo-02.model.d.ts +2 -0
- package/dist/catalog/kie/hailuo-02.model.js +125 -0
- package/dist/catalog/kie/hailuo-2-3.model.d.ts +2 -0
- package/dist/catalog/kie/hailuo-2-3.model.js +124 -0
- package/dist/catalog/kie/kling-3.0-omni.model.d.ts +2 -0
- package/dist/catalog/kie/kling-3.0-omni.model.js +209 -0
- package/dist/catalog/kie/kling-3.0-turbo.model.d.ts +2 -0
- package/dist/catalog/kie/kling-3.0-turbo.model.js +90 -0
- package/dist/catalog/kie/kling-3.0.model.d.ts +2 -0
- package/dist/catalog/kie/kling-3.0.model.js +122 -0
- package/dist/catalog/kie/kling-v2-6.model.d.ts +2 -0
- package/dist/catalog/kie/kling-v2-6.model.js +203 -0
- package/dist/catalog/kie/mediaSources.d.ts +6 -0
- package/dist/catalog/kie/mediaSources.js +29 -0
- package/dist/catalog/kie/minimax-h3.model.d.ts +2 -0
- package/dist/catalog/kie/minimax-h3.model.js +153 -0
- package/dist/catalog/kie/nano-banana-2-lite.model.d.ts +2 -0
- package/dist/catalog/kie/nano-banana-2-lite.model.js +92 -0
- package/dist/catalog/kie/nano-banana-2.model.d.ts +2 -0
- package/dist/catalog/kie/nano-banana-2.model.js +120 -0
- package/dist/catalog/kie/nano-banana-pro.model.d.ts +2 -0
- package/dist/catalog/kie/nano-banana-pro.model.js +94 -0
- package/dist/catalog/kie/qwen-image-3.0.model.d.ts +2 -0
- package/dist/catalog/kie/qwen-image-3.0.model.js +122 -0
- package/dist/catalog/kie/seedance-1.5-pro.model.d.ts +2 -0
- package/dist/catalog/kie/seedance-1.5-pro.model.js +142 -0
- package/dist/catalog/kie/seedance-2.0-fast.model.d.ts +2 -0
- package/dist/catalog/kie/seedance-2.0-fast.model.js +196 -0
- package/dist/catalog/kie/seedance-2.0-mini.model.d.ts +2 -0
- package/dist/catalog/kie/seedance-2.0-mini.model.js +189 -0
- package/dist/catalog/kie/seedance-2.0.model.d.ts +2 -0
- package/dist/catalog/kie/seedance-2.0.model.js +200 -0
- package/dist/catalog/kie/seedance-2.5.model.d.ts +2 -0
- package/dist/catalog/kie/seedance-2.5.model.js +187 -0
- package/dist/catalog/kie/seedance-v1.model.d.ts +2 -0
- package/dist/catalog/kie/seedance-v1.model.js +229 -0
- package/dist/catalog/kie/seedream-4.0.model.d.ts +2 -0
- package/dist/catalog/kie/seedream-4.0.model.js +150 -0
- package/dist/catalog/kie/seedream-4.5.model.d.ts +2 -0
- package/dist/catalog/kie/seedream-4.5.model.js +116 -0
- package/dist/catalog/kie/seedream-5.0-lite.model.d.ts +2 -0
- package/dist/catalog/kie/seedream-5.0-lite.model.js +110 -0
- package/dist/catalog/kie/seedream-5.0-pro.model.d.ts +2 -0
- package/dist/catalog/kie/seedream-5.0-pro.model.js +179 -0
- package/dist/catalog/kie/z-image.model.d.ts +2 -0
- package/dist/catalog/kie/z-image.model.js +67 -0
- package/dist/catalog/model-index.d.ts +14 -0
- package/dist/catalog/model-index.js +32 -0
- package/dist/catalog/modelscope/customModelRegistry.d.ts +26 -0
- package/dist/catalog/modelscope/customModelRegistry.js +26 -0
- package/dist/catalog/modelscope/flux-1-krea-dev.model.d.ts +5 -0
- package/dist/catalog/modelscope/flux-1-krea-dev.model.js +84 -0
- package/dist/catalog/modelscope/majicmix-realistic.model.d.ts +5 -0
- package/dist/catalog/modelscope/majicmix-realistic.model.js +84 -0
- package/dist/catalog/modelscope/modelscope-custom.model.d.ts +5 -0
- package/dist/catalog/modelscope/modelscope-custom.model.js +111 -0
- package/dist/catalog/modelscope/qwen-image-edit-2509.model.d.ts +5 -0
- package/dist/catalog/modelscope/qwen-image-edit-2509.model.js +83 -0
- package/dist/catalog/modelscope/qwen-image.model.d.ts +5 -0
- package/dist/catalog/modelscope/qwen-image.model.js +84 -0
- package/dist/catalog/modelscope/sdxl-14-ckpt.model.d.ts +5 -0
- package/dist/catalog/modelscope/sdxl-14-ckpt.model.js +84 -0
- package/dist/catalog/modelscope/utils.d.ts +33 -0
- package/dist/catalog/modelscope/utils.js +174 -0
- package/dist/catalog/modelscope/z-image-turbo.model.d.ts +5 -0
- package/dist/catalog/modelscope/z-image-turbo.model.js +75 -0
- package/dist/catalog/ppio/kling-3.0.model.d.ts +2 -0
- package/dist/catalog/ppio/kling-3.0.model.js +288 -0
- package/dist/catalog/ppio/mediaSources.d.ts +6 -0
- package/dist/catalog/ppio/mediaSources.js +29 -0
- package/dist/catalog/ppio/minimax-hailuo-2.3.model.d.ts +7 -0
- package/dist/catalog/ppio/minimax-hailuo-2.3.model.js +114 -0
- package/dist/catalog/ppio/minimax-speech.model.d.ts +2 -0
- package/dist/catalog/ppio/minimax-speech.model.js +336 -0
- package/dist/catalog/ppio/wan-2.5-preview.model.d.ts +7 -0
- package/dist/catalog/ppio/wan-2.5-preview.model.js +198 -0
- package/dist/catalog/ppio/wan-2.6.model.d.ts +7 -0
- package/dist/catalog/ppio/wan-2.6.model.js +206 -0
- package/dist/catalog/ppio/wan-2.7.model.d.ts +2 -0
- package/dist/catalog/ppio/wan-2.7.model.js +373 -0
- package/dist/catalog/shared/mediaPresence.d.ts +24 -0
- package/dist/catalog/shared/mediaPresence.js +86 -0
- package/dist/catalog/shared/seedreamResolution.d.ts +35 -0
- package/dist/catalog/shared/seedreamResolution.js +206 -0
- package/dist/catalog/validate.d.ts +17 -0
- package/dist/catalog/validate.js +356 -0
- package/dist/catalog/volcengine/seedream-5.0-lite.model.d.ts +3 -0
- package/dist/catalog/volcengine/seedream-5.0-lite.model.js +83 -0
- package/dist/catalog/volcengine/seedream-5.0-pro.model.d.ts +3 -0
- package/dist/catalog/volcengine/seedream-5.0-pro.model.js +149 -0
- package/dist/client.d.ts +36 -0
- package/dist/client.js +38 -0
- package/dist/discovery/index.d.ts +77 -0
- package/dist/discovery/index.js +238 -0
- package/dist/generation/core.d.ts +96 -0
- package/dist/generation/core.js +318 -0
- package/dist/generation.d.ts +20 -0
- package/dist/generation.js +58 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +40 -0
- package/dist/llm/bigmodel/index.d.ts +3 -0
- package/dist/llm/bigmodel/index.js +3 -0
- package/dist/llm/bigmodel/preset.d.ts +11 -0
- package/dist/llm/bigmodel/preset.js +58 -0
- package/dist/llm/bigmodel/profiles.d.ts +21 -0
- package/dist/llm/bigmodel/profiles.js +65 -0
- package/dist/llm/chat.d.ts +66 -0
- package/dist/llm/chat.js +144 -0
- package/dist/llm/chatTypes.d.ts +88 -0
- package/dist/llm/chatTypes.js +1 -0
- package/dist/llm/defaults.d.ts +29 -0
- package/dist/llm/defaults.js +55 -0
- package/dist/llm/discovery.d.ts +45 -0
- package/dist/llm/discovery.js +97 -0
- package/dist/llm/endpointProfiles.d.ts +41 -0
- package/dist/llm/endpointProfiles.js +75 -0
- package/dist/llm/groq/index.d.ts +25 -0
- package/dist/llm/groq/index.js +30 -0
- package/dist/llm/groq/module.d.ts +6 -0
- package/dist/llm/groq/module.js +51 -0
- package/dist/llm/groq/preset.d.ts +9 -0
- package/dist/llm/groq/preset.js +50 -0
- package/dist/llm/index.d.ts +25 -0
- package/dist/llm/index.js +30 -0
- package/dist/llm/message-metrics.d.ts +3 -0
- package/dist/llm/message-metrics.js +11 -0
- package/dist/llm/modelCatalog.d.ts +60 -0
- package/dist/llm/modelCatalog.js +64 -0
- package/dist/llm/modelCatalogEntries.d.ts +15 -0
- package/dist/llm/modelCatalogEntries.js +274 -0
- package/dist/llm/modelStep.d.ts +327 -0
- package/dist/llm/modelStep.js +200 -0
- package/dist/llm/modules/client.d.ts +2 -0
- package/dist/llm/modules/client.js +365 -0
- package/dist/llm/modules/index.d.ts +4 -0
- package/dist/llm/modules/index.js +4 -0
- package/dist/llm/modules/result-validation.d.ts +5 -0
- package/dist/llm/modules/result-validation.js +54 -0
- package/dist/llm/modules/types.d.ts +102 -0
- package/dist/llm/modules/types.js +1 -0
- package/dist/llm/modules/validation.d.ts +7 -0
- package/dist/llm/modules/validation.js +90 -0
- package/dist/llm/providerPresets.d.ts +45 -0
- package/dist/llm/providerPresets.js +208 -0
- package/dist/llm/providerProtocol.d.ts +29 -0
- package/dist/llm/providerProtocol.js +25 -0
- package/dist/llm/providerProtocolCore.d.ts +4 -0
- package/dist/llm/providerProtocolCore.js +35 -0
- package/dist/llm/providerReasoningRequest.d.ts +4 -0
- package/dist/llm/providerReasoningRequest.js +101 -0
- package/dist/llm/providerSetup.d.ts +6 -0
- package/dist/llm/providerSetup.js +89 -0
- package/dist/llm/reasoning.d.ts +5 -0
- package/dist/llm/reasoning.js +1 -0
- package/dist/llm/requestContract.d.ts +6 -0
- package/dist/llm/requestContract.js +35 -0
- package/dist/llm/sdk/index.d.ts +14 -0
- package/dist/llm/sdk/index.js +14 -0
- package/dist/llm/sdk/modelStep.d.ts +24 -0
- package/dist/llm/sdk/modelStep.js +254 -0
- package/dist/llm/sdk/provider.d.ts +38 -0
- package/dist/llm/sdk/provider.js +335 -0
- package/dist/llm/sdk/providerAdapter.d.ts +53 -0
- package/dist/llm/sdk/providerAdapter.js +26 -0
- package/dist/llm/sdk/retryPolicy.d.ts +13 -0
- package/dist/llm/sdk/retryPolicy.js +67 -0
- package/dist/llm/sdk/runtime.d.ts +13 -0
- package/dist/llm/sdk/runtime.js +127 -0
- package/dist/llm/sdk/toolSchema.d.ts +28 -0
- package/dist/llm/sdk/toolSchema.js +59 -0
- package/dist/llm/streaming/index.d.ts +18 -0
- package/dist/llm/streaming/index.js +8 -0
- package/dist/llm/streaming.d.ts +25 -0
- package/dist/llm/streaming.js +330 -0
- package/dist/llm/types.d.ts +290 -0
- package/dist/llm/types.js +1 -0
- package/dist/llm/utf8-stream-decoder.d.ts +1 -0
- package/dist/llm/utf8-stream-decoder.js +2 -0
- package/dist/packs/models/apimart/gemini-omni-flash.d.ts +6 -0
- package/dist/packs/models/apimart/gemini-omni-flash.js +7 -0
- package/dist/packs/models/apimart/gpt-image-2.d.ts +6 -0
- package/dist/packs/models/apimart/gpt-image-2.js +7 -0
- package/dist/packs/models/apimart/grok-imagine-2.0.d.ts +6 -0
- package/dist/packs/models/apimart/grok-imagine-2.0.js +7 -0
- package/dist/packs/models/apimart/kling-3.0-omni.d.ts +6 -0
- package/dist/packs/models/apimart/kling-3.0-omni.js +7 -0
- package/dist/packs/models/apimart/kling-3.0-turbo.d.ts +6 -0
- package/dist/packs/models/apimart/kling-3.0-turbo.js +7 -0
- package/dist/packs/models/apimart/kling-3.0.d.ts +6 -0
- package/dist/packs/models/apimart/kling-3.0.js +7 -0
- package/dist/packs/models/apimart/midjourney-video.d.ts +6 -0
- package/dist/packs/models/apimart/midjourney-video.js +7 -0
- package/dist/packs/models/apimart/midjourney.d.ts +6 -0
- package/dist/packs/models/apimart/midjourney.js +7 -0
- package/dist/packs/models/apimart/minimax-h3.d.ts +6 -0
- package/dist/packs/models/apimart/minimax-h3.js +7 -0
- package/dist/packs/models/apimart/nano-banana-2-lite.d.ts +6 -0
- package/dist/packs/models/apimart/nano-banana-2-lite.js +7 -0
- package/dist/packs/models/apimart/nano-banana-2.d.ts +6 -0
- package/dist/packs/models/apimart/nano-banana-2.js +7 -0
- package/dist/packs/models/apimart/nano-banana-pro.d.ts +6 -0
- package/dist/packs/models/apimart/nano-banana-pro.js +7 -0
- package/dist/packs/models/apimart/qwen-image-3.0.d.ts +6 -0
- package/dist/packs/models/apimart/qwen-image-3.0.js +7 -0
- package/dist/packs/models/apimart/seedance-2.0-fast.d.ts +6 -0
- package/dist/packs/models/apimart/seedance-2.0-fast.js +7 -0
- package/dist/packs/models/apimart/seedance-2.0-mini.d.ts +6 -0
- package/dist/packs/models/apimart/seedance-2.0-mini.js +7 -0
- package/dist/packs/models/apimart/seedance-2.0.d.ts +6 -0
- package/dist/packs/models/apimart/seedance-2.0.js +7 -0
- package/dist/packs/models/apimart/seedance-2.5.d.ts +6 -0
- package/dist/packs/models/apimart/seedance-2.5.js +7 -0
- package/dist/packs/models/apimart/seedream-5.0-lite.d.ts +6 -0
- package/dist/packs/models/apimart/seedream-5.0-lite.js +7 -0
- package/dist/packs/models/apimart/seedream-5.0-pro.d.ts +6 -0
- package/dist/packs/models/apimart/seedream-5.0-pro.js +7 -0
- package/dist/packs/models/apimart/z-image-turbo.d.ts +6 -0
- package/dist/packs/models/apimart/z-image-turbo.js +7 -0
- package/dist/packs/models/bailian/qwen-image-3.0.d.ts +6 -0
- package/dist/packs/models/bailian/qwen-image-3.0.js +7 -0
- package/dist/packs/models/bailian/z-image-turbo.d.ts +6 -0
- package/dist/packs/models/bailian/z-image-turbo.js +7 -0
- package/dist/packs/models/fal/bria-creative-upscale.d.ts +6 -0
- package/dist/packs/models/fal/bria-creative-upscale.js +7 -0
- package/dist/packs/models/fal/gemini-omni-flash.d.ts +6 -0
- package/dist/packs/models/fal/gemini-omni-flash.js +7 -0
- package/dist/packs/models/fal/gpt-image-2.d.ts +6 -0
- package/dist/packs/models/fal/gpt-image-2.js +7 -0
- package/dist/packs/models/fal/grok-imagine-2.0.d.ts +6 -0
- package/dist/packs/models/fal/grok-imagine-2.0.js +7 -0
- package/dist/packs/models/fal/hailuo-02.d.ts +6 -0
- package/dist/packs/models/fal/hailuo-02.js +7 -0
- package/dist/packs/models/fal/hailuo-2.3.d.ts +6 -0
- package/dist/packs/models/fal/hailuo-2.3.js +7 -0
- package/dist/packs/models/fal/ic-light-v2.d.ts +6 -0
- package/dist/packs/models/fal/ic-light-v2.js +7 -0
- package/dist/packs/models/fal/ideogram-upscale.d.ts +6 -0
- package/dist/packs/models/fal/ideogram-upscale.js +7 -0
- package/dist/packs/models/fal/kling-3.0-omni.d.ts +6 -0
- package/dist/packs/models/fal/kling-3.0-omni.js +7 -0
- package/dist/packs/models/fal/kling-3.0-turbo.d.ts +6 -0
- package/dist/packs/models/fal/kling-3.0-turbo.js +7 -0
- package/dist/packs/models/fal/kling-3.0.d.ts +6 -0
- package/dist/packs/models/fal/kling-3.0.js +7 -0
- package/dist/packs/models/fal/kling-image-o1.d.ts +6 -0
- package/dist/packs/models/fal/kling-image-o1.js +7 -0
- package/dist/packs/models/fal/kling-video-o1.d.ts +6 -0
- package/dist/packs/models/fal/kling-video-o1.js +7 -0
- package/dist/packs/models/fal/kling-video-v2.6-pro.d.ts +6 -0
- package/dist/packs/models/fal/kling-video-v2.6-pro.js +7 -0
- package/dist/packs/models/fal/ltx-2.d.ts +6 -0
- package/dist/packs/models/fal/ltx-2.js +7 -0
- package/dist/packs/models/fal/minimax-h3.d.ts +6 -0
- package/dist/packs/models/fal/minimax-h3.js +7 -0
- package/dist/packs/models/fal/nano-banana-2.d.ts +6 -0
- package/dist/packs/models/fal/nano-banana-2.js +7 -0
- package/dist/packs/models/fal/nano-banana-pro.d.ts +6 -0
- package/dist/packs/models/fal/nano-banana-pro.js +7 -0
- package/dist/packs/models/fal/nano-banana.d.ts +6 -0
- package/dist/packs/models/fal/nano-banana.js +7 -0
- package/dist/packs/models/fal/pixverse-v5.5.d.ts +6 -0
- package/dist/packs/models/fal/pixverse-v5.5.js +7 -0
- package/dist/packs/models/fal/qwen-image-3.0.d.ts +6 -0
- package/dist/packs/models/fal/qwen-image-3.0.js +7 -0
- package/dist/packs/models/fal/seedance-2.0-fast.d.ts +6 -0
- package/dist/packs/models/fal/seedance-2.0-fast.js +7 -0
- package/dist/packs/models/fal/seedance-2.0-mini.d.ts +6 -0
- package/dist/packs/models/fal/seedance-2.0-mini.js +7 -0
- package/dist/packs/models/fal/seedance-2.0.d.ts +6 -0
- package/dist/packs/models/fal/seedance-2.0.js +7 -0
- package/dist/packs/models/fal/seedance-2.5.d.ts +6 -0
- package/dist/packs/models/fal/seedance-2.5.js +7 -0
- package/dist/packs/models/fal/seedance.d.ts +6 -0
- package/dist/packs/models/fal/seedance.js +7 -0
- package/dist/packs/models/fal/seedream-5.0-lite.d.ts +6 -0
- package/dist/packs/models/fal/seedream-5.0-lite.js +7 -0
- package/dist/packs/models/fal/seedream-5.0-pro.d.ts +6 -0
- package/dist/packs/models/fal/seedream-5.0-pro.js +7 -0
- package/dist/packs/models/fal/seedream-v4.5.d.ts +6 -0
- package/dist/packs/models/fal/seedream-v4.5.js +7 -0
- package/dist/packs/models/fal/seedream-v4.d.ts +6 -0
- package/dist/packs/models/fal/seedream-v4.js +7 -0
- package/dist/packs/models/fal/seedvr2-image-upscale.d.ts +6 -0
- package/dist/packs/models/fal/seedvr2-image-upscale.js +7 -0
- package/dist/packs/models/fal/topaz-image-upscale.d.ts +6 -0
- package/dist/packs/models/fal/topaz-image-upscale.js +7 -0
- package/dist/packs/models/fal/topaz-transparent-upscale.d.ts +6 -0
- package/dist/packs/models/fal/topaz-transparent-upscale.js +7 -0
- package/dist/packs/models/fal/veo-3.1.d.ts +6 -0
- package/dist/packs/models/fal/veo-3.1.js +7 -0
- package/dist/packs/models/fal/vidu-q2.d.ts +6 -0
- package/dist/packs/models/fal/vidu-q2.js +7 -0
- package/dist/packs/models/fal/wan-2.5-preview.d.ts +6 -0
- package/dist/packs/models/fal/wan-2.5-preview.js +7 -0
- package/dist/packs/models/fal/z-image-turbo.d.ts +6 -0
- package/dist/packs/models/fal/z-image-turbo.js +7 -0
- package/dist/packs/models/grsai/gpt-image-2.d.ts +6 -0
- package/dist/packs/models/grsai/gpt-image-2.js +7 -0
- package/dist/packs/models/grsai/nano-banana-2-lite.d.ts +6 -0
- package/dist/packs/models/grsai/nano-banana-2-lite.js +7 -0
- package/dist/packs/models/grsai/nano-banana-2.d.ts +6 -0
- package/dist/packs/models/grsai/nano-banana-2.js +7 -0
- package/dist/packs/models/grsai/nano-banana-pro.d.ts +6 -0
- package/dist/packs/models/grsai/nano-banana-pro.js +7 -0
- package/dist/packs/models/kie/gemini-omni-video.d.ts +6 -0
- package/dist/packs/models/kie/gemini-omni-video.js +7 -0
- package/dist/packs/models/kie/gpt-image-2.d.ts +6 -0
- package/dist/packs/models/kie/gpt-image-2.js +7 -0
- package/dist/packs/models/kie/grok-imagine-2.0.d.ts +6 -0
- package/dist/packs/models/kie/grok-imagine-2.0.js +7 -0
- package/dist/packs/models/kie/grok-imagine-video.d.ts +6 -0
- package/dist/packs/models/kie/grok-imagine-video.js +7 -0
- package/dist/packs/models/kie/grok-imagine.d.ts +6 -0
- package/dist/packs/models/kie/grok-imagine.js +7 -0
- package/dist/packs/models/kie/hailuo-02.d.ts +6 -0
- package/dist/packs/models/kie/hailuo-02.js +7 -0
- package/dist/packs/models/kie/hailuo-2-3.d.ts +6 -0
- package/dist/packs/models/kie/hailuo-2-3.js +7 -0
- package/dist/packs/models/kie/kling-3.0-omni.d.ts +6 -0
- package/dist/packs/models/kie/kling-3.0-omni.js +7 -0
- package/dist/packs/models/kie/kling-3.0-turbo.d.ts +6 -0
- package/dist/packs/models/kie/kling-3.0-turbo.js +7 -0
- package/dist/packs/models/kie/kling-3.0.d.ts +6 -0
- package/dist/packs/models/kie/kling-3.0.js +7 -0
- package/dist/packs/models/kie/kling-v2-6.d.ts +6 -0
- package/dist/packs/models/kie/kling-v2-6.js +7 -0
- package/dist/packs/models/kie/minimax-h3.d.ts +6 -0
- package/dist/packs/models/kie/minimax-h3.js +7 -0
- package/dist/packs/models/kie/nano-banana-2-lite.d.ts +6 -0
- package/dist/packs/models/kie/nano-banana-2-lite.js +7 -0
- package/dist/packs/models/kie/nano-banana-2.d.ts +6 -0
- package/dist/packs/models/kie/nano-banana-2.js +7 -0
- package/dist/packs/models/kie/nano-banana-pro.d.ts +6 -0
- package/dist/packs/models/kie/nano-banana-pro.js +7 -0
- package/dist/packs/models/kie/qwen-image-3.0.d.ts +6 -0
- package/dist/packs/models/kie/qwen-image-3.0.js +7 -0
- package/dist/packs/models/kie/seedance-1.5-pro.d.ts +6 -0
- package/dist/packs/models/kie/seedance-1.5-pro.js +7 -0
- package/dist/packs/models/kie/seedance-2.0-fast.d.ts +6 -0
- package/dist/packs/models/kie/seedance-2.0-fast.js +7 -0
- package/dist/packs/models/kie/seedance-2.0-mini.d.ts +6 -0
- package/dist/packs/models/kie/seedance-2.0-mini.js +7 -0
- package/dist/packs/models/kie/seedance-2.0.d.ts +6 -0
- package/dist/packs/models/kie/seedance-2.0.js +7 -0
- package/dist/packs/models/kie/seedance-2.5.d.ts +6 -0
- package/dist/packs/models/kie/seedance-2.5.js +7 -0
- package/dist/packs/models/kie/seedance-v1.d.ts +6 -0
- package/dist/packs/models/kie/seedance-v1.js +7 -0
- package/dist/packs/models/kie/seedream-4.0.d.ts +6 -0
- package/dist/packs/models/kie/seedream-4.0.js +7 -0
- package/dist/packs/models/kie/seedream-4.5.d.ts +6 -0
- package/dist/packs/models/kie/seedream-4.5.js +7 -0
- package/dist/packs/models/kie/seedream-5.0-lite.d.ts +6 -0
- package/dist/packs/models/kie/seedream-5.0-lite.js +7 -0
- package/dist/packs/models/kie/seedream-5.0-pro.d.ts +6 -0
- package/dist/packs/models/kie/seedream-5.0-pro.js +7 -0
- package/dist/packs/models/kie/z-image.d.ts +6 -0
- package/dist/packs/models/kie/z-image.js +7 -0
- package/dist/packs/models/modelscope/flux-1-krea-dev.d.ts +6 -0
- package/dist/packs/models/modelscope/flux-1-krea-dev.js +7 -0
- package/dist/packs/models/modelscope/majicmix-realistic.d.ts +6 -0
- package/dist/packs/models/modelscope/majicmix-realistic.js +7 -0
- package/dist/packs/models/modelscope/modelscope-custom.d.ts +6 -0
- package/dist/packs/models/modelscope/modelscope-custom.js +7 -0
- package/dist/packs/models/modelscope/qwen-image-edit-2509.d.ts +6 -0
- package/dist/packs/models/modelscope/qwen-image-edit-2509.js +7 -0
- package/dist/packs/models/modelscope/qwen-image.d.ts +6 -0
- package/dist/packs/models/modelscope/qwen-image.js +7 -0
- package/dist/packs/models/modelscope/sdxl-14-ckpt.d.ts +6 -0
- package/dist/packs/models/modelscope/sdxl-14-ckpt.js +7 -0
- package/dist/packs/models/modelscope/z-image-turbo.d.ts +6 -0
- package/dist/packs/models/modelscope/z-image-turbo.js +7 -0
- package/dist/packs/models/ppio/kling-3.0.d.ts +6 -0
- package/dist/packs/models/ppio/kling-3.0.js +7 -0
- package/dist/packs/models/ppio/minimax-hailuo-2.3.d.ts +6 -0
- package/dist/packs/models/ppio/minimax-hailuo-2.3.js +7 -0
- package/dist/packs/models/ppio/minimax-speech.d.ts +6 -0
- package/dist/packs/models/ppio/minimax-speech.js +7 -0
- package/dist/packs/models/ppio/wan-2.5-preview.d.ts +6 -0
- package/dist/packs/models/ppio/wan-2.5-preview.js +7 -0
- package/dist/packs/models/ppio/wan-2.6.d.ts +6 -0
- package/dist/packs/models/ppio/wan-2.6.js +7 -0
- package/dist/packs/models/ppio/wan-2.7.d.ts +6 -0
- package/dist/packs/models/ppio/wan-2.7.js +7 -0
- package/dist/packs/models/volcengine/seedream-5.0-lite.d.ts +6 -0
- package/dist/packs/models/volcengine/seedream-5.0-lite.js +7 -0
- package/dist/packs/models/volcengine/seedream-5.0-pro.d.ts +6 -0
- package/dist/packs/models/volcengine/seedream-5.0-pro.js +7 -0
- package/dist/packs/provider-adapters/apimart.d.ts +3 -0
- package/dist/packs/provider-adapters/apimart.js +5 -0
- package/dist/packs/provider-adapters/bailian.d.ts +3 -0
- package/dist/packs/provider-adapters/bailian.js +5 -0
- package/dist/packs/provider-adapters/fal.d.ts +3 -0
- package/dist/packs/provider-adapters/fal.js +5 -0
- package/dist/packs/provider-adapters/grsai.d.ts +3 -0
- package/dist/packs/provider-adapters/grsai.js +5 -0
- package/dist/packs/provider-adapters/kie.d.ts +3 -0
- package/dist/packs/provider-adapters/kie.js +5 -0
- package/dist/packs/provider-adapters/modelscope.d.ts +3 -0
- package/dist/packs/provider-adapters/modelscope.js +5 -0
- package/dist/packs/provider-adapters/ppio.d.ts +3 -0
- package/dist/packs/provider-adapters/ppio.js +5 -0
- package/dist/packs/provider-adapters/volcengine.d.ts +3 -0
- package/dist/packs/provider-adapters/volcengine.js +5 -0
- package/dist/packs/provider-packs/apimart.d.ts +4 -0
- package/dist/packs/provider-packs/apimart.js +25 -0
- package/dist/packs/provider-packs/bailian.d.ts +4 -0
- package/dist/packs/provider-packs/bailian.js +7 -0
- package/dist/packs/provider-packs/fal.d.ts +4 -0
- package/dist/packs/provider-packs/fal.js +42 -0
- package/dist/packs/provider-packs/grsai.d.ts +4 -0
- package/dist/packs/provider-packs/grsai.js +9 -0
- package/dist/packs/provider-packs/kie.d.ts +4 -0
- package/dist/packs/provider-packs/kie.js +32 -0
- package/dist/packs/provider-packs/modelscope.d.ts +4 -0
- package/dist/packs/provider-packs/modelscope.js +12 -0
- package/dist/packs/provider-packs/ppio.d.ts +4 -0
- package/dist/packs/provider-packs/ppio.js +11 -0
- package/dist/packs/provider-packs/volcengine.d.ts +4 -0
- package/dist/packs/provider-packs/volcengine.js +7 -0
- package/dist/packs/tool-models/fal/bria-eraser.d.ts +5 -0
- package/dist/packs/tool-models/fal/bria-eraser.js +4 -0
- package/dist/packs/tool-models/fal/control-light.d.ts +5 -0
- package/dist/packs/tool-models/fal/control-light.js +4 -0
- package/dist/packs/tool-models/fal/finegrain-eraser.d.ts +5 -0
- package/dist/packs/tool-models/fal/finegrain-eraser.js +4 -0
- package/dist/packs/tool-models/fal/flux-2-multiple-angles.d.ts +5 -0
- package/dist/packs/tool-models/fal/flux-2-multiple-angles.js +4 -0
- package/dist/packs/tool-models/fal/flux-pro-erase.d.ts +5 -0
- package/dist/packs/tool-models/fal/flux-pro-erase.js +4 -0
- package/dist/packs/tool-models/fal/outpaint.d.ts +5 -0
- package/dist/packs/tool-models/fal/outpaint.js +4 -0
- package/dist/packs/tool-models/fal/perspective-change.d.ts +5 -0
- package/dist/packs/tool-models/fal/perspective-change.js +4 -0
- package/dist/packs/tool-models/fal/photo-restoration.d.ts +5 -0
- package/dist/packs/tool-models/fal/photo-restoration.js +4 -0
- package/dist/packs/tool-models/fal/pixelcut-background-removal.d.ts +5 -0
- package/dist/packs/tool-models/fal/pixelcut-background-removal.js +4 -0
- package/dist/packs/tool-models/fal/product-photography.d.ts +5 -0
- package/dist/packs/tool-models/fal/product-photography.js +4 -0
- package/dist/packs/tool-models/fal/qwen-image-edit-2509-multiple-angles.d.ts +5 -0
- package/dist/packs/tool-models/fal/qwen-image-edit-2509-multiple-angles.js +4 -0
- package/dist/packs/tool-models/fal/relighting.d.ts +5 -0
- package/dist/packs/tool-models/fal/relighting.js +4 -0
- package/dist/packs/tool-packs/fal-image-edit-tools.d.ts +5 -0
- package/dist/packs/tool-packs/fal-image-edit-tools.js +8 -0
- package/dist/packs/tool-packs/fal-image-utility-tools.d.ts +5 -0
- package/dist/packs/tool-packs/fal-image-utility-tools.js +18 -0
- package/dist/packs/tool-packs/fal-multi-angle-tools.d.ts +5 -0
- package/dist/packs/tool-packs/fal-multi-angle-tools.js +8 -0
- package/dist/pricing/index.d.ts +1 -0
- package/dist/pricing/index.js +1 -0
- package/dist/pricing/mediaContext.d.ts +27 -0
- package/dist/pricing/mediaContext.js +110 -0
- package/dist/protocols/index.d.ts +7 -0
- package/dist/protocols/index.js +7 -0
- package/dist/protocols/polling.d.ts +29 -0
- package/dist/protocols/polling.js +92 -0
- package/dist/protocols/request-builder-dsl.d.ts +15 -0
- package/dist/protocols/request-builder-dsl.js +64 -0
- package/dist/protocols/request-normalizer.d.ts +3 -0
- package/dist/protocols/request-normalizer.js +141 -0
- package/dist/protocols/utf8-stream-decoder.d.ts +20 -0
- package/dist/protocols/utf8-stream-decoder.js +125 -0
- package/dist/providers/apimart.d.ts +3 -0
- package/dist/providers/apimart.js +128 -0
- package/dist/providers/bailian.d.ts +3 -0
- package/dist/providers/bailian.js +50 -0
- package/dist/providers/connection.d.ts +3 -0
- package/dist/providers/connection.js +169 -0
- package/dist/providers/endpoints/apimart.d.ts +11 -0
- package/dist/providers/endpoints/apimart.js +49 -0
- package/dist/providers/endpoints/grsai.d.ts +11 -0
- package/dist/providers/endpoints/grsai.js +50 -0
- package/dist/providers/fal.d.ts +3 -0
- package/dist/providers/fal.js +148 -0
- package/dist/providers/grsai.d.ts +3 -0
- package/dist/providers/grsai.js +99 -0
- package/dist/providers/helpers.d.ts +10 -0
- package/dist/providers/helpers.js +76 -0
- package/dist/providers/index.d.ts +25 -0
- package/dist/providers/index.js +93 -0
- package/dist/providers/kie.d.ts +3 -0
- package/dist/providers/kie.js +125 -0
- package/dist/providers/metadata.d.ts +22 -0
- package/dist/providers/metadata.js +141 -0
- package/dist/providers/modelscope.d.ts +3 -0
- package/dist/providers/modelscope.js +65 -0
- package/dist/providers/ppio-media.d.ts +2 -0
- package/dist/providers/ppio-media.js +20 -0
- package/dist/providers/ppio.d.ts +3 -0
- package/dist/providers/ppio.js +98 -0
- package/dist/providers/provider-fetch.d.ts +7 -0
- package/dist/providers/provider-fetch.js +42 -0
- package/dist/providers/types.d.ts +6 -0
- package/dist/providers/types.js +1 -0
- package/dist/providers/volcengine.d.ts +3 -0
- package/dist/providers/volcengine.js +32 -0
- package/dist/runtime/AiRuntimeError.d.ts +5 -0
- package/dist/runtime/AiRuntimeError.js +11 -0
- package/dist/runtime/CredentialStore.d.ts +47 -0
- package/dist/runtime/CredentialStore.js +1 -0
- package/dist/runtime/Logger.d.ts +47 -0
- package/dist/runtime/Logger.js +11 -0
- package/dist/runtime/MediaReader.d.ts +45 -0
- package/dist/runtime/MediaReader.js +1 -0
- package/dist/runtime/RealtimeTransport.d.ts +22 -0
- package/dist/runtime/RealtimeTransport.js +1 -0
- package/dist/runtime/RuntimeContext.d.ts +26 -0
- package/dist/runtime/RuntimeContext.js +13 -0
- package/dist/runtime/Tracer.d.ts +26 -0
- package/dist/runtime/Tracer.js +7 -0
- package/dist/runtime/Transport.d.ts +43 -0
- package/dist/runtime/Transport.js +1 -0
- package/dist/runtime/error-classify.d.ts +7 -0
- package/dist/runtime/error-classify.js +192 -0
- package/dist/runtime/errors.d.ts +40 -0
- package/dist/runtime/errors.js +27 -0
- package/dist/runtime/index.d.ts +25 -0
- package/dist/runtime/index.js +15 -0
- package/dist/runtime/provider-error-core.d.ts +33 -0
- package/dist/runtime/provider-error-core.js +86 -0
- package/dist/runtime/retry.d.ts +7 -0
- package/dist/runtime/retry.js +72 -0
- package/dist/runtime/task-registry.d.ts +5 -0
- package/dist/runtime/task-registry.js +25 -0
- package/dist/structured-output/index.d.ts +1 -0
- package/dist/structured-output/index.js +1 -0
- package/dist/structured-output/seedream-layer-stack.d.ts +4 -0
- package/dist/structured-output/seedream-layer-stack.js +206 -0
- package/dist/tool-packs/fal-erase/models/bria-eraser.model.d.ts +2 -0
- package/dist/tool-packs/fal-erase/models/bria-eraser.model.js +38 -0
- package/dist/tool-packs/fal-erase/models/finegrain-eraser.model.d.ts +2 -0
- package/dist/tool-packs/fal-erase/models/finegrain-eraser.model.js +47 -0
- package/dist/tool-packs/fal-erase/models/flux-pro-erase.model.d.ts +2 -0
- package/dist/tool-packs/fal-erase/models/flux-pro-erase.model.js +42 -0
- package/dist/tool-packs/fal-image-utilities/models/control-light.model.d.ts +2 -0
- package/dist/tool-packs/fal-image-utilities/models/control-light.model.js +42 -0
- package/dist/tool-packs/fal-image-utilities/models/outpaint.model.d.ts +2 -0
- package/dist/tool-packs/fal-image-utilities/models/outpaint.model.js +74 -0
- package/dist/tool-packs/fal-image-utilities/models/photo-restoration.model.d.ts +2 -0
- package/dist/tool-packs/fal-image-utilities/models/photo-restoration.model.js +56 -0
- package/dist/tool-packs/fal-image-utilities/models/pixelcut-background-removal.model.d.ts +2 -0
- package/dist/tool-packs/fal-image-utilities/models/pixelcut-background-removal.model.js +41 -0
- package/dist/tool-packs/fal-image-utilities/models/product-photography.model.d.ts +2 -0
- package/dist/tool-packs/fal-image-utilities/models/product-photography.model.js +41 -0
- package/dist/tool-packs/fal-image-utilities/models/relighting.model.d.ts +3 -0
- package/dist/tool-packs/fal-image-utilities/models/relighting.model.js +74 -0
- package/dist/tool-packs/fal-image-utilities/shared.d.ts +9 -0
- package/dist/tool-packs/fal-image-utilities/shared.js +54 -0
- package/dist/tool-packs/fal-multi-angle/models/flux-2-multiple-angles.model.d.ts +2 -0
- package/dist/tool-packs/fal-multi-angle/models/flux-2-multiple-angles.model.js +75 -0
- package/dist/tool-packs/fal-multi-angle/models/perspective-change.model.d.ts +3 -0
- package/dist/tool-packs/fal-multi-angle/models/perspective-change.model.js +58 -0
- package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2509-multiple-angles.model.d.ts +2 -0
- package/dist/tool-packs/fal-multi-angle/models/qwen-image-edit-2509-multiple-angles.model.js +75 -0
- package/dist/tool-packs/fal-multi-angle/shared.d.ts +2 -0
- package/dist/tool-packs/fal-multi-angle/shared.js +22 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +4 -0
- package/dist/types/model.d.ts +432 -0
- package/dist/types/model.js +21 -0
- package/dist/types/runtime.d.ts +161 -0
- package/dist/types/runtime.js +1 -0
- package/dist/upload/apimart-upload.d.ts +3 -0
- package/dist/upload/apimart-upload.js +32 -0
- package/dist/upload/base64.d.ts +5 -0
- package/dist/upload/base64.js +49 -0
- package/dist/upload/fal-legacy.d.ts +7 -0
- package/dist/upload/fal-legacy.js +19 -0
- package/dist/upload/fal-transport.d.ts +7 -0
- package/dist/upload/fal-transport.js +104 -0
- package/dist/upload/index.d.ts +10 -0
- package/dist/upload/index.js +15 -0
- package/dist/upload/kie-upload.d.ts +3 -0
- package/dist/upload/kie-upload.js +41 -0
- package/dist/upload/media-binary.d.ts +23 -0
- package/dist/upload/media-binary.js +80 -0
- package/dist/upload/media-fields.d.ts +34 -0
- package/dist/upload/media-fields.js +135 -0
- package/dist/upload/prepared-media.d.ts +5 -0
- package/dist/upload/prepared-media.js +1 -0
- package/dist/upload/preprocess-core.d.ts +40 -0
- package/dist/upload/preprocess-core.js +130 -0
- package/dist/upload/preprocess.d.ts +8 -0
- package/dist/upload/preprocess.js +24 -0
- package/dist/upload/provider-preprocessors/apimart.d.ts +4 -0
- package/dist/upload/provider-preprocessors/apimart.js +42 -0
- package/dist/upload/provider-preprocessors/data-uri.d.ts +4 -0
- package/dist/upload/provider-preprocessors/data-uri.js +6 -0
- package/dist/upload/provider-preprocessors/factory.d.ts +4 -0
- package/dist/upload/provider-preprocessors/factory.js +16 -0
- package/dist/upload/provider-preprocessors/fal.d.ts +4 -0
- package/dist/upload/provider-preprocessors/fal.js +39 -0
- package/dist/upload/provider-preprocessors/kie.d.ts +4 -0
- package/dist/upload/provider-preprocessors/kie.js +18 -0
- package/dist/upload/provider-preprocessors/ppio.d.ts +6 -0
- package/dist/upload/provider-preprocessors/ppio.js +56 -0
- package/dist/upload/providers.d.ts +5 -0
- package/dist/upload/providers.js +5 -0
- package/dist/upload/upload-response.d.ts +3 -0
- package/dist/upload/upload-response.js +24 -0
- package/docs/README.md +26 -0
- package/docs/consumers.md +48 -0
- package/docs/llm-adaptation/README.md +139 -0
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/DeepSeek.md +91 -0
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/Kimi.md +75 -0
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206/MiniMax.md +84 -0
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//345/260/217/347/261/263MiMo.md +85 -0
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//346/231/272/350/260/261GLM.md +232 -0
- 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 +87 -0
- package/docs/llm-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274Qwen.md +84 -0
- package/docs/llm-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +88 -0
- package/docs/model-adaptation/Bria-Eraser/Bria-Eraser_Fal.md +32 -0
- 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 -0
- package/docs/model-adaptation/ControlLight/ControlLight_Fal.md +85 -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 -0
- package/docs/model-adaptation/Finegrain-Eraser/Finegrain-Eraser_Fal.md +31 -0
- package/docs/model-adaptation/Flux-Pro-Erase/Flux-Pro-Erase_Fal.md +34 -0
- package/docs/model-adaptation/Fun-ASR/Fun-ASR_/347/231/276/347/202/274.md +43 -0
- package/docs/model-adaptation/Fun-ASR-Flash-2026-06-15/Fun-ASR-Flash-2026-06-15_/347/231/276/347/202/274.md +41 -0
- package/docs/model-adaptation/Fun-ASR-Realtime/Fun-ASR-Realtime_/347/231/276/347/202/274.md +37 -0
- package/docs/model-adaptation/Fun-ASR-Realtime-2026-02-28/Fun-ASR-Realtime-2026-02-28_/347/231/276/347/202/274.md +39 -0
- package/docs/model-adaptation/GLM-5.3-Flash/GLM-5.3-Flash_/346/231/272/350/260/261.md +207 -0
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_APIMart.md +173 -0
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Fal.md +94 -0
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_Grsai.md +137 -0
- package/docs/model-adaptation/GPT-Image-2/GPT-Image-2_KIE.md +93 -0
- package/docs/model-adaptation/GPT-OSS-20B/GPT-OSS-20B_Groq.md +62 -0
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_APIMart.md +124 -0
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_Fal.md +84 -0
- package/docs/model-adaptation/Gemini-Omni-Flash/Gemini-Omni-Flash_KIE.md +129 -0
- package/docs/model-adaptation/Grok-Imagine/Grok-Imagine_KIE.md +36 -0
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_APIMart.md +250 -0
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_Fal.md +84 -0
- package/docs/model-adaptation/Grok-Imagine-2.0/Grok-Imagine-2.0_KIE.md +105 -0
- package/docs/model-adaptation/Hailuo-02/Hailuo-02_Fal.md +93 -0
- package/docs/model-adaptation/Hailuo-02/Hailuo-02_KIE.md +56 -0
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_Fal.md +88 -0
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_KIE.md +51 -0
- package/docs/model-adaptation/Hailuo-2.3/Hailuo-2.3_/346/264/276/346/254/247/344/272/221.md +70 -0
- package/docs/model-adaptation/IC-Light-v2/IC-Light-v2_Fal.md +96 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- 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 -0
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_APIMart.md +112 -0
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_Fal.md +89 -0
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_KIE.md +106 -0
- package/docs/model-adaptation/Kling-3.0/Kling-3.0_/346/264/276/346/254/247/344/272/221.md +119 -0
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_APIMart.md +125 -0
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_Fal.md +107 -0
- package/docs/model-adaptation/Kling-3.0-Omni/Kling-3.0-Omni_KIE.md +143 -0
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_APIMart.md +85 -0
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_Fal.md +83 -0
- package/docs/model-adaptation/Kling-3.0-Turbo/Kling-3.0-Turbo_KIE.md +84 -0
- package/docs/model-adaptation/Midjourney/Midjourney_APIMart.md +396 -0
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_APIMart.md +234 -0
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_Fal.md +108 -0
- package/docs/model-adaptation/MiniMax-H3/MiniMax-H3_KIE.md +111 -0
- package/docs/model-adaptation/MiniMax-Speech/MiniMax-Speech_/346/264/276/346/254/247/344/272/221.md +170 -0
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_APIMart.md +89 -0
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Fal.md +99 -0
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_Grsai.md +82 -0
- package/docs/model-adaptation/Nano-Banana-2/Nano-Banana-2_KIE.md +70 -0
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_APIMart.md +79 -0
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_Grsai.md +65 -0
- package/docs/model-adaptation/Nano-Banana-2-Lite/Nano-Banana-2-Lite_KIE.md +64 -0
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_APIMart.md +83 -0
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Fal.md +89 -0
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_Grsai.md +82 -0
- package/docs/model-adaptation/Nano-Banana-Pro/Nano-Banana-Pro_KIE.md +64 -0
- 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 -0
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_APIMart.md +117 -0
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_Fal.md +84 -0
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_KIE.md +103 -0
- package/docs/model-adaptation/Qwen-Image-3.0/Qwen-Image-3.0_/347/231/276/347/202/274.md +138 -0
- package/docs/model-adaptation/Qwen-Image-Edit-2509-/345/244/232/350/247/222/345/272/246/Qwen-Image-Edit-2509-/345/244/232/350/247/222/345/272/246_Fal.md +116 -0
- package/docs/model-adaptation/Qwen-MT-Flash/Qwen-MT-Flash_/347/231/276/347/202/274.md +47 -0
- package/docs/model-adaptation/Qwen-MT-Lite/Qwen-MT-Lite_/347/231/276/347/202/274.md +39 -0
- package/docs/model-adaptation/Qwen-MT-Plus/Qwen-MT-Plus_/347/231/276/347/202/274.md +39 -0
- package/docs/model-adaptation/Qwen3-ASR-Flash/Qwen3-ASR-Flash_/347/231/276/347/202/274.md +40 -0
- package/docs/model-adaptation/Qwen3-ASR-Flash-2026-02-10/Qwen3-ASR-Flash-2026-02-10_/347/231/276/347/202/274.md +33 -0
- package/docs/model-adaptation/Qwen3-ASR-Flash-Filetrans/Qwen3-ASR-Flash-Filetrans_/347/231/276/347/202/274.md +41 -0
- package/docs/model-adaptation/Qwen3-ASR-Flash-Realtime/Qwen3-ASR-Flash-Realtime_/347/231/276/347/202/274.md +35 -0
- 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 -0
- package/docs/model-adaptation/README.md +304 -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 -0
- 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 +143 -0
- 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 -0
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_APIMart.md +121 -0
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_Fal.md +97 -0
- package/docs/model-adaptation/Seedance-2.0/Seedance-2.0_KIE.md +86 -0
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_APIMart.md +89 -0
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_Fal.md +95 -0
- package/docs/model-adaptation/Seedance-2.0-Fast/Seedance-2.0-Fast_KIE.md +78 -0
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_APIMart.md +89 -0
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_Fal.md +96 -0
- package/docs/model-adaptation/Seedance-2.0-Mini/Seedance-2.0-Mini_KIE.md +78 -0
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_APIMart.md +212 -0
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_Fal.md +94 -0
- package/docs/model-adaptation/Seedance-2.5/Seedance-2.5_KIE.md +89 -0
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_APIMart.md +106 -0
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_Fal.md +91 -0
- package/docs/model-adaptation/Seedream-5.0-Lite/Seedream-5.0-Lite_KIE.md +89 -0
- 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 +108 -0
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_APIMart.md +194 -0
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_Fal.md +100 -0
- package/docs/model-adaptation/Seedream-5.0-Pro/Seedream-5.0-Pro_KIE.md +141 -0
- 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 -0
- package/docs/model-adaptation/SenseVoiceSmall/SenseVoiceSmall_/347/241/205/345/237/272/346/265/201/345/212/250.md +69 -0
- package/docs/model-adaptation/TeleSpeechASR/TeleSpeechASR_/347/241/205/345/237/272/346/265/201/345/212/250.md +72 -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 -0
- 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 -0
- package/docs/model-adaptation/Wan-2.5-Preview/Wan-2.5-Preview_/346/264/276/346/254/247/344/272/221.md +82 -0
- package/docs/model-adaptation/Wan-2.6/Wan-2.6_/346/264/276/346/254/247/344/272/221.md +84 -0
- package/docs/model-adaptation/Wan-2.7/Wan-2.7_/346/264/276/346/254/247/344/272/221.md +122 -0
- package/docs/model-adaptation/Whisper-Large-v3/Whisper-Large-v3_Groq.md +76 -0
- package/docs/model-adaptation/Whisper-Large-v3-Turbo/Whisper-Large-v3-Turbo_Groq.md +75 -0
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_APIMart.md +88 -0
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_Fal.md +95 -0
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_KIE.md +71 -0
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/347/231/276/347/202/274.md +122 -0
- package/docs/model-adaptation/Z-Image-Turbo/Z-Image-Turbo_/351/255/224/346/220/255.md +97 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/APIMart.md +238 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Fal.md +172 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Groq.md +121 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/Grsai.md +217 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206/KIE.md +131 -0
- 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 -0
- 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 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//346/264/276/346/254/247/344/272/221.md +138 -0
- 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 +173 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//347/231/276/347/202/274.md +227 -0
- 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 +88 -0
- package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md +207 -0
- package/docs/model-adaptation//346/226/207/346/241/243/351/207/207/351/233/206/346/211/213/345/206/214.md +311 -0
- 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 -0
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Electron.md +77 -0
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/Tauri.md +81 -0
- package/docs//346/216/245/345/205/245/346/214/207/345/215/227/UXP.md +169 -0
- 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 -0
- 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 -0
- package/examples/form-renderer/README.md +17 -0
- package/examples/form-renderer/cli.ts +32 -0
- package/examples/form-renderer/index.ts +144 -0
- package/examples/form-renderer/package.json +16 -0
- package/examples/form-renderer/tsconfig.json +14 -0
- package/examples/llm-chat/README.md +32 -0
- package/examples/llm-chat/index.ts +100 -0
- package/examples/llm-chat/package.json +19 -0
- package/examples/llm-chat/tsconfig.json +14 -0
- package/examples/minimal-node/README.md +31 -0
- package/examples/minimal-node/index.ts +138 -0
- package/examples/minimal-node/package.json +17 -0
- package/examples/minimal-node/tsconfig.json +14 -0
- package/package.json +198 -0
package/docs/model-adaptation//344/276/233/345/272/224/345/225/206//351/255/224/346/220/255.md
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# 魔搭 ModelScope · 供应商基础文档
|
|
2
|
+
|
|
3
|
+
| 项目 | 内容 |
|
|
4
|
+
|---|---|
|
|
5
|
+
| 最后更新 | 2026-08-30 |
|
|
6
|
+
| 供应商类型 | 开源模型托管平台(API-Inference 服务) |
|
|
7
|
+
| 覆盖模态 | **仅图片**(无视频、无音频) |
|
|
8
|
+
| 文档可见性 | 公开,无需登录 |
|
|
9
|
+
| 价格可见性 | 公开,无需登录 |
|
|
10
|
+
| 结算方式 | **魔粒积分,不是货币** |
|
|
11
|
+
|
|
12
|
+
## 1. 接入协议
|
|
13
|
+
|
|
14
|
+
- **Base URL**:`https://api-inference.modelscope.cn`
|
|
15
|
+
- **鉴权**:`Authorization: Bearer <MODELSCOPE_TOKEN>`
|
|
16
|
+
- **提交**:`POST /v1/images/generations`,请求头 `X-ModelScope-Async-Mode: true` → 返回 `{ "task_id": "..." }`
|
|
17
|
+
- **查询**:`GET /v1/tasks/<task_id>`,请求头 `X-ModelScope-Task-Type: image_generation`
|
|
18
|
+
- **状态字段**:`task_status`,枚举 `SUCCEED` / `FAILED`(官方示例每 5 秒轮询一次)
|
|
19
|
+
- **结果字段**:`output_images`(字符串数组)
|
|
20
|
+
|
|
21
|
+
### 提交路由的历史问题(已修正)
|
|
22
|
+
|
|
23
|
+
代码曾把提交路由写成 `/api/v1/jobs/createTask`——那是 **KIE 的路由格式**,在一次批量改动里被复制串了供应商。已改为官方的 `/v1/images/generations`。
|
|
24
|
+
|
|
25
|
+
该常量现在只有 `packages/ai-sdk/src/catalog/modelscope/utils.ts` 一份实现;所有魔搭模型的真实 builder 直接复用它。`packages/ai-sdk/tests/catalog/modelscope.test.ts` 同时验证共享函数和 catalog builder,避免路由或图片来源静默分叉。
|
|
26
|
+
|
|
27
|
+
> ⚠️ 修正**尚未用真实 token 实测确认**——本机网络无法连通 `api-inference.modelscope.cn`,且未配置魔搭 Token。依据是官方文档与每个模型页示例代码的一致写法(无一例外)。首次真实调用时优先验证这一项。
|
|
28
|
+
|
|
29
|
+
## 2. 硬前提(不满足则完全不可用)
|
|
30
|
+
|
|
31
|
+
1. 魔搭账号**必须绑定阿里云账号**
|
|
32
|
+
2. 该阿里云账号**必须已完成实名认证**
|
|
33
|
+
|
|
34
|
+
## 3. 文件上传
|
|
35
|
+
|
|
36
|
+
魔搭没有独立的文件上传端点。官方做法是把本地图片转成 `data:<mime>;base64,...` 直接放进 `image_url` 字段,文档提供了 `image_to_data_url()` 工具函数。
|
|
37
|
+
|
|
38
|
+
本项目的处理(`upload.ts` → `uploadForHostedUrl`):**优先借用 KIE 的上传服务**换公网 URL,KIE Key 未配置或上传失败时**静默退回 data URI**。因为有兜底,魔搭模型不会像 PPIO 那样因为缺 KIE Key 直接失败。
|
|
39
|
+
|
|
40
|
+
请求体里图片来源有三个键,builder 必须都认:生成页提交是 `uploadedFilePaths`,画布节点是 `images`,旧工程可能直接存 `image_url`。历史动态运行时副本曾漏掉 `uploadedFilePaths`;SDK 直连后已删除该副本,并由真实 catalog builder 测试锁定行为。
|
|
41
|
+
|
|
42
|
+
## 4. 请求参数(全模型通用)
|
|
43
|
+
|
|
44
|
+
魔搭 API-Inference 是统一接口,所有图像模型共用同一套参数,差异只在 `model` 值和尺寸上限。
|
|
45
|
+
|
|
46
|
+
| 字段 | 类型 | 必填 | 默认 | 约束 |
|
|
47
|
+
|---|---|---|---|---|
|
|
48
|
+
| `model` | string | ✅ | — | 魔搭 AIGC 模型 ID,如 `Qwen/Qwen-Image` |
|
|
49
|
+
| `prompt` | string | ✅ | — | < 2000 字符;多数模型英文效果更好 |
|
|
50
|
+
| `negative_prompt` | string | | — | < 2000 字符 |
|
|
51
|
+
| `size` | string | | — | `WxH` 格式,**上限按模型分档,见下表** |
|
|
52
|
+
| `seed` | int | | — | [0, 2³¹−1] |
|
|
53
|
+
| `steps` | int | | 30 | [1, 100] |
|
|
54
|
+
| `guidance` | float | | 3.5 | [1.5, 20] |
|
|
55
|
+
| `image_url` | string \| **string[]** | | — | 仅图片编辑模型;公网 URL 或 base64 data URL |
|
|
56
|
+
| `loras` | string \| dict | | — | 单个 `"<repo-id>"`;多个 `{"<id1>":0.6,"<id2>":0.4}`;**最多 6 个,权重和必须 = 1.0**,须与基模型兼容 |
|
|
57
|
+
|
|
58
|
+
**没有 `n` 或图片数量参数——一次只出一张。**
|
|
59
|
+
|
|
60
|
+
### `image_url` 支持数组(已确认)
|
|
61
|
+
|
|
62
|
+
`Qwen/Qwen-Image-Edit-2509` 的官方示例代码里 `image_url` 就是数组,并明确给出了双图编辑的注释示例。官方参数表把类型写成 `string` 是**表述滞后**,以模型页示例为准。本项目发送数组的做法是正确的。
|
|
63
|
+
|
|
64
|
+
### 尺寸上限分档
|
|
65
|
+
|
|
66
|
+
| 模型family | `size` 范围 |
|
|
67
|
+
|---|---|
|
|
68
|
+
| SD 系列 | [64×64, 2048×2048] |
|
|
69
|
+
| FLUX | **[64×64, 1024×1024]** |
|
|
70
|
+
| Qwen-Image | [64×64, 1664×1664] |
|
|
71
|
+
| Z-Image-Turbo | **[512×512, 2048×2048]** |
|
|
72
|
+
|
|
73
|
+
> 已按模型分档:`buildModelscopeRequest` 接受 `sizeBounds`,各模型在 builder 里下发自己的上下界。此前统一用 `[64, 2048]`,FLUX 超过 1024 会被拒、Z-Image-Turbo 低于 512 不合法。
|
|
74
|
+
|
|
75
|
+
## 5. 计费:魔粒,不是钱
|
|
76
|
+
|
|
77
|
+
魔搭**不按人民币计价、没有充值入口**。消耗的是「魔粒」积分,主要靠每日登录和社区行为免费获取。
|
|
78
|
+
|
|
79
|
+
### 扣减档位
|
|
80
|
+
|
|
81
|
+
| 档位(`CostTier`) | 魔粒/次 | 项目已适配模型 |
|
|
82
|
+
|---|---|---|
|
|
83
|
+
| 轻量模型 | 0.5 | — |
|
|
84
|
+
| 主流模型 `standard` | 1 | Z-Image-Turbo、FLUX.1-Krea-dev、majicMIX_realistic、14_ckpt_SD_XL |
|
|
85
|
+
| 旗舰模型 `ultra` | 2 | Qwen-Image、Qwen-Image-Edit-2509 |
|
|
86
|
+
|
|
87
|
+
### 魔粒获取
|
|
88
|
+
|
|
89
|
+
| 行为 | 额度 | 有效期 | 频次 |
|
|
90
|
+
|---|---|---|---|
|
|
91
|
+
| 注册并登录 | **200/日** | 24 小时 | 每日 1 次 |
|
|
92
|
+
| 绑定阿里云账号 | **+50/日** | 24 小时 | 每日 1 次 |
|
|
93
|
+
| 验证邮箱 / 编辑个人介绍 / 配置个人主页 | 各 50 | 90 天 | 各首次 |
|
|
94
|
+
| 发表评论 | 5/次 | 短期 | ≤2 次/日 |
|
|
95
|
+
| 收藏 / 喜欢 | 2/次 | 短期 | ≤20 次/日 |
|
|
96
|
+
| 邀请好友 / 受邀注册 | 20/人、50 | 长期 | 50 人/月、首次 |
|
|
97
|
+
|
|
98
|
+
**日常稳态免费额度 = 250 魔粒/天**(登录 200 + 绑定阿里云 50,均为短期魔粒,24 小时过期不累积)。换算到本项目:
|
|
99
|
+
|
|
100
|
+
- 旗舰档(Qwen-Image / Qwen-Image-Edit-2509):**约 125 次/天**
|
|
101
|
+
- 主流档(Z-Image-Turbo / FLUX / majicMIX / SDXL):**约 250 次/天**
|
|
102
|
+
|
|
103
|
+
### 其他计费规则
|
|
104
|
+
|
|
105
|
+
- **没有固定的每日调用次数上限**,上限由魔粒余额决定
|
|
106
|
+
- 短期/长期魔粒消耗时等价,系统自动优先扣最临近过期的
|
|
107
|
+
- **失败返还**:系统原因导致的推理失败全额返还;用户主动取消的推理任务也全额返还
|
|
108
|
+
- **并发是动态限流的**,官方只承诺「保障开发者单并发正常使用」,并明确说明「请勿用于需要高并发以及 SLA 保障的线上任务」
|
|
109
|
+
|
|
110
|
+
> 已修正:`Currency` 类型增加非货币单位 `魔粒`,`priceDisplay` 对其不做汇率换算、按「数量 + 单位」渲染。固定 catalog 模型按官方档位标注(Qwen 系 2 魔粒,其余 1 魔粒)。自定义入口不再假定主流档 1 魔粒:保存前校验成功时持久化接口返回的 `CostTier` 与 `EstimatedMagicGrainCost` 并交给 SDK 计价;旧记录或校验为 `unknown` 时不显示确定金额,避免误导。
|
|
111
|
+
|
|
112
|
+
### 高并发替代路径:API-Provider
|
|
113
|
+
|
|
114
|
+
在个人中心托管外部供应商(DashScope、DeepSeek 等)的 API Key,然后用 `model='<模型ID>:<Provider名>'` 调用,走同一套接口和魔搭 Token 鉴权,**不受免费流控限制,平台不收费**,费用由外部供应商结算。目前官方文档只演示了 LLM,未见图像模型的 Provider 支持。
|
|
115
|
+
|
|
116
|
+
## 6. 可用性判定方法
|
|
117
|
+
|
|
118
|
+
「模型在魔搭有页面」和「模型支持 API-Inference 调用」是两回事,必须确认后者。权威判定接口(无需登录):
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
GET https://www.modelscope.cn/api/v1/inference/list_model_providers?ModelId=<id>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
三种响应(2026-08-26 实测):
|
|
125
|
+
|
|
126
|
+
| 情况 | 响应 |
|
|
127
|
+
|---|---|
|
|
128
|
+
| 支持 API-Inference | `200` + `Data.Providers` 数组,含 `CostTier` 与 `EstimatedMagicGrainCost` |
|
|
129
|
+
| 模型存在但未开放 API-Inference | `200` + `Data.Providers: null, TotalCount: 0` |
|
|
130
|
+
| **模型 ID 查不到** | **`HTTP 500`**(不是 404,也不是 200+空结果;用多个不存在的 ID 复现一致) |
|
|
131
|
+
|
|
132
|
+
500 同时也是通用服务端错误码,无法从状态码本身区分「拼错了」和「魔搭挂了」,提示文案需要同时覆盖两种可能。
|
|
133
|
+
|
|
134
|
+
另有 `GET /api/v1/inference/<ns>/<name>/api_inference_example` 返回官方示例代码与 `InferenceType`。
|
|
135
|
+
|
|
136
|
+
**自定义模型入口已接入该校验**(`src/services/modelscopeCustomModels/availability.ts`,走 `nativeFetch` PAL 通道,未新增 IPC):保存前查询,`unavailable` 与 `not-found` 直接拦下并给出对应提示;`available` 将 `CostTier` 与 `EstimatedMagicGrainCost` 随模型配置持久化并注册到 SDK;`unknown`(断网/超时/其他非 2xx)放行但警告,并把价格保持为未知——校验跑不通是我们这边的问题,不该因此挡住用户,也不能伪装成 1 魔粒。
|
|
137
|
+
|
|
138
|
+
> API-Inference 只覆盖魔搭挑选的一个子集(依据点赞/下载热度),官方明确说明「随着新模型的推出,比较早的模型可能逐渐从 API-Inference 下架」。已实测不支持的热门模型包括 `black-forest-labs/FLUX.1-dev`、`FLUX.1-Kontext-dev`、`Tencent-Hunyuan/HunyuanImage-3.0`、`stabilityai/stable-diffusion-3.5-large`、`HiDream-ai/HiDream-O1-Image`。
|
|
139
|
+
>
|
|
140
|
+
> 注意 `black-forest-labs/FLUX.1-dev` 曾被用作添加表单的占位示例,而它恰恰**不支持** API-Inference,已改为 `Tongyi-MAI/Z-Image-Turbo`。
|
|
141
|
+
|
|
142
|
+
## 7. 在售模型(已适配)
|
|
143
|
+
|
|
144
|
+
| Model ID | 类型 | 档位 | 魔粒/次 |
|
|
145
|
+
|---|---|---|---|
|
|
146
|
+
| `Qwen/Qwen-Image` | 文生图 | ultra | 2 |
|
|
147
|
+
| `Qwen/Qwen-Image-Edit-2509` | 图生图 | ultra | 2 |
|
|
148
|
+
| `Tongyi-MAI/Z-Image-Turbo` | 文生图 | standard | 1 |
|
|
149
|
+
| `black-forest-labs/FLUX.1-Krea-dev` | 文生图 | standard | 1 |
|
|
150
|
+
| `MusePublic/majicMIX_realistic` | 文生图 | standard | 1 |
|
|
151
|
+
| `MusePublic/14_ckpt_SD_XL` | 文生图 | standard | 1 |
|
|
152
|
+
|
|
153
|
+
全部经 `list_model_providers` 确认当前可用。
|
|
154
|
+
|
|
155
|
+
### 当前可用、项目尚未接入
|
|
156
|
+
|
|
157
|
+
| Model ID | 类型 | 魔粒/次 | 说明 |
|
|
158
|
+
|---|---|---|---|
|
|
159
|
+
| `Qwen/Qwen-Image-2512` | 文生图 | 2 | Qwen-Image 的 12 月更新版,可直接替代 `Qwen/Qwen-Image` |
|
|
160
|
+
| `Qwen/Qwen-Image-Edit-2511` | 图生图 | 2 | 2509 的直接后继,同样支持数组多图编辑 |
|
|
161
|
+
| `krea/Krea-2-Turbo` | 文生图 | 1 | |
|
|
162
|
+
| `black-forest-labs/FLUX.2-klein-base-9B` | 文生图 | 2 | |
|
|
163
|
+
| `FireRedTeam/FireRed-Image-Edit-1.1` | 图生图 | 2 | |
|
|
164
|
+
| `Tongyi-MAI/Z-Image` | 文生图 | 1 | 非 Turbo 版 |
|
|
165
|
+
| `MAILAND/majicflus_v1` | 文生图 | 1 | |
|
|
166
|
+
|
|
167
|
+
## 8. 主清单模型的覆盖情况
|
|
168
|
+
|
|
169
|
+
项目「常用优秀模型清单」共 18 个,**魔搭只提供其中 1 个**:
|
|
170
|
+
|
|
171
|
+
| 清单模型 | 魔搭 |
|
|
172
|
+
|---|---|
|
|
173
|
+
| Z-Image Turbo | ✅ 提供,见 [Z-Image-Turbo_魔搭.md](../Z-Image-Turbo/Z-Image-Turbo_魔搭.md) |
|
|
174
|
+
| 其余 17 个 | ❌ 全部没有 |
|
|
175
|
+
|
|
176
|
+
原因是结构性的:魔搭 API-Inference 只服务**魔搭上托管的开源权重模型**,而清单里基本全是闭源商业 API 模型。站内搜到的 Seedream / Nano Banana / Midjourney / Grok 条目**全是社区用户上传的风格 LoRA**,不是模型本体,也不支持 API-Inference。
|
|
177
|
+
|
|
178
|
+
**视频类 9 个全部不可能**:魔搭 API-Inference 根本不提供视频生成——文档只定义了 `image_generation` 一种任务类型,覆盖范围明确写的是「开源大语言模型(LLM),多模态模型(MLLM),以及 AIGC 专区**文生图**模型」。MiniMax H3 是唯一一个权重真实存在于魔搭的清单视频模型,但不在 API-Inference 范围内。
|
|
179
|
+
|
|
180
|
+
### 关于 Qwen Image 3.0
|
|
181
|
+
|
|
182
|
+
**魔搭上没有 Qwen Image 3.0**,`Qwen/Qwen-Image-3.0` 这个 ID 不存在。
|
|
183
|
+
|
|
184
|
+
Qwen 官方在魔搭的图像模型只有 4 个:`Qwen/Qwen-Image`、`Qwen/Qwen-Image-Edit-2509`、`Qwen/Qwen-Image-Edit-2511`、`Qwen/Qwen-Image-2512`。其中 `Qwen-Image-2512` 的模型卡自述是「Qwen-Image 文生图基础模型的 12 月更新版」,**不是** 3.0。清单里的 Qwen Image 3.0 是通义的闭源商业版本,两条线不同。
|
|
185
|
+
|
|
186
|
+
> 若要在魔搭侧跟进 Qwen 图像新版本,正确的 ID 是 `Qwen/Qwen-Image-2512`(文生图)和 `Qwen/Qwen-Image-Edit-2511`(图片编辑)。
|
|
187
|
+
|
|
188
|
+
## 9. 适配要点
|
|
189
|
+
|
|
190
|
+
- 全部模型共用同一个端点与同一套参数,**只有 `model` 值和尺寸上限不同**;不要为每个模型复制一份 builder。
|
|
191
|
+
- 尺寸边界必须按模型分档,不能统一用 [64, 2048]。
|
|
192
|
+
- 计价不能用货币表达,应按魔粒档位展示。
|
|
193
|
+
- 自定义模型入口在保存前调 `list_model_providers` 校验可用性;成功时复用并持久化返回的 `CostTier` / `EstimatedMagicGrainCost`,校验失败(`unknown`)时放行并警告、价格保持未知,不要当成不支持或默认成 1 魔粒。
|
|
194
|
+
- 项目默认隐藏的参数(`seed`、负面提示词):魔搭两个字段都有,按项目约定**不显示、不请求**。
|
|
195
|
+
|
|
196
|
+
## 10. 原始链接索引
|
|
197
|
+
|
|
198
|
+
| 信息 | 链接 | 是否需登录 |
|
|
199
|
+
|---|---|---|
|
|
200
|
+
| API-Inference 介绍与完整参数表 | https://www.modelscope.cn/docs/model-service/API-Inference/intro | 否 |
|
|
201
|
+
| API-Inference 限制与覆盖范围 | https://www.modelscope.cn/docs/model-service/API-Inference/limits | 否 |
|
|
202
|
+
| 魔粒说明(获取与消耗规则) | https://www.modelscope.cn/docs/magicube/intro | 否 |
|
|
203
|
+
| API-Provider(高并发替代路径) | https://www.modelscope.cn/docs/model-service/API-Inference/api-provider | 否 |
|
|
204
|
+
| 模型可用性判定接口 | https://www.modelscope.cn/api/v1/inference/list_model_providers?ModelId=<id> | 否 |
|
|
205
|
+
| 官方示例代码接口 | https://www.modelscope.cn/api/v1/inference/<ns>/<name>/api_inference_example | 否 |
|
|
206
|
+
| Qwen-Image-2512 模型卡 | https://www.modelscope.cn/models/Qwen/Qwen-Image-2512 | 否 |
|
|
207
|
+
| Token 管理 | https://www.modelscope.cn/my/myaccesstoken | **是** |
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
# 文档采集手册
|
|
2
|
+
|
|
3
|
+
> 这份手册只记**做过一遍才知道**的东西。目标:下次做模型调研时,不再重新踩一遍坑。
|
|
4
|
+
> 最后更新:2026-08-28(补充 SDK 官方资料先行、事件契约与首发验证规范)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、怎么发现文档:先拿全量索引,别靠单页链接往下点
|
|
9
|
+
|
|
10
|
+
**最大的坑:一个模型往往对应多份文档、多个端点,只看用户给的那一个链接必然漏。**
|
|
11
|
+
上一版适配 Midjourney 只做了 2 个端点,实际有 18 个;Grok Imagine 2.0 漏掉了整块图层选区编辑。
|
|
12
|
+
|
|
13
|
+
### 三个平台都有 `llms.txt` 全量索引,第一步就抓它
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
curl -sL https://docs.apimart.ai/llms.txt -o apimart-index.txt # 171 行,含全部页面
|
|
17
|
+
curl -sL https://docs.kie.ai/llms.txt -o kie-index.txt # 517 行
|
|
18
|
+
curl -sL https://fal.ai/llms.txt -o fal-index.txt # 只是代表性列表,不全,见下
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
然后**按前缀过滤出目标模型的所有页面**,而不是凭印象猜:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
grep -oE "https://docs\.apimart\.ai/en/api-reference/(images|videos)[^)]*\.md" apimart-index.txt | sort -u
|
|
25
|
+
grep -oE "https://docs\.kie\.ai/cn/market/[^)]*\.md" kie-index.txt | sort -u
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 发现「同一个模型有多份文档」的信号
|
|
29
|
+
|
|
30
|
+
| 信号 | 例子 |
|
|
31
|
+
|---|---|
|
|
32
|
+
| 同目录下多个页面 | `images/midjourney/{generation,imagine,blend,describe,upscale,...}` 18 个 |
|
|
33
|
+
| `official` / `ext` 后缀 | `gpt-image-2/{generation,official}`、`grok-imagine-2.0-ext/{generation,layer-region-edit,official}` |
|
|
34
|
+
| `-lite` / `-fast` / `-mini` 变体 | `gemini-3.1-flash/{generation,generation-lite}` |
|
|
35
|
+
| 平级的辅助能力 | `minimax-h3/{generation,context-ir,regeneration}`、`seedance-2-0/private-avatar` |
|
|
36
|
+
| KIE 把能力拆成独立 model | `kling-3.0-omni/{text-to-video,image-to-video,reference-to-video,transformation}` |
|
|
37
|
+
|
|
38
|
+
**判断标准**:只要索引里同一个模型名下有第二个页面,就必须打开看,哪怕名字看起来像「辅助说明」。
|
|
39
|
+
|
|
40
|
+
### Fal 的索引不全,要靠探测
|
|
41
|
+
|
|
42
|
+
`fal.ai/llms.txt` 只列代表性端点。Fal 的端点是**可组合路径**(`<厂商>/<模型>/<档位>/<输入形态>`),用 HTTP 状态码探测存在性最快:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
for p in bytedance/seedance-2.0/text-to-video bytedance/seedance-2.0/image-to-video \
|
|
46
|
+
bytedance/seedance-2.0/reference-to-video; do
|
|
47
|
+
code=$(curl -sL -o /dev/null -w "%{http_code}" "https://fal.ai/models/$p/llms.txt")
|
|
48
|
+
echo "$code $p"
|
|
49
|
+
done
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
常见组合维度:`{text-to-video, image-to-video, reference-to-video}`、`{pro, standard}`、`{turbo}`、`{edit}`。
|
|
53
|
+
探测出来的 404 也是信息——比如 `google/gemini-omni-flash/text-to-video` 不存在,说明 Fal 上做不了纯文生视频。
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## 二、怎么找文档:优先拿原始 Markdown,浏览器是最后手段
|
|
58
|
+
|
|
59
|
+
### 1. 文档站:URL 后面加 `.md` 就是原文
|
|
60
|
+
|
|
61
|
+
`docs.apimart.ai` 和 `docs.kie.ai` 都支持,且 `/cn/` 前缀是中文版:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
curl -sL "https://docs.apimart.ai/cn/api-reference/images/midjourney/imagine.md"
|
|
65
|
+
curl -sL "https://docs.kie.ai/cn/market/kling/kling-3-0.md"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**比浏览器渲染好在**:拿到的是完整原文(含被折叠的参数、被 Tab 隐藏的示例),不会因为 UI 折叠而丢内容。
|
|
69
|
+
|
|
70
|
+
### 2. Fal:每个模型的 `llms.txt` 是权威实时 schema
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
curl -sL "https://fal.ai/models/<endpoint-id>/llms.txt"
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
它由平台元数据实时生成,**不会与线上端点漂移**,且**同时包含 schema 和价格**。
|
|
77
|
+
|
|
78
|
+
枚举值被折叠成 `ImageSize | Enum` 时,去拿 OpenAPI 才能看到具体取值:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
curl -sL "https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=bytedance/seedream/v5/pro/text-to-image"
|
|
82
|
+
# → image_size 的真实枚举:square_hd / square / portrait_4_3 / ... / auto_1K / auto_2K
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 3. 官方控制台是 SPA,curl 拿不到正文——去找它的内容接口
|
|
86
|
+
|
|
87
|
+
火山方舟的文档页 `curl` 只能拿到 18 个字符。用 ego-browser 打开后列出网络请求,就能找到真正的内容 API:
|
|
88
|
+
|
|
89
|
+
```js
|
|
90
|
+
await js(`performance.getEntriesByType('resource').map(e => e.name)
|
|
91
|
+
.filter(n => /api|doc|content/i.test(n))`)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
火山方舟的结果(**可直接 curl,无需登录**):
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# 单篇文档全文(Result.MDContent 是完整 Markdown,Result.UpdatedTime 是官方更新时间)
|
|
98
|
+
curl -sL "https://docs.volcengine.com/api/doc/getDocDetail?LibraryID=82379&DocumentID=1541523&type=online"
|
|
99
|
+
# 全库目录(用来找价格页、模型列表页的 DocumentID)
|
|
100
|
+
curl -sL "https://docs.volcengine.com/api/doc/getDocList?LibraryID=82379&DataSchema=all_second_nav&type=online"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
常用 DocumentID:`1541523` 图片生成 API、`1544106` 模型价格、`1330310` 模型列表。
|
|
104
|
+
|
|
105
|
+
**通用做法**:任何 SPA 文档站,都先用这招找内容 API,找到就退回 curl,别在浏览器里跟折叠 UI 搏斗。
|
|
106
|
+
|
|
107
|
+
### 4. 阿里云百炼是 SSR,直接 curl 就有全文
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
curl -sL "https://help.aliyun.com/document_detail/3047054.html" # 会 302 到 slug 页
|
|
111
|
+
curl -sL "https://help.aliyun.com/zh/model-studio/model-pricing" # 价格页,3.4 MB HTML
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
用户给的控制台链接里的 `url=3047054` 就是 `document_detail` 的 ID,可以直接换算。
|
|
115
|
+
|
|
116
|
+
### 5. 价格页只能用浏览器(ego-browser)
|
|
117
|
+
|
|
118
|
+
APIMart 和 KIE 的定价都是前端渲染的:
|
|
119
|
+
|
|
120
|
+
- **APIMart**:图像/视频/LLM/音频是**标签页**,切了才渲染。用 `js()` 找文本等于「视频」的可见元素点一下,等 4 秒再取 `document.body.innerText`
|
|
121
|
+
- **KIE**:441 个模型的**搜索框** + 分页。`fillInput('input[type="text"]', 'seedance')` → 等 3.5 秒 → 取全文
|
|
122
|
+
- ⚠️ 注意底部的 `1-25 of 28`:**默认每页 25 条,会漏**。换更精确的搜索词(如 `bytedance/seedance-2,` 带逗号)把结果压到 25 条以内
|
|
123
|
+
|
|
124
|
+
把 ego-browser 的输出落盘要这样写(`cliLog` 走的是进程输出):
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
ego-browser nodejs > out.txt 2>&1 <<'EOF'
|
|
128
|
+
const task = await useOrCreateTaskSpace(<空间id>)
|
|
129
|
+
cliLog(await js(`document.body.innerText`))
|
|
130
|
+
EOF
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 三、怎么处理文档:两个提取脚本 + 一轮交叉校验
|
|
136
|
+
|
|
137
|
+
### 1. KIE 文档是 OpenAPI YAML,用脚本提 schema
|
|
138
|
+
|
|
139
|
+
KIE 每页正文是一个 ```` ```yaml ```` 代码块包着的完整 OpenAPI。手读会漏字段,**必须用脚本递归展开**(含 `enum` / `default` / `minItems` / `maxItems` / 嵌套对象):
|
|
140
|
+
|
|
141
|
+
```python
|
|
142
|
+
# kie_extract.py —— 用法:python3 kie_extract.py <文件...>
|
|
143
|
+
import sys, re, yaml, json
|
|
144
|
+
|
|
145
|
+
def fmt(name, sch, indent=0, req=()):
|
|
146
|
+
pad = ' ' * indent
|
|
147
|
+
typ = sch.get('type', '')
|
|
148
|
+
if 'enum' in sch: typ += ' enum=' + json.dumps(sch['enum'], ensure_ascii=False)
|
|
149
|
+
if 'default' in sch: typ += f" default={json.dumps(sch['default'], ensure_ascii=False)}"
|
|
150
|
+
for k in ('minimum','maximum','minLength','maxLength','minItems','maxItems'):
|
|
151
|
+
if k in sch: typ += f" {k}={sch[k]}"
|
|
152
|
+
desc = re.sub(r'\s*\n\s*', ' ', (sch.get('description') or '').strip())
|
|
153
|
+
print(f"{pad}- {name} [{typ}] {'必填' if name in req else '可选'}: {desc[:1400]}")
|
|
154
|
+
if sch.get('type') == 'object' and 'properties' in sch:
|
|
155
|
+
r = tuple(sch.get('required', ()))
|
|
156
|
+
for k, v in sch['properties'].items(): fmt(k, v, indent + 1, r)
|
|
157
|
+
if sch.get('type') == 'array' and isinstance(sch.get('items'), dict):
|
|
158
|
+
it = sch['items']
|
|
159
|
+
if it.get('type') == 'object' and 'properties' in it:
|
|
160
|
+
r = tuple(it.get('required', ()))
|
|
161
|
+
for k, v in it['properties'].items(): fmt(k, v, indent + 1, r)
|
|
162
|
+
|
|
163
|
+
for path in sys.argv[1:]:
|
|
164
|
+
t = open(path, encoding='utf-8').read()
|
|
165
|
+
m = re.search(r'```yaml\n(.*?)\n```', t, re.S)
|
|
166
|
+
if not m: print(f'{path}: 无 OpenAPI 块'); continue
|
|
167
|
+
d = yaml.safe_load(m.group(1))
|
|
168
|
+
print('\n=====', path.split('/')[-1])
|
|
169
|
+
for p, ops in d.get('paths', {}).items():
|
|
170
|
+
for method, op in ops.items():
|
|
171
|
+
print(f"### {method.upper()} {p} | {op.get('summary')} | {op.get('operationId')}")
|
|
172
|
+
rb = op.get('requestBody', {}).get('content', {}).get('application/json', {}).get('schema')
|
|
173
|
+
if rb:
|
|
174
|
+
req = tuple(rb.get('required', ()))
|
|
175
|
+
for k, v in (rb.get('properties') or {}).items(): fmt(k, v, 1, req)
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**`input` 是 `oneOf` 的要单独展开**(KIE 用它表达「二选一的输入形态」,如 Kling Omni 的「单张首帧」vs「仅视频输入」)——上面脚本会跳过,需要另外 dump `schema['properties']['input']`。
|
|
179
|
+
|
|
180
|
+
对比多个变体的字段差异,一行就够:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
for f in seedance-2 seedance-2-fast seedance-2-mini; do
|
|
184
|
+
echo -n "$f: "; python3 kie_extract.py raw/$f.md | grep -oE "^ - [a-z_]+" | tr -d ' -' | tr '\n' ' '; echo
|
|
185
|
+
done
|
|
186
|
+
# 一眼看出 mini 少了 return_last_frame
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### 2. APIMart 文档是 MDX,代码示例占 80%,先剥掉
|
|
190
|
+
|
|
191
|
+
每页会把同一个请求写成 15 种语言的示例,正文被淹没:
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
# apimart_strip.py —— 保留 bash/json,其余语言的代码块换成占位符
|
|
195
|
+
import sys, re
|
|
196
|
+
for path in sys.argv[1:]:
|
|
197
|
+
t = open(path, encoding='utf-8').read()
|
|
198
|
+
t = re.sub(r'```([^\n]*)\n(.*?)```',
|
|
199
|
+
lambda m: m.group(0) if m.group(1).startswith(('bash','json'))
|
|
200
|
+
else f'\n[[{m.group(1).strip()} 示例已省略]]\n', t, flags=re.S)
|
|
201
|
+
print(re.sub(r'\n{3,}', '\n\n', t))
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
之后配合 `sed -n '/^## Body/,$p'` 直接跳到参数区。
|
|
205
|
+
|
|
206
|
+
### 3. 必做的三项交叉校验
|
|
207
|
+
|
|
208
|
+
| 校验 | 为什么 | 这次的实例 |
|
|
209
|
+
|---|---|---|
|
|
210
|
+
| **API 文档正文价格 vs 定价页价格** | 文档正文更新慢,经常是过期价 | Seedream Pro 文档写 $0.045/$0.09,定价页是 $0.02928/$0.05856 |
|
|
211
|
+
| **同一模型跨供应商的取值集合** | 名字一样但取值/默认值经常不同 | Lite 分辨率官方是 2K/3K/4K,旧文档抄成了 1K/2K;`adaptive`(APIMart/KIE) vs `auto`(Fal);`duration` 整数 vs 字符串 |
|
|
212
|
+
| **schema 内部自相矛盾** | 供应商文档确实会写错 | KIE Qwen3-Pro 的 `enum` 与 `default` 不一致;KIE z-image 的 `aspect_ratio` 描述提到 `auto` 但枚举里没有 |
|
|
213
|
+
|
|
214
|
+
**处理原则**:两处不一致时**两个都写进文档**并说明以哪个为准;文档自相矛盾时标注「接入前实测确认」,不要替供应商猜。
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 四、SDK 官方资料先行与首发验证(唯一详细规范)
|
|
219
|
+
|
|
220
|
+
Henji-AI 是 `@henjicc/ai-sdk` 的主开发仓库与首发验证宿主。新模型、新供应商或新协议必须先在这里完成官方调研、SDK 实现和完整验证,再发布版本;消费项目只接入已经验证并发布的精确版本。禁止先在消费项目按猜测实现协议,再把结果回填 SDK。
|
|
221
|
+
|
|
222
|
+
### 1. 先文档,后代码
|
|
223
|
+
|
|
224
|
+
编码前必须把以下信息写入本目录对应的供应商/模型文档,并能逐项追溯到官方来源:
|
|
225
|
+
|
|
226
|
+
- 模型展示名、API model ID 与适用区域/版本;
|
|
227
|
+
- Base URL、端点、方法、鉴权、请求字段、枚举、限制和默认值;
|
|
228
|
+
- 当前价格、计费维度、价格来源与冲突取舍;
|
|
229
|
+
- 同步响应,或轮询、SSE、WebSocket 等异步/流式协议的完整事件契约;
|
|
230
|
+
- 错误、终态、取消、断线、超时、资源释放与连接复用规则。
|
|
231
|
+
|
|
232
|
+
缺少官方来源,或模型、端点、价格、事件契约中任一项仍无法确定时,必须把未知项和已查入口写清并暂停编码;不得用相近模型、旧版本、SDK 现状或消费项目行为替官方契约作结论。官方资料本身矛盾时同时保留冲突来源,标为“实现前待官方确认/授权实测”,不能替供应商猜。
|
|
233
|
+
|
|
234
|
+
### 2. 流式与异步协议必须有事件契约矩阵
|
|
235
|
+
|
|
236
|
+
只要涉及 WebSocket、SSE、流式 HTTP、上传后轮询或回调,就必须在供应商/模型文档中按官方资料建立事件级矩阵。每一个官方事件/状态单独一行,不得只写一条 happy path 示例:
|
|
237
|
+
|
|
238
|
+
| 事件/状态 | 前置状态 | 字段契约(required / optional / nullable) | 空值/缺字段语义 | 下一状态 | 对外输出 | 副作用 | 终态/错误 | 连接复用 |
|
|
239
|
+
|---|---|---|---|---|---|---|---|---|
|
|
240
|
+
| 官方事件名或状态值 | 允许从哪些状态进入 | 逐字段写清存在性、类型与可空性 | `null`、空串、空数组、字段缺失分别是否合法以及是否忽略 | 保持/迁移到哪个状态 | partial/final/usage/finish 或无输出 | ack、上传、轮询、计时器、资源释放等 | 是否终止;官方错误码/原因 | 继续收消息、等待关闭、主动关闭或可开启下一会话 |
|
|
241
|
+
|
|
242
|
+
矩阵还必须说明状态机不变量:首事件、合法重复/乱序、是否允许先终态后结果、什么才算“有效 final”、空终态如何处理、断线后能否恢复、取消与正常结束各释放哪些资源。若官方没有说明某项,明确写“官方未说明”,不要把实现假设写成官方事实。
|
|
243
|
+
|
|
244
|
+
### 3. 官方示例与 fixture 一一对应
|
|
245
|
+
|
|
246
|
+
官方资料中出现的每一个字面请求、响应或事件示例,都要逐项进入 `packages/ai-sdk/tests/fixtures/`,或由测试逐字内联引用同一份 fixture。fixture 必须记录:
|
|
247
|
+
|
|
248
|
+
- 精确来源 URL 与抓取日期;
|
|
249
|
+
- 内容是官方原样、仅做脱敏/不可联网替换,还是从字段表构造;
|
|
250
|
+
- 任何替换的字段及替换原因;
|
|
251
|
+
- 对应事件矩阵的行或场景。
|
|
252
|
+
|
|
253
|
+
原样示例只允许做安全脱敏、ID/URL 不可联网替换和必要的稳定化,不得为了让当前 parser 通过而补字段。官方只有字段表、没有字面示例时,可以据表构造 fixture,但必须标为“依据官方字段表构造”,不能标为官方原样。合成负例必须放在独立场景或独立文件并标为 `synthetic-negative`(或同等清晰标记),不得冒充官方样本。fixture 的通用格式与现有目录约定见 [../../tests/fixtures/README.md](../../tests/fixtures/README.md)。
|
|
254
|
+
|
|
255
|
+
### 4. fixture、parser 与测试必须闭环
|
|
256
|
+
|
|
257
|
+
协议实现的精确测试必须从事件矩阵和 fixture 推导,至少覆盖实际适用的下列场景:
|
|
258
|
+
|
|
259
|
+
- 官方 happy path 的逐事件解析与完整状态迁移;
|
|
260
|
+
- 合法空值(包括合法空始帧/心跳/无输出事件);
|
|
261
|
+
- required 字段缺失或类型错误的明确拒绝;
|
|
262
|
+
- 空终态、结束前无有效 final、重复事件、乱序事件;
|
|
263
|
+
- 供应商错误事件、网络断开、取消、超时;
|
|
264
|
+
- 正常结束、失败、取消、断线后的连接、计时器、迭代器和会话资源释放。
|
|
265
|
+
|
|
266
|
+
“测试通过”还不够,门禁必须做一次**断牙验证**:临时破坏被测试的不变量(例如把合法空事件误判为错误、接受缺失必填字段、漏掉终态释放),确认对应测试确实失败,再恢复实现并确认重新通过。断牙改动不能提交;交接中记录破坏点和实际失败的测试。只匹配标题、关键词或 fixture 数量的检查不算协议门禁。
|
|
267
|
+
|
|
268
|
+
### 5. SDK 首发与消费顺序
|
|
269
|
+
|
|
270
|
+
发布和接入严格按以下顺序进行,任一步失败都在当前阶段修复,不跨阶段绕过:
|
|
271
|
+
|
|
272
|
+
1. 在 Henji-AI 跑变更协议/模型的精确契约测试与宿主集成测试;
|
|
273
|
+
2. 跑 SDK 全量测试、可移植性检查、类型/构建、打包与本地安装包验证;
|
|
274
|
+
3. 从将要发布的包或远端预发布/正式包回装,在受限运行环境验证公开入口、按需 bundle 与版本内容;
|
|
275
|
+
4. 发布 SDK;
|
|
276
|
+
5. 消费项目精确锁定已验证版本及 lockfile integrity,不使用 workspace 提升、浮动范围或源码旁路;
|
|
277
|
+
6. 消费项目再运行宿主 transport、凭据、媒体、取消、日志和资源释放的集成测试。
|
|
278
|
+
|
|
279
|
+
真实付费网络只在用户明确授权时执行;没有真网不妨碍协议契约测试,但必须在交接中准确写明边界,不能把 fixture/scripted 测试表述成真实供应商成功。
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 五、零散但会卡住你的坑
|
|
284
|
+
|
|
285
|
+
| 坑 | 表现 | 解法 |
|
|
286
|
+
|---|---|---|
|
|
287
|
+
| **KIE 限流** | 连续请求后返回 HTTP **200**,但内容是 HTML 外壳 | 用 `grep -l "DOCTYPE html"` 检出,加 2 秒延迟重试。批量下载后一定要跑一次这个检查 |
|
|
288
|
+
| **zsh 不做单词分割** | `for p in $PATHS` 把整个多行变量当成一个词 | 用 `while IFS= read -r p; do ... done < 路径文件` |
|
|
289
|
+
| **Bash 工具禁用前台 `sleep`** | 加延迟的循环跑不了 | `perl -e 'select(undef,undef,undef,2.0)'` |
|
|
290
|
+
| **ego-browser 里 `require` + 顶层 await 冲突** | `Cannot determine intended module format` | 别在 heredoc 里写文件,用 `> out.txt 2>&1` 重定向 |
|
|
291
|
+
| **shell 工作目录会跨调用保留** | 上一条 `cd` 影响下一条 | 一律用绝对路径 |
|
|
292
|
+
| **文件名带 `/`** | 批量落盘时路径炸掉 | `tr '/' '~'` 做扁平文件名 |
|
|
293
|
+
| **Fal 价格标注 tentative** | 价格会变 | 文档里注明「接入前重新读一次 `llms.txt`」 |
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## 六、推荐执行顺序
|
|
298
|
+
|
|
299
|
+
1. **抓三份 `llms.txt` 索引** → 按模型名前缀过滤,列出**完整**页面清单(这一步决定会不会漏能力)
|
|
300
|
+
2. **Fal 端点探测** → 补上索引里没有的组合路径
|
|
301
|
+
3. **批量 curl 落盘**(`.md` / `llms.txt`),完成后检查有没有 HTML 外壳
|
|
302
|
+
4. **官方站**:SPA 找内容 API,SSR 直接 curl
|
|
303
|
+
5. **价格页**:ego-browser,注意标签页与分页
|
|
304
|
+
6. **用两个脚本提取** schema 与正文,逐字段成表
|
|
305
|
+
7. **三项交叉校验**,不一致的地方写清来源与取舍
|
|
306
|
+
8. 涉及异步/流式协议时,完成第四节的事件矩阵、官方 fixture 与测试场景清单
|
|
307
|
+
9. 每份文档结尾写「原始链接索引」,标注**是否需要登录**
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
相关:[README.md](README.md)(模型清单与结构约定)、[docs/rules/model-adaptation.md](../../../../docs/rules/model-adaptation.md)(代码侧适配规范)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# 透视变换(Fal)适配资料
|
|
2
|
+
|
|
3
|
+
| 项目 | 内容 |
|
|
4
|
+
|---|---|
|
|
5
|
+
| 最后更新 | 2026-08-29 |
|
|
6
|
+
| 平台 | Fal |
|
|
7
|
+
| 展示名 | Perspective Change |
|
|
8
|
+
| API endpoint ID | `fal-ai/image-apps-v2/perspective` |
|
|
9
|
+
| 模态 | 单图输入 → 单个离散视角图 |
|
|
10
|
+
| 商用标记 | Fal 模型页明确标为 `Commercial use` |
|
|
11
|
+
| 价格 | `$0.04 / image` |
|
|
12
|
+
| 登录状态 | 模型页、Agent 文本与 OpenAPI 公开;真实调用需要 Fal Key |
|
|
13
|
+
| 接入定位 | 多角度能力的离散完整方位档;不与连续控制档混成同一结果组 |
|
|
14
|
+
|
|
15
|
+
## 1. 接口
|
|
16
|
+
|
|
17
|
+
- endpoint ID:`fal-ai/image-apps-v2/perspective`
|
|
18
|
+
- 输入:`image_url` 必填;`target_perspective` 可选;`aspect_ratio` 可选。
|
|
19
|
+
- 输出:`images[]`,首版要求恰好一张。
|
|
20
|
+
- 异步、上传、取消、结果解析复用 [Fal 供应商资料](../供应商/Fal.md)。
|
|
21
|
+
|
|
22
|
+
## 2. 离散视角枚举
|
|
23
|
+
|
|
24
|
+
| API 值 | 产品标签 | 精度说明 |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| `front` | 正面 | 语义预设,不是 0° 相机外参 |
|
|
27
|
+
| `left_side` | 左侧面 | 语义预设,不承诺精确 90° |
|
|
28
|
+
| `right_side` | 右侧面 | 语义预设,不承诺精确 -90° |
|
|
29
|
+
| `back` | 背面 | 由模型推断不可见区域 |
|
|
30
|
+
| `top_down` | 顶视 | 语义预设 |
|
|
31
|
+
| `bottom_up` | 仰视 | 语义预设 |
|
|
32
|
+
| `birds_eye` | 鸟瞰 | 语义预设 |
|
|
33
|
+
| `three_quarter_left` | 左三分之四 | 语义预设 |
|
|
34
|
+
| `three_quarter_right` | 右三分之四 | 语义预设 |
|
|
35
|
+
|
|
36
|
+
首版固定 1 张输入图、每个目标预设单独请求、同组不允许重复预设。默认完整方位组为正面、右侧面、背面、左侧面。该端点没有提示词、连续角度、距离或 FOV 字段,界面不得补造相关控件。
|
|
37
|
+
|
|
38
|
+
## 3. 价格与失败策略
|
|
39
|
+
|
|
40
|
+
- `$0.04 / image`;4 个方位约 `$0.16`,全部 9 个预设约 `$0.36`。
|
|
41
|
+
- 单次输出数量不等于 1 时视为契约失败。
|
|
42
|
+
- 批次失败时沿用多角度原子落图和按失败项重试策略。
|
|
43
|
+
- 离散档和连续档来自不同模型,不能在一个结果组混用,否则组内一致性和精度语义不可比较。
|
|
44
|
+
|
|
45
|
+
## 4. 待真实验证
|
|
46
|
+
|
|
47
|
+
- `front/side/back` 的方位遵从和人物/商品身份一致性。
|
|
48
|
+
- 不可见背面补全质量与文字、标志、结构漂移。
|
|
49
|
+
- `top_down` 与 `birds_eye` 的实际差异。
|
|
50
|
+
- 官方未给延迟承诺,需按 request ID 记录真实耗时。
|
|
51
|
+
|
|
52
|
+
## 5. 原始链接索引
|
|
53
|
+
|
|
54
|
+
| 内容 | 链接 | 是否需登录 | 核查日期 |
|
|
55
|
+
|---|---|---|---|
|
|
56
|
+
| 模型页、商用标记与价格 | https://fal.ai/models/fal-ai/image-apps-v2/perspective | 否 | 2026-08-29 |
|
|
57
|
+
| 实时 Agent 文本 | https://fal.ai/models/fal-ai/image-apps-v2/perspective/llms.txt | 否 | 2026-08-29 |
|
|
58
|
+
| OpenAPI | https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=fal-ai/image-apps-v2/perspective | 否 | 2026-08-29 |
|
|
59
|
+
| Fal 队列协议 | https://fal.ai/docs/documentation/model-apis/inference/queue | 否 | 2026-08-29 |
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Electron 接入
|
|
2
|
+
|
|
3
|
+
## 分层
|
|
4
|
+
|
|
5
|
+
SDK 客户端应只在 Electron **主进程**构造一次。渲染层通过 preload 白名单和 IPC 发送可序列化
|
|
6
|
+
DTO,不直接持有 API key,不导入 provider/runtime 实现,不直接请求供应商。
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
renderer -> preload -> ipcMain -> createAIClient({ runtime }) -> provider
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
痕迹AI 的已验证实现在
|
|
13
|
+
`electron/main/services/ai-runtime/sdk-runtime.ts`,其单例 `sdkRuntimeContext` 与
|
|
14
|
+
`sdkAIClient` 同时服务生成和 LLM。
|
|
15
|
+
|
|
16
|
+
## 四个宿主能力
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import fs from 'node:fs'
|
|
20
|
+
import path from 'node:path'
|
|
21
|
+
import {
|
|
22
|
+
createAIClient,
|
|
23
|
+
defaultFilename,
|
|
24
|
+
inferMimeFromPath,
|
|
25
|
+
normalizeLocalSource,
|
|
26
|
+
parseDataUri,
|
|
27
|
+
type RuntimeContext,
|
|
28
|
+
} from '@henjicc/ai-sdk'
|
|
29
|
+
|
|
30
|
+
const runtime: RuntimeContext = {
|
|
31
|
+
transport: { fetch: (url, init) => fetch(url, init) },
|
|
32
|
+
credentials: {
|
|
33
|
+
get: (scope, providerId) => readFromOsProtectedStore(scope, providerId),
|
|
34
|
+
},
|
|
35
|
+
media: {
|
|
36
|
+
async read(ref) {
|
|
37
|
+
const data = parseDataUri(ref)
|
|
38
|
+
if (data) {
|
|
39
|
+
return { ...data, filename: defaultFilename(data.mimeType) }
|
|
40
|
+
}
|
|
41
|
+
const localPath = normalizeLocalSource(ref)
|
|
42
|
+
if (!localPath) throw new Error(`Unsupported media ref: ${ref}`)
|
|
43
|
+
return {
|
|
44
|
+
bytes: new Uint8Array(fs.readFileSync(localPath)),
|
|
45
|
+
mimeType: inferMimeFromPath(localPath),
|
|
46
|
+
filename: path.basename(localPath),
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
logger: createSanitizedLogger(),
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const client = createAIClient({ runtime })
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`readFromOsProtectedStore` 和 `createSanitizedLogger` 是宿主的安全存储/日志实现;痕迹AI 分别使用
|
|
57
|
+
Electron `safeStorage` 和统一结构化日志。日志不得放 API key、token、cookie 或完整授权头。
|
|
58
|
+
|
|
59
|
+
### `safeStorage` 与开发脚本身份
|
|
60
|
+
|
|
61
|
+
独立 Electron 验证脚本默认使用 `Electron` 这个 app name/profile,不能直接解密正式应用以另一
|
|
62
|
+
app identity 写入的密文。若维护脚本需要复用正式凭据,必须在 `app.whenReady()` **之前**设置与
|
|
63
|
+
正式应用相同的 `app.setName()`,并让 `userData` / `sessionData` 指向正式 profile;否则应要求用户
|
|
64
|
+
重新注入密钥,而不是复制密文、猜解密格式或把明文写入临时文件。这个限制只影响复用既有
|
|
65
|
+
`safeStorage` 密文;按本指南自行实现新宿主时,应始终让读写使用同一个应用身份。
|
|
66
|
+
|
|
67
|
+
## IPC 边界
|
|
68
|
+
|
|
69
|
+
- IPC 只传 `modelId` / 扁平 `params` / `requestId` / `taskId`等 DTO,不传函数或 `RuntimeContext`。
|
|
70
|
+
- `generate()` 可能返回 `pending + taskId`;宿主可立即 `continuePolling()`,或持久化 taskId 稍后续查。
|
|
71
|
+
- SDK 结果只有 URL/metadata,不会下载成 `filePath`。落盘、媒体协议转换、进度学习和应用 trace 留在宿主。
|
|
72
|
+
- 创建阶段用 requestId 取消;续轮询阶段用供应商 taskId 取消:
|
|
73
|
+
`client.cancel({ namespace: 'generation', taskId })`。LLM 使用 `namespace: 'llm'`。
|
|
74
|
+
- 应用退出或替换 client 时调用 `dispose()`;它会注销该 client 拥有的自定义 provider。
|
|
75
|
+
|
|
76
|
+
Electron 主进程从包根 `@henjicc/ai-sdk` 导入是最兼容的写法;老的 TypeScript
|
|
77
|
+
`moduleResolution: "node"` 不识别 `exports` 子路径。
|