veogent 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -10
- package/index.js +7 -7
- package/package.json +1 -1
- package/skills/SKILL.md +13 -8
package/README.md
CHANGED
|
@@ -98,20 +98,23 @@ veogent create-scene --project <projectId> --chapter <chapterId> \
|
|
|
98
98
|
--lang English --material CINEMATIC --scenes 5 --wait
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
#### Phase 3: Generate Images + Videos
|
|
101
|
+
#### Phase 3: Generate Images + Videos (Async Polling)
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
#
|
|
104
|
+
# 1. Trigger generation (without --wait) to avoid locking your terminal
|
|
105
105
|
veogent batch-request --type GENERATE_IMAGES \
|
|
106
|
-
--project <projectId> --chapter <chapterId> --all
|
|
107
|
-
--orientation VERTICAL --wait
|
|
106
|
+
--project <projectId> --chapter <chapterId> --all --orientation VERTICAL
|
|
108
107
|
|
|
109
|
-
#
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
# 2. Extract `requestId` from the output
|
|
109
|
+
# 3. Poll status asynchronously:
|
|
110
|
+
veogent request-status --id <requestId>
|
|
111
|
+
# ... loop until requestStatus === "COMPLETED"
|
|
112
|
+
|
|
113
|
+
# Repeat for GENERATE_VIDEO once images are ready
|
|
113
114
|
```
|
|
114
115
|
|
|
116
|
+
> **Tip for Agents:** While the `--wait` flag exists, using `request-status` is recommended so you don't lock your main process for the 5-10 minutes it takes to render a video.
|
|
117
|
+
|
|
115
118
|
#### Phase 4: QA + Fix Loop
|
|
116
119
|
|
|
117
120
|
```bash
|
|
@@ -187,7 +190,7 @@ veogent request --type GENERATE_VIDEO \
|
|
|
187
190
|
|
|
188
191
|
| Command | Description |
|
|
189
192
|
|---------|-------------|
|
|
190
|
-
| `request` | Create a single generation job (`GENERATE_IMAGES` / `GENERATE_VIDEO` / `
|
|
193
|
+
| `request` | Create a single generation job (`GENERATE_IMAGES` / `GENERATE_VIDEO` / `UPSCALE_VIDEO`) |
|
|
191
194
|
| `batch-request` | Batch generation for multiple/all scenes (`--all`) |
|
|
192
195
|
| `requests` | List existing generation jobs |
|
|
193
196
|
| `request-status` | Check a specific job by request ID (includes asset URL) |
|
|
@@ -252,7 +255,7 @@ Uses sceneA's image as start frame, sceneB's image as end frame. Both scenes mus
|
|
|
252
255
|
|
|
253
256
|
```bash
|
|
254
257
|
# 1. Trigger upscale
|
|
255
|
-
veogent request --type
|
|
258
|
+
veogent request --type UPSCALE_VIDEO \
|
|
256
259
|
--project X --chapter Y --scene Z \
|
|
257
260
|
--orientation VERTICAL --resolution VIDEO_RESOLUTION_4K
|
|
258
261
|
|
package/index.js
CHANGED
|
@@ -747,8 +747,8 @@ program
|
|
|
747
747
|
// --- Execution Request (Generate Image / Video) ---
|
|
748
748
|
program
|
|
749
749
|
.command('request')
|
|
750
|
-
.description('Create a job request (GENERATE_IMAGES, GENERATE_VIDEO,
|
|
751
|
-
.requiredOption('--type <type>', 'Request type (e.g., GENERATE_IMAGES, GENERATE_VIDEO,
|
|
750
|
+
.description('Create a job request (GENERATE_IMAGES, GENERATE_VIDEO, UPSCALE_VIDEO). Use UPSCALE_VIDEO to upscale a rendered video to 4K resolution.')
|
|
751
|
+
.requiredOption('--type <type>', 'Request type (e.g., GENERATE_IMAGES, GENERATE_VIDEO, UPSCALE_VIDEO)')
|
|
752
752
|
.requiredOption('--project <project>', 'Project ID')
|
|
753
753
|
.requiredOption('--chapter <chapter>', 'Chapter ID')
|
|
754
754
|
.requiredOption('--scene <scene>', 'Scene ID')
|
|
@@ -757,7 +757,7 @@ program
|
|
|
757
757
|
.option('--videomodel <videomodel>', 'Video Model (veo_3_1_fast, veo_3_1_fast_r2v). Default: veo_3_1_fast', 'veo_3_1_fast')
|
|
758
758
|
.option('--speed <speed>', 'Video Speed (normal, timelapse, slowmotion)', 'normal')
|
|
759
759
|
.option('--endscene <endscene>', 'End Scene ID for continuous video generation')
|
|
760
|
-
.option('--resolution <resolution>', 'Resolution for
|
|
760
|
+
.option('--resolution <resolution>', 'Resolution for UPSCALE_VIDEO (e.g. VIDEO_RESOLUTION_4K)', 'VIDEO_RESOLUTION_4K')
|
|
761
761
|
.option('--wait', 'Wait for request to complete before returning')
|
|
762
762
|
.action(async (options) => {
|
|
763
763
|
try {
|
|
@@ -805,7 +805,7 @@ program
|
|
|
805
805
|
payload.orientation = options.orientation || 'HORIZONTAL';
|
|
806
806
|
payload.imageModel = options.imagemodel;
|
|
807
807
|
}
|
|
808
|
-
if (['
|
|
808
|
+
if (['UPSCALE_VIDEO'].includes(options.type)) {
|
|
809
809
|
payload.orientation = options.orientation || 'VERTICAL'; // Upscale defaults to VERTICAL
|
|
810
810
|
payload.resolution = options.resolution || 'VIDEO_RESOLUTION_4K';
|
|
811
811
|
}
|
|
@@ -1059,7 +1059,7 @@ program
|
|
|
1059
1059
|
|
|
1060
1060
|
program
|
|
1061
1061
|
.command('request-status')
|
|
1062
|
-
.description('Get status of a specific request by ID. For GENERATE_VIDEO/GENERATE_IMAGES, falls back to assets endpoint for output URL.
|
|
1062
|
+
.description('Get status of a specific request by ID. For GENERATE_VIDEO/GENERATE_IMAGES, falls back to assets endpoint for output URL. UPSCALE_VIDEO output URL is read directly from the request object.')
|
|
1063
1063
|
.requiredOption('--id <requestId>', 'Request ID to check')
|
|
1064
1064
|
.action(async (options) => {
|
|
1065
1065
|
try {
|
|
@@ -1078,7 +1078,7 @@ program
|
|
|
1078
1078
|
const sceneId = found?.sceneId || found?.scene_id || null;
|
|
1079
1079
|
|
|
1080
1080
|
let imageAsset = { url: found?.imageVerticalUri || found?.imageHorizontalUri || found?.imageUrl || null };
|
|
1081
|
-
//
|
|
1081
|
+
// UPSCALE_VIDEO: output URL lives directly on the request object (not in assets endpoint)
|
|
1082
1082
|
let videoAsset = { url: found?.videoVerticalUri || found?.videoHorizontalUri || found?.videoUrl || found?.outputUrl || null };
|
|
1083
1083
|
|
|
1084
1084
|
// For GENERATE_VIDEO only: fallback to assets endpoint if URL not on request object
|
|
@@ -1150,7 +1150,7 @@ program
|
|
|
1150
1150
|
.option('--out <path>', 'Output file path (default: ./<sceneId>_upscale.mp4)')
|
|
1151
1151
|
.action(async (options) => {
|
|
1152
1152
|
try {
|
|
1153
|
-
const orientation = options.orientation.
|
|
1153
|
+
const orientation = options.orientation.toLowerCase(); // Backend expects lowercase (e.g. 'vertical')
|
|
1154
1154
|
humanLog(`⏳ Fetching upscaled video from flow-media...`);
|
|
1155
1155
|
|
|
1156
1156
|
const data = await api.get(`/app/scene/flow-media/${options.project}/${options.chapter}/${options.scene}/${orientation}`);
|
package/package.json
CHANGED
package/skills/SKILL.md
CHANGED
|
@@ -57,15 +57,20 @@ veogent characters <projectId> # poll until allReady === true
|
|
|
57
57
|
|
|
58
58
|
NEVER skip `create-chapter-content` — always let VEOGENT AI generate the storyboard.
|
|
59
59
|
|
|
60
|
-
### Phase 3: Generate Images + Videos
|
|
60
|
+
### Phase 3: Generate Images + Videos (Async)
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
# 1. Trigger batch generation (without --wait)
|
|
64
|
+
veogent batch-request --type GENERATE_IMAGES --project X --chapter Y --all --orientation VERTICAL
|
|
65
|
+
|
|
66
|
+
# 2. Extract the request IDs from the output
|
|
67
|
+
# 3. Poll their status asynchronously without blocking your main process
|
|
68
|
+
veogent request-status --id <requestId>
|
|
69
|
+
# ... loop until requestStatus === "COMPLETED"
|
|
67
70
|
```
|
|
68
71
|
|
|
72
|
+
*Note: You CAN use the `--wait` flag to make the CLI block until finished, but using `request-status` is better for true asynchronous agent pipelines so you don't lock your process.*
|
|
73
|
+
|
|
69
74
|
### Phase 4: QA + Fix Loop
|
|
70
75
|
|
|
71
76
|
```bash
|
|
@@ -200,7 +205,7 @@ Uses sceneA image → sceneB image as start/end frames. Both must have successfu
|
|
|
200
205
|
|
|
201
206
|
```bash
|
|
202
207
|
# 1. Trigger upscale
|
|
203
|
-
veogent request --type
|
|
208
|
+
veogent request --type UPSCALE_VIDEO \
|
|
204
209
|
--project X --chapter Y --scene Z \
|
|
205
210
|
--orientation VERTICAL --resolution VIDEO_RESOLUTION_4K
|
|
206
211
|
|
|
@@ -237,7 +242,7 @@ veogent download-upscale \
|
|
|
237
242
|
|
|
238
243
|
1. Verify auth before any command (`veogent status`).
|
|
239
244
|
2. Wait for character readiness (`allReady`) before requesting images.
|
|
240
|
-
3.
|
|
245
|
+
3. **Polling vs Blocking:** For true asynchronous workflows, trigger jobs *without* `--wait`, capture the `requestId`, and poll `request-status --id <requestId>`. Only use `--wait` if you are okay with the CLI locking the process for 5-10 minutes.
|
|
241
246
|
4. Use `workflow-status` as the main status view.
|
|
242
247
|
5. Respect queue limits (max 5 concurrent). `queue-status` to check.
|
|
243
248
|
6. **QA image BEFORE video** — bad image = bad video. Each video gen costs 8-10 min.
|
|
@@ -379,7 +384,7 @@ veogent request --type GENERATE_VIDEO --project X --chapter Y --scene Z \
|
|
|
379
384
|
|
|
380
385
|
| Command | Description | Key Options |
|
|
381
386
|
|---------|-------------|-------------|
|
|
382
|
-
| `request` | Single generation job | `--type` (GENERATE_IMAGES, GENERATE_VIDEO,
|
|
387
|
+
| `request` | Single generation job | `--type` (GENERATE_IMAGES, GENERATE_VIDEO, UPSCALE_VIDEO), `--project`, `--chapter`, `--scene`, `--orientation`, `--speed`, `--endscene`, `--resolution` (upscale), `--wait` |
|
|
383
388
|
| `batch-request` | Batch generation | `--type`, `--project`, `--chapter`, `--all`/`--scenes`, `--orientation`, `--speed`, `--wait` |
|
|
384
389
|
| `download-upscale` | Download 4K upscaled video as .mp4 | `--project`, `--chapter`, `--scene`, `--orientation`, `--out` |
|
|
385
390
|
|