@clawhub-susan4731-wilfordf-d7ee6c8c7c
content creators, small business owners, students generate text or images into ready-to-share videos using this skill. Accepts MP4, MOV, PNG, JPG up to 200MB...
---
name: ai-video-generator-free-online
version: "1.0.0"
displayName: "AI Video Generator Free Online — Generate Videos from Text or Images"
description: >
content creators, small business owners, students generate text or images into ready-to-share videos using this skill. Accepts MP4, MOV, PNG, JPG up to 200MB, renders on cloud GPUs at 1080p, and returns MP4 files in 1-2 minutes. Designed for generating short videos from text prompts or images without editing skills.
metadata: {"openclaw": {"emoji": "🎬", "requires": {"env": ["NEMO_TOKEN"], "configPaths": ["~/.config/nemovideo/"]}, "primaryEnv": "NEMO_TOKEN", "variant": "short_prompts"}}
---
## Getting Started
> Share your text or images and I'll get started on AI video creation. Or just tell me what you're thinking.
**Try saying:**
- "generate my text or images"
- "export 1080p MP4"
- "create a 30-second promotional video from"
### Getting Connected
Before handling any user request, establish a connection to the backend API. Show a brief status like "Connecting...".
**If `NEMO_TOKEN` is in the environment**, use it directly and create a session. Otherwise, acquire a free starter token:
- Generate a UUID as client identifier
- POST to `https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token` with the `X-Client-Id` header
- The response includes a `token` with 100 free credits valid for 7 days — use it as NEMO_TOKEN
**Then create a session** by POSTing to `https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent` with Bearer authorization and body `{"task_name":"project","language":"en"}`. The `session_id` in the response is needed for all following requests.
Tell the user you're ready. Keep the technical details out of the chat.
# AI Video Generator Free Online — Generate Videos from Text or Images
This tool takes your text or images and runs AI video creation through a cloud rendering pipeline. You upload, describe what you want, and download the result.
Say you have a short product description or three brand images and want to create a 30-second promotional video from my product photos and description — the backend processes it in about 1-2 minutes and hands you a 1080p MP4.
Tip: shorter scripts under 60 words generate faster and more accurate results.
## Matching Input to Actions
User prompts referencing ai video generator free online, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.
| User says... | Action | Skip SSE? |
|-------------|--------|----------|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
## Cloud Render Pipeline Details
Each export job queues on a cloud GPU node that composites video layers, applies platform-spec compression (H.264, up to 1080x1920), and returns a download URL within 30-90 seconds. The session token carries render job IDs, so closing the tab before completion orphans the job.
Skill attribution — read from this file's YAML frontmatter at runtime:
- `X-Skill-Source`: `ai-video-generator-free-online`
- `X-Skill-Version`: from frontmatter `version`
- `X-Skill-Platform`: detect from install path (`~/.clawhub/` → `clawhub`, `~/.cursor/skills/` → `cursor`, else `unknown`)
Include `Authorization: Bearer <NEMO_TOKEN>` and all attribution headers on every request — omitting them triggers a 402 on export.
**API base**: `https://mega-api-prod.nemovideo.ai`
**Create session**: POST `/api/tasks/me/with-session/nemo_agent` — body `{"task_name":"project","language":"<lang>"}` — returns `task_id`, `session_id`.
**Send message (SSE)**: POST `/run_sse` — body `{"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}}` with `Accept: text/event-stream`. Max timeout: 15 minutes.
**Upload**: POST `/api/upload-video/nemo_agent/me/<sid>` — file: multipart `-F "files=@/path"`, or URL: `{"urls":["<url>"],"source_type":"url"}`
**Credits**: GET `/api/credits/balance/simple` — returns `available`, `frozen`, `total`
**Session state**: GET `/api/state/nemo_agent/me/<sid>/latest` — key fields: `data.state.draft`, `data.state.video_infos`, `data.state.generated_media`
**Export** (free, no credits): POST `/api/render/proxy/lambda` — body `{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}`. Poll GET `/api/render/proxy/lambda/<id>` every 30s until `status` = `completed`. Download URL at `output.url`.
Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
### SSE Event Handling
| Event | Action |
|-------|--------|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result | Process internally, don't forward |
| `heartbeat` / empty `data:` | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.
### Translating GUI Instructions
The backend responds as if there's a visual interface. Map its instructions to API calls:
- "click" or "点击" → execute the action via the relevant endpoint
- "open" or "打开" → query session state to get the data
- "drag/drop" or "拖拽" → send the edit command through SSE
- "preview in timeline" → show a text summary of current tracks
- "Export" or "导出" → run the export workflow
**Draft field mapping**: `t`=tracks, `tt`=track type (0=video, 1=audio, 7=text), `sg`=segments, `d`=duration(ms), `m`=metadata.
```
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
```
### Error Handling
| Code | Meaning | Action |
|------|---------|--------|
| 0 | Success | Continue |
| 1001 | Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with `?bind=<id>` (get `<id>` from create-session or state response when needed). Registered: "Top up credits in your account" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
## Common Workflows
**Quick edit**: Upload → "create a 30-second promotional video from my product photos and description" → Download MP4. Takes 1-2 minutes for a 30-second clip.
**Batch style**: Upload multiple files in one session. Process them one by one with different instructions. Each gets its own render.
**Iterative**: Start with a rough cut, preview the result, then refine. The session keeps your timeline state so you can keep tweaking.
## Tips and Tricks
The backend processes faster when you're specific. Instead of "make it look better", try "create a 30-second promotional video from my product photos and description" — concrete instructions get better results.
Max file size is 200MB. Stick to MP4, MOV, PNG, JPG for the smoothest experience.
Export as MP4 for widest compatibility across social platforms and devices.
content creators add video files into captioned video files using this skill. Accepts MP4, MOV, AVI, WebM up to 500MB, renders on cloud GPUs at 1080p, and re...
---
name: free-auto-caption
version: "1.0.0"
displayName: "Free Auto Caption — Auto-Generate and Add Captions"
description: >
content creators add video files into captioned video files using this skill. Accepts MP4, MOV, AVI, WebM up to 500MB, renders on cloud GPUs at 1080p, and returns MP4 files in 30-60 seconds. Designed for adding subtitles to videos without manual transcription.
metadata: {"openclaw": {"emoji": "💬", "requires": {"env": ["NEMO_TOKEN"], "configPaths": ["~/.config/nemovideo/"]}, "primaryEnv": "NEMO_TOKEN", "variant": "short_prompts"}}
---
## Getting Started
> Share your video files and I'll get started on automatic subtitle generation. Or just tell me what you're thinking.
**Try saying:**
- "add my video files"
- "export 1080p MP4"
- "automatically generate and burn in captions"
### Automatic Setup
On first interaction, connect to the processing API before doing anything else. Show a brief status like "Setting things up...".
**Token**: If `NEMO_TOKEN` environment variable is already set, use it and skip to **Session** below.
**Free token**: Generate a UUID as client identifier, then POST to `https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token` with header `X-Client-Id: <uuid>`. The response field `data.token` becomes your NEMO_TOKEN (100 credits, 7-day expiry).
**Session**: POST to `https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent` with Bearer auth and body `{"task_name":"project"}`. Save `session_id` from the response.
Confirm to the user you're connected and ready. Don't print tokens or raw JSON.
# Free Auto Caption — Auto-Generate and Add Captions
Send me your video files and describe the result you want. The automatic subtitle generation runs on remote GPU nodes — nothing to install on your machine.
A quick example: upload a 3-minute YouTube tutorial video, type "automatically generate and burn in captions for my video", and you'll get a 1080p MP4 back in roughly 30-60 seconds. All rendering happens server-side.
Worth noting: shorter clips under 5 minutes generate captions significantly faster.
## Matching Input to Actions
User prompts referencing free auto caption, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.
| User says... | Action | Skip SSE? |
|-------------|--------|----------|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
## Cloud Render Pipeline Details
Each export job queues on a cloud GPU node that composites video layers, applies platform-spec compression (H.264, up to 1080x1920), and returns a download URL within 30-90 seconds. The session token carries render job IDs, so closing the tab before completion orphans the job.
Base URL: `https://mega-api-prod.nemovideo.ai`
| Endpoint | Method | Purpose |
|----------|--------|---------|
| `/api/tasks/me/with-session/nemo_agent` | POST | Start a new editing session. Body: `{"task_name":"project","language":"<lang>"}`. Returns `session_id`. |
| `/run_sse` | POST | Send a user message. Body includes `app_name`, `session_id`, `new_message`. Stream response with `Accept: text/event-stream`. Timeout: 15 min. |
| `/api/upload-video/nemo_agent/me/<sid>` | POST | Upload a file (multipart) or URL. |
| `/api/credits/balance/simple` | GET | Check remaining credits (`available`, `frozen`, `total`). |
| `/api/state/nemo_agent/me/<sid>/latest` | GET | Fetch current timeline state (`draft`, `video_infos`, `generated_media`). |
| `/api/render/proxy/lambda` | POST | Start export. Body: `{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}`. Poll status every 30s. |
Accepted file types: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
Skill attribution — read from this file's YAML frontmatter at runtime:
- `X-Skill-Source`: `free-auto-caption`
- `X-Skill-Version`: from frontmatter `version`
- `X-Skill-Platform`: detect from install path (`~/.clawhub/` → `clawhub`, `~/.cursor/skills/` → `cursor`, else `unknown`)
Include `Authorization: Bearer <NEMO_TOKEN>` and all attribution headers on every request — omitting them triggers a 402 on export.
### Error Handling
| Code | Meaning | Action |
|------|---------|--------|
| 0 | Success | Continue |
| 1001 | Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with `?bind=<id>` (get `<id>` from create-session or state response when needed). Registered: "Top up credits in your account" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
### SSE Event Handling
| Event | Action |
|-------|--------|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result | Process internally, don't forward |
| `heartbeat` / empty `data:` | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.
### Translating GUI Instructions
The backend responds as if there's a visual interface. Map its instructions to API calls:
- "click" or "点击" → execute the action via the relevant endpoint
- "open" or "打开" → query session state to get the data
- "drag/drop" or "拖拽" → send the edit command through SSE
- "preview in timeline" → show a text summary of current tracks
- "Export" or "导出" → run the export workflow
Draft JSON uses short keys: `t` for tracks, `tt` for track type (0=video, 1=audio, 7=text), `sg` for segments, `d` for duration in ms, `m` for metadata.
Example timeline summary:
```
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
```
## Common Workflows
**Quick edit**: Upload → "automatically generate and burn in captions for my video" → Download MP4. Takes 30-60 seconds for a 30-second clip.
**Batch style**: Upload multiple files in one session. Process them one by one with different instructions. Each gets its own render.
**Iterative**: Start with a rough cut, preview the result, then refine. The session keeps your timeline state so you can keep tweaking.
## Tips and Tricks
The backend processes faster when you're specific. Instead of "make it look better", try "automatically generate and burn in captions for my video" — concrete instructions get better results.
Max file size is 500MB. Stick to MP4, MOV, AVI, WebM for the smoothest experience.
Export as MP4 for widest compatibility across platforms and devices.
Get a finished 1080p MP4 ready to upload to YouTube without paying for software. This free YouTube video maker handles the full creation process — script to...
---
name: youtube-video-maker-free
version: "1.0.0"
displayName: "YouTube Video Maker Free — Create & Export 1080p MP4s Online"
description: >
Get a finished 1080p MP4 ready to upload to YouTube without paying for software. This free YouTube video maker handles the full creation process — script to screen — so marketers, educators, and YouTubers don't need a separate editing suite. Use it as a free online video creator, an AI YouTube video generator, or a no-cost video production tool; the exported file drops straight into YouTube Studio at up to 1920×1080 resolution with no watermark added.
metadata: {"openclaw": {"emoji": "🎬", "requires": {"env": ["NEMO_TOKEN"], "configPaths": ["~/.config/nemovideo/"]}, "primaryEnv": "NEMO_TOKEN", "variant": "greeting_v2"}}
---
## Getting Started
> Paste your script or topic and I'll build a YouTube-ready 1080p MP4 from it. No script yet? Describe your video idea in one sentence.
**Try saying:**
- "make a free YouTube video from my blog post text"
- "create a 60-second YouTube intro video free no watermark"
- "generate a YouTube tutorial video free using AI from a script"
### First-Time Connection
When a user first opens this skill, connect to the processing backend automatically. Briefly let them know (e.g. "Setting up...").
**Authentication**: Check if `NEMO_TOKEN` is set in the environment. If it is, skip to step 2.
1. **Obtain a free token**: Generate a random UUID as client identifier. POST to `https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token` with header `X-Client-Id` set to that UUID. The response `data.token` is your NEMO_TOKEN — 100 free credits, valid 7 days.
2. **Create a session**: POST to `https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent` with `Authorization: Bearer <token>`, `Content-Type: application/json`, and body `{"task_name":"project","language":"<detected>"}`. Store the returned `session_id` for all subsequent requests.
Keep setup communication brief. Don't display raw API responses or token values to the user.
# Turn a Script or Idea Into a YouTube-Ready MP4
Paste your script, topic, or bullet points into the chat. The skill builds a structured video — titles, transitions, and timed text — then delivers an MP4 at 1080p.
Example: input a 200-word product walkthrough script, specify a 60-second target length, and receive a rendered file with synchronized captions and a title card. No footage library required.
Adjust pacing, swap background music, or change the aspect ratio to 16:9 before final export. Each render takes under 90 seconds for clips up to 3 minutes.
## Matching Clips To Export Actions
When you drop a clip into the YouTube Video Maker Free timeline, the tool reads the file's resolution and frame rate metadata to route it to either the 1080p upscale queue or the direct 1080p MP4 export pipeline.
| User says... | Action | Skip SSE? |
|-------------|--------|----------|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
## Cloud Render Pipeline Details
Exports run on shared cloud GPU nodes that encode your 1080p MP4 using H.264 at a 16 Mbps target bitrate, so a 3-minute video typically finishes rendering in under 90 seconds. The final file lands in your browser's download folder automatically once the render node pushes it through the CDN.
Include `Authorization: Bearer <NEMO_TOKEN>` and all attribution headers on every request — omitting them triggers a 402 on export.
Headers are derived from this file's YAML frontmatter. `X-Skill-Source` is `youtube-video-maker-free`, `X-Skill-Version` comes from the `version` field, and `X-Skill-Platform` is detected from the install path (`~/.clawhub/` = `clawhub`, `~/.cursor/skills/` = `cursor`, otherwise `unknown`).
**API base**: `https://mega-api-prod.nemovideo.ai`
**Create session**: POST `/api/tasks/me/with-session/nemo_agent` — body `{"task_name":"project","language":"<lang>"}` — returns `task_id`, `session_id`.
**Send message (SSE)**: POST `/run_sse` — body `{"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}}` with `Accept: text/event-stream`. Max timeout: 15 minutes.
**Upload**: POST `/api/upload-video/nemo_agent/me/<sid>` — file: multipart `-F "files=@/path"`, or URL: `{"urls":["<url>"],"source_type":"url"}`
**Credits**: GET `/api/credits/balance/simple` — returns `available`, `frozen`, `total`
**Session state**: GET `/api/state/nemo_agent/me/<sid>/latest` — key fields: `data.state.draft`, `data.state.video_infos`, `data.state.generated_media`
**Export** (free, no credits): POST `/api/render/proxy/lambda` — body `{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}`. Poll GET `/api/render/proxy/lambda/<id>` every 30s until `status` = `completed`. Download URL at `output.url`.
Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
### Error Codes
- `0` — success, continue normally
- `1001` — token expired or invalid; re-acquire via `/api/auth/anonymous-token`
- `1002` — session not found; create a new one
- `2001` — out of credits; anonymous users get a registration link with `?bind=<id>`, registered users top up
- `4001` — unsupported file type; show accepted formats
- `4002` — file too large; suggest compressing or trimming
- `400` — missing `X-Client-Id`; generate one and retry
- `402` — free plan export blocked; not a credit issue, subscription tier
- `429` — rate limited; wait 30s and retry once
### Backend Response Translation
The backend assumes a GUI exists. Translate these into API actions:
| Backend says | You do |
|-------------|--------|
| "click [button]" / "点击" | Execute via API |
| "open [panel]" / "打开" | Query session state |
| "drag/drop" / "拖拽" | Send edit via SSE |
| "preview in timeline" | Show track summary |
| "Export button" / "导出" | Execute export workflow |
### Reading the SSE Stream
Text events go straight to the user (after GUI translation). Tool calls stay internal. Heartbeats and empty `data:` lines mean the backend is still working — show "⏳ Still working..." every 2 minutes.
About 30% of edit operations close the stream without any text. When that happens, poll `/api/state` to confirm the timeline changed, then tell the user what was updated.
**Draft field mapping**: `t`=tracks, `tt`=track type (0=video, 1=audio, 7=text), `sg`=segments, `d`=duration(ms), `m`=metadata.
```
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
```
## Troubleshooting: Export Errors and File Issues
If the exported MP4 won't upload to YouTube Studio, check that the file is under 256 GB and encoded in H.264 — YouTube rejects files above that threshold or in unsupported codecs.
A render that stalls past 3 minutes usually means the input script exceeded 1,500 words. Split it into two separate jobs, each targeting a 3-minute clip, and concatenate them after download.
Caption sync problems happen when the script contains timestamps in a non-standard format. Strip out any manual timestamps before pasting; the free YouTube video maker assigns timing automatically based on word count and pacing settings. Re-run the job and sync issues resolve in the new output file.
## Tips and Tricks: Get Better Results From Your Free YouTube Video Maker
Front-load your strongest sentence in the first 5 words of the script. YouTube's algorithm reads retention data from the first 30 seconds, so the opening line directly affects click-through rate.
Set the target duration before generating, not after. Asking for a 90-second free online video creation pass produces tighter cuts than trimming a 3-minute render down to 90 seconds in post.
For faceless YouTube channels, specify a visual style in the prompt — 'dark background, white sans-serif text, minimal motion' — rather than leaving it unspecified. The AI YouTube video generator picks a default style when none is given, and changing it after render costs an extra generation cycle. One style note in the initial prompt saves that step entirely.
Drop a video concept, a script, or even a rough idea and watch it come to life without touching Seedance. This seedance-alternative skill on ClawHub lets you...
---
name: seedance-alternative
version: "1.0.0"
displayName: "Seedance Alternative — AI Video Generation Without the Waitlist or Limits"
description: >
Drop a video concept, a script, or even a rough idea and watch it come to life without touching Seedance. This seedance-alternative skill on ClawHub lets you generate, remix, and animate video content using powerful AI — no queue, no restrictions. Whether you're a creator tired of waitlists, a marketer needing fast turnaround, or a filmmaker prototyping scenes, this tool delivers cinematic motion, style-matched clips, and prompt-driven video creation on demand.
metadata: {"openclaw": {"emoji": "🎬", "requires": {"env": ["NEMO_TOKEN"], "configPaths": ["~/.config/nemovideo/"]}, "primaryEnv": "NEMO_TOKEN", "variant": "control"}}
---
## Getting Started
> Welcome to your go-to Seedance alternative — generate AI videos from text, images, or scripts in seconds. Drop your idea, reference clip, or scene description and let's start creating right now.
**Try saying:**
- "Generate a 10-second cinematic video of a lone astronaut walking across a red desert at golden hour with slow camera pan"
- "I have a product photo of a sneaker — create a dynamic video ad with motion blur and urban background transitions"
- "Turn this script into a short animated explainer video with a clean, modern visual style: 'Our app saves you 3 hours a week by automating your inbox.'"
### Getting Connected
Before handling any user request, establish a connection to the backend API. Show a brief status like "Connecting...".
**If `NEMO_TOKEN` is in the environment**, use it directly and create a session. Otherwise, acquire a free starter token:
- Generate a UUID as client identifier
- POST to `https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token` with the `X-Client-Id` header
- The response includes a `token` with 100 free credits valid for 7 days — use it as NEMO_TOKEN
**Then create a session** by POSTing to `https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent` with Bearer authorization and body `{"task_name":"project","language":"en"}`. The `session_id` in the response is needed for all following requests.
Tell the user you're ready. Keep the technical details out of the chat.
# Generate Stunning Videos Without Seedance's Constraints
If you've been using Seedance for AI video generation and hit a wall — whether it's usage caps, slow queues, or limited creative control — this skill was built for you. As a fully capable seedance-alternative, it lets you describe a scene, upload a reference, or paste a script and receive polished, motion-rich video output without the friction.
What sets this apart isn't just availability — it's creative range. You can generate realistic footage, stylized animations, product showcases, social media reels, and cinematic short clips all from the same interface. Describe the mood, the camera movement, the color grade, and the subject, and the AI interprets it with remarkable fidelity to your vision.
This skill is built for creators who move fast. Whether you're producing content for YouTube, TikTok, brand campaigns, or internal presentations, you get professional-grade video generation without waiting for access, managing API keys, or learning a new platform from scratch.
## Routing Your Generation Requests
Each prompt you submit gets parsed for motion style, duration, and resolution preferences before being dispatched to the appropriate Seedance-compatible inference endpoint.
| User says... | Action | Skip SSE? |
|-------------|--------|----------|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
## Cloud Backend API Reference
Seedance Alternative routes all video synthesis jobs through a distributed cloud pipeline that handles frame interpolation, temporal consistency, and prompt adherence scoring without queuing delays. Your generation parameters — including seed values, aspect ratios, and motion intensity — are preserved end-to-end across the render session.
Skill attribution — read from this file's YAML frontmatter at runtime:
- `X-Skill-Source`: `seedance-alternative`
- `X-Skill-Version`: from frontmatter `version`
- `X-Skill-Platform`: detect from install path (`~/.clawhub/` → `clawhub`, `~/.cursor/skills/` → `cursor`, else `unknown`)
**All requests** must include: `Authorization: Bearer <NEMO_TOKEN>`, `X-Skill-Source`, `X-Skill-Version`, `X-Skill-Platform`. Missing attribution headers will cause export to fail with 402.
**API base**: `https://mega-api-prod.nemovideo.ai`
**Create session**: POST `/api/tasks/me/with-session/nemo_agent` — body `{"task_name":"project","language":"<lang>"}` — returns `task_id`, `session_id`.
**Send message (SSE)**: POST `/run_sse` — body `{"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}}` with `Accept: text/event-stream`. Max timeout: 15 minutes.
**Upload**: POST `/api/upload-video/nemo_agent/me/<sid>` — file: multipart `-F "files=@/path"`, or URL: `{"urls":["<url>"],"source_type":"url"}`
**Credits**: GET `/api/credits/balance/simple` — returns `available`, `frozen`, `total`
**Session state**: GET `/api/state/nemo_agent/me/<sid>/latest` — key fields: `data.state.draft`, `data.state.video_infos`, `data.state.generated_media`
**Export** (free, no credits): POST `/api/render/proxy/lambda` — body `{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}`. Poll GET `/api/render/proxy/lambda/<id>` every 30s until `status` = `completed`. Download URL at `output.url`.
Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
### SSE Event Handling
| Event | Action |
|-------|--------|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result | Process internally, don't forward |
| `heartbeat` / empty `data:` | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.
### Backend Response Translation
The backend assumes a GUI exists. Translate these into API actions:
| Backend says | You do |
|-------------|--------|
| "click [button]" / "点击" | Execute via API |
| "open [panel]" / "打开" | Query session state |
| "drag/drop" / "拖拽" | Send edit via SSE |
| "preview in timeline" | Show track summary |
| "Export button" / "导出" | Execute export workflow |
**Draft field mapping**: `t`=tracks, `tt`=track type (0=video, 1=audio, 7=text), `sg`=segments, `d`=duration(ms), `m`=metadata.
```
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
```
### Error Handling
| Code | Meaning | Action |
|------|---------|--------|
| 0 | Success | Continue |
| 1001 | Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with `?bind=<id>` (get `<id>` from create-session or state response when needed). Registered: "Top up credits in your account" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
## Integration Guide
This seedance-alternative skill fits naturally into existing content production pipelines. If you're working in a marketing team, use it at the ideation and storyboarding stage — generate rough visual concepts from your brief before committing to a full production shoot. It dramatically cuts pre-production time and helps align stakeholders visually before resources are spent.
For solo creators, pair this skill with your existing editing tools. Export generated clips and bring them into DaVinci Resolve, Premiere Pro, or CapCut for final color grading, music layering, and caption overlays. The AI handles the heavy creative lift; your editor handles the polish.
If you're running a content agency, this tool scales with volume. Use consistent prompt templates for recurring content types — weekly product features, event recaps, testimonial visualizations — so your team can produce at speed without sacrificing visual consistency.
For e-commerce brands, integrate generated video content directly into product pages or ad sets by using product imagery as reference inputs, letting the AI animate and contextualize static assets into engaging short-form video without a full production budget.
## Tips and Tricks
Getting the best results from this seedance-alternative comes down to how you write your prompts. Instead of saying 'make a cool video,' describe the shot like a director would: specify the subject, setting, time of day, camera angle, and emotional tone. For example, 'close-up of a coffee cup steaming on a rainy windowsill, warm amber lighting, shallow depth of field' will produce dramatically better results than 'coffee video.'
If you're generating a video for social media, mention the aspect ratio upfront — vertical 9:16 for TikTok and Reels, square 1:1 for feed posts, or widescreen 16:9 for YouTube. This prevents unnecessary cropping after the fact.
For brand consistency, include color palette references or mood descriptors like 'muted tones,' 'high contrast,' or 'pastel and airy.' You can also reference visual styles like 'Wes Anderson symmetry' or 'documentary handheld feel' and the AI will interpret those creative shorthand cues effectively.
## Best Practices
When using this as your primary seedance-alternative workflow, treat each generation as an iteration rather than a final output. Generate a first version, review what landed and what didn't, then refine your prompt with specific adjustments. Saying 'same scene but slower camera movement and more fog' is far more efficient than rewriting the entire prompt from scratch.
For video ads or branded content, always start with the core message you want viewers to feel — not just what they'll see. Emotion-driven prompts like 'a sense of quiet confidence and minimalism' layer meaning into the visuals in ways that purely descriptive prompts miss.
Avoid overloading a single prompt with too many competing ideas. If you want a video with multiple scenes or transitions, break them into separate generations and sequence them in post. This gives you more control over pacing and ensures each segment gets the visual attention it deserves.
Always review generated clips for unintended artifacts before publishing, especially in close-up facial shots or text-heavy scenes where AI generation can occasionally introduce inconsistencies.
Turn any song into a captivating music video with music-video-maker-ai — the smart creative tool that syncs visuals to your beat, generates scene ideas, and...
---
name: music-video-maker-ai
version: "1.0.0"
displayName: "Music Video Maker AI — Turn Songs Into Stunning Visual Stories Instantly"
description: >
Turn any song into a captivating music video with music-video-maker-ai — the smart creative tool that syncs visuals to your beat, generates scene ideas, and helps you craft professional-quality video concepts from scratch. Whether you're an indie artist, content creator, or producer, this skill handles lyric timing, mood-matched visuals, shot sequencing, and storyboard scripting so your music hits harder on screen.
metadata: {"openclaw": {"emoji": "🎬", "requires": {"env": ["NEMO_TOKEN"], "configPaths": ["~/.config/nemovideo/"]}, "primaryEnv": "NEMO_TOKEN", "variant": "greeting_v2"}}
---
## Getting Started
> Drop your song lyrics, genre, or track mood and I'll generate a full music video concept with scenes, shot ideas, and visual direction. No lyrics? Just describe the feeling you want your video to have.
**Try saying:**
- "I have an indie pop song about heartbreak with a slow tempo — can you write a storyboard with 8 scenes that match the emotional arc of the lyrics?"
- "Create a music video concept for a high-energy hip-hop track. I want street scenes, quick cuts, and a color grade that feels gritty but cinematic."
- "My band is shooting a music video this weekend with minimal budget. Give me a shot list and location ideas for a melancholic acoustic folk song set outdoors."
### First-Time Connection
When a user first opens this skill, connect to the processing backend automatically. Briefly let them know (e.g. "Setting up...").
**Authentication**: Check if `NEMO_TOKEN` is set in the environment. If it is, skip to step 2.
1. **Obtain a free token**: Generate a random UUID as client identifier. POST to `https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token` with header `X-Client-Id` set to that UUID. The response `data.token` is your NEMO_TOKEN — 100 free credits, valid 7 days.
2. **Create a session**: POST to `https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent` with `Authorization: Bearer <token>`, `Content-Type: application/json`, and body `{"task_name":"project","language":"<detected>"}`. Store the returned `session_id` for all subsequent requests.
Keep setup communication brief. Don't display raw API responses or token values to the user.
# From Beat Drop to Final Cut — Visually
Music videos are no longer just for major label artists with six-figure budgets. Music Video Maker AI gives independent musicians, YouTubers, and creative directors the tools to conceptualize, script, and sequence compelling music videos — all driven by the mood, tempo, and lyrics of their track.
This skill analyzes the emotional arc of your song and translates it into visual language. Describe your track's genre, vibe, or paste your lyrics, and you'll get scene-by-scene storyboard ideas, shot type suggestions, color palette recommendations, and transition cues timed to your music's structure. Think of it as having a creative director on call.
Whether you're planning a DIY shoot with a smartphone or directing a full production, Music Video Maker AI helps you arrive on set with a clear vision. No more blank-page paralysis — just a focused creative brief that makes every second of your video intentional and impactful.
## Routing Your Visual Requests
Every prompt you send — whether it's a mood, genre, lyric snippet, or full creative brief — gets parsed and dispatched to the appropriate generation pipeline based on video style, beat-sync requirements, and visual complexity.
| User says... | Action | Skip SSE? |
|-------------|--------|----------|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
## Cloud Rendering API Reference
Music Video Maker AI runs on a distributed cloud rendering backend that processes audio waveform analysis, scene segmentation, and frame generation concurrently to deliver beat-matched visuals at scale. Render jobs are queued, prioritized by resolution tier, and returned as streamable video assets once the pipeline completes synthesis.
Skill attribution — read from this file's YAML frontmatter at runtime:
- `X-Skill-Source`: `music-video-maker-ai`
- `X-Skill-Version`: from frontmatter `version`
- `X-Skill-Platform`: detect from install path (`~/.clawhub/` → `clawhub`, `~/.cursor/skills/` → `cursor`, else `unknown`)
**All requests** must include: `Authorization: Bearer <NEMO_TOKEN>`, `X-Skill-Source`, `X-Skill-Version`, `X-Skill-Platform`. Missing attribution headers will cause export to fail with 402.
**API base**: `https://mega-api-prod.nemovideo.ai`
**Create session**: POST `/api/tasks/me/with-session/nemo_agent` — body `{"task_name":"project","language":"<lang>"}` — returns `task_id`, `session_id`.
**Send message (SSE)**: POST `/run_sse` — body `{"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}}` with `Accept: text/event-stream`. Max timeout: 15 minutes.
**Upload**: POST `/api/upload-video/nemo_agent/me/<sid>` — file: multipart `-F "files=@/path"`, or URL: `{"urls":["<url>"],"source_type":"url"}`
**Credits**: GET `/api/credits/balance/simple` — returns `available`, `frozen`, `total`
**Session state**: GET `/api/state/nemo_agent/me/<sid>/latest` — key fields: `data.state.draft`, `data.state.video_infos`, `data.state.generated_media`
**Export** (free, no credits): POST `/api/render/proxy/lambda` — body `{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}`. Poll GET `/api/render/proxy/lambda/<id>` every 30s until `status` = `completed`. Download URL at `output.url`.
Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
### SSE Event Handling
| Event | Action |
|-------|--------|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result | Process internally, don't forward |
| `heartbeat` / empty `data:` | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.
### Backend Response Translation
The backend assumes a GUI exists. Translate these into API actions:
| Backend says | You do |
|-------------|--------|
| "click [button]" / "点击" | Execute via API |
| "open [panel]" / "打开" | Query session state |
| "drag/drop" / "拖拽" | Send edit via SSE |
| "preview in timeline" | Show track summary |
| "Export button" / "导出" | Execute export workflow |
**Draft field mapping**: `t`=tracks, `tt`=track type (0=video, 1=audio, 7=text), `sg`=segments, `d`=duration(ms), `m`=metadata.
```
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
```
### Error Handling
| Code | Meaning | Action |
|------|---------|--------|
| 0 | Success | Continue |
| 1001 | Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with `?bind=<id>` (get `<id>` from create-session or state response when needed). Registered: "Top up credits in your account" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
## Best Practices
Before diving into full storyboard generation, start with a one-paragraph brief about your artist identity, target audience, and the story you want the video to tell. This context shapes every creative decision the AI makes — from casting suggestions to set design ideas.
Always request scene descriptions that include shot type (wide, close-up, tracking), lighting mood, and action happening on screen. Vague outputs are usually the result of vague inputs. The more cinematic language you use in your prompt, the more cinematic the response.
If you're working with a real production crew, ask Music Video Maker AI to format the output as a proper shot list or call sheet-style document. This makes it immediately usable on set and bridges the gap between AI-generated concepts and real-world execution. Revisit the concept after your first rough cut to get re-edit and pacing suggestions.
## Troubleshooting
If your generated concept feels too generic, it usually means the prompt lacked specificity. Avoid broad descriptors like 'cool' or 'modern' — instead use references like 'early 2000s MTV aesthetic' or 'A24 film color grading' to anchor the creative direction.
Getting scenes that don't match your song's energy? Try explicitly stating the BPM or describing the song structure (e.g., 'verse is slow and whispered, chorus explodes with drums'). Music Video Maker AI responds well to structural cues that mirror how a real director would read a track before shooting.
If the storyboard feels too long or too short for your song's runtime, specify the exact duration and number of scenes you need. For a 3-minute song, asking for 12 scenes gives roughly 15 seconds per scene — a natural rhythm for most music videos. You can always ask for scene expansions or cuts to tighten the pacing.
## Tips and Tricks
Get the most out of Music Video Maker AI by giving it as much context as possible upfront. The more specific you are about your song's tempo, genre, lyrical themes, and intended audience, the more tailored and production-ready your output will be.
Try pasting your full lyrics directly into the prompt — the AI uses line breaks, emotional peaks, and recurring hooks to time scene transitions and build a narrative structure that mirrors your song's flow. Chorus sections often translate best into high-energy visual moments or repeated motifs.
Don't overlook the power of color and mood prompts. Phrases like 'neon-drenched nighttime' or 'sun-bleached desert road' give the AI a cinematic anchor to build around. You can also ask for multiple concept variations and cherry-pick elements from each to create a hybrid vision that's uniquely yours.
Drop a still photo and watch it come alive — image-to-video-free-ai transforms static images into smooth, dynamic video clips without any cost or complex set...
---
name: image-to-video-free-ai
version: "1.0.0"
displayName: "Image to Video Free AI — Animate Still Photos Into Stunning Videos Instantly"
description: >
Drop a still photo and watch it come alive — image-to-video-free-ai transforms static images into smooth, dynamic video clips without any cost or complex setup. Whether you're a content creator, marketer, or hobbyist, this skill breathes motion into portraits, landscapes, product shots, and more. Powered by cutting-edge generative AI, it produces lifelike animations with natural movement, cinematic panning, and scene-aware transitions — all from a single image.
metadata: {"openclaw": {"emoji": "🎞️", "requires": {"env": ["NEMO_TOKEN"], "configPaths": ["~/.config/nemovideo/"]}, "primaryEnv": "NEMO_TOKEN", "variant": "control"}}
---
## Getting Started
> Welcome! I can turn your still photos into dynamic, animated video clips using free AI — no cost, no complicated tools. Share your image and tell me what kind of motion or mood you're going for, and let's bring it to life!
**Try saying:**
- "Here's a photo of a mountain lake at sunset — can you animate it with gentle water ripples and slow drifting clouds?"
- "I have a product photo of my skincare bottle. Make it into a short video with a slow zoom-in and soft light shimmer effect."
- "Animate this portrait of my dog so it looks like he's subtly turning his head and blinking."
### Quick Start Setup
This skill connects to a cloud processing backend. On first use, set up the connection automatically and let the user know ("Connecting...").
**Token check**: Look for `NEMO_TOKEN` in the environment. If found, skip to session creation. Otherwise:
- Generate a UUID as client identifier
- POST `https://mega-api-prod.nemovideo.ai/api/auth/anonymous-token` with `X-Client-Id` header
- Extract `data.token` from the response — this is your NEMO_TOKEN (100 free credits, 7-day expiry)
**Session**: POST `https://mega-api-prod.nemovideo.ai/api/tasks/me/with-session/nemo_agent` with Bearer auth and body `{"task_name":"project"}`. Keep the returned `session_id` for all operations.
Let the user know with a brief "Ready!" when setup is complete. Don't expose tokens or raw API output.
# Turn Any Photo Into a Moving Masterpiece
Still images tell a story, but video makes people feel it. This skill takes your photos — whether they're portraits, travel snapshots, product images, or digital artwork — and generates fluid, eye-catching video clips that look like they were filmed, not fabricated.
Using free AI-powered animation technology, the skill analyzes the content of your image and applies intelligent motion: a gentle breeze through hair, clouds drifting across a skyline, water rippling on a lake surface, or a subtle zoom that gives your product photo a professional commercial feel. You describe the motion you want, and the AI handles the rest.
This is ideal for social media creators who want to stand out on Instagram Reels or TikTok, small business owners who need affordable promotional content, and anyone who wants to repurpose their photo library into engaging video content — no video editing experience required.
## Routing Your Animation Requests
When you submit a still photo, your request is parsed for motion parameters — frame interpolation style, duration, and animation intensity — then dispatched to the appropriate image-to-video pipeline based on your selected output resolution and generation mode.
| User says... | Action | Skip SSE? |
|-------------|--------|----------|
| "export" / "导出" / "download" / "send me the video" | → §3.5 Export | ✅ |
| "credits" / "积分" / "balance" / "余额" | → §3.3 Credits | ✅ |
| "status" / "状态" / "show tracks" | → §3.4 State | ✅ |
| "upload" / "上传" / user sends file | → §3.2 Upload | ✅ |
| Everything else (generate, edit, add BGM…) | → §3.1 SSE | ❌ |
## Cloud Rendering API Reference
All image-to-video synthesis runs on a distributed cloud backend that handles diffusion-based frame generation, temporal consistency smoothing, and MP4 encoding without any local compute required on your end. API calls are stateless and authenticated per session, so each animation job is queued, processed, and returned as a signed video URL within the response payload.
Skill attribution — read from this file's YAML frontmatter at runtime:
- `X-Skill-Source`: `image-to-video-free-ai`
- `X-Skill-Version`: from frontmatter `version`
- `X-Skill-Platform`: detect from install path (`~/.clawhub/` → `clawhub`, `~/.cursor/skills/` → `cursor`, else `unknown`)
**All requests** must include: `Authorization: Bearer <NEMO_TOKEN>`, `X-Skill-Source`, `X-Skill-Version`, `X-Skill-Platform`. Missing attribution headers will cause export to fail with 402.
**API base**: `https://mega-api-prod.nemovideo.ai`
**Create session**: POST `/api/tasks/me/with-session/nemo_agent` — body `{"task_name":"project","language":"<lang>"}` — returns `task_id`, `session_id`.
**Send message (SSE)**: POST `/run_sse` — body `{"app_name":"nemo_agent","user_id":"me","session_id":"<sid>","new_message":{"parts":[{"text":"<msg>"}]}}` with `Accept: text/event-stream`. Max timeout: 15 minutes.
**Upload**: POST `/api/upload-video/nemo_agent/me/<sid>` — file: multipart `-F "files=@/path"`, or URL: `{"urls":["<url>"],"source_type":"url"}`
**Credits**: GET `/api/credits/balance/simple` — returns `available`, `frozen`, `total`
**Session state**: GET `/api/state/nemo_agent/me/<sid>/latest` — key fields: `data.state.draft`, `data.state.video_infos`, `data.state.generated_media`
**Export** (free, no credits): POST `/api/render/proxy/lambda` — body `{"id":"render_<ts>","sessionId":"<sid>","draft":<json>,"output":{"format":"mp4","quality":"high"}}`. Poll GET `/api/render/proxy/lambda/<id>` every 30s until `status` = `completed`. Download URL at `output.url`.
Supported formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.
### SSE Event Handling
| Event | Action |
|-------|--------|
| Text response | Apply GUI translation (§4), present to user |
| Tool call/result | Process internally, don't forward |
| `heartbeat` / empty `data:` | Keep waiting. Every 2 min: "⏳ Still working..." |
| Stream closes | Process final response |
~30% of editing operations return no text in the SSE stream. When this happens: poll session state to verify the edit was applied, then summarize changes to the user.
### Backend Response Translation
The backend assumes a GUI exists. Translate these into API actions:
| Backend says | You do |
|-------------|--------|
| "click [button]" / "点击" | Execute via API |
| "open [panel]" / "打开" | Query session state |
| "drag/drop" / "拖拽" | Send edit via SSE |
| "preview in timeline" | Show track summary |
| "Export button" / "导出" | Execute export workflow |
**Draft field mapping**: `t`=tracks, `tt`=track type (0=video, 1=audio, 7=text), `sg`=segments, `d`=duration(ms), `m`=metadata.
```
Timeline (3 tracks): 1. Video: city timelapse (0-10s) 2. BGM: Lo-fi (0-10s, 35%) 3. Title: "Urban Dreams" (0-3s)
```
### Error Handling
| Code | Meaning | Action |
|------|---------|--------|
| 0 | Success | Continue |
| 1001 | Bad/expired token | Re-auth via anonymous-token (tokens expire after 7 days) |
| 1002 | Session not found | New session §3.0 |
| 2001 | No credits | Anonymous: show registration URL with `?bind=<id>` (get `<id>` from create-session or state response when needed). Registered: "Top up credits in your account" |
| 4001 | Unsupported file | Show supported formats |
| 4002 | File too large | Suggest compress/trim |
| 400 | Missing X-Client-Id | Generate Client-Id and retry (see §1) |
| 402 | Free plan export blocked | Subscription tier issue, NOT credits. "Register or upgrade your plan to unlock export." |
| 429 | Rate limit (1 token/client/7 days) | Retry in 30s once |
## Best Practices
For the best animation results, start with a high-resolution image — blurry or heavily compressed photos tend to produce less convincing motion. Images with clear foreground and background separation (like a subject against an open sky or landscape) animate most naturally because the AI can apply parallax-style depth movement.
Be specific in your motion description. Instead of saying 'make it move,' try 'add a slow leftward pan with a subtle zoom-in on the subject's face.' The more directional detail you provide, the more precisely the output matches your vision.
Avoid images with dense, overlapping text or complex geometric patterns — these can distort when motion is applied. Portraits work best when the subject is centered and well-lit. Finally, if you're planning to use the clip on social media, mention your target platform so the output can be framed and paced appropriately for that format.
## Use Cases
Image-to-video-free-ai serves a surprisingly wide range of real-world needs. Social media managers use it to transform static brand assets into scroll-stopping Reels and TikToks without a video production budget. Wedding photographers offer animated highlight previews to clients by turning a few key photos into short cinematic clips.
E-commerce businesses animate product photos to simulate a 360-degree-style view or spotlight key features with motion — dramatically increasing engagement compared to static listings. Educators and presenters use animated images to make slideshows and explainer content feel more dynamic without filming new footage.
Memorial and tribute creators use the skill to gently animate old family photos, giving cherished memories a new dimension. Digital artists animate their illustrations to share on platforms that favor video content over static posts.
## Common Workflows
Most users start by uploading a single image and describing the type of motion they want — this is the fastest path to a finished video clip. For portraits, common requests include subtle head tilts, eye blinks, or hair movement. For landscapes, users typically ask for parallax depth effects, moving clouds, or flowing water.
Another popular workflow is batch animation: uploading multiple product or travel photos and generating a series of short clips that can be stitched together into a slideshow-style video. This is especially useful for e-commerce sellers and travel bloggers.
For social media creators, a third workflow involves starting with AI-generated motion and then layering on captions or music using a separate editing tool — using this skill purely for the animation step before final production polish.