본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

ai-video-gen

글이나 참고 이미지로 AI 영상을 생성하고 용도와 비용에 맞는 서비스를 선택합니다. 소셜 미디어용 세로 영상, 상품 사진의 영상화, 기존 클립의 대화형 편집을 지원합니다.

원문원문 설명 보기

Generate AI videos from text prompts using multiple provider gateways. Use when: (1) Generating videos from text descriptions, (2) Creating AI-generated video clips for content production, (3) Image-to-video generation with a reference image, (4) Choosing between video generation providers (VEO, Kling, Sora, Runway, Seedance, MiniMax, Gemini Omni). Supports gateways: HeyGen API, fal.ai API, and the Gemini API (Gemini Omni Flash).

연동 도구OpenAIGemini

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • 소셜 미디어용 세로 영상 제작
  • 상품 사진에 움직임 추가
  • 예산과 표현에 맞는 생성 서비스 선택
  • 대화로 기존 클립 편집

한국어 소개

할 수 있는 일

ai-video-gen은 글이나 참고 이미지로 AI 영상을 생성합니다. HeyGen API, fal.ai API, Gemini API를 통해 여러 모델을 사용하며, 이용 가능한 서비스와 비용, 원하는 표현에 맞춰 선택합니다. 화면 비율과 카메라 움직임을 지정할 수 있습니다. Gemini Omni Flash에서는 기존 클립의 물체, 조명, 화면 속 글자를 대화로 편집합니다.

이럴 때 유용합니다

소셜 미디어용 세로 클립을 만들거나 상품 사진에 움직임을 더할 때 유용합니다. 영상 스타일과 예산을 함께 고려해 생성 모델을 선택할 때도 사용합니다.

사용 예시

  • “이 상품 사진에 카메라가 천천히 다가가는 움직임을 넣어 주세요.”
  • “해 질 무렵 해안 도시를 항공 촬영 느낌의 가로 영상으로 만들어 주세요.”
  • “이 클립의 조명을 바꾸고 화면 속 글자를 수정해 주세요.”

주의 사항

서비스에 따라 HEYGEN_API_KEY, FAL_KEY, GEMINI_API_KEY 또는 GOOGLE_API_KEY가 필요합니다. 지원하는 생성 및 편집 기능은 모델마다 다릅니다. 생성에는 시간이 걸리며 결과 주소는 임시로 제공되므로 완성된 영상을 일찍 저장해야 합니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
C확인 필요API 키로 글과 이미지 주소를 외부에 전송하지만 전송 전 확인 절차가 없습니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족필요한 API 키 이름은 제시하지만 발급 방법이나 도구 설치 절차는 설명하지 않습니다.

점수에는 넣지 않았습니다. 2026년 10월 23일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

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

포함된 파일(1)

  • SKILL.md11.0 KB

SKILL.md(원문)

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

Video Generation (Multi-Gateway)

Generate AI videos from text prompts. Supports multiple providers via two API gateways:

GatewayEnv VariableProvidersTool
fal.aiFAL_KEYSeedance 2.0 (standard + fast), Kling v3/v2.1, MiniMax, VEOseedance_video, kling_video, minimax_video, veo_video
HeyGenHEYGEN_API_KEYVEO 3.1, Kling Pro, Sora v2, Runway Gen-4, Seedance Pro / Lite (1.x)heygen_video
Gemini APIGEMINI_API_KEY / GOOGLE_API_KEYGemini Omni Flash (generation + conversational editing)gemini_omni_video

Iterative editing — Gemini Omni. When the brief calls for refining an existing clip (add/remove objects, restyle, change lighting or on-screen text) rather than regenerating, Gemini Omni Flash is the only provider in the fleet with stateful multi-turn editing. See Layer 3 gemini-omni for the authoritative prompting guide (reference-image tags, timecode syntax, edit-prompt rules) before writing any prompt for it.

Preferred premium default — Seedance 2.0. When any premium gateway is configured (FAL_KEY → seedance_video, or HeyGen's Video Agent / Avatar Shots path), Seedance 2.0 is the preferred default for cinematic, trailer, and high-fidelity clip work. It is the only model in the fleet with single-pass native synchronized audio, multi-shot generation, director-level camera control, and lip-sync from quoted dialogue, and it ranks #1 on Artificial Analysis Elo as of early 2026. Switch off it only when the user has a specific reason (budget, provider preference, stylistic fit like VEO for photoreal landscape or Kling for specific anime look). See Layer 3 seedance-2-0 for the authoritative prompting and parameter guide.

IMPORTANT: Always use video_selector instead of calling provider tools directly. The selector handles availability checks, cost comparison, and automatic fallback, and its scoring engine already biases toward Seedance 2.0 for cinematic intent.

Authentication

Use whichever configured gateway best matches the user's available providers and cost/quality goals.

  • HeyGen: Set HEYGEN_API_KEY to access the multi-model gateway.
  • fal.ai: Set FAL_KEY to access Kling, MiniMax, and Veo through fal.ai.

Do not describe either gateway as the default or top choice without checking the registry and current task fit first.

curl -X POST "https://api.heygen.com/v1/workflows/executions" \
  -H "X-Api-Key: $HEYGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_type": "GenerateVideoNode", "input": {"prompt": "A drone shot flying over a coastal city at sunset"}}'

Default Workflow

  1. Call POST /v1/workflows/executions with workflow_type: "GenerateVideoNode" and your prompt
  2. Receive a execution_id in the response
  3. Poll GET /v1/workflows/executions/{id} every 10 seconds until status is completed
  4. Use the returned video_url from the output

Execute Video Generation

Endpoint

POST https://api.heygen.com/v1/workflows/executions

Request Fields

FieldTypeReqDescription
workflow_typestringYMust be "GenerateVideoNode"
input.promptstringYText description of the video to generate
input.providerstringVideo generation provider (default: "veo_3_1"). See Providers below.
input.aspect_ratiostringAspect ratio (default: "16:9"). Common values: "16:9", "9:16", "1:1"
input.reference_image_urlstringReference image URL for image-to-video generation
input.tail_image_urlstringTail image URL for last-frame guidance
input.configobjectProvider-specific configuration overrides

Providers

ProviderValueDescription
VEO 3.1"veo_3_1"Google VEO 3.1 (default, highest quality)
VEO 3.1 Fast"veo_3_1_fast"Faster VEO 3.1 variant
VEO 3"veo3"Google VEO 3
VEO 3 Fast"veo3_fast"Faster VEO 3 variant
VEO 2"veo2"Google VEO 2
Kling Pro"kling_pro"Kling Pro model
Kling V2"kling_v2"Kling V2 model
Sora V2"sora_v2"OpenAI Sora V2
Sora V2 Pro"sora_v2_pro"OpenAI Sora V2 Pro
Runway Gen-4"runway_gen4"Runway Gen-4
Seedance Lite"seedance_lite"Seedance Lite
Seedance Pro"seedance_pro"Seedance Pro
LTX Distilled"ltx_distilled"LTX Distilled (fastest)

curl

curl -X POST "https://api.heygen.com/v1/workflows/executions" \
  -H "X-Api-Key: $HEYGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_type": "GenerateVideoNode",
    "input": {
      "prompt": "A drone shot flying over a coastal city at golden hour, cinematic lighting",
      "provider": "veo_3_1",
      "aspect_ratio": "16:9"
    }
  }'

TypeScript

interface GenerateVideoInput {
  prompt: string;
  provider?: string;
  aspect_ratio?: string;
  reference_image_url?: string;
  tail_image_url?: string;
  config?: Record<string, any>;
}

interface ExecuteResponse {
  data: {
    execution_id: string;
    status: "submitted";
  };
}

async function generateVideo(input: GenerateVideoInput): Promise<string> {
  const response = await fetch("https://api.heygen.com/v1/workflows/executions", {
    method: "POST",
    headers: {
      "X-Api-Key": process.env.HEYGEN_API_KEY!,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      workflow_type: "GenerateVideoNode",
      input,
    }),
  });

  const json: ExecuteResponse = await response.json();
  return json.data.execution_id;
}

Python

import requests
import os

def generate_video(
    prompt: str,
    provider: str = "veo_3_1",
    aspect_ratio: str = "16:9",
    reference_image_url: str | None = None,
    tail_image_url: str | None = None,
) -> str:
    payload = {
        "workflow_type": "GenerateVideoNode",
        "input": {
            "prompt": prompt,
            "provider": provider,
            "aspect_ratio": aspect_ratio,
        },
    }

    if reference_image_url:
        payload["input"]["reference_image_url"] = reference_image_url
    if tail_image_url:
        payload["input"]["tail_image_url"] = tail_image_url

    response = requests.post(
        "https://api.heygen.com/v1/workflows/executions",
        headers={
            "X-Api-Key": os.environ["HEYGEN_API_KEY"],
            "Content-Type": "application/json",
        },
        json=payload,
    )

    data = response.json()
    return data["data"]["execution_id"]

Response Format

{
  "data": {
    "execution_id": "node-gw-v1d2e3o4",
    "status": "submitted"
  }
}

Check Status

Endpoint

GET https://api.heygen.com/v1/workflows/executions/{execution_id}

curl

curl -X GET "https://api.heygen.com/v1/workflows/executions/node-gw-v1d2e3o4" \
  -H "X-Api-Key: $HEYGEN_API_KEY"

Response Format (Completed)

{
  "data": {
    "execution_id": "node-gw-v1d2e3o4",
    "status": "completed",
    "output": {
      "video": {
        "video_url": "https://resource.heygen.ai/generated/video.mp4",
        "video_id": "abc123"
      },
      "asset_id": "asset-xyz789"
    }
  }
}

Polling for Completion

async function generateVideoAndWait(
  input: GenerateVideoInput,
  maxWaitMs = 600000,
  pollIntervalMs = 10000
): Promise<{ video_url: string; video_id: string; asset_id: string }> {
  const executionId = await generateVideo(input);
  console.log(`Submitted video generation: ${executionId}`);

  const startTime = Date.now();
  while (Date.now() - startTime < maxWaitMs) {
    const response = await fetch(
      `https://api.heygen.com/v1/workflows/executions/${executionId}`,
      { headers: { "X-Api-Key": process.env.HEYGEN_API_KEY! } }
    );
    const { data } = await response.json();

    switch (data.status) {
      case "completed":
        return {
          video_url: data.output.video.video_url,
          video_id: data.output.video.video_id,
          asset_id: data.output.asset_id,
        };
      case "failed":
        throw new Error(data.error?.message || "Video generation failed");
      case "not_found":
        throw new Error("Workflow not found");
      default:
        await new Promise((r) => setTimeout(r, pollIntervalMs));
    }
  }

  throw new Error("Video generation timed out");
}

Usage Examples

Simple Text-to-Video

curl -X POST "https://api.heygen.com/v1/workflows/executions" \
  -H "X-Api-Key: $HEYGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_type": "GenerateVideoNode",
    "input": {
      "prompt": "A person walking through a sunlit park, shallow depth of field"
    }
  }'

Image-to-Video

{
  "workflow_type": "GenerateVideoNode",
  "input": {
    "prompt": "Animate this product photo with a slow zoom and soft particle effects",
    "reference_image_url": "https://example.com/product-photo.png",
    "provider": "kling_pro"
  }
}

Vertical Format for Social Media

{
  "workflow_type": "GenerateVideoNode",
  "input": {
    "prompt": "A trendy coffee shop interior, camera slowly panning across the counter",
    "aspect_ratio": "9:16",
    "provider": "veo_3_1"
  }
}

Fast Generation with LTX

{
  "workflow_type": "GenerateVideoNode",
  "input": {
    "prompt": "Abstract colorful shapes morphing and flowing",
    "provider": "ltx_distilled"
  }
}

Best Practices

  1. Be descriptive in prompts — include camera movement, lighting, style, and mood details
  2. Default to Seedance 2.0 (via seedance_video) for cinematic and motion-led work when FAL_KEY is set — single-pass synced audio, multi-shot, lip-sync, director-level camera. Use VEO 3.1 / Sora V2 Pro when the user specifically wants Google or OpenAI motion character; use ltx_distilled or veo3_fast only when speed is the hard constraint
  3. Use reference images for image-to-video generation — great for animating product photos or still images
  4. Video generation is the slowest workflow — allow up to 5 minutes, poll every 10 seconds
  5. Aspect ratio matters — use 9:16 for social media stories/reels, 16:9 for landscape, 1:1 for square
  6. Output includes asset_id — use this to reference the generated video in other HeyGen workflows
  7. Output URLs are temporary — download or save generated videos promptly

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

3d-asset-generation

무료요약 있음

글이나 이미지로 3D 모델을 생성하고 카탈로그 소재와 함께 활용합니다. Blender에서 형상, 재질, 크기와 지면 접촉을 점검하고 출처를 기록한 뒤 장면에 배치합니다.

  • 글로 독자적인 3D 소품 제작
  • 콘셉트 이미지의 물체를 입체로 제작
  • 카탈로그의 식물과 바위로 배경 채우기
calesthio/OpenMontage7.1만2026년 10월 17일 업데이트

acestep

무료요약 있음

ACE-Step 1.5로 곡의 스타일, 길이, 템포 등을 지정해 영상 배경 음악과 가사가 있는 곡을 생성합니다. 참고 음원 편곡과 보컬·악기 분리도 지원합니다.

  • 영상 장면에 맞는 배경 음악 제작
  • 가사가 있는 짧은 징글 제작
  • 참고 음원을 재즈 스타일로 편곡
calesthio/OpenMontage7.1만2026년 10월 17일 업데이트

agents

무료요약 있음

ElevenLabs로 음성 대화 AI를 만들고 목소리, 응답 방침, 외부 도구 연동을 설정합니다. 웹사이트 삽입과 Twilio를 통한 전화 발신도 다룹니다.

  • 문의 응대용 음성 봇 제작
  • 웹사이트에 음성 안내 삽입
  • 대화 가능한 음성 캐릭터 시제품 제작
calesthio/OpenMontage7.1만2026년 10월 17일 업데이트

ai-video-gen

무료요약 있음

텍스트나 참고 이미지로 AI 영상을 생성하고 용도와 비용에 맞는 서비스를 선택하도록 돕습니다. 화면 비율 설정, 진행 상황 확인, Gemini Omni를 통한 대화형 편집도 지원합니다.

  • 글로 설명한 장면을 영상으로 만듭니다
  • 상품 사진에 움직임을 더합니다
  • 소셜 미디어용 세로 영상을 제작합니다
calesthio/OpenMontage7.1만2026년 10월 17일 업데이트

atlas-cloud

무료요약 있음

Atlas Cloud에서 하나의 API 키로 여러 모델을 사용해 이미지와 영상을 생성하고 편집합니다. 결과물과 사용 모델, 설정, 예상 비용 기록을 저장합니다.

  • 한 서비스에서 이미지와 영상 생성
  • 참고 자료로 상품 이미지 편집
  • 이미지·영상·음성을 참고한 영상 생성
calesthio/OpenMontage7.1만2026년 10월 17일 업데이트

avatar-video

무료요약 있음

HeyGen에서 인물 아바타, 목소리, 대본과 장면별 배경을 지정해 영상을 만듭니다. 사진 발표자, 합성용 투명 WebM, 동일한 사양의 일괄 생성도 지원합니다.

  • 지정한 아바타로 정해진 대본 낭독하기
  • 장면마다 다른 배경 설정하기
  • 합성용 투명 WebM 만들기
calesthio/OpenMontage7.1만2026년 10월 17일 업데이트

calesthio의 스킬 모두 보기

이 스킬의 문제 신고