veogent 1.0.15 → 1.0.16
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 +4 -7
- package/index.js +0 -109
- package/package.json +1 -1
- package/skills/SKILL.md +585 -0
package/README.md
CHANGED
|
@@ -76,7 +76,7 @@ Queue generation jobs directly from the terminal.
|
|
|
76
76
|
*Note: VEOGENT uses strict validation depending on the request type.*
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
# Generate Image (Supports:
|
|
79
|
+
# Generate Image (Supports: imagen3.5)
|
|
80
80
|
veogent request -t "GENERATE_IMAGES" -p <proj> -c <chap> -s <scene> -i "imagen4"
|
|
81
81
|
|
|
82
82
|
# Generate Video (Supports: veo_3_1_fast, veo_3_1_fast_r2v)
|
|
@@ -94,12 +94,7 @@ veogent upscale -p <proj> -c <chap> -s <scene> -o "VERTICAL" -r "VIDEO_RESOLUTIO
|
|
|
94
94
|
|
|
95
95
|
## 🤖 For AI Agents
|
|
96
96
|
|
|
97
|
-
Veogent CLI
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
veogent skill
|
|
101
|
-
```
|
|
102
|
-
This prints out a comprehensive Markdown `SKILL.md` cheat sheet defining our exact DTO validations, model enumerations, logic pipelines, and required variables for orchestrating complete projects without hitting `400 Bad Request`.
|
|
97
|
+
Veogent CLI ships with a comprehensive **[`skills/SKILL.md`](./skills/SKILL.md)** guide optimized for LLM/Coding Agents context processing. It defines exact DTO validations, model enumerations, camera prompting techniques, the full production pipeline, and error handling — everything an agent needs to orchestrate complete projects without hitting `400 Bad Request`.
|
|
103
98
|
|
|
104
99
|
### Recommended Agent Workflow (Production)
|
|
105
100
|
|
|
@@ -127,6 +122,8 @@ This prints out a comprehensive Markdown `SKILL.md` cheat sheet defining our exa
|
|
|
127
122
|
9. Generate video only after matching-orientation image exists successfully:
|
|
128
123
|
- `veogent request -t "GENERATE_VIDEO" ...`
|
|
129
124
|
|
|
125
|
+
> 📖 For the full detailed guide with all commands, options tables, and examples, see **[`skills/SKILL.md`](./skills/SKILL.md)**.
|
|
126
|
+
|
|
130
127
|
**Important:** `veogent requests` is the primary status board for image/video/edit workflows.
|
|
131
128
|
|
|
132
129
|
**Concurrency:** maximum **5** requests can be processed simultaneously. If the API reports maximum limit reached, treat it as queue-full (wait/retry), not a hard failure.
|
package/index.js
CHANGED
|
@@ -473,115 +473,6 @@ program
|
|
|
473
473
|
});
|
|
474
474
|
|
|
475
475
|
// --- System ---
|
|
476
|
-
program
|
|
477
|
-
.command('skill')
|
|
478
|
-
.description('Print the native Agent SKILL.md guide for VEOGENT CLI')
|
|
479
|
-
.action(() => {
|
|
480
|
-
const skillContent = `# VEOGENT CLI Agent Skill
|
|
481
|
-
|
|
482
|
-
The \`veogent\` command-line interface interacts with the VEOGENT API for managing movie/story projects, chapters, scenes, and media generation requests (images, videos).
|
|
483
|
-
This CLI is designed with AI agents in mind: all data outputs are in raw JSON format for easy parsing and chaining.
|
|
484
|
-
|
|
485
|
-
## 🛠 Authentication & Configuration
|
|
486
|
-
Agents **CANNOT** authenticate automatically because \`veogent login\` opens a local browser for Google Firebase OAuth.
|
|
487
|
-
* **Check Auth & Config:** \`veogent status\`
|
|
488
|
-
* **Setup Integration:** If a new Google Flow token needs to be applied, use \`veogent setup-flow -f "ya29.xx" -t "PAYGATE_TIER_TWO"\`.
|
|
489
|
-
*(Note: If any VEOGENT API request fails with a \`"status code 401"\` Flow error, the Flow Key has expired. Prompt the user for a new key and update it via \`setup-flow\` before retrying).*
|
|
490
|
-
* **Action:** If status returns \`{"error": "Not logged in"}\`, instruct the user to run \`veogent login\` on their desktop terminal manually. Wait for them to confirm success.
|
|
491
|
-
|
|
492
|
-
## 📁 Projects & Assets
|
|
493
|
-
* **List Image Materials:** \`veogent image-materials\` (e.g., \`CINEMATIC\`, \`PIXAR_3D\`) -> *(Call this to get allowed material options before creating a project).*
|
|
494
|
-
* **List Custom Prompts:** \`veogent custom-prompts\` -> *(Call this to find a matching ID if a custom stylistic prompt is needed).*
|
|
495
|
-
* **List Projects:** \`veogent projects\`
|
|
496
|
-
* *Note: IDs are Firebase Document Strings (e.g., \`APQF6Ay0kLeXLhpctTdD\`), not simple integers. Always use the field \`"id"\` from the JSON response array.*
|
|
497
|
-
* **Get Project Details:** \`veogent project <projectId>\`
|
|
498
|
-
* **Create Project:** \`veogent create-project -n "Name" -k "Scifi" -d "Description" -l "English" -m "Anime style" -c 1 -C "customPromptId"\`
|
|
499
|
-
*(Requires image material. Optionally pass \`-C <customPromptId>\` if listed via \`custom-prompts\`)*
|
|
500
|
-
|
|
501
|
-
## 📖 Chapters & Scenes
|
|
502
|
-
* **List Chapters for a Project:** \`veogent chapters <projectId>\`
|
|
503
|
-
* **List Recent Chapters globally:** \`veogent recent-chapters -l 5\`
|
|
504
|
-
* **List Scenes for a Chapter:** \`veogent scenes <projectId> <chapterId>\`
|
|
505
|
-
* **Create Chapter Content:** \`veogent create-chapter-content -p <projectId> -c <chapterId> -s 5\` (Generates text/story content for 5 scenes)
|
|
506
|
-
* **Create Scene (from script list):** \`veogent create-scene -p <projectId> -c <chapterId> -C "scene script 1" "scene script 2" --flowkey\`
|
|
507
|
-
|
|
508
|
-
## 🎬 Generation Requests
|
|
509
|
-
To initiate generation jobs, use \`veogent request\`.
|
|
510
|
-
**CRITICAL VALIDATION RULES (Strict DTO):**
|
|
511
|
-
Do not pass unsupported flags for a specific type, or the server will return a \`400 Bad Request\` or \`Validation Error\`.
|
|
512
|
-
|
|
513
|
-
1. **Generate Images** (\`GENERATE_IMAGES\`):
|
|
514
|
-
* **Required Options:** \`-t GENERATE_IMAGES\`, \`-p <proj>\`, \`-c <chap>\`, \`-s <scene>\`, \`-i <imagemodel>\`
|
|
515
|
-
* **Allowed Models:** \`imagen4\`, \`imagen3.5\`
|
|
516
|
-
* **Prohibited:** Do NOT pass \`-o\` (orientation) or \`-v\` (videomodel) or \`-S\` (speed).
|
|
517
|
-
* \`veogent request -t "GENERATE_IMAGES" -p "projID" -c "chapID" -s "sceneID" -i "imagen4"\`
|
|
518
|
-
|
|
519
|
-
2. **Generate Video** (\`GENERATE_VIDEO\`):
|
|
520
|
-
* **Required Options:** \`-t GENERATE_VIDEO\`, \`-p <proj>\`, \`-c <chap>\`, \`-s <scene>\`, \`-v <videomodel>\`, \`-S <speed>\`, \`-i <imagemodel>\`, \`-o <orientation>\`
|
|
521
|
-
* **Optional Option:** \`-E <endSceneId>\` (to connect/interpolate to the next frame directly).
|
|
522
|
-
* **Allowed Models:** \`veo_3_1_fast\`, \`veo_3_1_fast_r2v\`
|
|
523
|
-
* **Default Model (recommended):** \`veo_3_1_fast\`
|
|
524
|
-
* **Allowed Speeds:** \`normal\`, \`timelapse\`, \`slowmotion\`
|
|
525
|
-
* **Rule:** \`useFlowKey\` is locked natively to true. You must pass orientation and imageModel for video context.
|
|
526
|
-
* \`veogent request -t "GENERATE_VIDEO" -p "projID" -c "chapID" -s "sceneA" -E "sceneB" -o "VERTICAL" -i "imagen3.5" -v "veo_3_1_fast" -S "normal"\`
|
|
527
|
-
|
|
528
|
-
3. **Video Upscale** (\`VIDEO_UPSCALE\`):
|
|
529
|
-
* **Required Options:** \`-t VIDEO_UPSCALE\`, \`-p <proj>\`, \`-c <chap>\`, \`-s <scene>\`, \`-o <orientation>\`
|
|
530
|
-
* **Allowed Orientations:** \`HORIZONTAL\`, \`VERTICAL\`
|
|
531
|
-
* **Prohibited:** Do NOT pass \`-i\` (image model) or \`-v\` (video model).
|
|
532
|
-
* \`veogent request -t "VIDEO_UPSCALE" -p "projID" -c "chapID" -s "sceneID" -o "HORIZONTAL"\`
|
|
533
|
-
* **Shortcut command:** \`veogent upscale -p <proj> -c <chap> -s <scene> -o VERTICAL -r VIDEO_RESOLUTION_4K\`
|
|
534
|
-
|
|
535
|
-
## 🖌️ Character Editing
|
|
536
|
-
Characters generated within a project can be updated or re-sketched via text prompts using \`veogent edit-character\`.
|
|
537
|
-
* **List all Characters in a Project:**
|
|
538
|
-
* \`veogent characters <projectId>\`
|
|
539
|
-
* **Regenerate Character Profile:** (Updates description/traits and generates a new portrait base)
|
|
540
|
-
* \`veogent edit-character -p <proj> -c "drelenavance" -u "change outfit to lab coat"\`
|
|
541
|
-
* **Direct Image Edit Mode:** (Applies changes directly to the existing generated portrait)
|
|
542
|
-
* \`veogent edit-character -p <proj> -c "drelenavance" -u "change shoe to black" -e\`
|
|
543
|
-
|
|
544
|
-
## 🖌️ Scene Editing
|
|
545
|
-
If a generated image prompt needs adjustment by the AI, use \`veogent edit-scene\` to hit the \`updateScriptSegment\` workflow:
|
|
546
|
-
* **Context:** Note that you are editing the Image Prompt for **Frame 0 (the starting image)** used for video generation.
|
|
547
|
-
* **Prompting Guide:** Beside the main visual description, you CAN include minor action descriptions (e.g., "bus speeding over cliff", "smoke rising"). You SHOULD heavily leverage Camera Angles and Camera Movements to steer the frame composition:
|
|
548
|
-
* **Shot Types:** Close-up (Cận cảnh), Wide shot (Toàn cảnh), Medium shot (Trung cảnh), Extreme close-up (Cận mặt), Long shot (Tầm trung xa).
|
|
549
|
-
* **Angles:** High angle (Góc cao), Low angle (Góc thấp), Bird-eye (Góc chim), Eye-level (Góc ngang mắt), Over-the-shoulder, POV.
|
|
550
|
-
* **Camera Tracking:** Pan left (←), Pan right (→), Tilt up (↑), Tilt down (↓), Zoom in (+), Zoom out (-).
|
|
551
|
-
* **Modify Image Prompt (Default creates auto-regen):**
|
|
552
|
-
* \`veogent edit-scene -p <proj> -c <chap> -s <scene> -u "Low angle shot of a yellow school bus speeding over a cliff, wide angle, dramatic lighting. Camera tilts down."\`
|
|
553
|
-
* **Modify Image Prompt (Cancel Auto-Regen):**
|
|
554
|
-
* \`veogent edit-scene -p <proj> -c <chap> -s <scene> -u "child seat behind Paulo" --no-regenerate\`
|
|
555
|
-
* **Edit a specific past generated image:** Pass the previous generated \`requestId\` using \`-R\`.
|
|
556
|
-
* \`veogent edit-scene -p <proj> -c <chap> -s <scene> -u "make the car red" -R <requestId>\`
|
|
557
|
-
|
|
558
|
-
* **List All Generation Requests/Jobs Status:** \`veogent requests\`
|
|
559
|
-
* This is the primary status board for generation workflows (image/video/character-edit related jobs). Always check this before retries.
|
|
560
|
-
|
|
561
|
-
## 💡 Best Practices for AI Agents (The VEOGENT Pipeline)
|
|
562
|
-
0. **Step 0: Resolve IDs first.** If not provided, fetch style IDs:
|
|
563
|
-
- \`veogent custom-prompts\` (custom prompt ID)
|
|
564
|
-
- \`veogent image-materials\` (material ID; \`CINEMATIC\` is an acceptable default)
|
|
565
|
-
1. **Step 1: Prepare story input.** Build story arc + summary + key notes before API calls.
|
|
566
|
-
2. **Step 2: Description First.** Run \`veogent create-project-description\` from the story input, then use that payload for \`veogent create-project\`.
|
|
567
|
-
3. **Step 3: Chapter & Scene Content.** Run \`veogent create-chapter-content -s <sceneCount>\` (each scene maps to ~8s clip), then IMMEDIATELY pass the returned scene-script array to \`veogent create-scene ... -C ... --flowkey\`.
|
|
568
|
-
4. **Step 4: Await Casting (CRITICAL).** The system auto-generates characters. Do NOT rush to image/video generation. Poll \`veogent characters <projectId>\` until EVERY character has an \`imageUri\`.
|
|
569
|
-
*(Alternative check: \`veogent project <projectId>\` -> \`progress\` object. If a character is FAILED/PROCESSING/PENDING, wait and avoid spam retries.)*
|
|
570
|
-
5. **Step 5: Character recovery path.** If any character is missing \`imageUri\`, inspect \`veogent requests\` for failure/success, then regenerate with \`veogent edit-character\` where needed.
|
|
571
|
-
6. **Step 6: Generate Images (Critical QA Gate).** Request \`GENERATE_IMAGES\` per scene/orientation.
|
|
572
|
-
*(Anti-Spam: Use \`veogent assets <projId> <chapId> <sceneId> <type>\`; if status is PENDING/PROCESSING, WAIT and do not duplicate requests.)*
|
|
573
|
-
*(Concurrency: maximum 5 requests can be processed simultaneously. "maximum request limit reached" means queue-full; wait and retry later.)*
|
|
574
|
-
7. **Step 7: AI Review on image mismatch.** If generated image is reported as incorrect, decode/export the image to Base64 and send it to an AI reviewer agent for visual evaluation.
|
|
575
|
-
- If review indicates mismatch: refine prompt via \`veogent edit-scene -u "..."\` and regenerate.
|
|
576
|
-
- For direct correction on a specific generated image, pass prior \`requestId\` via \`veogent edit-scene -R <requestId>\`.
|
|
577
|
-
8. **Step 8: Art Directing & QA.** Continue visual QA loop until scene image is director-approved.
|
|
578
|
-
9. **Step 9: Animate.** Only run \`GENERATE_VIDEO\` after the scene already has a successful matching-orientation image.
|
|
579
|
-
10. **Step 10: YouTube Publishing Assets.** Finalize with \`veogent generate-yt-metadata\` + \`veogent generate-yt-thumbnail\`; retrieve via \`veogent yt-thumbnails <proj> <chap>\`.
|
|
580
|
-
|
|
581
|
-
**Error Handling:** The CLI returns JSON like \`{"status": "error", "message": "..."}\`. Check this before proceeding with the next logic block. If an API request returns \`400 Bad Request\`, review your flags.`;
|
|
582
|
-
console.log(skillContent);
|
|
583
|
-
});
|
|
584
|
-
|
|
585
476
|
program
|
|
586
477
|
.command('obtain-flow')
|
|
587
478
|
.description('Auto-extract your labs.google Flow Token (ya29.) using a secure browser overlay')
|
package/package.json
CHANGED
package/skills/SKILL.md
ADDED
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: veogent
|
|
3
|
+
description: Full CLI skill guide for the VEOGENT API — AI-powered movie/story project management, image & video generation, and YouTube publishing.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# VEOGENT CLI — Agent Skill Guide
|
|
7
|
+
|
|
8
|
+
The `veogent` command-line interface interacts with the **VEOGENT API** for managing AI movie/story projects, chapters, scenes, characters, and media generation requests (images, videos, upscales). All data outputs are strict **JSON** — designed for AI agent parsing and chaining.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Table of Contents
|
|
13
|
+
|
|
14
|
+
1. [Authentication & Configuration](#-authentication--configuration)
|
|
15
|
+
2. [Projects & Assets](#-projects--assets)
|
|
16
|
+
3. [Chapters](#-chapters)
|
|
17
|
+
4. [Scenes](#-scenes)
|
|
18
|
+
5. [Characters](#-characters)
|
|
19
|
+
6. [Scene Editing & Prompt Crafting](#-scene-editing--prompt-crafting)
|
|
20
|
+
7. [Generation Requests (Images / Videos / Upscale)](#-generation-requests)
|
|
21
|
+
8. [Monitoring & Status](#-monitoring--status)
|
|
22
|
+
9. [YouTube Metadata & Thumbnails](#-youtube-metadata--thumbnails)
|
|
23
|
+
10. [Flow Token Management](#-flow-token-management)
|
|
24
|
+
11. [The Complete VEOGENT Pipeline (Best Practices)](#-the-complete-veogent-pipeline)
|
|
25
|
+
12. [Error Handling](#-error-handling)
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 🔐 Authentication & Configuration
|
|
30
|
+
|
|
31
|
+
### Skill: `login`
|
|
32
|
+
- **Description:** Login to obtain access token via Web Browser. Opens a local browser for **Google Firebase OAuth** — agents **cannot** authenticate automatically.
|
|
33
|
+
- **Guidelines:** If `veogent status` returns `{"error": "Not logged in"}`, instruct the user to run `veogent login` manually in their desktop terminal and wait for confirmation.
|
|
34
|
+
- **Example:**
|
|
35
|
+
```bash
|
|
36
|
+
veogent login
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Skill: `logout`
|
|
40
|
+
- **Description:** Clear saved credentials and remove the stored access token.
|
|
41
|
+
- **Example:**
|
|
42
|
+
```bash
|
|
43
|
+
veogent logout
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Skill: `status`
|
|
47
|
+
- **Description:** Show current authenticated user, Flow Key details, and payment tier.
|
|
48
|
+
- **Guidelines:** Always call this first to verify the agent has valid authentication before making API calls.
|
|
49
|
+
- **Example:**
|
|
50
|
+
```bash
|
|
51
|
+
veogent status
|
|
52
|
+
# Output: { "authenticated": true, "flowKey": "ya29.xxx", "paymentTier": "PAYGATE_TIER_TWO" }
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Skill: `setup-flow`
|
|
56
|
+
- **Description:** Setup/update the Google Flow Key and User Payment Tier. Required for video generation and AI-assisted features.
|
|
57
|
+
- **Guidelines:**
|
|
58
|
+
- If any VEOGENT API request fails with a `"status code 401"` or Flow error, the Flow Key has expired.
|
|
59
|
+
- Prompt the user for a new key and update it via `setup-flow` before retrying.
|
|
60
|
+
- **Options:**
|
|
61
|
+
| Flag | Required | Description | Default |
|
|
62
|
+
|------|----------|-------------|---------|
|
|
63
|
+
| `-f, --flowkey <key>` | ✅ | The Google access token (ya29...) | — |
|
|
64
|
+
| `-t, --tier <tier>` | ❌ | User payment tier | `PAYGATE_TIER_TWO` |
|
|
65
|
+
- **Example:**
|
|
66
|
+
```bash
|
|
67
|
+
veogent setup-flow -f "ya29.a0AW..." -t "PAYGATE_TIER_TWO"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Skill: `obtain-flow`
|
|
71
|
+
- **Description:** Auto-extract your labs.google Flow Token (`ya29.`) using a secure Chromium browser overlay.
|
|
72
|
+
- **Guidelines:** This opens a Chromium window to `https://labs.google/fx/tools/flow` and captures the Bearer Token from network traffic. The user must click "Create with Flow" and login if requested.
|
|
73
|
+
- **Example:**
|
|
74
|
+
```bash
|
|
75
|
+
veogent obtain-flow
|
|
76
|
+
# Output: 🎉 Extracted Flow Token: ya29.xxx
|
|
77
|
+
# Then apply it:
|
|
78
|
+
veogent setup-flow -f "ya29.xxx"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## 📁 Projects & Assets
|
|
84
|
+
|
|
85
|
+
### Skill: `image-materials`
|
|
86
|
+
- **Description:** Get all available Image Material styles (e.g., `CINEMATIC`, `PIXAR_3D`, `Anime style`).
|
|
87
|
+
- **Guidelines:** **Always call this before creating a project** to know which material strings are valid. `CINEMATIC` is an acceptable default if unsure.
|
|
88
|
+
- **Example:**
|
|
89
|
+
```bash
|
|
90
|
+
veogent image-materials
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Skill: `custom-prompts`
|
|
94
|
+
- **Description:** Get all custom prompt templates / story directives.
|
|
95
|
+
- **Guidelines:** Call this to find a matching `customPromptId` if a custom stylistic prompt is needed when creating a project or generating descriptions.
|
|
96
|
+
- **Example:**
|
|
97
|
+
```bash
|
|
98
|
+
veogent custom-prompts
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Skill: `projects`
|
|
102
|
+
- **Description:** List all your available projects.
|
|
103
|
+
- **Guidelines:**
|
|
104
|
+
- IDs are **Firebase Document Strings** (e.g., `APQF6Ay0kLeXLhpctTdD`), not simple integers.
|
|
105
|
+
- Always use the field `"id"` from the JSON response array.
|
|
106
|
+
- **Example:**
|
|
107
|
+
```bash
|
|
108
|
+
veogent projects
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Skill: `project`
|
|
112
|
+
- **Description:** Get details for a specific project including its progress status, characters, and configuration.
|
|
113
|
+
- **Example:**
|
|
114
|
+
```bash
|
|
115
|
+
veogent project <projectId>
|
|
116
|
+
veogent project APQF6Ay0kLeXLhpctTdD
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Skill: `create-project-description`
|
|
120
|
+
- **Description:** Generate an AI-powered description for a new project based on keywords. This should be called **before** `create-project` to build the story payload.
|
|
121
|
+
- **Options:**
|
|
122
|
+
| Flag | Required | Description |
|
|
123
|
+
|------|----------|-------------|
|
|
124
|
+
| `-k, --keyword <keyword>` | ✅ | Keywords for the project |
|
|
125
|
+
| `-l, --lang <lang>` | ✅ | Story language (e.g., `English`, `Vietnamese`) |
|
|
126
|
+
| `-p, --promptId <promptId>` | ✅ | Custom Prompt ID from `custom-prompts` |
|
|
127
|
+
- **Example:**
|
|
128
|
+
```bash
|
|
129
|
+
veogent create-project-description -k "T-rex, Neon, Tokyo" -l "English" -p "promptId123"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Skill: `create-project`
|
|
133
|
+
- **Description:** Create a new AI movie/story project with full configuration.
|
|
134
|
+
- **Options:**
|
|
135
|
+
| Flag | Required | Description | Default |
|
|
136
|
+
|------|----------|-------------|---------|
|
|
137
|
+
| `-n, --name <name>` | ✅ | Project name | — |
|
|
138
|
+
| `-k, --keyword <keyword>` | ✅ | Keywords | — |
|
|
139
|
+
| `-d, --desc <desc>` | ✅ | Description (use output from `create-project-description`) | — |
|
|
140
|
+
| `-l, --lang <lang>` | ✅ | Story language | — |
|
|
141
|
+
| `-s, --sound` | ✅ | Sound effects | `true` |
|
|
142
|
+
| `-m, --material <material>` | ✅ | Image material (from `image-materials`) | — |
|
|
143
|
+
| `-c, --chapters <count>` | ✅ | Number of chapters | `1` |
|
|
144
|
+
| `-C, --customPromptId <id>` | ❌ | Custom Prompt ID | — |
|
|
145
|
+
- **Example:**
|
|
146
|
+
```bash
|
|
147
|
+
veogent create-project -n "Cyberpunk T-Rex" -k "T-rex, Neon, Sci-fi" \
|
|
148
|
+
-d "A massive T-rex walking inside Tokyo at night..." \
|
|
149
|
+
-l "English" -m "CINEMATIC" -c 5
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 📖 Chapters
|
|
155
|
+
|
|
156
|
+
### Skill: `chapters`
|
|
157
|
+
- **Description:** Get all chapters for a specific project.
|
|
158
|
+
- **Example:**
|
|
159
|
+
```bash
|
|
160
|
+
veogent chapters <projectId>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Skill: `recent-chapters`
|
|
164
|
+
- **Description:** Get recently created or updated chapters across all projects.
|
|
165
|
+
- **Options:**
|
|
166
|
+
| Flag | Required | Description | Default |
|
|
167
|
+
|------|----------|-------------|---------|
|
|
168
|
+
| `-l, --limit <limit>` | ❌ | Maximum number of recent chapters to return | `10` |
|
|
169
|
+
- **Example:**
|
|
170
|
+
```bash
|
|
171
|
+
veogent recent-chapters -l 5
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Skill: `create-chapter-content`
|
|
175
|
+
- **Description:** Generate AI story/narrative content for a specific chapter, producing scene scripts.
|
|
176
|
+
- **Guidelines:** Each scene maps to approximately an **~8-second video clip**. The returned scene-script array should be **immediately** passed to `create-scene`.
|
|
177
|
+
- **Options:**
|
|
178
|
+
| Flag | Required | Description | Default |
|
|
179
|
+
|------|----------|-------------|---------|
|
|
180
|
+
| `-p, --project <project>` | ✅ | Project ID | — |
|
|
181
|
+
| `-c, --chapter <chapter>` | ✅ | Chapter ID | — |
|
|
182
|
+
| `-s, --scenes <count>` | ✅ | Number of scenes to generate | `1` |
|
|
183
|
+
- **Example:**
|
|
184
|
+
```bash
|
|
185
|
+
veogent create-chapter-content -p "projID" -c "chapID" -s 5
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 🎬 Scenes
|
|
191
|
+
|
|
192
|
+
### Skill: `scenes`
|
|
193
|
+
- **Description:** Get all scenes for a specific chapter within a project.
|
|
194
|
+
- **Example:**
|
|
195
|
+
```bash
|
|
196
|
+
veogent scenes <projectId> <chapterId>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Skill: `create-scene`
|
|
200
|
+
- **Description:** Create new scenes from an array of text content/script lines.
|
|
201
|
+
- **Guidelines:** Pass the scene-script array returned from `create-chapter-content` directly. Use `--flowkey` to sync context via Firebase.
|
|
202
|
+
- **Options:**
|
|
203
|
+
| Flag | Required | Description | Default |
|
|
204
|
+
|------|----------|-------------|---------|
|
|
205
|
+
| `-p, --project <project>` | ✅ | Project ID | — |
|
|
206
|
+
| `-c, --chapter <chapter>` | ✅ | Chapter ID | — |
|
|
207
|
+
| `-C, --content <content...>` | ✅ | Array of scene text scripts | — |
|
|
208
|
+
| `--flowkey` | ❌ | Enable useFlowKey to sync context via Firebase | `false` |
|
|
209
|
+
- **Example:**
|
|
210
|
+
```bash
|
|
211
|
+
veogent create-scene -p "projID" -c "chapID" \
|
|
212
|
+
-C "The T-Rex looks up at the sky." "A meteor shower begins." "Explosions rock the city." \
|
|
213
|
+
--flowkey
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 🧑🎨 Characters
|
|
219
|
+
|
|
220
|
+
### Skill: `characters`
|
|
221
|
+
- **Description:** Get all characters for a specific project, including their `imageUri` status.
|
|
222
|
+
- **Guidelines:** After creating scenes, the system **auto-generates characters**. Poll this command until every character has an `imageUri` before proceeding to image/video generation.
|
|
223
|
+
- **Example:**
|
|
224
|
+
```bash
|
|
225
|
+
veogent characters <projectId>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Skill: `edit-character`
|
|
229
|
+
- **Description:** Update a character's description/traits or edit their generated image directly via AI prompt.
|
|
230
|
+
- **Guidelines:**
|
|
231
|
+
- **Regenerate Profile Mode** (default): Updates description/traits and generates a new portrait base.
|
|
232
|
+
- **Direct Image Edit Mode** (`-e` flag): Applies changes directly to the existing generated portrait image via in-painting.
|
|
233
|
+
- **Options:**
|
|
234
|
+
| Flag | Required | Description | Default |
|
|
235
|
+
|------|----------|-------------|---------|
|
|
236
|
+
| `-p, --project <project>` | ✅ | Project ID | — |
|
|
237
|
+
| `-c, --character <character>` | ✅ | Character ID (e.g., `drelenavance`) | — |
|
|
238
|
+
| `-u, --userprompt <userprompt>` | ✅ | User instruction to modify the character | — |
|
|
239
|
+
| `-e, --editimage` | ❌ | Enable direct Image Editing Mode | `false` |
|
|
240
|
+
| `--flowkey` | ❌ | Enable useFlowKey to sync context via Firebase | `true` |
|
|
241
|
+
- **Examples:**
|
|
242
|
+
```bash
|
|
243
|
+
# Regenerate character profile with new traits
|
|
244
|
+
veogent edit-character -p "projID" -c "drelenavance" -u "change outfit to lab coat"
|
|
245
|
+
|
|
246
|
+
# Direct image edit (in-paint on existing portrait)
|
|
247
|
+
veogent edit-character -p "projID" -c "drelenavance" -u "change shoes to black boots" -e
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 🖌️ Scene Editing & Prompt Crafting
|
|
253
|
+
|
|
254
|
+
### Skill: `edit-scene`
|
|
255
|
+
- **Description:** Edit an existing scene's image prompt via AI assistance, hitting the `updateScriptSegment` workflow.
|
|
256
|
+
- **Guidelines:**
|
|
257
|
+
- You are editing the **Image Prompt for Frame 0** (the starting image) used for video generation.
|
|
258
|
+
- By default, editing a scene auto-regenerates the image. Use `--no-regenerate` to skip.
|
|
259
|
+
- To edit a specific past generated image, pass the previous `requestId` using `-R`.
|
|
260
|
+
|
|
261
|
+
#### 📐 Prompting Guide for Scene Image Prompts
|
|
262
|
+
|
|
263
|
+
Beside the main visual description, you **CAN** include minor action descriptions (e.g., "bus speeding over cliff", "smoke rising"). You **SHOULD** heavily leverage camera terminology to steer frame composition:
|
|
264
|
+
|
|
265
|
+
**Shot Types:**
|
|
266
|
+
| Shot Type | Description | Vietnamese |
|
|
267
|
+
|-----------|-------------|------------|
|
|
268
|
+
| Close-up | Tight framing on subject | Cận cảnh |
|
|
269
|
+
| Wide shot | Full environment visible | Toàn cảnh |
|
|
270
|
+
| Medium shot | Waist-up framing | Trung cảnh |
|
|
271
|
+
| Extreme close-up | Detail-level (face, object) | Cận mặt |
|
|
272
|
+
| Long shot | Subject small in frame | Tầm trung xa |
|
|
273
|
+
|
|
274
|
+
**Camera Angles:**
|
|
275
|
+
| Angle | Description |
|
|
276
|
+
|-------|-------------|
|
|
277
|
+
| High angle | Looking down on subject (Góc cao) |
|
|
278
|
+
| Low angle | Looking up at subject (Góc thấp) |
|
|
279
|
+
| Bird's-eye | Directly overhead (Góc chim) |
|
|
280
|
+
| Eye-level | Neutral perspective (Góc ngang mắt) |
|
|
281
|
+
| Over-the-shoulder | Behind a character looking forward |
|
|
282
|
+
| POV | First-person perspective |
|
|
283
|
+
|
|
284
|
+
**Camera Movements:**
|
|
285
|
+
| Movement | Symbol | Description |
|
|
286
|
+
|----------|--------|-------------|
|
|
287
|
+
| Pan left | ← | Horizontal sweep left |
|
|
288
|
+
| Pan right | → | Horizontal sweep right |
|
|
289
|
+
| Tilt up | ↑ | Vertical sweep up |
|
|
290
|
+
| Tilt down | ↓ | Vertical sweep down |
|
|
291
|
+
| Zoom in | + | Push closer |
|
|
292
|
+
| Zoom out | - | Pull farther |
|
|
293
|
+
|
|
294
|
+
- **Options:**
|
|
295
|
+
| Flag | Required | Description |
|
|
296
|
+
|------|----------|-------------|
|
|
297
|
+
| `-p, --project <project>` | ✅ | Project ID |
|
|
298
|
+
| `-c, --chapter <chapter>` | ✅ | Chapter ID |
|
|
299
|
+
| `-s, --scene <scene>` | ✅ | Scene ID |
|
|
300
|
+
| `-u, --userprompt <userprompt>` | ✅ | User narrative prompt to modify the scene |
|
|
301
|
+
| `--no-regenerate` | ❌ | Skip auto-regeneration of image |
|
|
302
|
+
| `-R, --request <request>` | ❌ | Target a specific past Request ID to edit its output |
|
|
303
|
+
|
|
304
|
+
- **Examples:**
|
|
305
|
+
```bash
|
|
306
|
+
# Modify image prompt (auto-regenerates)
|
|
307
|
+
veogent edit-scene -p "projID" -c "chapID" -s "sceneID" \
|
|
308
|
+
-u "Low angle shot of a yellow school bus speeding over a cliff, wide angle, dramatic lighting. Camera tilts down."
|
|
309
|
+
|
|
310
|
+
# Modify image prompt WITHOUT auto-regeneration
|
|
311
|
+
veogent edit-scene -p "projID" -c "chapID" -s "sceneID" \
|
|
312
|
+
-u "child seat behind Paulo" --no-regenerate
|
|
313
|
+
|
|
314
|
+
# Edit a specific past generated image directly
|
|
315
|
+
veogent edit-scene -p "projID" -c "chapID" -s "sceneID" \
|
|
316
|
+
-u "make the car red" -R "requestId123"
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## 🎬 Generation Requests
|
|
322
|
+
|
|
323
|
+
### Skill: `request`
|
|
324
|
+
- **Description:** Create a generation job request. Supports `GENERATE_IMAGES`, `GENERATE_VIDEO`, and `VIDEO_UPSCALE`.
|
|
325
|
+
- **Guidelines:**
|
|
326
|
+
> ⚠️ **CRITICAL VALIDATION RULES (Strict DTO):** Do not pass unsupported flags for a specific type, or the server will return a `400 Bad Request` or `Validation Error`.
|
|
327
|
+
|
|
328
|
+
#### 1. Generate Images (`GENERATE_IMAGES`)
|
|
329
|
+
|
|
330
|
+
| Flag | Required | Description | Allowed Values |
|
|
331
|
+
|------|----------|-------------|----------------|
|
|
332
|
+
| `-t, --type` | ✅ | `GENERATE_IMAGES` | — |
|
|
333
|
+
| `-p, --project` | ✅ | Project ID | — |
|
|
334
|
+
| `-c, --chapter` | ✅ | Chapter ID | — |
|
|
335
|
+
| `-s, --scene` | ✅ | Scene ID | — |
|
|
336
|
+
| `-i, --imagemodel` | ✅ | Image model | `imagen4`, `imagen3.5` |
|
|
337
|
+
|
|
338
|
+
> 🚫 **Prohibited flags:** Do NOT pass `-o` (orientation), `-v` (videomodel), or `-S` (speed).
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
veogent request -t "GENERATE_IMAGES" -p "projID" -c "chapID" -s "sceneID" -i "imagen4"
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
#### 2. Generate Video (`GENERATE_VIDEO`)
|
|
345
|
+
|
|
346
|
+
| Flag | Required | Description | Allowed Values |
|
|
347
|
+
|------|----------|-------------|----------------|
|
|
348
|
+
| `-t, --type` | ✅ | `GENERATE_VIDEO` | — |
|
|
349
|
+
| `-p, --project` | ✅ | Project ID | — |
|
|
350
|
+
| `-c, --chapter` | ✅ | Chapter ID | — |
|
|
351
|
+
| `-s, --scene` | ✅ | Scene ID | — |
|
|
352
|
+
| `-v, --videomodel` | ✅ | Video model | `veo_3_1_fast` (recommended), `veo_3_1_fast_r2v` |
|
|
353
|
+
| `-S, --speed` | ✅ | Video speed | `normal`, `timelapse`, `slowmotion` |
|
|
354
|
+
| `-i, --imagemodel` | ✅ | Image model for video context | `imagen4`, `imagen3.5` |
|
|
355
|
+
| `-o, --orientation` | ✅ | Orientation | `HORIZONTAL`, `VERTICAL` |
|
|
356
|
+
| `-E, --endscene` | ❌ | End Scene ID for continuous video generation (interpolation to next frame) | — |
|
|
357
|
+
|
|
358
|
+
> ℹ️ `useFlowKey` is **locked natively to `true`** — you must have a valid Flow Key.
|
|
359
|
+
> ℹ️ Only run `GENERATE_VIDEO` **after** the scene already has a successful matching-orientation image.
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
veogent request -t "GENERATE_VIDEO" -p "projID" -c "chapID" -s "sceneA" \
|
|
363
|
+
-E "sceneB" -o "VERTICAL" -i "imagen3.5" -v "veo_3_1_fast" -S "normal"
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
#### 3. Video Upscale (`VIDEO_UPSCALE`)
|
|
367
|
+
|
|
368
|
+
| Flag | Required | Description | Allowed Values |
|
|
369
|
+
|------|----------|-------------|----------------|
|
|
370
|
+
| `-t, --type` | ✅ | `VIDEO_UPSCALE` | — |
|
|
371
|
+
| `-p, --project` | ✅ | Project ID | — |
|
|
372
|
+
| `-c, --chapter` | ✅ | Chapter ID | — |
|
|
373
|
+
| `-s, --scene` | ✅ | Scene ID | — |
|
|
374
|
+
| `-o, --orientation` | ✅ | Orientation | `HORIZONTAL`, `VERTICAL` |
|
|
375
|
+
|
|
376
|
+
> 🚫 **Prohibited flags:** Do NOT pass `-i` (image model) or `-v` (video model).
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
veogent request -t "VIDEO_UPSCALE" -p "projID" -c "chapID" -s "sceneID" -o "HORIZONTAL"
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Skill: `upscale` (Shortcut)
|
|
383
|
+
- **Description:** Shortcut command for upscaling video output for a specific scene.
|
|
384
|
+
- **Options:**
|
|
385
|
+
| Flag | Required | Description | Default |
|
|
386
|
+
|------|----------|-------------|---------|
|
|
387
|
+
| `-p, --project` | ✅ | Project ID | — |
|
|
388
|
+
| `-c, --chapter` | ✅ | Chapter ID | — |
|
|
389
|
+
| `-s, --scene` | ✅ | Scene ID | — |
|
|
390
|
+
| `-o, --orientation` | ❌ | Orientation | `VERTICAL` |
|
|
391
|
+
| `-r, --resolution` | ❌ | Target resolution | `VIDEO_RESOLUTION_4K` |
|
|
392
|
+
- **Example:**
|
|
393
|
+
```bash
|
|
394
|
+
veogent upscale -p "projID" -c "chapID" -s "sceneID" -o VERTICAL -r VIDEO_RESOLUTION_4K
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## 📊 Monitoring & Status
|
|
400
|
+
|
|
401
|
+
### Skill: `requests`
|
|
402
|
+
- **Description:** Get all generation requests/jobs status for the current user. This is the **primary status board** for all generation workflows (image/video/character-edit).
|
|
403
|
+
- **Guidelines:** Always check this before retrying any generation. Look for `PENDING`, `PROCESSING`, `SUCCESS`, or `FAILED` statuses.
|
|
404
|
+
- **Example:**
|
|
405
|
+
```bash
|
|
406
|
+
veogent requests
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Skill: `assets`
|
|
410
|
+
- **Description:** Check generated assets history/status for a specific scene.
|
|
411
|
+
- **Guidelines:**
|
|
412
|
+
- **Anti-Spam Rule:** If status is `PENDING` or `PROCESSING`, **WAIT** and do not duplicate requests.
|
|
413
|
+
- **Concurrency:** Maximum **5 requests** can be processed simultaneously. `"maximum request limit reached"` means the queue is full — wait and retry later.
|
|
414
|
+
- **Example:**
|
|
415
|
+
```bash
|
|
416
|
+
# Types: GENERATE_IMAGES, GENERATE_VIDEO, EDIT_IMAGE
|
|
417
|
+
veogent assets <projectId> <chapterId> <sceneId> GENERATE_IMAGES
|
|
418
|
+
veogent assets <projectId> <chapterId> <sceneId> GENERATE_VIDEO
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 📺 YouTube Metadata & Thumbnails
|
|
424
|
+
|
|
425
|
+
### Skill: `generate-yt-metadata`
|
|
426
|
+
- **Description:** Generate YouTube metadata (Title, Description, Tags) for a chapter using AI.
|
|
427
|
+
- **Options:**
|
|
428
|
+
| Flag | Required | Description |
|
|
429
|
+
|------|----------|-------------|
|
|
430
|
+
| `-p, --project` | ✅ | Project ID |
|
|
431
|
+
| `-c, --chapter` | ✅ | Chapter ID |
|
|
432
|
+
| `-l, --lang` | ✅ | Story language |
|
|
433
|
+
- **Example:**
|
|
434
|
+
```bash
|
|
435
|
+
veogent generate-yt-metadata -p "projID" -c "chapID" -l "English"
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Skill: `generate-yt-thumbnail`
|
|
439
|
+
- **Description:** Triggers a request to generate a YouTube thumbnail for a chapter.
|
|
440
|
+
- **Options:**
|
|
441
|
+
| Flag | Required | Description |
|
|
442
|
+
|------|----------|-------------|
|
|
443
|
+
| `-p, --project` | ✅ | Project ID |
|
|
444
|
+
| `-c, --chapter` | ✅ | Chapter ID |
|
|
445
|
+
| `-l, --lang` | ✅ | Story language |
|
|
446
|
+
- **Example:**
|
|
447
|
+
```bash
|
|
448
|
+
veogent generate-yt-thumbnail -p "projID" -c "chapID" -l "English"
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
### Skill: `yt-thumbnails`
|
|
452
|
+
- **Description:** Retrieve generated YouTube thumbnails for a chapter.
|
|
453
|
+
- **Example:**
|
|
454
|
+
```bash
|
|
455
|
+
veogent yt-thumbnails <projectId> <chapterId>
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
## 🗝️ Flow Token Management
|
|
461
|
+
|
|
462
|
+
### Skill: `obtain-flow`
|
|
463
|
+
- **Description:** Auto-extract the Google Flow Token (`ya29.`) by opening a secure Chromium browser overlay to `https://labs.google/fx/tools/flow`.
|
|
464
|
+
- **Guidelines:**
|
|
465
|
+
1. This opens a Chromium window automatically.
|
|
466
|
+
2. The user must click **"Create with Flow"** and login if requested.
|
|
467
|
+
3. The tool captures the underlying Bearer Token from network traffic.
|
|
468
|
+
4. After extraction, apply the token with `veogent setup-flow -f "<token>"`.
|
|
469
|
+
- **Example:**
|
|
470
|
+
```bash
|
|
471
|
+
veogent obtain-flow
|
|
472
|
+
# Then:
|
|
473
|
+
veogent setup-flow -f "ya29.a0AW..."
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
## 💡 The Complete VEOGENT Pipeline
|
|
479
|
+
|
|
480
|
+
Follow this 11-step production pipeline for end-to-end AI movie generation:
|
|
481
|
+
|
|
482
|
+
### Step 0: Resolve IDs
|
|
483
|
+
If not provided by the user, fetch style/template IDs first:
|
|
484
|
+
```bash
|
|
485
|
+
veogent custom-prompts # → get customPromptId
|
|
486
|
+
veogent image-materials # → get material ID (default: CINEMATIC)
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
### Step 1: Prepare Story Input
|
|
490
|
+
Build your story arc, summary, and key notes **before** making API calls. This is the creative foundation.
|
|
491
|
+
|
|
492
|
+
### Step 2: Description First
|
|
493
|
+
Generate an AI description from story input, then use that payload for project creation:
|
|
494
|
+
```bash
|
|
495
|
+
veogent create-project-description -k "keywords" -l "English" -p "promptId"
|
|
496
|
+
# Use the returned description in create-project
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### Step 3: Create Project
|
|
500
|
+
```bash
|
|
501
|
+
veogent create-project -n "Name" -k "keywords" -d "AI-generated description" -l "English" -m "CINEMATIC" -c 5
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Step 4: Chapter & Scene Content
|
|
505
|
+
Generate chapter narrative content, then **immediately** pass the returned scene-script array to `create-scene`:
|
|
506
|
+
```bash
|
|
507
|
+
veogent create-chapter-content -p <projId> -c <chapId> -s 5
|
|
508
|
+
# Each scene ≈ 8-second clip
|
|
509
|
+
|
|
510
|
+
veogent create-scene -p <projId> -c <chapId> -C "script 1" "script 2" "script 3" --flowkey
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
### Step 5: Await Character Casting (⚠️ CRITICAL)
|
|
514
|
+
The system **auto-generates characters**. Do NOT rush to image/video generation.
|
|
515
|
+
```bash
|
|
516
|
+
# Poll until EVERY character has an imageUri
|
|
517
|
+
veogent characters <projectId>
|
|
518
|
+
|
|
519
|
+
# Alternative: check project progress object
|
|
520
|
+
veogent project <projectId>
|
|
521
|
+
# Look at: progress → if FAILED/PROCESSING/PENDING, wait. Avoid spam retries.
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
### Step 6: Character Recovery Path
|
|
525
|
+
If any character is missing `imageUri`:
|
|
526
|
+
```bash
|
|
527
|
+
veogent requests # inspect for failure/success
|
|
528
|
+
veogent edit-character -p <proj> -c "<charId>" -u "regenerate portrait"
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
### Step 7: Generate Images (Critical QA Gate)
|
|
532
|
+
Request `GENERATE_IMAGES` per scene:
|
|
533
|
+
```bash
|
|
534
|
+
veogent request -t "GENERATE_IMAGES" -p <proj> -c <chap> -s <scene> -i "imagen4"
|
|
535
|
+
|
|
536
|
+
# Anti-Spam: check status first!
|
|
537
|
+
veogent assets <proj> <chap> <scene> GENERATE_IMAGES
|
|
538
|
+
# If PENDING/PROCESSING → WAIT, do NOT duplicate requests
|
|
539
|
+
# Concurrency limit: max 5 simultaneous requests
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
### Step 8: AI Review on Image Mismatch
|
|
543
|
+
If a generated image is reported as incorrect:
|
|
544
|
+
1. Decode/export the image to Base64 and send to an AI reviewer agent for visual evaluation.
|
|
545
|
+
2. If mismatch confirmed → refine prompt:
|
|
546
|
+
```bash
|
|
547
|
+
veogent edit-scene -p <proj> -c <chap> -s <scene> -u "refined prompt..."
|
|
548
|
+
```
|
|
549
|
+
3. For direct correction on a specific generated image:
|
|
550
|
+
```bash
|
|
551
|
+
veogent edit-scene -p <proj> -c <chap> -s <scene> -u "make the car red" -R <requestId>
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
### Step 9: Art Directing & QA
|
|
555
|
+
Continue the visual QA loop until the scene image is **director-approved**. Iterate between `edit-scene` and `GENERATE_IMAGES` as needed.
|
|
556
|
+
|
|
557
|
+
### Step 10: Animate
|
|
558
|
+
Only run `GENERATE_VIDEO` **after** the scene already has a successful matching-orientation image:
|
|
559
|
+
```bash
|
|
560
|
+
veogent request -t "GENERATE_VIDEO" -p <proj> -c <chap> -s <scene> \
|
|
561
|
+
-v "veo_3_1_fast" -S "normal" -i "imagen4" -o "HORIZONTAL"
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
### Step 11: YouTube Publishing Assets
|
|
565
|
+
Finalize with metadata and thumbnails:
|
|
566
|
+
```bash
|
|
567
|
+
veogent generate-yt-metadata -p <proj> -c <chap> -l "English"
|
|
568
|
+
veogent generate-yt-thumbnail -p <proj> -c <chap> -l "English"
|
|
569
|
+
veogent yt-thumbnails <proj> <chap>
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
574
|
+
## ⚠️ Error Handling
|
|
575
|
+
|
|
576
|
+
The CLI returns JSON for all responses:
|
|
577
|
+
|
|
578
|
+
| Pattern | Meaning | Action |
|
|
579
|
+
|---------|---------|--------|
|
|
580
|
+
| `{"status": "success", ...}` | Operation completed | Proceed to next step |
|
|
581
|
+
| `{"status": "error", "message": "..."}` | Operation failed | Read the message, fix inputs, retry |
|
|
582
|
+
| `{"error": "Not logged in"}` | No valid auth token | Have user run `veogent login` |
|
|
583
|
+
| `400 Bad Request` | Invalid flags/payload for DTO | Review your flags — likely passing prohibited options for the request type |
|
|
584
|
+
| `401` / Flow error | Flow Key expired | Get new key via `veogent obtain-flow` or user, then `veogent setup-flow` |
|
|
585
|
+
| `"maximum request limit reached"` | Queue full (5 max concurrent) | Wait and retry later — not a hard failure |
|