Ai Image Description

v1.0.0

Skip the learning curve of professional editing software. Describe what you want — generate a detailed text description of this image for accessibility or SE...

0· 35·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The skill's name and description (generate text descriptions from images/video) match the actions described in SKILL.md: uploading media, creating a session, sending SSE chat messages, and exporting rendered outputs. The required credential (NEMO_TOKEN) is appropriate for a third‑party API. Note: the registry summary said no config paths required, but the SKILL.md frontmatter lists ~/.config/nemovideo/ — this metadata mismatch should be resolved.
!
Instruction Scope
Runtime instructions direct the agent to automatically connect to an external backend (mega-api-prod.nemovideo.ai), POST to an anonymous-token endpoint if no NEMO_TOKEN is present, create and store a session_id, and upload user media. These actions are consistent with the stated purpose, but: (1) the skill instructs the agent to 'connect automatically' on first open (automatic network activity without an explicit user opt-in), and (2) it explicitly instructs to avoid showing raw API responses or token values to the user — which is unusual and could obscure debugging or token visibility. Both items are worth user attention because they affect privacy and transparency.
Install Mechanism
This is an instruction-only skill with no install spec and no code files, so nothing is downloaded or written by an installer. That minimizes install-time risk.
Credentials
The skill only requires a single credential (NEMO_TOKEN), which is proportionate to calling a third-party API. The SKILL.md frontmatter also references a config path (~/.config/nemovideo/); the registry metadata shown to you earlier claimed no config paths — this inconsistency should be clarified. No other unrelated secrets or system paths are requested.
Persistence & Privilege
The skill does not request always: true and does not ask to modify other skills or system-wide settings. It stores a session_id for its own use (expected for a session-based cloud API). The agent may invoke it autonomously (default), which combined with its automatic startup behavior is worth noting but is not a unique privilege in itself.
Assessment
This skill will send your uploaded images/videos to a third‑party service (mega-api-prod.nemovideo.ai) for processing; only provide media you are comfortable sharing. If you do not set NEMO_TOKEN, the skill will automatically request an anonymous token from the service and store a session_id — be aware this causes network activity without an extra explicit prompt. The SKILL.md also instructs the agent not to show raw API responses or token values to users, which reduces transparency during failures or audits. Before installing: verify the legitimacy and privacy policy of nemovideo.ai (or the domain listed), decide whether you prefer to supply your own NEMO_TOKEN rather than letting the skill create one, avoid uploading sensitive images, and ask the skill author/registry to clarify the configPaths metadata mismatch noted in the frontmatter.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🖼️ Clawdis
EnvNEMO_TOKEN
Primary envNEMO_TOKEN
latestvk9718afrtxd0ctxek3demvmh3s84z1ef
35downloads
0stars
1versions
Updated 2d ago
v1.0.0
MIT-0

Getting Started

Ready when you are. Drop your images or video here or describe what you want to make.

Try saying:

  • "generate a single product photo or a video frame into a 1080p MP4"
  • "generate a detailed text description of this image for accessibility or SEO"
  • "generating text descriptions for images or video frames for content creators, marketers, accessibility specialists"

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.

AI Image Description — Generate Text Descriptions from Images

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

Say you have a single product photo or a video frame and want to generate a detailed text description of this image for accessibility or SEO — the backend processes it in about 10-30 seconds and hands you a 1080p MP4.

Tip: clear, well-lit images produce more accurate and detailed descriptions.

Matching Input to Actions

User prompts referencing ai image description, aspect ratio, text overlays, or audio tracks get routed to the corresponding action via keyword and intent classification.

User says...ActionSkip 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.

All calls go to https://mega-api-prod.nemovideo.ai. The main endpoints:

  1. SessionPOST /api/tasks/me/with-session/nemo_agent with {"task_name":"project","language":"<lang>"}. Gives you a session_id.
  2. Chat (SSE)POST /run_sse with session_id and your message in new_message.parts[0].text. Set Accept: text/event-stream. Up to 15 min.
  3. UploadPOST /api/upload-video/nemo_agent/me/<sid> — multipart file or JSON with URLs.
  4. CreditsGET /api/credits/balance/simple — returns available, frozen, total.
  5. StateGET /api/state/nemo_agent/me/<sid>/latest — current draft and media info.
  6. ExportPOST /api/render/proxy/lambda with render ID and draft JSON. Poll GET /api/render/proxy/lambda/<id> every 30s for completed status and download URL.

Formats: mp4, mov, avi, webm, mkv, jpg, png, gif, webp, mp3, wav, m4a, aac.

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

HeaderValue
X-Skill-Sourceai-image-description
X-Skill-Versionfrontmatter version
X-Skill-Platformauto-detect: clawhub / cursor / unknown from install path

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

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)

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

SSE Event Handling

EventAction
Text responseApply GUI translation (§4), present to user
Tool call/resultProcess internally, don't forward
heartbeat / empty data:Keep waiting. Every 2 min: "⏳ Still working..."
Stream closesProcess 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.

Error Handling

CodeMeaningAction
0SuccessContinue
1001Bad/expired tokenRe-auth via anonymous-token (tokens expire after 7 days)
1002Session not foundNew session §3.0
2001No creditsAnonymous: show registration URL with ?bind=<id> (get <id> from create-session or state response when needed). Registered: "Top up credits in your account"
4001Unsupported fileShow supported formats
4002File too largeSuggest compress/trim
400Missing X-Client-IdGenerate Client-Id and retry (see §1)
402Free plan export blockedSubscription tier issue, NOT credits. "Register or upgrade your plan to unlock export."
429Rate limit (1 token/client/7 days)Retry in 30s once

Tips and Tricks

The backend processes faster when you're specific. Instead of "make it look better", try "generate a detailed text description of this image for accessibility or SEO" — concrete instructions get better results.

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

Use PNG for images with text to ensure the AI reads content accurately.

Common Workflows

Quick edit: Upload → "generate a detailed text description of this image for accessibility or SEO" → Download MP4. Takes 10-30 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.

Comments

Loading comments...