Veevid — AI Video Generator
All-in-one AI video generator: text to video, image to video, and reference-to-video via Veevid AI. One API, 10+ state-of-the-art video generation models including Kling 3.0, Sora 2, Veo 3.1, LTX 2.3, Seedance 1.5 Pro, and Wan 2.6.
Setup
- 1. Get your API Key at veevid.ai/settings/api-keys
- Save the key locally:
CODEBLOCK0
What You Can Say
These phrases trigger this skill:
- - "Generate a video of a sunset over the ocean"
- "Turn this image into a video"
- "Make a 10-second product ad with Kling 3.0"
- "Create a vertical video for TikTok"
- "How much does it cost to generate a video?"
- "What AI video models are available?"
- "Check my credit balance"
Image Retrieval from Chat (Discord / Group Chats)
When the user requests image-to-video but no image URL is provided in the message:
- 1. Use
message read (channel=discord, limit=10) to scan recent messages in the current channel. - Filter attachments by the sender's user id to avoid picking up someone else's image.
- Collect all recent image attachments (content_type starts with
image/) from the sender, ordered newest first. - Preview by quoting: Use
message send with replyTo set to the message id of the image message. This quotes the original message with its image preview inline, so the user can visually confirm. Add text like "Is this the right image?" Don't just show the filename — filenames like IMG_20260203_xyz.jpg are meaningless. - Single image needed (standard I2V): quote the most recent image message and ask the user to confirm.
- Multiple images needed (Kling 3.0 start+end frames, Veo 3.1 reference-to-video with 1-3 refs): quote each image message with a number label and ask the user which ones to use and in what order.
- If not enough images are found, ask the user to send the missing ones or provide URLs.
This ensures image-to-video works seamlessly even when Discord doesn't forward attachments directly to the agent. Applies to all models, not just a specific one.
Important: Always Confirm Before Generating
Before calling the generate API, ALWAYS:
- 1. Call
POST /api/quote with the billing-relevant params for your planned generation (see Step 1 below) — it returns the precise credit cost and current balance. - Tell the user which model you'll use and the exact cost from the quote response.
- For image-to-video: also confirm the image is correct (show filename/URL).
- Wait for the user to confirm before proceeding.
If the generate API returns 402, report the exact required and balance values from the response body to the user.
If balance is insufficient, suggest a cheaper model or link to veevid.ai/pricing.
Step 1 — Quote (get exact cost before generating)
INLINECODE9 only needs the billing-relevant params: mode, generation_type, duration, video_quality, aspect_ratio, and model-specific options (e.g. model_version, generate_audio). It does not require prompt, image, or other content fields — those don't affect credit cost.
CODEBLOCK1
Returns: INLINECODE19
If sufficient is false, suggest a cheaper model before asking the user to confirm.
Step 2 — Generate Video (Text to Video)
CODEBLOCK2
Returns either:
- - Async case: INLINECODE22
- Sync case: INLINECODE23
If status is already completed and a video_url is present, return it to the user immediately instead of polling.
Generate Video — Image to Video
If the user provides an online image URL, pass it directly:
CODEBLOCK3
If the user provides a local file, the image URL isn't known yet — but credit cost doesn't depend on it, so quote first with billing params, then upload:
CODEBLOCK4
Step 3 — Poll Status
If the generate response is still processing, poll until status is completed:
CODEBLOCK5
Status values: processing → completed or failed. Typical time: 60-180 seconds.
Check Credit Balance
CODEBLOCK6
Returns: INLINECODE33
Available Models
Choose model based on the user's needs. Credit ranges depend on duration, resolution, and quality — use /api/quote for the exact cost before confirming with the user.
| Model | INLINECODE35 | Strengths | Credit Range |
|---|
| Veo 3.1 | INLINECODE36 | Native audio, budget-friendly, fixed 8s | 20 / 140 credits |
| Grok Imagine |
grok-imagine | Native audio, fastest generation | 10–60 credits |
| Veevid 1.0 Pro |
veevid-1.0-pro | Audio, wide aspect ratios | 12–288 credits |
| Seedance 1.5 Pro |
seedance-1.5-pro | Audio, wide aspect ratios | 12–288 credits |
| Kling 3.0 |
kling-3 | Audio, multi-shot, 3-15s | 48–495 credits |
| LTX 2.3 |
ltx-2-3 | Audio, open-source, up to 4K (2160p) | 48–960 credits |
| Kling 2.6 |
kling-2-6 | Audio, cinematic, multi-shot | 70–280 credits |
| Sora 2 Stable |
sora2-stable | Native audio, best prompt accuracy, 4-20s | 80–2000 credits |
| Sora 2 |
sora2 | Native audio, 10-25s, storyboard/multi-scene | 20–315 credits |
| Wan 2.6 |
wan-2-6 | Audio, multi-shot, video-to-video | 100–450 credits |
Quick Model Picker
| User wants... | Use this |
|---|
| Cheapest option | INLINECODE46 (10 cr at 480p/6s) or veo3 standard (20 cr) |
| Fastest result |
grok-imagine or
ltx-2-3 fast |
| Best quality |
sora2-stable pro or
kling-3 |
| Longer clips (>15s) |
sora2 (up to 25s) |
| Vertical/TikTok |
ltx-2-3 (native portrait) |
| Product ads |
kling-3 (multi-shot + text rendering) |
| YouTube content |
veo3 |
Model Parameters
Each model has specific allowed values. See references/api-reference.md for the complete per-model parameter table.
Common parameters:
| Parameter | Description |
|---|
| INLINECODE56 | Scene description (max 5000 chars) |
| INLINECODE57 |
Model selector (see table above) |
|
duration | Video length in seconds (varies by model) |
|
aspect_ratio |
"16:9" \|
"9:16" \|
"1:1" (varies by model) |
|
video_quality | Quality tier (varies by model — see api-reference.md) |
|
generation_type |
"text-to-video" \|
"image-to-video" \|
"reference-to-video" (Veo 3.1) |
|
image | Image URL (required for image-to-video) |
|
model_version | Sub-variant for some models (e.g.
"kling-3-pro",
"ltx-2.3-fast") |
Error Codes
| Code | Meaning | What to do |
|---|
| 400 | Invalid parameter | Check allowed values in api-reference.md |
| 401 |
Invalid API Key | Verify key at veevid.ai/settings/api-keys |
| 402 | Insufficient credits | Show user the
required vs
balance from response, suggest cheaper model or
veevid.ai/pricing |
| 403 | Account suspended / forbidden | Tell the user their account cannot access the API and they need support |
| 404 | Generation record not found | Check the
generation_id and whether it belongs to this account |
| 500 | Server error | Wait a few seconds and retry |
Example Conversations
Simple text-to-video:
CODEBLOCK7
Image-to-video:
CODEBLOCK8
Budget-conscious:
CODEBLOCK9
Links
Veevid — AI视频生成器
一站式AI视频生成器:通过Veevid AI实现文本转视频、图片转视频和参考转视频。一个API,10+最先进的视频生成模型,包括Kling 3.0、Sora 2、Veo 3.1、LTX 2.3、Seedance 1.5 Pro和Wan 2.6。
设置
- 1. 获取你的API密钥,访问veevid.ai/settings/api-keys
- 本地保存密钥:
bash
mkdir -p ~/.config/veevid
echo 你的API密钥 > ~/.config/veevid/api_key
你可以说的内容
以下短语会触发此技能:
- - 生成一段海上日落的视频
- 将这张图片变成视频
- 用Kling 3.0制作一个10秒的产品广告
- 为TikTok创建一个竖屏视频
- 生成一段视频需要多少钱?
- 有哪些可用的AI视频模型?
- 查看我的积分余额
从聊天中检索图片(Discord / 群聊)
当用户请求图片转视频但消息中未提供图片URL时:
- 1. 使用message read(channel=discord, limit=10)扫描当前频道中的最近消息。
- 按发送者的用户ID筛选附件,避免误取他人的图片。
- 收集发送者的所有最近图片附件(contenttype以image/开头),按最新优先排序。
- 通过引用预览:使用message send并将replyTo设置为图片消息的消息ID。这会引用原始消息并内联显示其图片预览,以便用户直观确认。添加类似这是正确的图片吗?的文字。不要只显示文件名——像IMG20260203_xyz.jpg这样的文件名毫无意义。
- 单张图片需求(标准I2V):引用最近的图片消息并请用户确认。
- 多张图片需求(Kling 3.0起始+结束帧,Veo 3.1参考转视频需1-3个参考):引用每条图片消息并标注编号,询问用户使用哪些以及顺序。
- 如果未找到足够的图片,请用户发送缺失的图片或提供URL。
这确保了即使Discord未直接将附件转发给代理,图片转视频也能无缝工作。适用于所有模型,不仅限于特定模型。
重要:生成前务必确认
在调用生成API之前,始终:
- 1. 使用计划生成的计费相关参数调用POST /api/quote(见下方步骤1)——它会返回精确的积分成本和当前余额。
- 告知用户你将使用的模型以及报价中的确切成本。
- 对于图片转视频:还需确认图片是否正确(显示文件名/URL)。
- 等待用户确认后再继续。
如果生成API返回402,将响应体中的确切required和balance值报告给用户。
如果余额不足,建议更便宜的模型或链接到veevid.ai/pricing。
步骤1 — 报价(生成前获取确切成本)
/api/quote只需要计费相关参数:mode、generationtype、duration、videoquality、aspectratio以及模型特定选项(例如modelversion、generate_audio)。它不需要prompt、image或其他内容字段——这些不影响积分成本。
bash
curl -X POST https://veevid.ai/api/quote \
-H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
-H Content-Type: application/json \
-d {
mode: veo3,
generation_type: text-to-video,
video_quality: standard
}
返回:{requiredcredits: 20, currentbalance: 451, sufficient: true}
如果sufficient为false,在请用户确认前建议更便宜的模型。
步骤2 — 生成视频(文本转视频)
bash
curl -X POST https://veevid.ai/api/generate-video \
-H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
-H Content-Type: application/json \
-d {
prompt: 一只金毛犬在向日葵中奔跑,电影级光影,
mode: veo3,
aspect_ratio: 16:9,
video_quality: standard
}
返回以下之一:
- - 异步情况:{generationid: vgxxx, status: processing, videourl: null, imageurl: null}
- 同步情况:{generationid: vgxxx, status: completed, video_url: https://...}
如果status已经是completed且存在video_url,立即返回给用户,无需轮询。
生成视频 — 图片转视频
如果用户提供了在线图片URL,直接传递:
bash
curl -X POST https://veevid.ai/api/generate-video \
-H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
-H Content-Type: application/json \
-d {
prompt: 通过摄像机运动轻柔地动画化这个场景,
mode: veo3,
aspect_ratio: 16:9,
video_quality: standard,
image: https://example.com/photo.jpg,
generation_type: image-to-video
}
如果用户提供了本地文件,图片URL尚不可知——但积分成本不依赖于此,所以先用计费参数报价,然后上传:
bash
步骤1:报价(定价不需要图片URL)
curl -X POST https://veevid.ai/api/quote \
-H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
-H Content-Type: application/json \
-d {mode: veo3, generation
type: image-to-video, videoquality: standard}
步骤2:上传(仅在用户确认后)
curl -X POST https://veevid.ai/api/storage/upload \
-H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
-F file=@/path/to/image.jpg
返回:{url: https://cdn.veevid.ai/uploads/xxx.jpg, key: uploads/xxx.jpg}
步骤3:使用上传的URL生成
curl -X POST https://veevid.ai/api/generate-video \
-H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
-H Content-Type: application/json \
-d {
prompt: 动画化这个场景,
mode: veo3,
video_quality: standard,
image: https://cdn.veevid.ai/uploads/xxx.jpg,
generation_type: image-to-video
}
步骤3 — 轮询状态
如果生成响应仍为processing,轮询直到status变为completed:
bash
curl -H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
https://veevid.ai/api/video-generation/{generation_id}/status
状态值:processing → completed 或 failed。典型时间:60-180秒。
查看积分余额
bash
curl -H Authorization: Bearer $(cat ~/.config/veevid/api_key) \
https://veevid.ai/api/credits
返回:{success: true, credits: 451, balance: 451}
可用模型
根据用户需求选择模型。积分范围取决于时长、分辨率和质量——在向用户确认前使用/api/quote获取确切成本。
| 模型 | mode | 优势 | 积分范围 |
|---|
| Veo 3.1 | veo3 | 原生音频,经济实惠,固定8秒 | 20 / 140 积分 |
| Grok Imagine |
grok-imagine | 原生音频,最快生成 | 10–60 积分 |
| Veevid 1.0 Pro | veevid-1.0-pro | 音频,宽高比多样 | 12–288 积分 |
| Seedance 1.5 Pro | seedance-1.5-pro | 音频,宽高比多样 | 12–288 积分 |