Tools

비디오 생성

OpenClaw 에이전트는 텍스트 프롬프트, 참조 이미지 또는 기존 비디오에서 비디오를 생성할 수 있습니다. 16개의 제공자 백엔드가 지원되며, 각 백엔드는 모델 옵션, 입력 모드, 기능 세트가 다릅니다. 에이전트는 구성과 사용 가능한 API 키를 기준으로 적절한 제공자를 자동으로 선택합니다.

OpenClaw는 비디오 생성을 세 가지 런타임 모드로 처리합니다.

  • generate - 참조 미디어가 없는 텍스트-비디오 요청입니다.
  • imageToVideo - 요청에 하나 이상의 참조 이미지가 포함됩니다.
  • videoToVideo - 요청에 하나 이상의 참조 비디오가 포함됩니다.

제공자는 이러한 모드의 일부만 지원할 수도 있습니다. 도구는 제출 전에 활성 모드를 검증하고 action=list에서 지원되는 모드를 보고합니다.

빠른 시작

  • 인증 구성

    지원되는 제공자의 API 키를 설정합니다.

    export GEMINI_API_KEY="your-key"
    
  • 기본 모델 선택(선택 사항)

    openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
    
  • 에이전트에게 요청

    석양에 서핑하는 친근한 랍스터의 5초짜리 시네마틱 비디오를 생성해 주세요.

    에이전트는 video_generate를 자동으로 호출합니다. 도구 허용 목록 설정은 필요하지 않습니다.

  • 비동기 생성 작동 방식

    비디오 생성은 비동기적으로 수행됩니다. 에이전트가 세션에서 video_generate를 호출하면 다음이 진행됩니다.

    1. OpenClaw가 요청을 제공자에 제출하고 즉시 작업 ID를 반환합니다.
    2. 제공자가 백그라운드에서 작업을 처리합니다. 일반적으로 제공자와 해상도에 따라 30초에서 몇 분이 걸리며, 큐 기반의 느린 제공자는 구성된 제한 시간까지 실행될 수 있습니다.
    3. 비디오가 준비되면 OpenClaw가 내부 완료 이벤트로 동일한 세션을 깨웁니다.
    4. 에이전트가 사용자에게 알리고 완성된 비디오를 첨부합니다. 메시지 도구 전용 가시 전달을 사용하는 그룹/채널 채팅에서는 OpenClaw가 직접 게시하는 대신 에이전트가 메시지 도구를 통해 결과를 전달합니다.

    작업이 진행 중일 때 동일한 세션에서 중복 video_generate 호출이 발생하면 다른 생성을 시작하지 않고 현재 작업 상태를 반환합니다. CLI에서 진행 상황을 확인하려면 openclaw tasks list 또는 openclaw tasks show <taskId>를 사용하세요.

    세션 기반 에이전트 실행 외부, 예를 들어 직접 도구 호출에서는 도구가 인라인 생성으로 대체되어 같은 턴에서 최종 미디어 경로를 반환합니다.

    제공자가 바이트를 반환하는 경우 생성된 비디오 파일은 OpenClaw가 관리하는 미디어 저장소 아래에 저장됩니다. 기본 생성 비디오 저장 한도는 비디오 미디어 제한을 따르며, agents.defaults.mediaMaxMb는 더 큰 렌더링을 위해 한도를 높입니다. 제공자가 호스팅된 출력 URL도 반환하는 경우, 로컬 영속성이 너무 큰 파일을 거부하더라도 OpenClaw는 작업을 실패시키는 대신 해당 URL을 전달할 수 있습니다.

    작업 수명 주기

    상태 의미
    queued 작업이 생성되었으며, 제공자가 수락하기를 기다리는 중입니다.
    running 제공자가 처리 중입니다. 일반적으로 제공자와 해상도에 따라 30초에서 몇 분이 걸립니다.
    succeeded 비디오가 준비되었습니다. 에이전트가 깨어나 대화에 게시합니다.
    failed 제공자 오류 또는 제한 시간 초과입니다. 에이전트가 오류 세부 정보와 함께 깨어납니다.

    CLI에서 상태를 확인합니다.

    openclaw tasks list
    openclaw tasks show <taskId>
    openclaw tasks cancel <taskId>
    

    현재 세션에 이미 queued 또는 running 상태의 비디오 작업이 있으면 video_generate는 새 작업을 시작하지 않고 기존 작업 상태를 반환합니다. 새 생성을 트리거하지 않고 명시적으로 확인하려면 action: "status"를 사용하세요.

    지원되는 제공자

    제공자 기본 모델 텍스트 이미지 참조 비디오 참조 인증
    Alibaba wan2.6-t2v 예(원격 URL) 예(원격 URL) MODELSTUDIO_API_KEY
    BytePlus (1.0) seedance-1-0-pro-250528 최대 2개 이미지(I2V 모델만 해당, 첫 프레임 + 마지막 프레임) - BYTEPLUS_API_KEY
    BytePlus Seedance 1.5 seedance-1-5-pro-251215 최대 2개 이미지(role을 통한 첫 프레임 + 마지막 프레임) - BYTEPLUS_API_KEY
    BytePlus Seedance 2.0 dreamina-seedance-2-0-260128 최대 9개 참조 이미지 최대 3개 비디오 BYTEPLUS_API_KEY
    ComfyUI workflow 이미지 1개 - COMFY_API_KEY 또는 COMFY_CLOUD_API_KEY
    DeepInfra Pixverse/Pixverse-T2V - - DEEPINFRA_API_KEY
    fal fal-ai/minimax/video-01-live 이미지 1개, Seedance reference-to-video 사용 시 최대 9개 Seedance reference-to-video 사용 시 최대 3개 비디오 FAL_KEY
    Google veo-3.1-fast-generate-preview 이미지 1개 비디오 1개 GEMINI_API_KEY
    MiniMax MiniMax-Hailuo-2.3 이미지 1개 - MINIMAX_API_KEY 또는 MiniMax OAuth
    OpenAI sora-2 이미지 1개 비디오 1개 OPENAI_API_KEY
    OpenRouter google/veo-3.1-fast 최대 4개 이미지(첫/마지막 프레임 또는 참조) - OPENROUTER_API_KEY
    Qwen wan2.6-t2v 예(원격 URL) 예(원격 URL) QWEN_API_KEY
    Runway gen4.5 이미지 1개 비디오 1개 RUNWAYML_API_SECRET
    Together Wan-AI/Wan2.2-T2V-A14B 이미지 1개 - TOGETHER_API_KEY
    Vydra veo3 이미지 1개(kling) - VYDRA_API_KEY
    xAI grok-imagine-video 첫 프레임 이미지 1개 또는 최대 7개 reference_image 비디오 1개 XAI_API_KEY

    일부 제공자는 추가 또는 대체 API 키 환경 변수를 허용합니다. 자세한 내용은 개별 제공자 페이지를 참조하세요.

    런타임에 사용 가능한 제공자, 모델, 런타임 모드를 검사하려면 video_generate action=list를 실행하세요.

    기능 매트릭스

    video_generate, 계약 테스트, 공유 라이브 스윕에서 사용하는 명시적 모드 계약입니다.

    제공자 generate imageToVideo videoToVideo 현재 공유 라이브 레인
    Alibaba generate, imageToVideo; 이 제공자는 원격 http(s) 비디오 URL이 필요하므로 videoToVideo는 건너뜁니다
    BytePlus - generate, imageToVideo
    ComfyUI - 공유 스윕에는 포함되지 않습니다. workflow별 커버리지는 Comfy 테스트에 있습니다
    DeepInfra - - generate; 기본 DeepInfra 비디오 스키마는 번들 계약에서 텍스트-비디오입니다
    fal generate, imageToVideo; Seedance reference-to-video를 사용할 때만 videoToVideo
    Google generate, imageToVideo; 현재 버퍼 기반 Gemini/Veo 스윕은 해당 입력을 허용하지 않으므로 공유 videoToVideo는 건너뜁니다
    MiniMax - generate, imageToVideo
    OpenAI generate, imageToVideo; 이 조직/입력 경로는 현재 제공자 측 inpaint/remix 액세스가 필요하므로 공유 videoToVideo는 건너뜁니다
    OpenRouter - generate, imageToVideo
    Qwen generate, imageToVideo; 이 제공자는 원격 http(s) 비디오 URL이 필요하므로 videoToVideo는 건너뜁니다
    Runway generate, imageToVideo; 선택된 모델이 runway/gen4_aleph일 때만 videoToVideo가 실행됩니다
    Together - generate, imageToVideo
    Vydra - generate; 번들된 veo3는 텍스트 전용이고 번들된 kling은 원격 이미지 URL이 필요하므로 공유 imageToVideo는 건너뜁니다
    xAI generate, imageToVideo; 이 제공자는 현재 원격 MP4 URL이 필요하므로 videoToVideo는 건너뜁니다

    도구 매개변수

    필수

    promptstringrequired

    생성할 비디오의 텍스트 설명입니다. action: "generate"에 필요합니다.

    콘텐츠 입력

    imagestring
    imagesstring[]
    imageRolesstring[]

    결합된 이미지 목록과 병렬로 적용되는 선택적 위치별 역할 힌트입니다. 정식 값: first_frame, last_frame, reference_image.

    videostring
    videosstring[]
    videoRolesstring[]

    결합된 비디오 목록과 병렬로 적용되는 선택적 위치별 역할 힌트입니다. 정식 값: reference_video.

    audioRefstring

    단일 참조 오디오(경로 또는 URL). 공급자가 오디오 입력을 지원할 때 배경 음악 또는 음성 참조에 사용됩니다.

    audioRefsstring[]
    audioRolesstring[]

    결합된 오디오 목록과 병렬로 적용되는 선택적 위치별 역할 힌트입니다. 정식 값: reference_audio.

    스타일 제어

    aspectRatiostring

    1:1, 16:9, 9:16, adaptive 또는 공급자별 값 같은 종횡비 힌트입니다. OpenClaw는 공급자별로 지원되지 않는 값을 정규화하거나 무시합니다.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc29sdXRpb24iIHR5cGU9InN0cmluZyI 480P, 720P, 768P, 1080P, 4K 또는 공급자별 값 같은 해상도 힌트입니다. OpenClaw는 공급자별로 지원되지 않는 값을 정규화하거나 무시합니다. OPENCLAW_DOCS_MARKER:paramClose:

    durationSecondsnumber

    대상 지속 시간(초)입니다(공급자가 지원하는 가장 가까운 값으로 반올림).

    sizestring
    audioboolean

    지원되는 경우 출력에서 생성된 오디오를 활성화합니다. audioRef*(입력)와는 별개입니다.

    watermarkboolean

    adaptive는 공급자별 센티널입니다. 기능에 adaptive를 선언한 공급자에는 그대로 전달됩니다(예: BytePlus Seedance는 입력 이미지 치수에서 비율을 자동 감지하는 데 사용). 이를 선언하지 않은 공급자는 도구 결과의 details.ignoredOverrides를 통해 값을 표시하여 누락이 보이도록 합니다.

    고급

    action"generate" | "status" | "list"

    "status"는 현재 세션 작업을 반환하고, "list"는 공급자를 검사합니다.

    OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci 공급자/모델 재정의(예: runway/gen4.5). OPENCLAW_DOCS_MARKER:paramClose:

    filenamestring
    timeoutMsnumber
    providerOptionsobject

    JSON 객체로 된 공급자별 옵션입니다(예: {"seed": 42, "draft": true}). 형식화된 스키마를 선언한 공급자는 키와 타입을 검증합니다. 알 수 없는 키나 불일치가 있으면 폴백 중 해당 후보를 건너뜁니다. 선언된 스키마가 없는 공급자는 옵션을 그대로 받습니다. 각 공급자가 무엇을 받는지 보려면 video_generate action=list를 실행하세요.

    참조 입력은 런타임 모드를 선택합니다.

    • 참조 미디어 없음 → generate
    • 이미지 참조 있음 → imageToVideo
    • 비디오 참조 있음 → videoToVideo
    • 참조 오디오 입력은 확인된 모드를 변경하지 않습니다. 이미지/비디오 참조가 선택한 모드 위에 적용되며, maxInputAudios를 선언한 공급자에서만 동작합니다.

    이미지와 비디오 참조를 혼합하는 것은 안정적인 공통 기능 표면이 아닙니다. 요청당 하나의 참조 타입만 사용하는 것이 좋습니다.

    폴백 및 형식화된 옵션

    일부 기능 검사는 도구 경계가 아니라 폴백 계층에서 적용되므로, 기본 공급자의 제한을 초과하는 요청도 기능이 있는 폴백에서 계속 실행될 수 있습니다.

    • 활성 후보가 maxInputAudios를 선언하지 않았거나 0으로 선언한 경우, 요청에 오디오 참조가 포함되어 있으면 건너뛰고 다음 후보를 시도합니다.
    • 활성 후보의 maxDurationSeconds가 요청된 durationSeconds보다 낮고 선언된 supportedDurationSeconds 목록이 없으면 건너뜁니다.
    • 요청에 providerOptions가 포함되어 있고 활성 후보가 형식화된 providerOptions 스키마를 명시적으로 선언한 경우, 제공된 키가 스키마에 없거나 값 타입이 일치하지 않으면 건너뜁니다. 선언된 스키마가 없는 공급자는 옵션을 그대로 받습니다(하위 호환 패스스루). 공급자는 빈 스키마(capabilities.providerOptions: {})를 선언하여 모든 공급자 옵션을 거부할 수 있으며, 이 경우 타입 불일치와 동일하게 건너뜁니다.

    요청에서 첫 번째 건너뛰기 이유는 warn으로 기록되어 운영자가 기본 공급자가 넘어갔음을 볼 수 있게 합니다. 이후 건너뛰기는 긴 폴백 체인을 조용하게 유지하기 위해 debug로 기록됩니다. 모든 후보를 건너뛰면 집계된 오류에 각 후보의 건너뛰기 이유가 포함됩니다.

    동작

    동작 수행 내용
    generate 기본값. 지정된 프롬프트와 선택적 참조 입력으로 비디오를 만듭니다.
    status 다른 생성을 시작하지 않고 현재 세션에서 진행 중인 비디오 작업 상태를 확인합니다.
    list 사용 가능한 공급자, 모델 및 기능을 표시합니다.

    모델 선택

    OpenClaw는 다음 순서로 모델을 확인합니다.

    1. model 도구 매개변수 - 에이전트가 호출에서 지정한 경우.
    2. 구성의 videoGenerationModel.primary.
    3. 순서대로 videoGenerationModel.fallbacks.
    4. 자동 감지 - 유효한 인증이 있는 공급자. 현재 기본 공급자부터 시작한 뒤 나머지 공급자를 알파벳순으로 처리합니다.

    공급자가 실패하면 다음 후보를 자동으로 시도합니다. 모든 후보가 실패하면 오류에 각 시도의 세부 정보가 포함됩니다.

    명시적인 model, primary, fallbacks 항목만 사용하려면 agents.defaults.mediaGenerationAutoProviderFallback: false를 설정하세요.

    {
      agents: {
        defaults: {
          videoGenerationModel: {
            primary: "google/veo-3.1-fast-generate-preview",
            fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
          },
        },
      },
    }
    

    공급자 참고 사항

    Alibaba

    DashScope / Model Studio 비동기 엔드포인트를 사용합니다. 참조 이미지와 비디오는 원격 http(s) URL이어야 합니다.

    BytePlus (1.0)

    공급자 id: byteplus.

    모델: seedance-1-0-pro-250528(기본값), seedance-1-0-pro-t2v-250528, seedance-1-0-pro-fast-251015, seedance-1-0-lite-t2v-250428, seedance-1-0-lite-i2v-250428.

    T2V 모델(*-t2v-*)은 이미지 입력을 받지 않습니다. I2V 모델과 일반 *-pro-* 모델은 단일 참조 이미지(첫 프레임)를 지원합니다. 이미지를 위치 인수로 전달하거나 role: "first_frame"을 설정하세요. 이미지가 제공되면 T2V 모델 ID는 해당 I2V 변형으로 자동 전환됩니다.

    지원되는 providerOptions 키: seed(숫자), draft(불리언 - 480p 강제), camera_fixed(불리언).

    BytePlus Seedance 1.5

    @openclaw/byteplus-modelark Plugin이 필요합니다. 공급자 id: byteplus-seedance15. 모델: seedance-1-5-pro-251215.

    통합 content[] API를 사용합니다. 최대 2개의 입력 이미지 (first_frame + last_frame)를 지원합니다. 모든 입력은 원격 https:// URL이어야 합니다. 각 이미지에 role: "first_frame" / "last_frame"을 설정하거나 이미지를 위치 인수로 전달하세요.

    aspectRatio: "adaptive"는 입력 이미지에서 비율을 자동 감지합니다. audio: truegenerate_audio로 매핑됩니다. providerOptions.seed (숫자)가 전달됩니다.

    BytePlus Seedance 2.0

    @openclaw/byteplus-modelark Plugin이 필요합니다. 공급자 id: byteplus-seedance2. 모델: dreamina-seedance-2-0-260128, dreamina-seedance-2-0-fast-260128.

    통합 content[] API를 사용합니다. 최대 9개의 참조 이미지, 3개의 참조 비디오, 3개의 참조 오디오를 지원합니다. 모든 입력은 원격 https:// URL이어야 합니다. 각 자산에 role을 설정하세요. 지원 값: "first_frame", "last_frame", "reference_image", "reference_video", "reference_audio".

    aspectRatio: "adaptive"는 입력 이미지에서 비율을 자동 감지합니다. audio: truegenerate_audio로 매핑됩니다. providerOptions.seed (숫자)가 전달됩니다.

    ComfyUI

    워크플로 기반 로컬 또는 클라우드 실행. 구성된 그래프를 통해 텍스트-동영상 및 이미지-동영상을 지원합니다.

    fal

    장시간 실행되는 작업에 큐 기반 흐름을 사용합니다. OpenClaw는 기본적으로 진행 중인 fal 큐 작업을 시간 초과로 처리하기 전에 최대 20분까지 기다립니다. 대부분의 fal 동영상 모델은 단일 이미지 참조를 허용합니다. Seedance 2.0 참조-동영상 모델은 최대 9개의 이미지, 3개의 동영상, 3개의 오디오 참조를 허용하며, 전체 참조 파일은 최대 12개입니다.

    Google (Gemini / Veo)

    이미지 참조 하나 또는 동영상 참조 하나를 지원합니다. 생성 오디오 요청은 Gemini API 경로에서 경고와 함께 무시됩니다. 해당 API가 현재 Veo 동영상 생성에 대한 generateAudio 매개변수를 거부하기 때문입니다.

    MiniMax

    단일 이미지 참조만 지원합니다. MiniMax는 768P1080P 해상도를 허용합니다. 720P 같은 요청은 제출 전에 가장 가까운 지원 값으로 정규화됩니다.

    OpenAI

    size 재정의만 전달됩니다. 다른 스타일 재정의 (aspectRatio, resolution, audio, watermark)는 경고와 함께 무시됩니다.

    OpenRouter

    OpenRouter의 비동기 /videos API를 사용합니다. OpenClaw는 작업을 제출하고, polling_url을 폴링한 뒤, unsigned_urls 또는 문서화된 작업 콘텐츠 엔드포인트를 다운로드합니다. 번들된 google/veo-3.1-fast 기본값은 4/6/8초 길이, 720P/1080P 해상도, 그리고 16:9/9:16 종횡비를 표시합니다.

    Qwen

    Alibaba와 동일한 DashScope 백엔드를 사용합니다. 참조 입력은 원격 http(s) URL이어야 하며, 로컬 파일은 사전에 거부됩니다.

    Runway

    데이터 URI를 통해 로컬 파일을 지원합니다. 동영상-동영상에는 runway/gen4_aleph가 필요합니다. 텍스트 전용 실행은 16:99:16 종횡비를 노출합니다.

    Together

    단일 이미지 참조만 지원합니다.

    Vydra

    인증이 누락되는 리디렉션을 피하기 위해 https://www.vydra.ai/api/v1을 직접 사용합니다. veo3는 텍스트-동영상 전용으로 번들되며, kling에는 원격 이미지 URL이 필요합니다.

    xAI

    텍스트-동영상, 단일 첫 프레임 이미지-동영상, xAI reference_images를 통한 최대 7개의 reference_image 입력, 그리고 원격 동영상 편집/확장 흐름을 지원합니다.

    제공자 기능 모드

    공유 동영상 생성 계약은 단순한 평면 집계 제한만이 아니라 모드별 기능을 지원합니다. 새 제공자 구현은 명시적 모드 블록을 선호해야 합니다.

    capabilities: {
      generate: {
        maxVideos: 1,
        maxDurationSeconds: 10,
        supportsResolution: true,
      },
      imageToVideo: {
        enabled: true,
        maxVideos: 1,
        maxInputImages: 1,
        maxInputImagesByModel: { "provider/reference-to-video": 9 },
        maxDurationSeconds: 5,
      },
      videoToVideo: {
        enabled: true,
        maxVideos: 1,
        maxInputVideos: 1,
        maxDurationSeconds: 5,
      },
    }
    

    maxInputImagesmaxInputVideos 같은 평면 집계 필드만으로는 변환 모드 지원을 표시하기에 충분하지 않습니다. 제공자는 generate, imageToVideo, videoToVideo를 명시적으로 선언하여 라이브 테스트, 계약 테스트, 공유 video_generate 도구가 모드 지원을 결정적으로 검증할 수 있게 해야 합니다.

    제공자 내 한 모델이 나머지 모델보다 더 넓은 참조 입력 지원을 제공하는 경우, 모드 전체 제한을 높이는 대신 maxInputImagesByModel, maxInputVideosByModel 또는 maxInputAudiosByModel을 사용하세요.

    라이브 테스트

    공유 번들 제공자에 대한 옵트인 라이브 적용 범위:

    OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
    

    저장소 래퍼:

    pnpm test:live:media video
    

    이 라이브 파일은 누락된 제공자 환경 변수를 ~/.profile에서 로드하고, 기본적으로 저장된 인증 프로필보다 live/env API 키를 우선하며, 기본적으로 릴리스에 안전한 스모크를 실행합니다.

    • 스윕의 모든 비-FAL 제공자에 대해 generate.
    • 1초짜리 랍스터 프롬프트.
    • OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS에서 가져온 제공자별 작업 제한 (기본값 180000).

    FAL은 제공자 측 큐 지연 시간이 릴리스 시간을 지배할 수 있으므로 옵트인입니다.

    pnpm test:live:media video --video-providers fal
    

    공유 스윕이 로컬 미디어로 안전하게 실행할 수 있는 선언된 변환 모드도 실행하려면 OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1을 설정하세요.

    • capabilities.imageToVideo.enabled인 경우 imageToVideo.
    • capabilities.videoToVideo.enabled이고 해당 제공자/모델이 공유 스윕에서 버퍼 기반 로컬 동영상 입력을 허용하는 경우 videoToVideo.

    현재 공유 videoToVideo 라이브 레인은 runway/gen4_aleph를 선택한 경우에만 runway를 포함합니다.

    구성

    OpenClaw 구성에서 기본 동영상 생성 모델을 설정하세요.

    {
      agents: {
        defaults: {
          videoGenerationModel: {
            primary: "qwen/wan2.6-t2v",
            fallbacks: ["qwen/wan2.6-r2v-flash"],
          },
        },
      },
    }
    

    또는 CLI를 통해 설정하세요.

    openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2v"
    

    관련 항목