Browse Source

docs(jimeng): 更新即梦 CLI 文档增加 VIP 通道支持和异步轮询规范

- 添加官方文档 VIP 通道指南,说明 seedance2.0fast_vip 和 seedance2.0_vip 模型支持
- 更新参数参考文档,标注 VIP 模型版本和默认值调整为 VIP 优先
- 修改核心执行流程,采用异步提交 + 智能体周期查询模式替代轮询超时
- 添加定时查询 SOP 规范,禁止 shell 死循环实现任务状态轮询
- 在注意事项中强调 VIP 账户应优先使用 VIP 通道,图片类不支持 VIP 通道
- 更新各 CLI 技能文档中的执行示例为异步模式,并完善错误处理流程
wandl-6A72h 4 months ago
parent
commit
3a487e701f

+ 46 - 8
skills/jimeng-skills/jimeng-cli-image2image/SKILL.md

@@ -26,13 +26,38 @@ Do NOT use this skill for:
 ## Core Execution Flow
 
 ```
-1. CHECK   → dreamina user_credit          # Always first
-2. VERIFY  → Images exist and are readable  # --images requires local files
-3. SUBMIT  → dreamina image2image --images ./input.png --prompt="..." [--poll=N]
-4. MONITOR → dreamina query_result --submit_id=<id>  # If async or poll timeout
-5. RETRIEVE → Results saved/downloaded
+1. CHECK   → dreamina user_credit                  # Always first
+2. VERIFY  → Images exist and are readable
+3. SUBMIT  → dreamina image2image --images ./input.png --prompt="..." --poll=0  # Async → get submit_id
+4. POLL    → Agent 每 ~5 秒调用 query_result --submit_id=<id> 检查 gen_status
+5. RETRIEVE → gen_status="success" → 提取结果并报告
 ```
 
+## 定时查询 SOP(智能体行为规范,非 shell 死循环)
+
+提交生成任务后,应由**智能体(AI)**负责任务状态查询,而非用 `while true` shell 脚本阻塞终端:
+
+**Step 1 — 提交任务(一次 terminal 调用)**:
+```bash
+dreamina image2image --images ./input.png --prompt="改成水彩风格" --model_version=5.0 --poll=0
+```
+→ 解析输出中的 `submit_id`,记录下来。
+
+**Step 2 — 智能体周期查询(多次 terminal 调用,每次单独)**:
+```
+每 ~5 秒执行一次: dreamina query_result --submit_id=<submit_id>
+```
+根据返回的 `gen_status` 做分支判断:
+
+| gen_status | 智能体行为 |
+|-----------|-----------|
+| `"success"` | ✅ 提取结果 URL,报告给用户 |
+| `"failed"` | ❌ 报告错误信息给用户 |
+| `"querying"` | ⏳ 等待 ~5 秒后再次检查(最长等待 2 分钟) |
+| 长时间无变化(>3min) | ⚠️ 报告用户询问是否继续 |
+
+> **禁止**在 terminal 中使用 `while true; sleep 5; ...` 死循环。应由智能体在多次对话轮次中独立调用 `query_result`。
+
 ## How to use this skill
 
 ### Step 1: Verify prerequisites
@@ -68,14 +93,20 @@ Load `references/parameter-reference.md` for the complete parameter map.
 
 ### Step 4: Execute the generation
 
-**Standard style transfer:**
+**Recommended (async + 智能体周期查询):**
 ```bash
 dreamina image2image \
   --images ./photo.png \
   --prompt="保持人物面部特征和姿势不变,将照片转换为吉卜力动画风格,温暖手绘质感" \
   --model_version=5.0 \
   --resolution_type=4k \
-  --poll=30
+  --poll=0
+```
+→ 解析获取 `submit_id`,智能体随后每 ~5 秒调用 `query_result` 检查状态。
+
+**Quick poll (for fast edits, auto 1s polling):**
+```bash
+dreamina image2image --images ./photo.png --prompt="改成水彩风格" --model_version=5.0 --poll=30
 ```
 
 **Background replacement:**
@@ -103,7 +134,12 @@ dreamina image2image --images ./input.png --prompt="..." --poll=0
 
 ### Step 5: Handle results → Step 6: Handle errors
 
-Same as other CLI skills: `--poll` timeout → `query_result`. Common errors below.
+After generation completes:
+- Confirm `gen_status` is `"success"`
+- If using 智能体周期查询 → 每次 `query_result` 返回后智能体根据 `gen_status` 分支判断
+- If `--poll` timeout → 智能体接手用 `query_result` 继续轮询
+
+Common errors below.
 
 | Error | Action |
 |-------|--------|
@@ -191,6 +227,8 @@ A: `dreamina logout` clears `credential.json` only. `config.toml` and `tasks.db`
 7. **`--poll` polls every 1 second** — timeout returns "querying" (not failure), use `query_result` to check later
 8. **Edit prompt style matters** — use Keep/Change framework from jimeng-prompt-image2image. Undescribed elements may change unexpectedly
 9. **`~/.dreamina_cli/` directory** — may contain config.toml, credential.json, tasks.db after native (non-Docker) login. In Docker setups, these files may be absent (auth stored ephemerally). Don't delete the directory
+10. **图片类不支持 VIP 通道** — dreamina image2image 的 `--model_version` 参数只有 `4.0, 4.1, 4.5, 4.6, 5.0`,没有 `_vip` 变体。VIP 通道仅限视频类子命令。如需确认 CLI 实际支持的参数,运行 `dreamina image2image -h`——CLI help 输出是唯一真相来源,技能文档可能滞后
+11. **不要写 shell 死循环做任务轮询** — 提交任务时用 `--poll=0` 获取 submit_id,然后由智能体在对话轮次中每 ~5 秒调用一次 `query_result`。禁止 `while true; sleep 5;` 阻塞终端。智能体需根据 gen_status 做分支判断(继续等/报结果/通知超时)
 
 ## Available Resources
 

+ 77 - 40
skills/jimeng-skills/jimeng-cli-image2video/SKILL.md

@@ -33,22 +33,58 @@ Route to the correct sub-command based on input:
 | 2-20 images (storyboard) | multiframe2video | `dreamina multiframe2video --images ./a.png,./b.png,... --transition-prompt="..."` |
 | images + video + audio | multimodal2video | `dreamina multimodal2video --image ... --video ... --audio ... --prompt="..."` |
 
+## Core Execution Flow
+
+```
+1. CHECK   → dreamina user_credit                    # Always first
+2. VERIFY  → Input files exist (ls -la)              # All modes need local files
+3. DETECT  → Select correct sub-command              # Based on input count/type
+4. SUBMIT  → Submit with --poll=0 (async → get submit_id)  # Then use 5s polling SOP
+5. POLL    → Loop every 5s: dreamina query_result --submit_id=<id> until success/fail
+6. RETRIEVE → Results saved/downloaded
+```
+
+## 定时查询 SOP(智能体行为规范,非 shell 死循环)
+
+提交生成任务后,应由**智能体(AI)**负责任务状态查询,而非用 `while true` shell 脚本阻塞终端:
+
+**Step 1 — 提交任务(一次 terminal 调用)**:
+```bash
+dreamina image2video --image ./photo.png --prompt="微风吹动头发" --model_version=seedance2.0fast_vip --poll=0
+```
+→ 解析输出中的 `submit_id`,记录下来。
+
+**Step 2 — 智能体周期查询(多次 terminal 调用,每次单独)**:
+```
+每 ~5 秒执行一次: dreamina query_result --submit_id=<submit_id>
+```
+根据返回的 `gen_status` 做分支判断:
+
+| gen_status | 智能体行为 |
+|-----------|-----------|
+| `"success"` | ✅ 提取视频 URL/文件,报告给用户 |
+| `"failed"` | ❌ 报告错误信息给用户 |
+| `"querying"` | ⏳ 等待 ~5 秒后再次检查(视频最长等待 15 分钟) |
+| 长时间无变化(>20min) | ⚠️ 报告用户询问是否继续 |
+
+> **禁止**在 terminal 中使用 `while true; sleep 5; ...` 死循环。应由智能体在多次对话轮次中独立调用 `query_result`。
+
 ## Mode 1: Single Image to Video (`dreamina image2video`)
 
 **Input**: 1 image → animate with motion description
 
 ```bash
-# Basic
-dreamina image2video --image ./photo.png --prompt="微风吹动头发和衣角,眼睛缓慢眨眼,镜头缓缓推近" --poll=60
+# Basic (VIP)
+dreamina image2video --image ./photo.png --prompt="微风吹动头发和衣角,眼睛缓慢眨眼,镜头缓缓推近" --model_version=seedance2.0fast_vip --poll=0
+# Then follow 5s polling SOP
 
 # With duration
-dreamina image2video --image ./photo.png --prompt="云层缓慢飘移,水面波纹扩散" --duration=8 --poll=60
+dreamina image2video --image ./photo.png --prompt="云层缓慢飘移,水面波纹扩散" --duration=8 --model_version=seedance2.0fast_vip --poll=0
+# Then follow 5s polling SOP
 
-# High quality
-dreamina image2video --image ./photo.png --prompt="..." --model_version=seedance2.0 --poll=120
-
-# Async
-dreamina image2video --image ./photo.png --prompt="..." --poll=0
+# High quality (VIP)
+dreamina image2video --image ./photo.png --prompt="..." --model_version=seedance2.0_vip --poll=0
+# Then follow 5s polling SOP
 ```
 
 | Parameter | Required | Values | Default |
@@ -56,7 +92,7 @@ dreamina image2video --image ./photo.png --prompt="..." --poll=0
 | `--image` | **Yes** | Single local image path | — |
 | `--prompt` | No* | Motion description (incremental) | — |
 | `--duration` | No | 3-15s (model-dependent) | 5 |
-| `--model_version` | No | seedance2.0, seedance2.0fast, 3.0, 3.0fast, 3.0pro, 3.5pro | seedance2.0fast |
+| `--model_version` | **Yes** | seedance2.0, seedance2.0fast, **seedance2.0_vip, seedance2.0fast_vip**, 3.0, 3.0fast, 3.0pro, 3.5pro | seedance2.0fast_vip ⬅️ VIP 优先 |
 | `--video_resolution` | No | 720P (Seedance), 1080P (legacy) | 720P |
 | `--poll` | No | Seconds (0=async, polls every 1s) | 0 |
 
@@ -65,11 +101,13 @@ dreamina image2video --image ./photo.png --prompt="..." --poll=0
 **Input**: 2 images (start frame + end frame) → transition animation
 
 ```bash
-# Basic
-dreamina frames2video --first ./start.png --last ./end.png --prompt="花瓣从含苞到完全盛开,外层先展开,内层随后逐层绽放" --poll=60
+# Basic (VIP)
+dreamina frames2video --first ./start.png --last ./end.png --prompt="花瓣从含苞到完全盛开,外层先展开,内层随后逐层绽放" --model_version=seedance2.0fast_vip --poll=0
+# Then follow 5s polling SOP
 
-# With duration
-dreamina frames2video --first ./morning.png --last ./night.png --prompt="天空从橙色渐变到深蓝,城市灯光渐次亮起" --duration=10 --poll=60
+# With duration (VIP)
+dreamina frames2video --first ./morning.png --last ./night.png --prompt="天空从橙色渐变到深蓝,城市灯光渐次亮起" --duration=10 --model_version=seedance2.0fast_vip --poll=0
+# Then follow 5s polling SOP
 ```
 
 | Parameter | Required | Values | Default |
@@ -78,7 +116,7 @@ dreamina frames2video --first ./morning.png --last ./night.png --prompt="天空
 | `--last` | **Yes** | Local image path (end frame) | — |
 | `--prompt` | No* | Transition description | — |
 | `--duration` | No | 4-15s | 5 |
-| `--model_version` | No | seedance2.0, seedance2.0fast, 3.5pro | seedance2.0fast |
+| `--model_version` | **Yes** | seedance2.0, seedance2.0fast, **seedance2.0_vip, seedance2.0fast_vip**, 3.5pro | seedance2.0fast_vip ⬅️ VIP 优先 |
 | `--video_resolution` | No | 720P (Seedance), 1080P (legacy) | 720P |
 
 ## Mode 3: Multi-Frame Story (`dreamina multiframe2video`)
@@ -87,7 +125,8 @@ dreamina frames2video --first ./morning.png --last ./night.png --prompt="天空
 
 ```bash
 # 2-image
-dreamina multiframe2video --images ./a.png,./b.png --prompt="从清晨到正午,光影在建筑表面移动" --poll=60
+dreamina multiframe2video --images ./a.png,./b.png --prompt="从清晨到正午,光影在建筑表面移动" --poll=0
+# Then follow 5s polling SOP
 
 # 3+ images with transition control
 dreamina multiframe2video \
@@ -95,7 +134,8 @@ dreamina multiframe2video \
   --prompt="故事板叙事:沉思→惊喜→急切→喜悦" \
   --transition-prompt="平滑过渡,镜头跟随情绪节奏" \
   --duration=15 \
-  --poll=120
+  --poll=0
+# Then follow 5s polling SOP
 ```
 
 | Parameter | Required | Values | Default |
@@ -105,59 +145,55 @@ dreamina multiframe2video \
 | `--transition-prompt` | No | How frames connect | — |
 | `--transition-duration` | No | Transition time between frames | — |
 | `--duration` | No | 4-15s | 5 |
-| `--model_version` | No | seedance2.0, seedance2.0fast, 3.5pro | seedance2.0fast |
+
+> Note: multiframe2video does NOT support `--model_version` or `--video_resolution` overrides.
 
 ## Mode 4: All-Around Reference (`dreamina multimodal2video`)
 
 **Input**: images + video + audio mix → synthesized video (strongest mode)
 
 ```bash
-# Images only
+# Images only (VIP)
 dreamina multimodal2video \
   --image ./person.png,./scene.png,./style.png \
   --prompt="图一人物特征配图二场景环境和图三的艺术风格。统一光源方向。色调协调。" \
-  --poll=60
+  --model_version=seedance2.0fast_vip \
+  --poll=0
+# Then follow 5s polling SOP
 
-# Images + audio
+# Images + audio (VIP)
 dreamina multimodal2video \
   --image ./person.png \
   --audio ./voice.mp3 \
   --prompt="人物按照音频节奏自然说话,口型同步,伴随自然眨眼和微表情" \
-  --poll=60
+  --model_version=seedance2.0fast_vip \
+  --poll=0
+# Then follow 5s polling SOP
 
-# Full combo (images + video + audio)
+# Full combo (images + video + audio, VIP)
 dreamina multimodal2video \
   --image ./person.png,./outfit.png,./scene.png \
   --video ./movement_ref.mp4 \
   --audio ./music.mp3 \
   --prompt="人物特征+服装+场景合成。运动节奏参考视频。情绪基调跟随音频。" \
   --duration=12 \
-  --poll=120
+  --model_version=seedance2.0fast_vip \
+  --poll=0
+# Then follow 5s polling SOP
 ```
 
 | Parameter | Required | Values | Default |
-|-----------|----------|--------|---------|
-| `--image` | No* | Up to 9 local image paths | — |
+|-----------|--------|--------|---------|
+| `--image` | No | Up to 9 local image paths | — |
 | `--video` | No | Up to 3 local video paths | — |
 | `--audio` | No | Up to 3 local audio paths | — |
-| `--prompt` | No* | Synthesis description | — |
+| `--prompt` | No | Synthesis description | — |
 | `--duration` | No | 4-15s | 5 |
 | `--ratio` | No | 1:1, 3:4, 16:9, 4:3, 9:16, 21:9 | 16:9 |
-| `--model_version` | No | seedance2.0, seedance2.0fast | seedance2.0fast |
+| `--model_version` | **Yes** | seedance2.0, seedance2.0fast, **seedance2.0_vip, seedance2.0fast_vip** | seedance2.0fast_vip ⬅️ VIP 优先 |
 
 > At least one of `--image`, `--video`, or `--audio` required. Max: 9 images + 3 videos + 3 audio.
 
-## Execution Flow (All Modes)
-
-```
-1. dreamina user_credit                         # Always first
-2. Verify input files exist (ls -la)             # All modes need local files
-3. Detect mode → select correct sub-command      # Based on input count/type
-4. Submit with --poll=N (recommend 60 for video) # Video is slow
-5. On poll timeout → dreamina query_result --submit_id=<id>
-6. Report results
-```
-
 ## FAQ (from official documentation)
 
 **Q: Login succeeds but generation commands fail?**
@@ -167,7 +203,7 @@ A: Verify `~/.dreamina_cli/config.toml` exists. Run `dreamina user_credit` as de
 A: `dreamina login --debug` for detailed output.
 
 **Q: Async task no final result?**
-A: Use `--poll=N`. If timeout, save submit_id from intermediate result → `dreamina query_result --submit_id=<id>`.
+A: Use the 5s polling SOP above — it has no timeout cap, so it will keep checking until done.
 
 **Q: Switch accounts?**
 A: `dreamina relogin`. Clear credentials: `dreamina logout`.
@@ -179,11 +215,12 @@ A: `dreamina relogin`. Clear credentials: `dreamina logout`.
 3. **Prompt is incremental** — describe only what MOVES, not static content from reference image
 4. **Mode detection is critical** — 1 image vs 2 (frames2video) vs 2+ sequential (multiframe2video) — routing determines the sub-command and parameter names differ (`--image` vs `--images` vs `--first/--last`)
 5. **Seedance 2.0 = 720P** — written as `720P` (capital P). 1080P only on legacy 3.0/3.5pro
-6. **--poll at least 60** — video generation takes minutes. 60 minimum, 120 for quality models
+6. **Use 5s polling SOP instead of --poll=N** — `--poll=N` has a timeout; the 5s polling loop has no timeout and uses fewer API calls
 7. **multimodal2video max inputs** — 9 images + 3 videos + 3 audio. Exceeding this errors
 8. **multiframe2video max 20 images** — beyond this not supported
 9. **Some models need web auth** — `AigcComplianceConfirmationRequired` → authorize on website
 10. **Parameter names vary by sub-command** — `image2video` uses `--image` (singular); `multiframe2video` uses `--images` (plural); `frames2video` uses `--first`/`--last`
+11. **VIP 账户优先使用 VIP 通道** — `seedance2.0fast_vip` 和 `seedance2.0_vip` 有独立 VIP 队列,速度更快、并发更高。账户 VIP 等级为 maestro,应默认为 `seedance2.0fast_vip`
 
 ## Available Resources
 

+ 28 - 0
skills/jimeng-skills/jimeng-cli-image2video/references/official-doc-vip-guide.md

@@ -0,0 +1,28 @@
+# 官方文档 VIP 通道指南
+
+来源:即梦 CLI 体验指南(ByteDance 内部飞书文档)
+抓取时间:2026-05-14
+URL:https://bytedance.larkoffice.com/wiki/FVTwwm0bGiishxkKOoScdHR2nsg
+
+## 官方更新日志中的 VIP 记录
+
+| 版本 | 日期 | 内容 |
+|------|------|------|
+| v1.3.2 | 2026-04-05 | 新增:支持 seedance2.0fast_vip 以及 seedance2.0_vip 通道提速,畅快生成 |
+| v1.4.3 | 2026-05-07 | 新增:支持 seedance 2.0 vip 模型以 1080p 分辨率生视频 |
+
+## image2video 系列 VIP 支持
+
+| 子命令 | 支持的 VIP 模型 | 默认值 | 1080P? |
+|--------|----------------|--------|---------|
+| `image2video` | `seedance2.0fast_vip`, `seedance2.0_vip` | `seedance2.0fast_vip` | ✅ 仅 `seedance2.0_vip` |
+| `frames2video` | `seedance2.0fast_vip`, `seedance2.0_vip` | `seedance2.0fast_vip` | ✅ 仅 `seedance2.0_vip` |
+| `multimodal2video` | `seedance2.0fast_vip`, `seedance2.0_vip` | `seedance2.0fast_vip` | ✅ 仅 `seedance2.0_vip` |
+| `multiframe2video` | ❌ 不支持 model_version | — | — |
+
+## 注意事项
+
+- CLI 默认 model_version 是 `seedance2.0fast`(非 VIP),需要显式指定 `_vip` 变体
+- 官方文档示例命令均未加 `--model_version`,走默认非 VIP 通道
+- 社区确认:需高级会员(VIP)才可使用 VIP 模型版本
+- VIP 通道有独立队列,速度更快、并发更高

+ 3 - 3
skills/jimeng-skills/jimeng-cli-image2video/references/parameter-reference.md

@@ -11,7 +11,7 @@
 | `--image` | **Yes** | 本地图片路径 | — |
 | `--prompt` | No | 运动描述(增量式) | — |
 | `--duration` | No | 3-15s | 5 |
-| `--model_version` | No | seedance2.0, seedance2.0fast, 3.0, 3.0fast, 3.0pro, 3.5pro | seedance2.0fast |
+| `--model_version` | **Yes** | seedance2.0, seedance2.0fast, **seedance2.0_vip, seedance2.0fast_vip**, 3.0, 3.0fast, 3.0pro, 3.5pro | seedance2.0fast_vip ⬅️ VIP 优先 |
 | `--video_resolution` | No | 720P (Seedance), 1080P (legacy) | 720P |
 | `--poll` | No | 秒 (0=async) | 0 |
 
@@ -23,7 +23,7 @@
 | `--last` | **Yes** | 本地图片路径(结束帧) | — |
 | `--prompt` | No | 过渡描述 | — |
 | `--duration` | No | 4-15s | 5 |
-| `--model_version` | No | seedance2.0, seedance2.0fast, 3.5pro | seedance2.0fast |
+| `--model_version` | **Yes** | seedance2.0, seedance2.0fast, **seedance2.0_vip, seedance2.0fast_vip**, 3.5pro | seedance2.0fast_vip ⬅️ VIP 优先 |
 | `--video_resolution` | No | 720P (Seedance), 1080P (legacy) | 720P |
 
 ## multiframe2video(多帧故事)
@@ -47,7 +47,7 @@
 | `--prompt` | No | 合成描述 | — |
 | `--duration` | No | 4-15s | 5 |
 | `--ratio` | No | 1:1, 3:4, 16:9, 4:3, 9:16, 21:9 | 16:9 |
-| `--model_version` | No | seedance2.0, seedance2.0fast | seedance2.0fast |
+| `--model_version` | No | seedance2.0, seedance2.0fast, **seedance2.0_vip, seedance2.0fast_vip** | seedance2.0fast_vip ⬅️ VIP 优先 |
 
 > *至少需要 `--image`、`--video`、`--audio` 其中之一。
 

+ 64 - 18
skills/jimeng-skills/jimeng-cli-text2image/SKILL.md

@@ -27,12 +27,60 @@ Do NOT use this skill for:
 ## Core Execution Flow
 
 ```
-1. CHECK   → dreamina user_credit          # Always first — check credits before any generation
-2. SUBMIT  → dreamina text2image --prompt="..." --ratio=X:Y [--poll=N]
-3. MONITOR → dreamina query_result --submit_id=<id>  # If async (no --poll)
-4. RETRIEVE → Results saved to session or download directory
+1. CHECK   → dreamina user_credit                  # Always first — check credits
+2. SUBMIT  → dreamina text2image --prompt="..." --ratio=X:Y --poll=0  # Async → get submit_id
+3. POLL    → Agent 每 ~5 秒手动调用 query_result --submit_id=<id> 检查 gen_status
+4. RETRIEVE → gen_status="success" → 提取结果并报告
 ```
 
+## 定时查询 SOP(智能体行为规范,非 shell 死循环)
+
+提交生成任务后,应由**智能体(AI)**负责任务状态查询,而非用 `while true` shell 脚本阻塞终端:
+
+### 步骤
+
+**Step 1 — 提交任务(一次 terminal 调用)**:
+```bash
+dreamina text2image --prompt="..." --ratio=16:9 --poll=0
+```
+→ 解析输出中的 `submit_id`,记录下来。
+
+**Step 2 — 智能体周期查询(多次 terminal 调用,每次单独)**:
+```
+每 ~5 秒执行一次: dreamina query_result --submit_id=<submit_id>
+```
+根据返回的 `gen_status` 做分支判断:
+
+| gen_status | 智能体行为 |
+|-----------|-----------|
+| `"success"` | ✅ 提取结果 URL/文件,报告给用户 |
+| `"failed"` | ❌ 报告错误信息给用户 |
+| `"querying"` | ⏳ 等待 ~5 秒后再次调用 query_result(最长等待:图片 2 分钟,视频 15 分钟) |
+| 长时间无变化(图片 >3min,视频 >20min) | ⚠️ 主动报告给用户,询问是否要继续等 |
+
+> **禁止**在 terminal 中使用 `while true; sleep 5; ...` 死循环。应由智能体在多次对话轮次中调用 `query_result`,每次独立发起 terminal 调用。
+
+### 示例(智能体自身逻辑)
+
+```
+# Turn 1
+terminal: dreamina text2image --prompt="..." --poll=0
+→ parse: submit_id = "abc-123"
+→ tell user: "已提交任务,submit_id=abc-123,5秒后检查结果"
+
+# Turn 2 (after ~5s)
+terminal: dreamina query_result --submit_id=abc-123
+→ gen_status = "querying"
+→ tell user: "任务处理中,5秒后再检查"
+
+# Turn 3 (after ~5s)
+terminal: dreamina query_result --submit_id=abc-123
+→ gen_status = "success"
+→ extract result_url, report to user
+```
+
+> **原理**: 每次单独调用 terminal 而非 shell 死循环,智能体可以在每次查询结果后做灵活判断(重试、报告进度、超时处理),且不阻塞终端资源。
+
 ## How to use this skill
 
 ### Step 1: Verify prerequisites
@@ -97,33 +145,31 @@ Load `references/parameter-reference.md` for the complete parameter map.
 
 ### Step 4: Execute the generation
 
-**Synchronous (recommended for most cases):**
+**Recommended (async + 智能体周期查询):**
 ```bash
-dreamina text2image --prompt="<prompt>" --ratio=16:9 --model_version=5.0 --resolution_type=4k --poll=30
+dreamina text2image --prompt="<prompt>" --ratio=16:9 --model_version=5.0 --resolution_type=4k --poll=0
 ```
+→ 解析获取 `submit_id`,智能体随后每 ~5 秒调用 `query_result` 检查状态。
 
-**Async (for batch or long-running tasks):**
+**Quick poll (for fast tasks, auto 1s polling):**
 ```bash
-# Submit without polling
-dreamina text2image --prompt="<prompt>" --ratio=16:9 --poll=0
-
-# Note the submit_id from output, then query later:
-dreamina query_result --submit_id=<id>
+dreamina text2image --prompt="<prompt>" --ratio=16:9 --model_version=5.0 --resolution_type=4k --poll=30
 ```
 
 **With session (organized projects):**
 ```bash
 dreamina session create "project-name"  # First time
-dreamina text2image --prompt="<prompt>" --session=<session_id> --ratio=16:9 --poll=30
+dreamina text2image --prompt="<prompt>" --session=<session_id> --ratio=16:9 --poll=0
+# Then follow 5s polling SOP using submit_id
 ```
 
 ### Step 5: Handle results
 
 After generation completes:
-- Confirm the `gen_status` is "success"
-- Report the output file path to the user
-- If using `--poll=30`, output is available immediately
-- If async, provide the `submit_id` and instructions for checking later
+- Confirm the `gen_status` is `"success"`
+- If using the 5s 智能体周期查询 → 每次 `query_result` 返回后智能体根据 `gen_status` 做分支判断
+- If using `--poll=N` and it completes → output is available immediately
+- If still `"querying"` after reasonable wait time → ask user if they want to continue waiting
 
 ### Step 6: Handle errors
 
@@ -217,7 +263,7 @@ A: Run `dreamina logout` — this clears `credential.json` only. `config.toml` a
 5. **Model 5.0 is the safe default** — latest flagship, best quality. Don't hardcode but default here unless the prompt recommends a specific version
 6. **Resolution must match model capability** — 1k only for 3.x, 2k for all, 4k for 4.0+
 7. **Chinese prompts produce best results** — 即梦 is optimized for Chinese. If the user's prompt is in English, suggest translating
-8. **Session 0 is the default session** — no need to create sessions for one-off generations
+10. **不要写 shell 死循环做任务轮询** — 提交任务时用 `--poll=0` 获取 submit_id,然后由智能体在对话轮次中每 ~5 秒手动调用一次 `query_result`。禁止 `while true; sleep 5;` 阻塞终端。智能体需根据每次返回的 gen_status 做分支判断(继续等/报告结果/通知超时)
 
 ## Available Resources
 

+ 64 - 12
skills/jimeng-skills/jimeng-cli-text2video/SKILL.md

@@ -26,10 +26,53 @@ Do NOT use this skill for:
 ## Core Execution Flow
 
 ```
-1. CHECK   → dreamina user_credit          # Always first — video consumes more credits than images
-2. SUBMIT  → dreamina text2video --prompt="..." --duration=N [--poll=N]
-3. MONITOR → dreamina query_result --submit_id=<id>  # If async or poll timeout
-4. RETRIEVE → Results saved or downloaded
+1. CHECK   → dreamina user_credit                  # Always first — check credits
+2. SUBMIT  → dreamina text2video --prompt="..." --duration=N --poll=0  # Async → get submit_id
+3. POLL    → Agent 每 ~5 秒手动调用 query_result --submit_id=<id> 检查 gen_status
+4. RETRIEVE → gen_status="success" → 提取结果并报告
+```
+
+## 定时查询 SOP(智能体行为规范,非 shell 死循环)
+
+提交生成任务后,应由**智能体(AI)**负责任务状态查询,而非用 `while true` shell 脚本阻塞终端:
+
+### 步骤
+
+**Step 1 — 提交任务(一次 terminal 调用)**:
+```bash
+dreamina text2video --prompt="..." --duration=5 --ratio=16:9 --model_version=seedance2.0fast_vip --poll=0
+```
+→ 解析输出中的 `submit_id`,记录下来。
+
+**Step 2 — 智能体周期查询(多次 terminal 调用,每次单独)**:
+```
+每 ~5 秒执行一次: dreamina query_result --submit_id=<submit_id>
+```
+根据返回的 `gen_status` 做分支判断:
+
+| gen_status | 智能体行为 |
+|-----------|-----------|
+| `"success"` | ✅ 提取视频 URL,报告给用户 |
+| `"failed"` | ❌ 报告错误信息给用户 |
+| `"querying"` | ⏳ 等待 ~5 秒后再次调用 query_result(最长等待:视频 15 分钟) |
+| 长时间无变化(>20min) | ⚠️ 主动报告给用户,询问是否要继续等 |
+
+> **禁止**在 terminal 中使用 `while true; sleep 5; ...` 死循环。应由智能体在多次对话轮次中独立调用 `query_result`。
+
+### 示例(智能体自身逻辑)
+
+```
+# Turn 1
+terminal: dreamina text2video --prompt="..." --poll=0
+→ parse: submit_id = "abc-123"
+→ tell user: "已提交视频任务,submit_id=abc-123,5秒后检查结果"
+
+# Turn 2 (after ~5s)
+terminal: dreamina query_result --submit_id=abc-123
+→ gen_status = "querying"
+→ tell user: "视频生成中(通常2-15分钟),5秒后再检查"
+
+# Turn 3 (after ~5s) ... repeat until success
 ```
 
 ## How to use this skill
@@ -93,20 +136,21 @@ Load `references/parameter-reference.md` for the complete parameter map.
 
 ### Step 4: Execute the generation
 
-**Standard synchronous generation (recommended):**
+**Recommended (async + 智能体周期查询):**
 ```bash
 dreamina text2video \
   --prompt="镜头缓缓推进,一个女孩在森林里缓步前行,裙摆摇曳,阳光透过树冠洒在她身上" \
   --duration=8 \
   --ratio=16:9 \
-  --model_version=seedance2.0fast \
-  --poll=60
+  --model_version=seedance2.0fast_vip \
+  --poll=0
 ```
+→ 解析获取 `submit_id`,智能体随后每 ~5 秒调用 `query_result` 检查状态。
 
-**Quick generation (defaults):**
+**Quick generation (defaults, 5s poll fallback):**
 ```bash
 dreamina text2video --prompt="..." --poll=60
-# Defaults: duration=5s, ratio=16:9, model=seedance2.0fast, resolution=720P
+# Defaults: duration=5s, ratio=16:9, model=seedance2.0fast_vip, resolution=720P
 ```
 
 **High quality (slower):**
@@ -127,8 +171,9 @@ dreamina query_result --submit_id=<id>
 
 ### Step 5: Handle results
 
+- If using the 5s 智能体周期查询 → 每次 `query_result` 返回后智能体根据 `gen_status` 做分支判断
 - If `--poll` completes within timeout → result returned immediately
-- If `--poll` times out → returns "querying" intermediate status with submit_id; use `dreamina query_result --submit_id=<id>` to check later
+- If `--poll` times out → returns "querying" intermediate status with submit_id; use 智能体周期查询继续检查
 - Report output file path and video details to the user
 
 ### Step 6: Handle errors
@@ -164,7 +209,11 @@ dreamina query_result --submit_id=<id>
 | seedance2.0fast_vip | Fast | Good | VIP | VIP fast generation |
 | seedance2.0_vip | Slow | Excellent | VIP | VIP high quality |
 
-**Recommendation**: Use `seedance2.0fast` for iteration and testing. Switch to `seedance2.0` for final renders.
+**Recommendation (VIP 账户优先)**:用户当前账户 VIP 等级为 maestro,应优先使用 VIP 通道以获得更快速度和更高并发:
+- `seedance2.0fast_vip` — **首选**:快速迭代,VIP 通道优先
+- `seedance2.0_vip` — 高质量最终输出,VIP 通道优先
+- `seedance2.0fast` — 备用(非 VIP 通道,标准速度)
+- `seedance2.0` — 备用高质量(非 VIP 通道)
 
 ## Essential CLI Commands
 
@@ -225,7 +274,9 @@ A: `dreamina relogin` clears login state and starts new flow.
 6. **Match duration to action** — don't cram a 3-stage narrative into a 5-second clip
 7. **Default model is seedance2.0fast** — good quality, faster. Use seedance2.0 for final renders
 8. **Some models need web auth first** — if `AigcComplianceConfirmationRequired`, authorize on dreamina website
-9. **`~/.dreamina_cli/` directory** — may contain config.toml, credential.json, tasks.db after native (non-Docker) login. In Docker setups, these files may be absent (auth stored ephemerally). Don't delete
+9. **VIP 账户优先使用 VIP 通道** — `seedance2.0fast_vip` 和 `seedance2.0_vip` 有独立 VIP 队列,速度更快、并发更高。账户 VIP 等级为 maestro,应默认为 `seedance2.0fast_vip`
+10. **不要写 shell 死循环做任务轮询** — 提交任务时用 `--poll=0` 获取 submit_id,然后由智能体在对话轮次中每 ~5 秒调用一次 `query_result`。禁止 `while true; sleep 5;` 阻塞终端。智能体需根据 gen_status 做分支判断(继续等/报结果/通知超时)
+11. **`~/.dreamina_cli/` directory** — may contain config.toml, credential.json, tasks.db after native (non-Docker) login. In Docker setups, these files may be absent (auth stored ephemerally). Don't delete
 
 ## Available Resources
 
@@ -234,6 +285,7 @@ A: `dreamina relogin` clears login state and starts new flow.
 | `references/parameter-reference.md` | Complete CLI parameter reference for text2video | When mapping prompt specs to CLI arguments |
 | `references/model-guide.md` | Detailed Seedance 2.0 model comparison | When choosing model for quality/speed/cost |
 | `references/workflow-patterns.md` | Standard execution patterns, error handling, async workflows | When executing complex or multi-step generations |
+| `references/official-doc-vip-guide.md` | Official documentation excerpt on VIP channel support, version history, 1080P | When user asks about VIP, or when confirming VIP model support |
 | `examples/basic-generation.md` | Simple single-video generation flows | Default — most common use case |
 | `examples/batch-generation.md` | Multi-video batch patterns | User wants multiple videos |
 | `examples/async-generation.md` | Async submit + poll patterns for video | Long video generations or non-blocking |

+ 41 - 0
skills/jimeng-skills/jimeng-cli-text2video/references/official-doc-vip-guide.md

@@ -0,0 +1,41 @@
+# 官方文档 VIP 通道指南
+
+来源:即梦 CLI 体验指南(ByteDance 内部飞书文档)
+抓取时间:2026-05-14
+URL:https://bytedance.larkoffice.com/wiki/FVTwwm0bGiishxkKOoScdHR2nsg
+
+## 官方更新日志中的 VIP 记录
+
+| 版本 | 日期 | 内容 |
+|------|------|------|
+| v1.3.2 | 2026-04-05 | 新增:支持 seedance2.0fast_vip 以及 seedance2.0_vip 通道提速,畅快生成 |
+| v1.4.3 | 2026-05-07 | 新增:支持 seedance 2.0 vip 模型以 1080p 分辨率生视频 |
+
+## CLI 支持的 VIP 模型版本(所有视频子命令)
+
+| 子命令 | VIP 模型版本 | 非 VIP 版本 |
+|--------|-------------|------------|
+| `text2video` | `seedance2.0fast_vip`, `seedance2.0_vip` | `seedance2.0fast`, `seedance2.0` |
+| `image2video` | `seedance2.0fast_vip`, `seedance2.0_vip` | 同上 + 3.0/3.0fast/3.0pro/3.5pro |
+| `frames2video` | `seedance2.0fast_vip`, `seedance2.0_vip` | 同上 + 3.0/3.5pro |
+| `multimodal2video` | `seedance2.0fast_vip`, `seedance2.0_vip` | `seedance2.0fast`, `seedance2.0` |
+| `multiframe2video` | ❌ 不支持 model_version 参数 | — |
+
+## VIP 额外能力
+
+`seedance2.0_vip` 支持 **1080P** 分辨率(普通版仅 720P)。
+
+## 注意事项
+
+- CLI 默认的 model_version 是 `seedance2.0fast`(非 VIP),需要**显式指定** `_vip` 变体
+- 官方文档的示例命令全部**没有**加 `--model_version` 参数,走的是默认非 VIP 通道
+- 社区用户确认:需高级会员(VIP)才可使用 VIP 模型版本
+- 官方维护者 user 2448 回复:"使用时指定 --model_version 参数为 seedance2.0_vip, 或 seedance2.0fast_vip 即可"
+
+## 验证方法
+
+```bash
+# 查看 CLI 实际支持的 model_version 列表(官方指引)
+dreamina text2video -h        # 查看 text2video 支持的模型
+dreamina image2video -h       # 查看 image2video 支持的模型
+```