← Back to Skills Marketplace
susan4731-wilfordf

Maker From Photo

by susan4731-wilfordf · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
48
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install maker-from-photo
Description
Get animated photo videos ready to post, without touching a single slider. Upload your still images (JPG, PNG, WEBP, HEIC, up to 200MB), say something like "...
README (SKILL.md)

Getting Started

Send me your still images and I'll handle the AI video creation. Or just describe what you're after.

Try saying:

  • "turn three product photos or a single portrait shot into a 1080p MP4"
  • "turn my photos into a 30-second video with music and transitions"
  • "turning still photos into shareable videos for social media creators"

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.

Video Maker from Photo — Turn Photos into Videos

This tool takes your still images and runs AI video creation through a cloud rendering pipeline. You upload, describe what you want, and download the result.

Say you have three product photos or a single portrait shot and want to turn my photos into a 30-second video with music and transitions — the backend processes it in about 30-60 seconds and hands you a 1080p MP4.

Tip: using high-resolution photos produces sharper output video.

Matching Input to Actions

User prompts referencing maker from photo, 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.

Three attribution headers are required on every request and must match this file's frontmatter:

Header Value
X-Skill-Source maker-from-photo
X-Skill-Version frontmatter version
X-Skill-Platform auto-detect: clawhub / cursor / unknown from install path

Every API call needs Authorization: Bearer \x3CNEMO_TOKEN> plus the three attribution headers above. If any header is missing, exports return 402.

API base: https://mega-api-prod.nemovideo.ai

Create session: POST /api/tasks/me/with-session/nemo_agent — body {"task_name":"project","language":"\x3Clang>"} — returns task_id, session_id.

Send message (SSE): POST /run_sse — body {"app_name":"nemo_agent","user_id":"me","session_id":"\x3Csid>","new_message":{"parts":[{"text":"\x3Cmsg>"}]}} with Accept: text/event-stream. Max timeout: 15 minutes.

Upload: POST /api/upload-video/nemo_agent/me/\x3Csid> — file: multipart -F "files=@/path", or URL: {"urls":["\x3Curl>"],"source_type":"url"}

Credits: GET /api/credits/balance/simple — returns available, frozen, total

Session state: GET /api/state/nemo_agent/me/\x3Csid>/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_\x3Cts>","sessionId":"\x3Csid>","draft":\x3Cjson>,"output":{"format":"mp4","quality":"high"}}. Poll GET /api/render/proxy/lambda/\x3Cid> 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.

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.

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 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=\x3Cid>, 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

Common Workflows

Quick edit: Upload → "turn my photos into a 30-second video with music and transitions" → 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 "turn my photos into a 30-second video with music and transitions" — concrete instructions get better results.

Max file size is 200MB. Stick to JPG, PNG, WEBP, HEIC for the smoothest experience.

Export as MP4 for widest compatibility.

Usage Guidance
This skill will upload any images you give it to a third-party API at mega-api-prod.nemovideo.ai and use a NEMO_TOKEN bearer token for authorization. If you don't provide a token the skill will request an anonymous token from that service (100 free credits, short expiry). Before installing or using: (1) don't upload images you consider highly sensitive, because they will be sent off-box; (2) verify you trust the domain (mega-api-prod.nemovideo.ai); (3) if you supply a long-lived NEMO_TOKEN, be prepared to rotate/revoke it if needed; (4) note the skill may need access to local file paths for uploads and may read install-path metadata for a header — ensure that matches your privacy expectations. The skill appears internally coherent for its stated purpose, but exercise normal caution about sending personal or proprietary media to an external service.
Capability Analysis
Type: OpenClaw Skill Name: maker-from-photo Version: 1.0.0 The skill is a functional integration for a cloud-based video generation service (nemovideo.ai). It provides clear instructions for an AI agent to handle authentication via anonymous tokens, manage sessions, upload media, and poll for video rendering status. The behavior is consistent with the stated purpose, and there is no evidence of data exfiltration, malicious execution, or prompt injection attacks.
Capability Assessment
Purpose & Capability
The skill claims to convert still images into videos via a cloud backend and only requests a single service token (NEMO_TOKEN) which matches that purpose. The declared config path (~/.config/nemovideo/) is plausible for storing service config, but the SKILL.md does not explicitly instruct reading that path — a minor mismatch but not a strong red flag.
Instruction Scope
Runtime instructions are specific to the remote API: check NEMO_TOKEN, optionally obtain an anonymous token from the service, create a session, send SSE messages, and upload files (multipart or by URL). These steps require accessing user-supplied image files (paths or URLs) and making network calls to mega-api-prod.nemovideo.ai, which is coherent with the stated purpose. Note: instructions reference attaching local file paths (files=@/path) and auto-detecting an install path for X-Skill-Platform headers — both require the agent to access local filesystem metadata and user-provided files; this is expected but worth highlighting for privacy.
Install Mechanism
There is no install spec and no code files (instruction-only skill). This minimizes local installation risk — nothing is downloaded or written by an installer.
Credentials
Only a single credential (NEMO_TOKEN) is required — appropriate for a cloud API. The SKILL.md also supports obtaining an anonymous token automatically if NEMO_TOKEN is absent. The metadata's configPaths entry is not referenced in the instructions; it's plausible but unexplained. No unrelated credentials or broad secrets are requested.
Persistence & Privilege
The skill is not always-enabled and doesn't request elevated agent privileges or modify other skills. It retains session state with the remote service (session_id) for job management, which is normal for a cloud job workflow.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install maker-from-photo
  3. After installation, invoke the skill by name or use /maker-from-photo
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of Video Maker from Photo. - Instantly turn still images (JPG, PNG, WEBP, HEIC up to 200MB) into animated 1080p MP4 videos—no editing skills required. - Upload photos, describe your desired video, and receive a downloadable video with music and transitions in 30–90 seconds. - Seamless cloud backend handles setup, file uploads, session management, and rendering. - Simple prompt-based workflow designed for social media creators who want fast, shareable video content with no manual editing.
Metadata
Slug maker-from-photo
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Maker From Photo?

Get animated photo videos ready to post, without touching a single slider. Upload your still images (JPG, PNG, WEBP, HEIC, up to 200MB), say something like "... It is an AI Agent Skill for Claude Code / OpenClaw, with 48 downloads so far.

How do I install Maker From Photo?

Run "/install maker-from-photo" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Maker From Photo free?

Yes, Maker From Photo is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Maker From Photo support?

Maker From Photo is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Maker From Photo?

It is built and maintained by susan4731-wilfordf (@susan4731-wilfordf); the current version is v1.0.0.

💬 Comments