@byteplus/ark-cli-darwin-x64 0.0.0-stage → 1.0.46-prerelease.dc921200a42d

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.
Files changed (148) hide show
  1. package/LICENSE +201 -0
  2. package/bin/arkcli-darwin-amd64 +4 -0
  3. package/manifest.json +43 -0
  4. package/package.json +20 -4
  5. package/skills/arkcli-agent/SKILL.md +152 -0
  6. package/skills/arkcli-agent/references/agent.md +398 -0
  7. package/skills/arkcli-agent/references/byok.md +65 -0
  8. package/skills/arkcli-agent/references/context-management.md +42 -0
  9. package/skills/arkcli-agent/references/debug-export.md +26 -0
  10. package/skills/arkcli-agent/references/evals.md +178 -0
  11. package/skills/arkcli-agent/references/events-chat.md +148 -0
  12. package/skills/arkcli-agent/references/interfaces-gaps.md +52 -0
  13. package/skills/arkcli-agent/references/mcp-vault.md +111 -0
  14. package/skills/arkcli-agent/references/model-config.md +46 -0
  15. package/skills/arkcli-agent/references/self-hosted.md +47 -0
  16. package/skills/arkcli-agent/references/session-files.md +149 -0
  17. package/skills/arkcli-agent/references/session-upgrade.md +61 -0
  18. package/skills/arkcli-agent/references/skills.md +87 -0
  19. package/skills/arkcli-agent/references/todo-write.md +31 -0
  20. package/skills/arkcli-api-explorer/SKILL.md +188 -0
  21. package/skills/arkcli-api-explorer/references/arkcli-api.md +180 -0
  22. package/skills/arkcli-api-explorer/references/evals.md +176 -0
  23. package/skills/arkcli-auth/SKILL.md +184 -0
  24. package/skills/arkcli-auth/references/arkcli-auth-login.md +92 -0
  25. package/skills/arkcli-auth/references/arkcli-auth-status.md +109 -0
  26. package/skills/arkcli-auth/references/arkcli-auth-whoami.md +56 -0
  27. package/skills/arkcli-auth/references/auth-modes.md +78 -0
  28. package/skills/arkcli-auth/references/evals.md +82 -0
  29. package/skills/arkcli-auth/references/identity-resolution.md +33 -0
  30. package/skills/arkcli-auth/references/realname-gate.md +69 -0
  31. package/skills/arkcli-billing/SKILL.md +122 -0
  32. package/skills/arkcli-billing/references/arkcli-billing-list.md +259 -0
  33. package/skills/arkcli-billing/references/evals.md +107 -0
  34. package/skills/arkcli-chat/SKILL.md +114 -0
  35. package/skills/arkcli-chat/references/arkcli-chat.md +283 -0
  36. package/skills/arkcli-chat/references/caching-thinking.md +124 -0
  37. package/skills/arkcli-chat/references/chat-meta.md +77 -0
  38. package/skills/arkcli-chat/references/evals.md +34 -0
  39. package/skills/arkcli-chat/references/stream-events.md +124 -0
  40. package/skills/arkcli-chat/references/text-format.md +167 -0
  41. package/skills/arkcli-chat/references/tools.md +119 -0
  42. package/skills/arkcli-config/SKILL.md +197 -0
  43. package/skills/arkcli-config/references/arkcli-config-init.md +89 -0
  44. package/skills/arkcli-config/references/arkcli-config-profile.md +106 -0
  45. package/skills/arkcli-config/references/evals.md +154 -0
  46. package/skills/arkcli-connect/SKILL.md +196 -0
  47. package/skills/arkcli-connect/references/arkcli-connect.md +165 -0
  48. package/skills/arkcli-connect/references/evals.md +231 -0
  49. package/skills/arkcli-custommodel/SKILL.md +167 -0
  50. package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +29 -0
  51. package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +37 -0
  52. package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
  53. package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +65 -0
  54. package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +59 -0
  55. package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
  56. package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +64 -0
  57. package/skills/arkcli-custommodel/references/evals.md +59 -0
  58. package/skills/arkcli-datasets/SKILL.md +39 -0
  59. package/skills/arkcli-datasets/references/commands.md +83 -0
  60. package/skills/arkcli-datasets/references/evals.md +31 -0
  61. package/skills/arkcli-deploy/SKILL.md +89 -0
  62. package/skills/arkcli-deploy/references/arkcli-deploy.md +141 -0
  63. package/skills/arkcli-deploy/references/evals.md +80 -0
  64. package/skills/arkcli-docs/SKILL.md +453 -0
  65. package/skills/arkcli-docs/references/commands.md +283 -0
  66. package/skills/arkcli-docs/references/evals.md +201 -0
  67. package/skills/arkcli-docs/references/failure-modes.md +85 -0
  68. package/skills/arkcli-doctor/CONTRIBUTING.md +54 -0
  69. package/skills/arkcli-doctor/SKILL.md +367 -0
  70. package/skills/arkcli-doctor/references/error-codes.md +162 -0
  71. package/skills/arkcli-doctor/references/evals.md +385 -0
  72. package/skills/arkcli-doctor/references/scope-account.md +94 -0
  73. package/skills/arkcli-doctor/references/scope-cli.md +88 -0
  74. package/skills/arkcli-doctor/references/scope-infer-endpoint.md +132 -0
  75. package/skills/arkcli-doctor/references/scope-metrics.md +157 -0
  76. package/skills/arkcli-doctor/references/scope-model.md +130 -0
  77. package/skills/arkcli-doctor/references/verify-origin.md +102 -0
  78. package/skills/arkcli-gen/SKILL.md +188 -0
  79. package/skills/arkcli-gen/references/arkcli-gen.md +230 -0
  80. package/skills/arkcli-gen/references/gen-meta.md +154 -0
  81. package/skills/arkcli-gen/references/image-stream.md +105 -0
  82. package/skills/arkcli-helper/SKILL.md +200 -0
  83. package/skills/arkcli-helper/references/arkcli-helper.md +298 -0
  84. package/skills/arkcli-helper/references/evals.md +334 -0
  85. package/skills/arkcli-iam/SKILL.md +46 -0
  86. package/skills/arkcli-iam/references/arkcli-iam-userid.md +54 -0
  87. package/skills/arkcli-iam/references/evals.md +24 -0
  88. package/skills/arkcli-infer-endpoint/SKILL.md +82 -0
  89. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-capability-get.md +50 -0
  90. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +121 -0
  91. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +71 -0
  92. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +43 -0
  93. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +82 -0
  94. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +36 -0
  95. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +36 -0
  96. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +78 -0
  97. package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
  98. package/skills/arkcli-models/SKILL.md +305 -0
  99. package/skills/arkcli-models/references/arkcli-models-activate.md +103 -0
  100. package/skills/arkcli-models/references/arkcli-models-get.md +94 -0
  101. package/skills/arkcli-models/references/arkcli-models-list.md +71 -0
  102. package/skills/arkcli-models/references/arkcli-models-scenario-table.md +75 -0
  103. package/skills/arkcli-models/references/arkcli-models-search.md +170 -0
  104. package/skills/arkcli-models/references/evals.md +57 -0
  105. package/skills/arkcli-onboard/SKILL.md +169 -0
  106. package/skills/arkcli-onboard/references/evals.md +156 -0
  107. package/skills/arkcli-plans/SKILL.md +135 -0
  108. package/skills/arkcli-plans/references/arkcli-plans-buy.md +125 -0
  109. package/skills/arkcli-plans/references/arkcli-plans-get.md +84 -0
  110. package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +58 -0
  111. package/skills/arkcli-plans/references/arkcli-plans-model-list.md +114 -0
  112. package/skills/arkcli-plans/references/arkcli-plans-renew.md +125 -0
  113. package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +61 -0
  114. package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +147 -0
  115. package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +100 -0
  116. package/skills/arkcli-plans/references/evals.md +178 -0
  117. package/skills/arkcli-pricing/SKILL.md +120 -0
  118. package/skills/arkcli-pricing/references/arkcli-pricing-models.md +258 -0
  119. package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +139 -0
  120. package/skills/arkcli-profile/SKILL.md +168 -0
  121. package/skills/arkcli-profile/references/arkcli-profile-create.md +92 -0
  122. package/skills/arkcli-profile/references/arkcli-profile-keys.md +135 -0
  123. package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
  124. package/skills/arkcli-profile/references/evals.md +93 -0
  125. package/skills/arkcli-resources/SKILL.md +112 -0
  126. package/skills/arkcli-resources/references/arkcli-resources-list.md +105 -0
  127. package/skills/arkcli-shared/SKILL.md +209 -0
  128. package/skills/arkcli-shared/references/global-flags.md +77 -0
  129. package/skills/arkcli-shared/references/profile-defaults.md +35 -0
  130. package/skills/arkcli-shared/references/troubleshooting.md +49 -0
  131. package/skills/arkcli-shared/references/update.md +117 -0
  132. package/skills/arkcli-train-finetune/SKILL.md +109 -0
  133. package/skills/arkcli-train-finetune/references/create.md +274 -0
  134. package/skills/arkcli-train-finetune/references/download.md +50 -0
  135. package/skills/arkcli-train-finetune/references/evals.md +59 -0
  136. package/skills/arkcli-train-finetune/references/export-deploy.md +179 -0
  137. package/skills/arkcli-train-finetune/references/list.md +79 -0
  138. package/skills/arkcli-train-finetune/references/manage.md +140 -0
  139. package/skills/arkcli-understand/SKILL.md +105 -0
  140. package/skills/arkcli-understand/references/arkcli-understand.md +249 -0
  141. package/skills/arkcli-understand/references/evals.md +109 -0
  142. package/skills/arkcli-understand/references/sub-skills.md +137 -0
  143. package/skills/arkcli-usage/SKILL.md +123 -0
  144. package/skills/arkcli-usage/references/arkcli-usage-balance.md +196 -0
  145. package/skills/arkcli-usage/references/arkcli-usage-plan.md +153 -0
  146. package/skills/arkcli-usage/references/arkcli-usage-seats.md +199 -0
  147. package/skills/arkcli-usage/references/arkcli-usage-stats.md +160 -0
  148. package/README.md +0 -3
@@ -0,0 +1,230 @@
1
+ # +gen
2
+
3
+ > **Prerequisite:** Read [`../arkcli-shared/SKILL.md`](../../arkcli-shared/SKILL.md) first to learn about authentication, global parameters, and security rules.
4
+
5
+ Execution-layer documentation for image/video generation (`+gen` full parameters).**This is step 3 of the three-step workflow**. For the complete workflow (① `resources list` to check profile models → ② `models get` to check supported_params → ③ `+gen` to generate), see [`../SKILL.md`](../SKILL.md).
6
+
7
+ > **⚠️ Video tasks are asynchronous by default**: submission immediately returns a `task_id` (`status: queued`). Use `arkcli gen get <task_id>` to poll; add `--wait` to block synchronously (**capped** — at most `--timeout`, default 10m). Image tasks return synchronously.
8
+
9
+ ## Commands
10
+
11
+ `+gen` has no `--no-progress` flag; do not copy the `+chat` heartbeat option. Capture complete stdout and stderr separately without suppressing errors.
12
+
13
+ ### CLI options are not HTTP/SDK payloads
14
+
15
+ When troubleshooting HTTP/SDK code, inspect the actual API path, exact model/Endpoint, redacted authentication context, request body, accessible media, and response/error/request ID. CLI `--input`, local `@file`, and role shorthand require conversion; client-side `--wait`, `--save-to`, and open options are not model payload fields. Image unions and video `content[]` cannot be copied interchangeably.
16
+
17
+ A successful `+gen` proves only that CLI workflow succeeded; it may have normalized input, supplied defaults, or selected a different calling context. It does not prove the user's original HTTP/SDK request is correct. Explain the actual differences, retain unknowns, and do not create an extra paid task instead of inspecting the code. Preview is a local plan, not server validation; preserve `partial/unresolved` and require authorization for any real test.
18
+
19
+ > **⚠️ `--model` must be in the complete `<name>-<primary_version>` form (such as `seedream-5-0-260128` or `dreamina-seedance-2-0-260128`) or an endpoint ID (`ep-xxx`). Passing only the family name will result in a 404 `InvalidEndpointOrModel.NotFound`.**
20
+ >
21
+ > The `primary_version` format is not fixed. It is often a 6-digit date, but it may also be an 8-digit date, include a qualified prefix, be a short number, or even be an empty string (in which case the full ID is the family name itself). About half of models are not 6-digit versions. For details, see link 0 in [`../../arkcli-models/SKILL.md`](../../arkcli-models/SKILL.md).**Do not use your own regular expression to decide "whether it looks like a complete ID".**
22
+ >
23
+ > **Complete before calling (required):** If you are not sure whether `--model` is already in complete form, run this first:
24
+ >
25
+ > ```bash
26
+ > VER=$(arkcli models get <name> --transform 'primary_version' | tr -d '"')
27
+ > # The --transform output includes JSON double quotes, so you must strip them with tr -d. Otherwise, $VER will be "260128", causing an incorrect concatenation.
28
+ > MODEL=${VER:+<name>-$VER}; MODEL=${MODEL:-<name>} # Falls back to <name> when VER is an empty string.
29
+ > arkcli +gen --model "$MODEL" "<prompt>"
30
+ > ```
31
+ >
32
+ > If you have just run `models search/list`, you can directly reuse the returned `primary_version` parameter without calling `get` again.
33
+
34
+ ## Video input roles: first frame / first-last frames / multi-reference (required reading)
35
+
36
+ Seedance 2.x and similar services validate `content[].role` strictly. Do not rely on "the first image is
37
+ the first frame" to infer the mode. Choose one mode from the user's intent before writing roles:
38
+
39
+ | User intent | Recommended form | Notes |
40
+ |---|---|---|
41
+ | Single first frame (I2V) | `--input first_frame:@start.jpg` | The image is the starting frame |
42
+ | First + last frames | `--input first_frame:@start.jpg --input last_frame:@end.jpg` | Each image constrains one end |
43
+ | Multi-reference (subject/clothing/scene/style) | `--input reference_image:@ref1.jpg --input reference_image:@ref2.jpg` | Every image is a reference; the first one is **not** a first frame |
44
+ | Reference video (R2V / continuation) | `--input reference_video:@ref.mp4`, optionally plus `--input reference_image:@person.jpg` | The video must be explicitly `reference_video` |
45
+
46
+ Hard rules:
47
+
48
+ - When generating commands, prefer the SDK role names `first_frame:` / `last_frame:` / `reference_image:` /
49
+ `reference_video:` / `reference_audio:`. The `first:` / `last:` / `ref:` forms are CLI aliases; do not mix
50
+ both dialects in one command, and do not rely on positional inference.
51
+ - In a request carrying video or audio, every asset needs an explicit role. A missing image role is rejected
52
+ with HTTP 400 (`role must be specified for image contents`); a missing video role is rejected with
53
+ `reference media mode requires video role to be reference_video`.
54
+ - Seedance 2.0 rejects mixing first-frame/first-last-frame mode with multi-reference mode. Do not send both
55
+ `first_frame` and `reference_image` unless the exact model capability explicitly allows it.
56
+ - If the user supplies multiple images without saying which are first/last frames, confirm the roles before
57
+ submitting. Do not assume the first image is a first frame.
58
+ - "Use this image as a reference" means `reference_image:`. Use `first_frame:` only for "start from this image"
59
+ or "make this the first frame". Do not probe role semantics by submitting paid tasks; check the model
60
+ metadata first, and use a local `--dry-run` when command shape needs verification.
61
+
62
+ ```bash
63
+ # 1) Text-to-image (T2I) — Seedream model
64
+ arkcli +gen --model seedream-5-0-260128 "Minimalist business laptop, dark blue, white background"
65
+
66
+ # 2) Image-to-image / image-edit (I2I) — use --input to mention a reference image
67
+ arkcli +gen --model seedream-5-0-260128 \
68
+ --input @ref.jpg \
69
+ "Keep the composition and change the background to a beach at dusk"
70
+
71
+ # Multiple reference images (pass --input multiple times)
72
+ arkcli +gen --model seedream-5-0-260128 \
73
+ --input @style1.jpg --input @style2.jpg \
74
+ "Blend the styles of the two images, with a Shiba Inu as the subject"
75
+
76
+ # Generate multiple candidates at once (image-count > 1 automatically enables sequential)
77
+ arkcli +gen --model seedream-5-0-260128 --image-count 4 "Four style variants of a futuristic city skyline"
78
+
79
+ # 3) Text-to-video (T2V)
80
+ arkcli +gen --model dreamina-seedance-2-0-260128 "A Shiba Inu running under cherry blossom trees, slow motion"
81
+
82
+ # 4) Image-to-video / first-frame-to-video (I2V) — prefer explicit first_frame
83
+ arkcli +gen --model dreamina-seedance-2-0-260128 \
84
+ --input first_frame:@first.jpg \
85
+ "The camera slowly pulls back while the subject stays still"
86
+
87
+ # First and last frames: explicit first_frame / last_frame
88
+ arkcli +gen --model dreamina-seedance-2-0-260128 \
89
+ --input first_frame:@start.jpg --input last_frame:@end.jpg \
90
+ "Generate tween animation between these two frames"
91
+
92
+ # 5) Reference video (R2V) — the video must be explicitly reference_video
93
+ arkcli +gen --model dreamina-seedance-2-0-260128 \
94
+ --input reference_video:@reference.mp4 \
95
+ "Keep the motion path of the reference video and replace the main character with a robot"
96
+
97
+ # 6) Reference audio — synchronize the video rhythm with the audio
98
+ arkcli +gen --model dreamina-seedance-2-0-260128 \
99
+ --input reference_audio:@beat.mp3 \
100
+ "A montage of city night scenes that cuts to the beat"
101
+
102
+ # Advanced flags — image tasks
103
+ arkcli +gen --model seedream-5-0-260128 \
104
+ --guidance-scale 7.5 --optimize-prompt --output-format png \
105
+ "Product photography style"
106
+
107
+ # Advanced flags — video tasks
108
+ arkcli +gen --model dreamina-seedance-2-0-260128 \
109
+ --frames 96 --camera-fixed --return-last-frame --draft \
110
+ "Aerial shot of a city at night"
111
+
112
+ # Output full JSON
113
+ arkcli +gen --model dreamina-seedance-2-0-260128 --format json "Product advertising video"
114
+
115
+ # Custom inference endpoint: a real call resolves the bound model metadata
116
+ arkcli +gen --model ep-20260416234150-zsd4v "Minimalist business laptop"
117
+
118
+ # Add an explicit modality only for missing/conflicting metadata
119
+ arkcli +gen --model ep-20260416234150-zsd4v --modality video "A Shiba Inu is running"
120
+ ```
121
+
122
+ ## Parameter
123
+
124
+ | Parameter | Required | Type |Description|
125
+ |------|------|------|------|
126
+ | `<prompt>` |Yes| positional | Generation prompt (positional parameter, placed at the end of the command) |
127
+ | `--model` | No| string | **Complete versioned model ID** (such as `seedream-5-0-260128` or `dreamina-seedance-2-0-260128`) or inference endpoint ID (`ep-xxx`). Passing only the family name will directly result in a 404 `InvalidEndpointOrModel.NotFound`.**Can be omitted in 0.1.16+**: when omitted, it falls back to the active profile's `Resources.<modality>.Default` based on `--modality`. If it is not set, a hint is reported to guide you to run `arkcli profile set-default --modality <m> <id>`. |
128
+ | `--modality` | See description | string | Generation modality: `image` or `video`. Real calls use `explicit value > ArkModels output_modalities > FoundationModel task types > unknown`. |
129
+ | `--input` | No| string (repeatable) | Reference asset references, added to content[] in the order they appear. Local file `@<path>` / remote `https://...` `tos://...` are all supported. **Local files (image/video/audio) are uploaded to TOS and replaced with a presigned https URL** that the backend fetches at submit time; `tos://<bucket>/<key>` is signed in place. Prefer the SDK role names `first_frame:` `last_frame:` `reference_image:` `reference_video:` `reference_audio:`. The `first:` `last:` `ref:` `none:` forms are CLI aliases that resolve to wire roles (`ref:` resolves by asset kind). Only an input with **no prefix at all** leaves the role empty for the server to infer by position; a bare `@<path>` is only for single-image I2V when the model accepts positional inference, and cannot express multi-reference. A request carrying a video must give that video an explicit `reference_video`, and every image in the same request needs a role too — otherwise the whole request is rejected with HTTP 400. Whether first-frame and multi-reference modes may be mixed depends on the exact model's `supported_params` / `description`; Seedance 2.0 rejects the mix.**Image tasks**: folded into an image union. **Video tasks**: assign roles explicitly according to the user's intent. |
130
+ | `--inline-local` | No| bool | Embed local `--input` files as base64 data URLs instead of uploading them to TOS. **Images only**: an inlined image reference works, but an inlined video/audio reference is **rejected outright** by the data plane (HTTP 400, `reference_video must be provided as a web url`, no task created). Use when object storage is unavailable or you deliberately want no upload; do not use it as the default. |
131
+ | `--name` | No| string | Task name override |
132
+ | `--version` | No| string | Model version override |
133
+ | `--size` | No| string | Image output size, such as `1920x1920`. The backend rejects it if the pixel count is too small. |
134
+ | `--image-count` | No| int | Number of images output by an image task. When `>1`, it is automatically converted to `sequential_image_generation=auto + max_images=N`. |
135
+ | `--n` | No| int | Alias of `--image-count` (image tasks). If both are passed, `--n` takes priority. |
136
+ | `--ratio` | No| string | Output aspect ratio override, such as `16:9` / `9:16` / `1:1` (video tasks). |
137
+ | `--resolution` | No| string | Output resolution, such as `480p`, `720p`, or `1080p` (video tasks). |
138
+ | `--duration` | No| int | Video duration (seconds) |
139
+ | `--frames` | No| int | Number of video frames (overrides duration on supported models). |
140
+ | `--seed` | No| int | Random seed. The same seed can reproduce results. |
141
+ | `--watermark` | No| bool | Whether to add a watermark. |
142
+ | `--generate-audio` | No| bool | Whether to generate audio synchronously (video tasks). |
143
+ | `--guidance-scale` | No| float | Classifier-free guidance scale for image tasks, such as `7.5`. |
144
+ | `--optimize-prompt` | No| bool | Image tasks: enable server-side prompt optimization. |
145
+ | `--output-format` | No| string | Image output format: `jpeg` or `png`. |
146
+ | `--response-format` | No| string | Image response format: `url` (default) or `b64_json` (directly returns the image as a Base64 string and does not store a URL). |
147
+ | `--prompt-thinking` | No| string | Image tasks: prompt optimization thinking mode `auto` / `enabled` / `disabled` (takes effect only when `--optimize-prompt=true`). |
148
+ | `--prompt-mode` | No| string | Image tasks: prompt optimization execution mode `standard` / `fast`. |
149
+ | `--sequential` | No| string | Image tasks: sequential image mode `auto` / `disabled`. When left empty, it keeps the automatic behavior of `--image-count > 1` → `auto`. Passing `disabled` explicitly forces single-image generation, even if `--image-count > 1`. |
150
+ | `--stream` | No| bool | Image tasks: streaming NDJSON output. For details, see [`image-stream.md`](image-stream.md). |
151
+ | `--camera-fixed` | No| bool | Video tasks: fix the virtual camera. |
152
+ | `--return-last-frame` | No| bool | Video tasks: return the last-frame URL (for continuation generation). |
153
+ | `--draft` | No| bool | Video task draft mode: faster / cheaper / lower quality. |
154
+ | `--priority` | No| int | Video task scheduling priority 0-9. A higher value means higher priority.**Constrained by supported_params** — check whether the model supports it and the range in step 2 first (tested: seedance-2.0 / 2.0-fast support `[0,9]`). If the model does not support it, passing it will be rejected by validation. |
155
+ | `--service-tier` | No| string | Video tasks: service tier. |
156
+ | `--safety-id` | No| string | Video tasks: safety identifier passed in by the caller. |
157
+ | `--execution-expires-after` | No| int | Video task server-side TTL (seconds). |
158
+ | `--callback-url` | No| string | Video tasks: the server POSTs notifications to this URL for lifecycle events (created/running/succeeded/failed). |
159
+ | `--wait` | No| bool | **Video tasks**: block until the task completes, **but not indefinitely** — once it passes `--timeout` (default 10m) it gives up and returns the still-running task id.**Default is false** — submission immediately returns a `task_id` for asynchronous polling (default behavior since 2.0; older versions waited synchronously by default). Giving up ≠ failing: the task keeps rendering server-side, so keep polling with `gen get <task-id>` and **do not re-run `+gen`** (that creates a second billed task). |
160
+ | `--timeout` | No| duration | Video tasks: how long `--wait` blocks at most; accepts Go durations such as `20m` / `1h`. Defaults to `10m`; ignored without `--wait`.**Raise it for long videos**: in measurement, nearly half of seedance-2.0 requests did not finish rendering within 10m — hitting the cap returns "the task is still running", not a finished artifact. |
161
+ | `--extra-body` | No| string (JSON object) | Video task forward-compatibility channel: pass a JSON object string. Its keys are merged into the top-level request body, so you can pass through newly added server-side parameters without upgrading arkcli. Example: `--extra-body '{"new_field":"value"}'` |
162
+ | `--tools` | No| string (repeatable) | Tool switch. Currently supports `web_search`. |
163
+ | `--save-to` | No| string | Local directory for saving generated artifacts. Default is `.` (current directory). Pass `--save-to=""` to explicitly disable auto-download. Download failures do not block the main process. |
164
+ | `--no-gallery` | No| bool | Do not copy generated images into the product state gallery. This can also be disabled with `ARKCLI_NO_GALLERY=1`. |
165
+
166
+ ## Return values
167
+
168
+ **Default output** (simplified):
169
+
170
+ ```json
171
+ {
172
+ "kind": "image",
173
+ "model": "seedream-5-0-260128",
174
+ "status": "succeeded",
175
+ "output_url": "https://...",
176
+ "output_urls": ["https://..."],
177
+ "local_path": "/work/ark-gen.jpeg",
178
+ "local_paths": ["/work/ark-gen.jpeg"]
179
+ }
180
+ ```
181
+
182
+ - `output_url` / `output_urls`: TOS presigned URLs. They **expire after 24 hours**, so do not reference them long term.
183
+ - `local_path` / `local_paths`: local absolute paths written after auto-download is triggered by `--save-to`. They are **persistent artifacts**, so use them instead of URLs when possible. These two parameters do not exist when auto-download is disabled (`--save-to=""`).
184
+ - `task_id`: only available for video tasks.**Videos are asynchronous by default** — submission immediately returns this id + `status: queued`. Use `arkcli gen get <task_id>` (or `arkcli api arkruntime.get_content_generation_task --params '{"id":"<task_id>"}'`) to poll until `succeeded`, and then retrieve `output_url`. Use `+gen --wait` to block synchronously.
185
+
186
+ **`--format json`**: outputs the full task object (without `local_path`).
187
+
188
+ In addition to common parameters such as `id / status / output_url / ratio / resolution / duration / frames / generate_audio`, the full object of a video task also echoes extra parameters returned by the server (they appear as needed and are determined by the model and server):
189
+
190
+ | Parameter |Description|
191
+ |---|---|
192
+ | `usage` | `{prompt_tokens, completion_tokens, total_tokens}` token usage telemetry |
193
+ | `revised_prompt` | The prompt finally sent by the server to the model (after optimization / safety filtering). |
194
+ | `subdivisionlevel` | Task subdivision level (note that the JSON key is word-style without underscores). |
195
+ | `fileformat` | Output file format (also word-style without underscores). |
196
+ | `safety_identifier` | Echo of the safety identifier passed in by the caller. |
197
+ | `tools` | List of tool types actually used by the task, for example `["web_search"]`. |
198
+
199
+ These parameters do not appear when the server does not return them (omitempty), and this does not affect extraction of core parameters such as `output_url` / `local_path`.
200
+
201
+ ## Common errors
202
+
203
+ | Error | Cause | Fix |
204
+ |------|------|---------|
205
+ | `model is required` | `--model` is not specified. | A model name must be specified. |
206
+ | `Error code: 404 - InvalidEndpointOrModel.NotFound` | `--model` is a model family name (such as `seedream-5-0` or `dreamina-seedance-2-0`), and no family-name alias is registered for that family. | Use `arkcli models get <name> --transform 'primary_version'` to get the version number, concatenate it into `<name>-<primary_version>`, and then pass it. |
207
+ | Missing prompt | Positional parameter not provided. | The prompt is a required positional parameter. |
208
+ | `image generation failed: InvalidParameter` | Parameter error such as too few pixels in the image size. This is common with sizes such as `1024x1024`. | Use `1920x1920` or larger. Add `--debug` to view the underlying error if needed. |
209
+ | `role must be specified for image contents` | An image in a multi-image or video-bearing request has no role. | Add `first_frame:` / `last_frame:` / `reference_image:` to every image; do not rely on positional defaults. |
210
+ | `reference media mode requires video role to be reference_video` | The request carries a video without a role. | Use `reference_video:` for the video and `reference_image:` for auxiliary images. |
211
+ | First-frame and multi-reference modes are rejected together | Both `first_frame` and `reference_image` were sent. | Choose one mode: first/last frames, or all `reference_image`. |
212
+ | The video task has no result for a long time. | Video tasks are **asynchronous** by default and return `task_id` + `status: queued` (**not a failure**). | Use `arkcli gen get <task_id>` to poll until `succeeded`. **Do not** submit `+gen` again (that creates a new task). Use `+gen --wait` if you want to wait synchronously. |
213
+ | `warn: auto-download failed: ...`(stderr) | Failed to download `output_url` (network / 403, etc.). | Does not block the main process. `output_url` is still returned, and the user can manually recover with `curl -o file.ext "<output_url>"` (note the 24h validity). |
214
+
215
+ ## Notes
216
+
217
+ - The prompt is a positional parameter. Put it at the end of the command, and it is recommended to wrap it in quotes.
218
+ - Model name, model version, display name, Endpoint name, and `ep-*` ID are separate identifiers. Routing uses structured capability metadata, never a brand prefix.
219
+ - `--input` is the data-driven multimodal entry point: image extensions go through the image channel, video extensions go through the video channel, and audio extensions go through the audio channel. Other extensions are **silently discarded** in video tasks (content-generation has no input_file slot) and are not recognized as reference images in image tasks.
220
+ - Multiple `--input` values do not imply "the first image is always the first frame". Choose the mode first, then give every asset an explicit `first_frame:` / `last_frame:` / `reference_image:` / `reference_video:` / `reference_audio:` role. Omit the role only for single-image I2V when the model accepts positional inference.
221
+ - For image generation, it is recommended to start from `1920x1920`. Sizes such as `1024x1024` may currently be rejected directly by the backend.
222
+ - Image generation usually completes in a few seconds, while video generation may take tens of seconds to several minutes.
223
+ - **Presigned URLs expire after 24h**: `output_url` can only be downloaded with HTTP `GET` within a short time (note that it is not `HEAD`, because the signature is bound to the method). For persistent storage, rely on `local_path` or download in time.
224
+ - Default file name: when there is a `task_id` (video), the task_id is used; otherwise, `ark-gen` is used. The extension is inferred from Content-Type (`.jpeg` / `.mp4`, etc.). Duplicate names automatically get `-1`/`-2` suffixes.
225
+ - For low-level troubleshooting or if you want to control the submission + polling cadence yourself: use the raw API directly: `arkcli api arkruntime.create_content_generation_task --params '{"model":"<id>","content":[{"type":"text","text":"<prompt>"},{"type":"image_url","image_url":{"url":"https://..."}}]}'` to get `id`, and then poll with `arkruntime.get_content_generation_task --params '{"id":"<id>"}'`.
226
+
227
+ ## References
228
+
229
+ - [arkcli-gen](../SKILL.md) -- gen skill overview
230
+ - [arkcli-shared](../../arkcli-shared/SKILL.md) — Authentication and global parameters
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: gen-meta
3
+ description: Reference for arkcli gen get / list / delete and local gallery management commands.
4
+ ---
5
+
6
+ # gen get / list / delete / gallery
7
+
8
+ This is the "reconciliation side" of `+gen`: `+gen` submits generation tasks, while these three commands query task status afterward, list historical tasks, and delete completed tasks.
9
+
10
+ ## When to use
11
+
12
+ - `gen get <task-id>`: You already have a `task_id` and want to retrieve the latest task status, including `output_url` / `usage` / `error`.**Once a task is `succeeded`, `gen get` automatically downloads the output to the local machine** (current directory by default, file name `<task-id>.mp4`), consistent with the persistence behavior of `+gen --wait`; `--save-to=""` can be disabled.
13
+ - `gen list`: List asynchronous tasks under the current account, with filtering by `status` / `model` / `service-tier` / `task-id`.
14
+ - `gen delete <task-id>`: Delete a completed task record. **Destructive and irreversible; must confirm with `--yes` when non-interactive**.
15
+ - `gen gallery list`: Inspect locally archived `+gen` images and their disk usage.
16
+ - `gen gallery clean --older-than 168h --yes` / `gen gallery clean --all --yes`: Remove local gallery files.
17
+
18
+ ## Modality coverage
19
+
20
+ The endpoints behind these three commands (SDK `arkruntime.ListContentGenerationTasks` / `GetContentGenerationTask` / `DeleteContentGenerationTask`) are **modality-agnostic** on the server side:
21
+
22
+ - Video-generation tasks created by `+gen` through a model or Endpoint.
23
+ - Tasks created by 3D tasks (`Hyper3D-*`, `Hitem3D-*` model families).
24
+ - Any asynchronous generation task submitted through `arkcli api arkruntime.create_content_generation_task`.
25
+
26
+ However, **image tasks are not included** because they use the synchronous endpoint `arkruntime.generate_images`, which has no concept of a task list. This sync/async boundary comes from structured capability metadata, never from a model brand prefix.
27
+
28
+ ## Command quick reference
29
+
30
+ ```bash
31
+ # 1. Submit a video task with +gen (asynchronous by default, immediately returns task_id; add --wait --timeout 30m for synchronous blocking).
32
+ arkcli +gen "A cyberpunk city at sunset" --model dreamina-seedance-... --duration 5
33
+
34
+ # 2. After getting task_id, query by ID separately (no polling, one-time fetch).
35
+ # When the task has succeeded, the output is automatically downloaded to the current directory (<task-id>.mp4).
36
+ arkcli gen get tsk_xxxxx
37
+
38
+ # 2b. Save to a specified directory / disable automatic download.
39
+ arkcli gen get tsk_xxxxx --save-to ./out
40
+ arkcli gen get tsk_xxxxx --save-to "" # Only check status; do not download.
41
+
42
+ # 3. List recent succeeded tasks (10 items on the first page).
43
+ arkcli gen list --status succeeded --page-size 10
44
+
45
+ # 4. Paginate.
46
+ arkcli gen list --status succeeded --page-size 10 --page-num 2
47
+
48
+ # 5. Filter by exact model match.
49
+ arkcli gen list --model dreamina-seedance-2-0-260128
50
+
51
+ # 6. Batch query multiple task IDs.
52
+ arkcli gen list --task-id tsk_a --task-id tsk_b
53
+
54
+ # 7. Delete.
55
+ arkcli gen delete tsk_xxxxx --yes
56
+ ```
57
+
58
+ ## Flag descriptions
59
+
60
+ ### gen get
61
+
62
+ `<task-id>` is a positional argument. The flags have the same meaning as the download/open switches of `+gen`:
63
+
64
+ | flag |Description|
65
+ |---|---|
66
+ | `--save-to <dir>` | The output is saved to this directory when the task is `succeeded` (current directory `.` by default); `--save-to=""` disables automatic download. |
67
+ | `--open` / `--no-open` | Whether to open the downloaded output with the system default program. Default is auto: open only in an interactive terminal, and stay silent under agent / pipe / CI. |
68
+
69
+ > **🔑 agent uses `--open` by default**: when you (the AI agent) call `gen get`, stdout is not a TTY, so the default auto mode does not pop up a window. The user can only see `local_path`, not the final output. When polling a video for a human user, add `--open` **by default** to the `gen get` call that reaches `succeeded`, so the final output opens directly on the desktop (`--open` ignores TTY). Omit it or use `--no-open` only in scenarios such as "do not open / in scripts / batch operations."
70
+
71
+ Download behavior details:
72
+
73
+ - The file name uses `<task-id>` (if there is no extension, it is inferred from Content-Type; videos are usually `.mp4`).
74
+ - If a file with the same name already exists, **append `-1` / `-2` … to distinguish it**, with no overwrite or skip (repeating `gen get` on the same completed task keeps multiple copies, as expected).
75
+ - Download only when `output_url` is non-empty (that is, the task is `succeeded`); `running` / `queued` / `failed` is a no-op, with no file written to disk and no `local_path` returned.
76
+ - Download failures only print a warning to stderr and do not affect the status output of `gen get` (the output URL remains in `output_url`, and you can retry manually).
77
+
78
+ ### gen list
79
+
80
+ | flag |Description|
81
+ |---|---|
82
+ | `--page-num <int>` | 1-indexed page number; if not provided, the server default is used. |
83
+ | `--page-size <int>` | Page size; if not provided, the server default is used. |
84
+ | `--status <enum>` | Filter task status: `succeeded` / `failed` / `running` / `queued` / `cancelled`. |
85
+ | `--model <id>` | Filter by model name or endpoint ID (exact match, not a prefix). |
86
+ | `--service-tier <tier>` | Filter by service tier setting. |
87
+ | `--task-id <id>` | Filter specific task IDs; can be passed multiple times. |
88
+
89
+ ### gen delete
90
+
91
+ `<task-id>` is a positional argument.
92
+
93
+ | flag | Description |
94
+ |---|---|
95
+ | `--dry-run` | Emit a local `preview.v1` delete plan without contacting the backend or deleting the task. Always run this preview first. |
96
+ | `--yes` | Skip the interactive confirmation for the real delete. Use it only after the user gives a separate explicit confirmation for the exact task ID in the current turn. Never infer authorization from the earlier preview request. |
97
+
98
+ Safe Agent sequence:
99
+
100
+ 1. Run `arkcli gen delete <task-id> --dry-run --format json` and explain the exact task that would be deleted.
101
+ 2. Wait for a separate explicit confirmation from the user.
102
+ 3. Only then run `arkcli gen delete <task-id> --yes --format json`.
103
+
104
+ Do not add `--yes` to the preview command, do not treat a request to preview as delete authorization, and do not continue to the real delete without the second confirmation.
105
+
106
+ ## Output format
107
+
108
+ - `gen get` reuses the `VideoTask` structure of `+gen`: `{id, model, status, output_url, ratio, resolution, duration, ...}`; when the task is `succeeded` and automatic download succeeds, `local_path` is also returned (the absolute path on disk; this parameter is omitted when `--save-to=""` is used or the task has not succeeded).
109
+ - `gen list` returns `{total: <int>, items: [<item>, ...]}`; each `item` is the raw JSON form of an SDK list item. **Note the following 3 differences from `gen get`**:
110
+ - The error parameter is called `failure_reason`, not `error`.
111
+ - **Does not include `resolution` / `ratio` / `duration`** (to get these parameters, call `gen get` again).
112
+ - The JSON keys for the two parameters `subdivisionlevel` / `fileformat` are word-style (no underscores), reflecting the SDK wire truth.
113
+ - `gen delete` returns `{id, deleted:true}`. The server has no response body; this is synthesized by arkcli.
114
+
115
+ ## Common errors
116
+
117
+ | Symptom | Cause |
118
+ |---|---|
119
+ | `gen get` / `gen delete` reports `missing task id`. | The positional arg was not provided. |
120
+ | `gen list` returns empty `items[]`. | The filter is too strict, or there are indeed no tasks under the current account. |
121
+ | `gen get` cannot get `output_url`. | The task is still `running` / `queued`; check the `status` parameter. |
122
+ | Using the ID returned by an image task with `gen get` reports not found. | Images use a synchronous endpoint, not a task list; the usage is mismatched. |
123
+
124
+ ## Relationship with the raw API
125
+
126
+ | Subcommand | Equivalent raw API |
127
+ |---|---|
128
+ | `gen get <id>` | `arkcli api arkruntime.get_content_generation_task --params '{"id":"<id>"}'` |
129
+ | `gen list ...` | `arkcli api arkruntime.list_content_generation_tasks --params '{"page_num":1,"filter":{...}}'` |
130
+ | `gen delete <id>` | `arkcli api arkruntime.delete_content_generation_task --params '{"id":"<id>"}'` |
131
+
132
+ ### gen gallery
133
+
134
+ `gen gallery` only touches local state and does not call the control plane:
135
+
136
+ ```bash
137
+ arkcli gen gallery list
138
+ arkcli gen gallery clean --older-than 168h --yes
139
+ arkcli gen gallery clean --all --yes
140
+ ```
141
+
142
+ | flag | Description |
143
+ |---|---|
144
+ | `--older-than <duration>` | Delete files older than this duration (Go duration such as `168h`; `30d` is not accepted). |
145
+ | `--all` | Delete every regular file in the gallery; mutually exclusive with `--older-than`. |
146
+ | `--yes` | Skip the interactive confirmation; required in non-interactive mode. |
147
+
148
+ CLI subcommands are human-friendly wrappers around the raw API; the commands are shorter and the flags are more intuitive. The raw API is still the fallback channel.
149
+
150
+ ## Use with `+gen`
151
+
152
+ - When `+gen` itself times out while polling, it returns `task_id` and a hint. Continue tracking with `gen get <task-id>`, which is more cost effective than rerunning `+gen` (rerunning creates another new task and consumes quota again). The `gen get` call that polls to `succeeded` downloads the output locally along the way, so you do not need to manually curl `output_url`.
153
+ - Asynchronous submission (without `--wait`) + polling with `gen get` is the mainstream video workflow: `arkcli +gen ... --modality video` gets `task_id` → repeatedly run `gen get <id>` until `succeeded` → the output is automatically saved locally. With `--wait`, it is the synchronous blocking version; the two paths have the same persistence behavior — **but `--wait` is capped**: it blocks at most `--timeout` (default 10m), so raise it explicitly for long videos (e.g. `--timeout 30m`). When the cap is hit the task is still running: keep polling with `gen get <task-id>` and **do not re-run `+gen`**.
154
+ - `gen list` is the only entry point for checking "whether that task I submitted earlier actually exists"; if `+gen` does not get a normal return after submission, it is recommended to run `gen list --status running` first.
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: image-stream
3
+ description: arkcli +gen --stream streaming image output. One image_generation.* event JSON per line (NDJSON), suitable for incremental preview / visualizing progress / using jq to extract each frame URL.
4
+ ---
5
+
6
+ # +gen --stream (image streaming)
7
+
8
+ By default, `+gen` waits synchronously until the entire generation finishes. `--stream` switches the CLI to NDJSON output and writes the server-side SSE streaming events to stdout as-is, one event per line. Suitable for:
9
+
10
+ - Multi-image generation scenarios (`--image-count >1`) where you want to process the first image as soon as it is available.
11
+ - Connecting to jq / script pipelines for incremental preview or parallel downloads.
12
+ - Debugging server-side streaming behavior.
13
+
14
+ ## Scope
15
+
16
+ **Image tasks only**. Video tasks use the async task + polling model (`+gen` polls by itself) and have no SSE channel. Passing `--stream` with a video model will be intercepted by `+gen` before the request is sent:
17
+
18
+ ```
19
+ --stream only applies to image generation tasks
20
+ hint: remove --stream (video tasks use async polling, not SSE),
21
+ or pass --modality image with an image-capable model / endpoint
22
+ ```
23
+
24
+ ## Event protocol
25
+
26
+ The underlying implementation uses SDK `arkruntime.Client.GenerateImagesStreaming`, with three event types:
27
+
28
+ | Event type | When to send | Parameters |
29
+ |---|---|---|
30
+ | `image_generation.partial_succeeded` | When each image finishes generating | `url` / `b64_json` / `size` / `image_index` / `model` / `created` |
31
+ | `image_generation.partial_failed` | A single image fails to generate (does not necessarily terminate the stream). | `error.code` / `error.message` |
32
+ | `image_generation.completed` | Stream ends | Optional `usage{generated_images, output_tokens, total_tokens}` / `tools[]` |
33
+
34
+ The CLI outputs one `ImageStreamDelta` JSON per line (service-layer view). Key parameters:
35
+
36
+ ```json
37
+ {
38
+ "event_type": "image_generation.partial_succeeded",
39
+ "model": "seedream-5-0-260128",
40
+ "created": 1700000000,
41
+ "image_index": 0,
42
+ "url": "https://...",
43
+ "size": "1024x1024"
44
+ }
45
+ ```
46
+
47
+ Note:
48
+ - For `partial_failed`, `error.code/message` are two flat parameters in ImageStreamDelta: `error_code` / `error_message`.
49
+ - For the `completed` event, `usage` / `tools` are renamed to `final_usage` / `final_tools` in ImageStreamDelta.
50
+ - The `b64_json` (Base64 string image) parameter appears only when ResponseFormat is `b64_json` (default: `url`).
51
+
52
+ ## Command quick reference
53
+
54
+ ```bash
55
+ # 1. Stream-generate a single image (process it as soon as you see the first frame).
56
+ arkcli +gen "neon kitten" --model seedream-5-0-260128 --stream
57
+
58
+ # 2. Stream-generate 3 images and get the URLs in order.
59
+ arkcli +gen "5 different futuristic cars" \
60
+ --model seedream-5-0-260128 \
61
+ --image-count 3 --stream \
62
+ | jq -r 'select(.event_type=="image_generation.partial_succeeded") | .url'
63
+
64
+ # 3. Streaming + decode Base64 (first switch b64_json to the stream).
65
+ arkcli +gen "blue laptop" \
66
+ --model seedream-5-0-260128 --stream \
67
+ | jq -r 'select(.b64_json != "") | .b64_json' \
68
+ | base64 -d > out.png
69
+
70
+ # 4. Monitor error events + final usage.
71
+ arkcli +gen "..." --model ... --stream \
72
+ | jq 'select(.event_type=="image_generation.partial_failed" or .event_type=="image_generation.completed")'
73
+ ```
74
+
75
+ ## Relationship with `--save-to`
76
+
77
+ `--save-to` is the "automatic download" feature on the synchronous path. `--stream` **does not trigger automatic downloads**.
78
+
79
+ Reason: the purpose of streaming is to let users process output incrementally. The CLI should not write files to disk in parallel and interfere. When you need both disk output and streaming monitoring, pipe the streaming output to your own download script (see example 3 above).
80
+
81
+ ## Relationship with the raw API
82
+
83
+ `+gen --stream` is equivalent to:
84
+
85
+ ```bash
86
+ arkcli api arkruntime.generate_images_stream \
87
+ --params '{"model":"...","prompt":"...","stream":true,"response_format":"url"}'
88
+ ```
89
+
90
+ However, the raw API cannot receive the ParseAssetRefs / collapseImageAssets / modality routing capabilities from the `arkcli +gen` layer. For normal use, use `+gen --stream`. Use the raw API only when debugging SDK parameters or testing server-side behavior.
91
+
92
+ ## Scenarios where streaming is not supported
93
+
94
+ | Scenario | Why | Alternative |
95
+ |---|---|---|
96
+ | A model or Endpoint resolved as video (or explicit `--modality video`) | Video uses the async task + poll model and has no SSE channel. | Do not pass `--stream`; use the default polling of `+gen`. |
97
+ | Synchronously wait for accumulated results | In `--stream` mode, stdout is an NDJSON stream and does not output the accumulated GenerateOutput. | Do not pass `--stream`; use the default synchronous path. |
98
+
99
+ ## Common errors
100
+
101
+ | Symptom | Cause |
102
+ |---|---|
103
+ | `--stream only applies to image generation tasks` | Structured metadata resolves the model/Endpoint as video, or `--modality video` is explicitly specified. |
104
+ | The first line of streaming output is `partial_failed`, followed by no further output. | The upstream request actually failed. Check the `error_code` parameter. This is especially common with small sizes such as `--size 1024x1024`. |
105
+ | The `completed` event is not shown. | When `--image-count 1`, the server may not send `completed`; the single image is the end. It is sent only for multiple images. |