본문으로 건너뛰기
cccskills
무료GitHub에 공개

byted-seedance-video-generate

Generate videos using Seedance models. Invoke when user wants to create videos from text prompts, images, or reference materials.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(3)

  • SKILL.md9.1 KB
  • LICENSE.txt11.1 KB
  • scripts/video_generate.py15.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Video Generate Skill

This skill generates videos using Doubao Seedance 1.0/1.5 models.

Trigger Conditions

  1. User wants to generate videos from text descriptions
  2. User wants to create videos based on images (first/last frame)
  3. User wants to create videos with reference materials (images, videos, audio)
  4. User asks for video generation capabilities

Usage

Environment Variables

Before using this skill, ensure the following environment variables are set:

  • ARK_API_KEY or MODEL_VIDEO_API_KEY or MODEL_AGENT_API_KEY: API key for the video generation service
  • MODEL_VIDEO_API_BASE: API base URL (optional, has default)
  • MODEL_VIDEO_NAME: Model name (optional, has default)

Function Signature

async def video_generate(
    params: list,
    batch_size: int = 10,
    max_wait_seconds: int = 1200,
    model_name: str = None,
) -> Dict:

Parameters

params (list[dict])

A list of video generation requests. Each item is a dict with the following fields:

Required per item:

  • video_name (str): Name/identifier of the output video file
  • prompt (str): Text describing the video to generate. Supports Chinese and English.

Optional per item - Input Materials:

  • first_frame (str): URL for the first frame image
  • last_frame (str): URL for the last frame image
  • reference_images (list[str]): 1-4 reference image URLs for style/content guidance
  • reference_videos (list[str]): 0-3 reference video URLs (mp4/mov, 2-15s each, total ≤15s)
  • reference_audios (list[str]): 0-3 reference audio URLs (mp3/wav, 2-15s each, total ≤15s)

Optional per item - Video Output Parameters:

  • ratio (str): Aspect ratio. Options: "16:9" (default), "9:16", "4:3", "3:4", "1:1", "2:1", "21:9", "adaptive"
  • duration (int): Video length in seconds. Range: 2-12s depending on model
  • resolution (str): Video resolution. Options: "480p", "720p", "1080p"
  • frames (int): Total frame count. Must be in [29, 289] and follow format 25 + 4n
  • camera_fixed (bool): Lock camera movement. Default: false
  • seed (int): Random seed for reproducibility. Range: [-1, 2^32-1]
  • watermark (bool): Whether to add watermark. Default: false
  • generate_audio (bool): Whether to generate audio. Only Seedance 1.5 supports this
  • tools (list[dict]): Tool configuration, e.g., [{"type": "web_search"}]

Input Modes

  1. Text-to-Video: Only provide prompt, no images/videos
  2. First Frame Guidance: Provide first_frame for starting image
  3. First + Last Frame Guidance: Provide both for transition video
  4. Reference Images: Provide reference_images for style/content guidance
  5. Multimodal Reference: Combine reference_images, reference_videos, reference_audios

Return Value

Script Return Info

The video_generate.py script will return these info:

{
    "status": "success" | "partial_success" | "error",
    "success_list": [{"video_name": "video_url"}],
    "error_list": ["video_name"],
    "error_details": [{"video_name": "...", "error": {...}}],
    "pending_list": [{"video_name": "...", "task_id": "cgt-xxx", ...}]
}

Based on the script return info, the final response returned to the user consists of a description of the video generation task and the video URL(s). You may download the video from the URL, but the video URL should still be provided to the user for viewing and downloading.

Note: the URL is the 'url' in the success_list of script return info. The URL must return in two ways:

Final Return Info

For OpenClaw

  1. First, save/download the generated video to an allowed directory:

    • Recommended: ~/.openclaw/workspace/
  2. Use the message tool to send the video with these parameters:

    {
      "action": "send",
      "message": "Optional text description",
      "media": "/root/.openclaw/workspace/generated-video.mp4"
    }
    
    • The tool will automatically: read the local file, upload to the channel server as a web URL, and send as a video message
  3. Verify success: Check that the tool returns {"ok": true} to confirm the video was sent successfully

  4. Normal Text not message tool: After generation, show list of videos with Markdown format, for example:

    <video src="https://example.com/video1.mp4" width="640" controls>video-1</video>
    

    Very important: The video URL must be an original online resource link starting with https://, not a local video address you have downloaded.

For Normal

You should return three types of information:

  1. File format, return the video file (if you have some other methods to send the video file) and the local path of the video, for example: local_path: /root/.openclaw/workspace/skills/video-generate/xxx.mp4
  2. After generation, show list of videos with Markdown format, for example:
<video src="https://example.com/video1.mp4" width="640" controls>video-1</video>
<video src="https://example.com/video2.mp4" width="640" controls>video-2</video>

Code Implementation

See scripts/video_generate.py for the full implementation.

Example Usage

# Text-to-Video
python scripts/video_generate.py -p "小猫骑着滑板穿过公园" -n cat_park -r 16:9 -d 5 --resolution 720p

# First Frame Guidance
python scripts/video_generate.py -p "小猫跳起来" -n cat_jump -f "https://example.com/cat.png" -r adaptive -d 5

# First + Last Frame Guidance
python scripts/video_generate.py -p "平滑过渡动画" -n transition \
    -f "https://example.com/start.png" \
    -l "https://example.com/end.png" \
    -d 6

# Reference Images (style/content guidance)
python scripts/video_generate.py -p "[图1]戴着眼镜的男生和[图2]柯基小狗坐在草坪上" -n styled \
    --ref-images "https://example.com/boy.png" "https://example.com/dog.png" \
    -r 16:9 -d 5

# Multimodal Reference (video + audio)
python scripts/video_generate.py -p "将视频中的人物换成[图1]中的男孩" -n multimodal \
    --ref-images "https://example.com/boy.png" \
    --ref-videos "https://example.com/source.mp4" \
    --ref-audios "https://example.com/voice.wav" \
    -d 5

# With Audio Generation (Seedance 1.5 only)
python scripts/video_generate.py -p "女孩抱着狐狸,可以听到风声和树叶沙沙声" -n with_audio \
    -f "https://example.com/girl_fox.png" \
    --generate-audio \
    -m doubao-seedance-1-5-pro-251215 \
    -d 6 --resolution 1080p

# Query task status
python scripts/video_generate.py -q "cgt-20260222165751-wsnw8"

# Use specific model
python scripts/video_generate.py -p "A futuristic city" -m doubao-seedance-2-5-260628

# No watermark
python scripts/video_generate.py -p "A beautiful landscape" --no-watermark

Command Line Options

OptionShortDescription
--prompt-pText description of the video (required)
--name-nVideo name identifier (default: video)
--model-mModel name (default: doubao-seedance-2-5-260628)
--ratio-rAspect ratio (default: 16:9)
--duration-dVideo duration in seconds (2-12)
--resolutionVideo resolution: 480p, 720p, 1080p
--first-frame-fFirst frame image URL
--last-frame-lLast frame image URL
--ref-imagesReference image URLs (space-separated, 1-4 images)
--ref-videosReference video URLs (space-separated, 0-3 videos)
--ref-audiosReference audio URLs (space-separated, 0-3 audios)
--generate-audioGenerate audio (Seedance 1.5 only)
--seedRandom seed for reproducibility
--no-watermarkDisable watermark
--timeout-tMax wait time in seconds (default: 1200)
--query-task-qQuery task status by task_id

Model Fallback

If you encounter a model-related error (like ModelNotOpen), you can downgrade to these models:

  • doubao-seedance-1-5-pro-251215
  • doubao-seedance-1-0-pro-250528

Error Handling

  • IF the script raises the error "PermissionError: ARK_API_KEY or MODEL_VIDEO_API_KEY or MODEL_AGENT_API_KEY not found in environment variables", inform the user that they need to provide the ARK_API_KEY or MODEL_VIDEO_API_KEY or MODEL_AGENT_API_KEY environment variable. Write it to the environment variable file in the workspace. If the file already exists, append it to the end. Ensure the environment variable format is correct, make the environment variable effective, and retry the video generation task that just failed.

Notes

  • Keep prompt concise (recommended ≤ 500 characters)
  • For first/last frame, ensure aspect ratios match your chosen ratio
  • Reference images: 1-4 images, formats: jpeg/png/webp/bmp/tiff/gif
  • Reference videos: 0-3 videos, formats: mp4/mov, total duration ≤ 15s
  • Reference audios: 0-3 audios, formats: mp3/wav, total duration ≤ 15s
  • Multimodal requires at least one image or video (audio-only not supported)
  • Audio generation is only supported by Seedance 1.5 pro
  • If polling times out, use --query-task with the returned task_id

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Deploy, update, validate, and troubleshoot the AgentKit hybrid-cloud customer-service demo in this directory. Use when a user asks an AI coding agent to follow the README, deploy or update the demo, configure OpenAPI/Runtime/Knowledge/Memory/Sandbox/MCP/Skills/A2A, run customer-view validation, or record manual platform steps and failures.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

bytedance/agentkit-samples4732026년 10월 21일 업데이트

Generate deterministic SVG algorithmic artwork. Invoke when the user asks for geometric, generative, or algorithmic visual art.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

bytedance/agentkit-samples4732026년 10월 21일 업데이트

通过本地 Python CLI 和 OpenAPI 客户端管理、排查火山云手机资源。适用于查询实例和资源、截图、执行命令、查看任务、检查应用、主机和机房容量、标签、DNS、路由,以及操作已授权的测试云手机实例。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

bytedance/agentkit-samples4732026년 10월 21일 업데이트

Launch and continue the Volcengine AI Research survey workflow for concept testing, audience design, questionnaire drafting, interview guide generation, execution confirmation, progress checks, and result queries. Use this skill when the user wants to create, revise, confirm, execute, or follow up on a real AI research survey task in ABCompass instead of doing generic brainstorming, copywriting, translation, summarization, or broad market discussion.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

bytedance/agentkit-samples4732026년 10월 21일 업데이트

Create and check long-running video material evaluation tasks. Use this skill when the user wants to submit videos for evaluation, check an existing video evaluation task list, or fetch the result of a previously created video evaluation task. This skill is not a general-purpose video upload skill because upload is allowed only as an internal step of task creation. Authentication uses an API key passed as an Authorization bearer token.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

bytedance/agentkit-samples4732026년 10월 21일 업데이트

火山引擎 AntiDDoSPro 高防域名只读巡检。用户要查域名健康、攻击、流量、CC/WAF/区域封禁、智能防护或 CCAI 状态时使用。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

bytedance/agentkit-samples4732026년 10월 21일 업데이트

bytedance의 스킬 모두 보기

이 스킬의 문제 신고