neodomain-ai
v1.0.0Generate images and videos via Neodomain AI API. Supports text-to-image, image-to-video, text-to-video, and motion control video generation. Use when user wa...
Security Scan
OpenClaw
Benign
medium confidencePurpose & Capability
Name/description align with the code and SKILL.md: scripts call Neodomain endpoints (story.neodomain.cn) to generate images/videos and perform authentication. Requiring python3 and NEODOMAIN_ACCESS_TOKEN is appropriate for this purpose.
Instruction Scope
Runtime instructions and scripts stay within the generation workflow, but several scripts (e.g., batch_video.py) upload user files to the provider's OSS (wlpaas.oss-cn-shanghai.aliyuncs.com) via temporary STS credentials. The SKILL.md mentions authentication but does not explicitly warn that user images/storyboards will be uploaded to the provider's OSS; the login flow requires the user to provide a phone/email and verification code (expected for token issuance).
Install Mechanism
This is instruction-only (no platform install spec), which reduces install risk. However, some scripts import third-party Python packages (notably oss2 in batch_video.py) but the SKILL.md / INSTALL.md do not declare or automate these Python dependency installs—users will need to pip-install dependencies manually. There are no external archive downloads or short/unknown URLs used for installing code.
Credentials
Only NEODOMAIN_ACCESS_TOKEN is required and is the primary credential; that is proportional to the stated functionality. The login script collects a contact (phone/email) and verification code from the user to obtain the token, which is consistent with the service's auth flow.
Persistence & Privilege
The skill is not forced-always or privileged; it doesn't request persistent platform privileges or modify other skills. Autonomous invocation is allowed by default (normal for skills) but not excessive here.
Assessment
This package appears to be a straightforward client for the Neodomain service, but check the following before installing or running it:
- Understand that images/videos and storyboard files you provide may be uploaded to the provider's OSS (wlpaas.oss-cn-shanghai.aliyuncs.com) via temporary STS credentials—do not send sensitive/private images if you don't trust the service.
- You will need to provide NEODOMAIN_ACCESS_TOKEN (or run the login flow which asks for your phone/email and verification code). Keep that token secret and avoid committing it to files or shared shells.
- The scripts import a third-party Python library (oss2) but the README does not automatically install Python deps—install required packages (e.g., pip install oss2) in a controlled virtualenv before running.
- Review network endpoints (story.neodomain.cn and wlpaas.oss-cn-shanghai.aliyuncs.com) to ensure they are acceptable for your data/privacy policies.
If you want higher assurance, ask the maintainer for a full dependency list (requirements.txt) and an explicit statement that user data is only uploaded to the Neodomain service for generation purposes.Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
🎨 Clawdis
Binspython3
EnvNEODOMAIN_ACCESS_TOKEN
Primary envNEODOMAIN_ACCESS_TOKEN
latest
Neodomain AI Content Generator
Generate images and videos using the Neodomain AI platform API.
Setup
Set your access token as an environment variable:
export NEODOMAIN_ACCESS_TOKEN="your_access_token_here"
Or pass it directly to scripts via --token flag.
Image Generation
Get Available Models
python3 {baseDir}/scripts/image_models.py --token $NEODOMAIN_ACCESS_TOKEN
Generate Images
# Basic text-to-image
python3 {baseDir}/scripts/generate_image.py --prompt "A futuristic city at sunset" --token $NEODOMAIN_ACCESS_TOKEN
# With options
python3 {baseDir}/scripts/generate_image.py \
--prompt "A beautiful mountain landscape" \
--negative-prompt "blurry, low quality" \
--model "doubao-seedream-4-0" \
--aspect-ratio "16:9" \
--num-images 4 \
--size "2K" \
--output-dir ./output/images \
--token $NEODOMAIN_ACCESS_TOKEN
Parameters
| Parameter | Description | Default |
|---|---|---|
--prompt | Text description for image generation | Required |
--negative-prompt | Things to exclude from image | Empty |
--model | Model name (see models list) | gemini-3.1-flash-image-preview |
--aspect-ratio | Image aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4 | 1:1 |
--num-images | Number of images to generate: 1 or 4 | 1 |
--size | Image size: 1K, 2K, 4K | 2K |
--guidance-scale | Prompt adherence (1.0-20.0) | 7.5 |
--seed | Random seed for reproducibility | Random |
--output-format | Output format: jpeg, png, webp | jpeg |
--output-dir | Where to save images | ./output |
Image Generation with Reference Images
Use generate_image_ref.py to generate images with character reference(s). Supports up to 10 reference images per generation:
# Single reference image
python3 {baseDir}/scripts/generate_image_ref.py \
--prompt "A woman walking in a forest" \
--reference-image "https://example.com/character1.jpg" \
--model "doubao-seedream-5-0-260128" \
--aspect-ratio "16:9" \
--token $NEODOMAIN_ACCESS_TOKEN
# Multiple reference images (up to 10)
python3 {baseDir}/scripts/generate_image_ref.py \
--prompt "A conversation between two people" \
--reference-image "https://example.com/character1.jpg" \
--reference-image "https://example.com/character2.jpg" \
--reference-image "https://example.com/character3.jpg" \
--model "doubao-seedream-5-0-260128" \
--aspect-ratio "16:9" \
--token $NEODOMAIN_ACCESS_TOKEN
| Parameter | Description | Default |
|---|---|---|
--reference-image | Reference image URL(s) - can specify multiple (up to 10) | - |
Video Generation
Get Available Models
python3 {baseDir}/scripts/video_models.py --token $NEODOMAIN_ACCESS_TOKEN
Generate Videos
Text-to-Video
python3 {baseDir}/scripts/generate_video.py \
--prompt "A serene lake at dawn with mist rising from the water" \
--model "veo3" \
--generation-type "TEXT_TO_VIDEO" \
--aspect-ratio "16:9" \
--resolution "720p" \
--duration "8s" \
--token $NEODOMAIN_ACCESS_TOKEN
Image-to-Video
python3 {baseDir}/scripts/generate_video.py \
--prompt "The camera slowly pans across the landscape" \
--model "veo3" \
--generation-type "IMAGE_TO_VIDEO" \
--first-frame "https://example.com/image.jpg" \
--aspect-ratio "16:9" \
--resolution "720p" \
--duration "8s" \
--token $NEODOMAIN_ACCESS_TOKEN
Motion Control (Image + Video Reference)
python3 {baseDir}/scripts/motion_control.py \
--image "https://example.com/ref_image.jpg" \
--video "https://example.com/ref_video.mp4" \
--prompt "Make the character dance" \
--mode "pro" \
--duration 5000 \
--token $NEODOMAIN_ACCESS_TOKEN
Parameters
| Parameter | Description | Default |
|---|---|---|
--prompt | Text description for video | Required |
--model | Model name: veo3, hailuo02, doubao | veo3 |
--generation-type | Type: TEXT_TO_VIDEO, IMAGE_TO_VIDEO, REFERENCE_TO_VIDEO | TEXT_TO_VIDEO |
--first-frame | First frame image URL (for IMAGE_TO_VIDEO) | - |
--last-frame | Last frame image URL (optional) | - |
--image-urls | Reference images (comma-separated, for REFERENCE_TO_VIDEO) | - |
--aspect-ratio | Video aspect: 16:9, 9:16, 1:1 | 16:9 |
--resolution | Resolution: 720p, 768p, 1080p | 720p |
--duration | Duration: 4s, 5s, 6s, 8s, 10s, 16s | 8s |
--fps | Frame rate | 24 |
--seed | Random seed | Random |
--generate-audio | Generate audio (true/false) | false |
--enhance-prompt | Enhance prompt (true/false) | false |
--output-dir | Where to save output | ./output |
Authentication
重要: 每次 token 过期或首次使用时,动态询问用户登录账号(手机号/邮箱),不要硬编码保存。
If you need to obtain an access token:
# 1. 发送验证码 (询问用户手机号或邮箱)
python3 {baseDir}/scripts/login.py --send-code --contact "用户手机号或邮箱"
# 2. 用户提供验证码后,登录获取 token
python3 {baseDir}/scripts/login.py --login --contact "用户手机号或邮箱" --code "验证码"
The login script will output an access token that you can store in NEODOMAIN_ACCESS_TOKEN.
Workflow
- Authenticate (first time only): Get your access token
- Get models: Check available models for your needs
- Generate: Create content with appropriate parameters
- Wait: Scripts automatically poll for results
- Download: Images/videos saved to output directory
Output
- Images:
*.jpg,*.png, or*.webpfiles - Videos:
*.mp4files with thumbnail metadata.jsonwith generation details
Comments
Loading comments...
