@unityclaw/skills 1.0.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 +125 -0
- package/dist/chunk-KHQZYC3Y.js +163 -0
- package/dist/cli.cjs +237 -0
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +69 -0
- package/dist/index.cjs +197 -0
- package/dist/index.d.cts +36 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +18 -0
- package/package.json +59 -0
- package/unityclaw-document-convert/SKILL.md +375 -0
- package/unityclaw-document-translation/SKILL.md +273 -0
- package/unityclaw-image-compress/SKILL.md +229 -0
- package/unityclaw-image-generation/SKILL.md +213 -0
- package/unityclaw-media-analysis/SKILL.md +315 -0
- package/unityclaw-video-generation-kling/SKILL.md +233 -0
- package/unityclaw-video-generation-other/SKILL.md +284 -0
- package/unityclaw-video-generation-sora/SKILL.md +250 -0
- package/unityclaw-video-generation-veo/SKILL.md +239 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: unityclaw-video-generation-veo
|
|
3
|
+
description: Generate high-quality videos using Google Veo AI model
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
metadata:
|
|
6
|
+
openclaw:
|
|
7
|
+
requires:
|
|
8
|
+
env:
|
|
9
|
+
- UNITYCLAW_API_KEY
|
|
10
|
+
bins:
|
|
11
|
+
- node
|
|
12
|
+
- npm
|
|
13
|
+
primaryEnv: UNITYCLAW_API_KEY
|
|
14
|
+
emoji: "🎥"
|
|
15
|
+
homepage: https://unityclaw.com
|
|
16
|
+
install:
|
|
17
|
+
- kind: node
|
|
18
|
+
package: "@unityclaw/sdk"
|
|
19
|
+
bins: []
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# UnityClaw Video Generation - Veo
|
|
23
|
+
|
|
24
|
+
Generate high-quality videos using Google's Veo AI model with advanced control over aspect ratio, resolution, and duration.
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install @unityclaw/sdk
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Configuration
|
|
33
|
+
|
|
34
|
+
Set your API key as environment variable:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
export UNITYCLAW_API_KEY=your-api-key
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Quick Start
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
import { UnityClawClient } from '@unityclaw/sdk';
|
|
44
|
+
|
|
45
|
+
const client = new UnityClawClient();
|
|
46
|
+
|
|
47
|
+
const result = await client.video.veo({
|
|
48
|
+
prompt: 'A beautiful sunset over the ocean with waves crashing',
|
|
49
|
+
aspect_ratio: { value: '16:9', label: '16:9' },
|
|
50
|
+
duration: { value: '8', label: '8s' }
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
if (result.code === 0) {
|
|
54
|
+
console.log('Generated video:', result.data);
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## API Reference
|
|
59
|
+
|
|
60
|
+
### veo()
|
|
61
|
+
|
|
62
|
+
Generate video using Google Veo model.
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
await client.video.veo({
|
|
66
|
+
prompt?: string | TextFieldItem[];
|
|
67
|
+
attachment?: AttachmentFieldItem[];
|
|
68
|
+
first_frame?: AttachmentFieldItem[];
|
|
69
|
+
last_frame?: AttachmentFieldItem[];
|
|
70
|
+
aspect_ratio?: LabelFieldItem | string;
|
|
71
|
+
resolution?: LabelFieldItem | string;
|
|
72
|
+
duration?: LabelFieldItem | string;
|
|
73
|
+
}): Promise<APIResponse<AttachmentResult[]>>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Parameters
|
|
77
|
+
|
|
78
|
+
| Parameter | Type | Required | Description |
|
|
79
|
+
|-----------|------|----------|-------------|
|
|
80
|
+
| `prompt` | `string \| TextFieldItem[]` | No* | Text description (*required if no attachment) |
|
|
81
|
+
| `attachment` | `AttachmentFieldItem[]` | No* | Reference image (*required if no prompt) |
|
|
82
|
+
| `first_frame` | `AttachmentFieldItem[]` | No | Starting frame for video |
|
|
83
|
+
| `last_frame` | `AttachmentFieldItem[]` | No | Ending frame for video |
|
|
84
|
+
| `aspect_ratio` | `LabelFieldItem \| string` | No | Video aspect ratio |
|
|
85
|
+
| `resolution` | `LabelFieldItem \| string` | No | Video resolution |
|
|
86
|
+
| `duration` | `LabelFieldItem \| string` | No | Video duration in seconds |
|
|
87
|
+
|
|
88
|
+
## Examples
|
|
89
|
+
|
|
90
|
+
### Text-to-Video
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
const client = new UnityClawClient();
|
|
94
|
+
|
|
95
|
+
const result = await client.video.veo({
|
|
96
|
+
prompt: 'A majestic eagle soaring through misty mountain peaks at sunrise',
|
|
97
|
+
aspect_ratio: { value: '16:9', label: '16:9' },
|
|
98
|
+
resolution: { value: '1080p', label: '1080p' },
|
|
99
|
+
duration: { value: '8', label: '8s' }
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Image-to-Video
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
const result = await client.video.veo({
|
|
107
|
+
attachment: [
|
|
108
|
+
{ tmp_url: 'https://example.com/landscape.jpg', name: 'landscape.jpg' }
|
|
109
|
+
],
|
|
110
|
+
aspect_ratio: { value: '16:9', label: '16:9' },
|
|
111
|
+
duration: { value: '5', label: '5s' }
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### First/Last Frame Control
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// Generate video with specific start and end frames
|
|
119
|
+
const result = await client.video.veo({
|
|
120
|
+
first_frame: [
|
|
121
|
+
{ tmp_url: 'https://example.com/start.jpg', name: 'start.jpg' }
|
|
122
|
+
],
|
|
123
|
+
last_frame: [
|
|
124
|
+
{ tmp_url: 'https://example.com/end.jpg', name: 'end.jpg' }
|
|
125
|
+
],
|
|
126
|
+
prompt: 'Smooth transition between the two scenes',
|
|
127
|
+
duration: { value: '8', label: '8s' }
|
|
128
|
+
});
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### High Resolution Video
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
const result = await client.video.veo({
|
|
135
|
+
prompt: 'A cinematic shot of a luxury car driving through a city at night',
|
|
136
|
+
aspect_ratio: { value: '16:9', label: '16:9' },
|
|
137
|
+
resolution: { value: '4K', label: '4K' },
|
|
138
|
+
duration: { value: '10', label: '10s' }
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Portrait Video
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
const result = await client.video.veo({
|
|
146
|
+
prompt: 'A model walking down a fashion runway with dramatic lighting',
|
|
147
|
+
aspect_ratio: { value: '9:16', label: '9:16' },
|
|
148
|
+
duration: { value: '5', label: '5s' }
|
|
149
|
+
});
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Simple String Parameters
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
// You can also use simple strings instead of LabelFieldItem
|
|
156
|
+
const result = await client.video.veo({
|
|
157
|
+
prompt: 'A peaceful garden scene',
|
|
158
|
+
aspect_ratio: '16:9',
|
|
159
|
+
resolution: '1080p',
|
|
160
|
+
duration: '8'
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Aspect Ratio Options
|
|
165
|
+
|
|
166
|
+
| Value | Use Case |
|
|
167
|
+
|-------|----------|
|
|
168
|
+
| `16:9` | Standard landscape (YouTube, presentations) |
|
|
169
|
+
| `9:16` | Portrait (TikTok, Instagram Reels) |
|
|
170
|
+
| `1:1` | Square (Instagram feed) |
|
|
171
|
+
|
|
172
|
+
## Duration Options
|
|
173
|
+
|
|
174
|
+
| Value | Description |
|
|
175
|
+
|-------|-------------|
|
|
176
|
+
| `5` | 5 seconds |
|
|
177
|
+
| `8` | 8 seconds (default) |
|
|
178
|
+
| `10` | 10 seconds |
|
|
179
|
+
|
|
180
|
+
## Resolution Options
|
|
181
|
+
|
|
182
|
+
| Value | Description |
|
|
183
|
+
|-------|-------------|
|
|
184
|
+
| `720p` | HD quality |
|
|
185
|
+
| `1080p` | Full HD |
|
|
186
|
+
| `4K` | Ultra HD |
|
|
187
|
+
|
|
188
|
+
## Response Format
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
interface AttachmentResult {
|
|
192
|
+
name: string;
|
|
193
|
+
contentType: 'attachment/url';
|
|
194
|
+
content: string; // URL to generated video
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Error Handling
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
const result = await client.video.veo({
|
|
202
|
+
prompt: 'A test video',
|
|
203
|
+
aspect_ratio: '16:9'
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
if (result.code !== 0) {
|
|
207
|
+
console.error('Video generation failed:', result.msg);
|
|
208
|
+
} else {
|
|
209
|
+
console.log('Success:', result.data);
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Task Folders
|
|
214
|
+
|
|
215
|
+
Each execution creates a task folder:
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
const result = await client.video.veo({
|
|
219
|
+
prompt: 'test',
|
|
220
|
+
aspect_ratio: '16:9'
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
console.log('Task ID:', result.taskId);
|
|
224
|
+
console.log('Task Folder:', result.taskFolder);
|
|
225
|
+
console.log('Downloaded Videos:', result.attachments);
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Best Practices
|
|
229
|
+
|
|
230
|
+
1. **First/Last Frame**: Use for precise control over video start/end
|
|
231
|
+
2. **Resolution**: Match to your output requirements
|
|
232
|
+
3. **Duration**: Shorter videos generate faster
|
|
233
|
+
4. **Prompts**: Be specific about camera movement and style
|
|
234
|
+
|
|
235
|
+
## Related Skills
|
|
236
|
+
|
|
237
|
+
- [unityclaw-video-generation-sora](../unityclaw-video-generation-sora/SKILL.md) - OpenAI Sora video generation
|
|
238
|
+
- [unityclaw-video-generation-kling](../unityclaw-video-generation-kling/SKILL.md) - Kling video generation
|
|
239
|
+
- [unityclaw-image-generation](../unityclaw-image-generation/SKILL.md) - Generate reference images
|