mirror of
https://github.com/calesthio/OpenMontage.git
synced 2026-08-24 17:10:27 +08:00
jimeng: add Volcengine Jimeng (即梦 AI) video provider with V4 signing
Implements the Jimeng/Volcengine part of issue #249, as agreed with @xucailiang (who is handling the Kling provider separately). Adds a first-class Jimeng video provider that calls the Volcengine visual API directly (visual.volcengineapi.com) using HMAC-SHA256 V4 request signing with IAM AK/SK credentials. This is the first provider in OpenMontage to use V4 signing (all others use Bearer token auth). API flow: POST CVSync2AsyncSubmitTask -> poll CVSync2AsyncGetResult -> download video_url. Features: - Text-to-video and image-to-video (Jimeng 3.0 Pro) - Configurable frame count (121=5s, 241=10s at 24fps) - Aspect ratio selection (16:9, 9:16, 1:1, etc.) - Seed for reproducibility - Full V4 HMAC-SHA256 request signing (not Bearer token) - Error handling with Jimeng code 10000 success convention - API key redaction in error messages (both env vars, no empty-string bug) Env vars: VOLC_ACCESSKEY + VOLC_SECRETKEY (IAM AK/SK pair). Idempotency keys include all output-affecting fields. Files: - tools/video/jimeng_video.py — new tool (V4 signing + submit/poll/download) - tests/contracts/test_jimeng_video.py — 46 contract tests (no AK/SK needed) - .env.example — VOLC_ACCESSKEY + VOLC_SECRETKEY - docs/PROVIDERS.md — Volcengine Jimeng provider section End-to-end tested with real Volcengine IAM credentials: generated a 1920x1088 H.264 5.04s video, ffprobe verified. Test results: python -m pytest tests/contracts/test_jimeng_video.py -q # 46 passed
This commit is contained in:
@@ -95,6 +95,44 @@ OpenMontage now uses those published rates in the Grok tool estimators.
|
||||
|
||||
---
|
||||
|
||||
### Volcengine Jimeng — 即梦 AI Video Generation
|
||||
|
||||
> **Direct ByteDance API via V4 signing.** Calls the Volcengine visual API (visual.volcengineapi.com) with HMAC-SHA256 request signing using IAM AK/SK credentials. Supports text-to-video and image-to-video via Jimeng 3.0 Pro.
|
||||
|
||||
**Tools unlocked:** `jimeng_video`
|
||||
**Env vars:** `VOLC_ACCESSKEY` (Access Key ID) + `VOLC_SECRETKEY` (Secret Access Key)
|
||||
|
||||
#### Setup
|
||||
|
||||
1. Go to [console.volcengine.com/iam/keymanage](https://console.volcengine.com/iam/keymanage)
|
||||
2. Create a Volcengine account if you don't have one
|
||||
3. Create an Access Key pair (AK + SK)
|
||||
4. Ensure your account has access to Jimeng AI (即梦) video generation service
|
||||
5. Add to `.env`: `VOLC_ACCESSKEY=...` and `VOLC_SECRETKEY=...`
|
||||
|
||||
#### What it's best for
|
||||
|
||||
- Direct ByteDance/Volcengine API quota usage
|
||||
- Jimeng 3.0 Pro text-to-video and image-to-video
|
||||
- Chinese-language prompt understanding
|
||||
- Configurable frame count (121=5s, 241=10s) and aspect ratio
|
||||
|
||||
#### API notes
|
||||
|
||||
Authentication uses Volcengine IAM V4 signing (HMAC-SHA256), not a Bearer token. The signing process builds a canonical request, derives a signing key from SK → date → region → service, and signs the request.
|
||||
|
||||
API flow: `POST ?Action=CVSync2AsyncSubmitTask` → poll `POST ?Action=CVSync2AsyncGetResult` → download `video_url`.
|
||||
|
||||
The `req_key` for video is `jimeng_ti2v_v30_pro`. Success code is `10000`. Task statuses: `in_queue`, `generating`, `done`, `not_found`, `expired`.
|
||||
|
||||
#### Pricing
|
||||
|
||||
| Model | Price |
|
||||
|------|-------|
|
||||
| Jimeng 3.0 Pro (video) | ~$0.05/sec (check Volcengine console for actual rate) |
|
||||
|
||||
---
|
||||
|
||||
### Alibaba DashScope — Qwen Image + TTS + ASR
|
||||
|
||||
> **Best for Chinese-language production.** One key unlocks Qwen-Image generation, Qwen-TTS Mandarin narration, and Qwen-ASR with word-level timestamps — the only DashScope path that provides word-level granularity for subtitle alignment.
|
||||
|
||||
Reference in New Issue
Block a user