Communitygithub.com

SaaS 프로모

하나의 고정된 빠른 모션 디자인 스타일로 SaaS/스타트업/제품/개발자 프로모 비디오(1080p60 MP4)를 만듭니다. 약 11초 티저 또는 사용자 자체 노래 비트에 맞춰 편집된 챕터(제품/프로젝트당 하나)가 포함된 약 50초 버전을 생성합니다.

SaaS 프로모란 무엇인가요?

이 스킬은 `promo.json` 설정 파일 하나로 완성된 프로모 비디오를 생성하는 AI 에이전트 도구입니다. 헤드리스 Chrome에서 캔버스로 모든 프레임을 코드로 그리며, 스톡 푸티지나 AI 비디오 템플릿 서비스를 사용하지 않습니다. 사용자의 스크린샷, UI 디자인, 또는 비디오 스틸을 사용하고, 부족한 카드는 내장 UI 카드로 채웁니다. 약 11초 클래식 컷 또는 챕터를 추가한 약 50초 롱 컷을 지원하며, 사용자 제공 음악의 템포와 드롭을 측정하여 모든 컷이 비트에 맞춰집니다. Khmer 언어도 지원하며, `sfxLevel`로 효과음 볼륨을 조절할 수 있습니다. 최종 출력은 -14 LUFS로 노멀라이즈된 1080p60 MP4 파일과 연락처 시트 PNG입니다.

지원 대상~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/chydevit/Skill-create-videos/tree/HEAD/plugins/video-skills/skills/saas-promo

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

SaaS 프로모 (템플릿: "skill 1")

이 스킬은 promo.json 설정 파일 하나로 완성된 프로모를 만듭니다. 고전적인 약 11초 컷 또는 promo.json에 chapters가 있을 때 약 50초 롱 컷을 생성합니다. 모든 프레임은 헤드리스 Chrome에서 캔버스로 그려집니다. 스톡 푸티지, AI 비디오 또는 템플릿 서비스는 사용하지 않습니다.

  • 이미지: 사용자의 스크린샷, 앱 UI, 디자인 또는 비디오 스틸. 부족한 부분은 내장 UI 카드로 채웁니다.
  • 텍스트: 사용자의 자체 텍스트.
  • 사운드: 모든 큐에 효과음이 있으며, 합성된 앰비언트 베드 또는 사용자의 자체 트랙을 사용합니다.

구조는 고정되어 있으며 레퍼런스 릴 skill 1 .MP4 (TikTok SaaS 에이전시 릴)의 템포를 따릅니다. 기법만 복사하며, 푸티지, 단어, 브랜딩 또는 워터마크는 절대 복사하지 않습니다.

시간장면
0-0.5초큰 글리프(# < @ ! ?)가 중앙에서 번쩍임; 보라색과 라임 네온 바, 4포인트 스파클이 어두운 도트 매트릭스 글리프 필드 위에서 스트로브
0.5-3.3초text.typed가 커서와 함께 타이핑됨; 26개의 카드가 먼 곳에서 날아와 단어 주위를 3D 링으로 공전함(처음에는 하프톤 도트, 그 다음 실제 사진); 링이 빨라지며 카메라를 스쳐 지나가고 흐려짐
3.3-6.45초구름, 새, 나비가 있는 그림 같은 초원, 파스텔 톤으로 시작하여 채도가 올라감; 오른쪽에서 세 개의 카드가 슬라이드 인, 나머지 카드들이 날아와 12개 카드 벤토 벽을 만듦. bento[0]이 히어로 카드에 타이핑, bento[1]이 긴 유리 카드에 세로로 타이핑, 두 카드가 사진을 교환, bento[2]가 흰 카드에 타이핑. 그런 다음 카메라가 그 카드로 줌 인
6.45-~8.8초어두운 도트 웨이브 필드; 빛나는 그라데이션 오브가 나타나 왼쪽으로 슬라이드; headline이 단어별로 나타남(블러에서 선명하게), sub가 슬라이드 인; 모든 것이 디포커스
~8.8-11.1초글리치(색상 이동, 슬라이스)가 히어로로 전환: 파란색/흰색 장노출 꽃이 파란색-주황색 하늘 위에, 날아다니는 ! @ # $ % * 기호와 디지털 레인. from이 블러 인/아웃, 그 다음 to가 붐과 함께 착지하며 선택적 로고가 그 아래 나타남. 검은색으로 페이드 아웃

길이는 약 11.1초입니다. 긴 헤드라인이 있으면 약간 늘어나는데, 서브라인은 항상 약 0.85초 동안 화면에 표시됩니다.

롱 컷 (~50초): chapters

"chapters" (제품, 프로젝트 또는 테마당 하나)를 추가하면 동일한 네 장면이 각각 1.5마디의 비트로 반복되며, 피날레는 2마디를 차지합니다:

비트재생 내용
인트로오픈(typed + 모든 스크린샷의 소용돌이) → 월(모든 사진, bento) → 오브(headline / sub)
각 챕터오픈(챕터의 typed, 소용돌이에 해당 사진; typed 없으면 생략) → 월(해당 사진 먼저, bento, wall 모양) → 오브(해당 headline / sub / orb 색상)
종료피날레(from / to / url / 로고), 2마디

네 개의 챕터에 세 개의 타이핑 오프너가 있으면 23마디이며, 109 BPM에서 약 50초입니다.

  • 사진: 각 사진에 "tag"를 태그하여 해당 챕터로 분류합니다.
  • 월 모양: "meadow" (낮), "dusk" (일몰) 또는 "dark" (챕터의 오브 색상으로 빛나는 도트 웨이브 필드). 번갈아 사용하면 챕터가 구분됩니다.
  • 음악 싱크:
    • music과 함께 assets.py는 노래의 템포와 드롭(에너지가 가장 크게 상승하는 지점, 킥 드럼에 맞춤)을 측정합니다. 비디오는 인트로 소용돌이 후 첫 번째 컷이 드롭에 맞춰지도록 시작하며, 이후 모든 컷은 마디 그리드에 맞춰집니다.
    • 출력된 music: … bpm, drop at … s 줄을 확인하세요. 잘못된 경우 직접 bpm과 musicDrop (노래 초)을 제공하세요.
    • sfxLevel (예: -4)을 사용하여 효과음을 노래 아래에 배치하세요.
  • 저작권: 상업용 노래를 사용하면 게시 시 비디오가 음소거되거나 클레임이 걸릴 수 있습니다. 이 점을 언급하고, 공개 게시물에는 플랫폼 자체 사운드 라이브러리를 제안하세요.

필요 사항: ffmpeg, Node 22+, Google Chrome 또는 Chromium (CHROME_PATH), numpy와 scipy가 있는 Python (PROMO_PY; promo.sh가 자동으로 찾음).

워크플로우

1. 프로모에 필요한 것 수집

  • 카드 (8-20장 사진): 제품, 웹사이트, 앱 또는 대시보드 스크린샷; 디자인 작업; 또는 사용자 비디오의 스틸. 이미지와 비디오 모두 작동합니다. 비디오는 "at" 초 또는 길이의 30% 지점에서 하나의 스틸을 제공합니다. 가로 사진은 와이드 슬롯으로, 세로 사진은 높은 슬롯으로 들어갑니다. 8장 미만이면 내장 UI 카드가 나머지를 채웁니다 (검색 바, 폼, 차트, 그라데이션 오브, 알약 등, text.labels로 레이블 지정). 먼저 사진을 살펴보고 대부분 비어 있는 것은 제외하세요.
  • 텍스트: 장면이 고정된 속도로 타이핑하고 나타내므로 짧게 유지하세요.
    • typed: 구두점이 있는 하나의 단어 또는 이름, 약 4-8자 ("SaaS.", "KumNit.").
    • bento: 세 개의 짧은 구문 (1개, 2-4개, 2-3개 단어).
    • headline: 5-8개 단어. sub: 최대 약 90자 한 줄.
    • from / to: 마무리 "From … / To …" 쌍.
    • 크메르어 ("lang": "km")의 경우 자연스러운 크메르어를 작성하세요. headline, from 및 to에서 한 번에 하나씩 나타나야 하는 덩어리 사이에 공백을 넣으세요. Kantumruy Pro가 번들로 제공됩니다.
  • 선택 사항:
    • logo: 마지막 줄 아래에 표시됨. 불투명 로고는 둥근 앱 아이콘이 됩니다.
    • text.url: 엔드 카드의 웹사이트 줄.
    • hero: 꽃 대신 사용자의 자체 피날레 이미지.
    • backdrop: 그림 같은 초원 대신 이미지.
    • music: 사용자의 자체 트랙. 롱 컷에서는 드롭이 첫 번째 컷에 맞춰집니다. musicStart를 설정하여 재정의 가능.
    • chapters: 각 챕터의 tag, typed, bento, headline, sub, wall 및 orb가 있는 약 50초 롱 컷.
    • sfxDir: 사용자 자체 사운드 효과 폴더.
    • colors: 네온, 오브, 하늘 및 기호에 대한 브랜드 색상.

2. 프로젝트 작성

프로젝트 폴더를 만들고 examples/kumnit-saas.json (또는 -km.json)을 promo.json으로 복사한 다음 편집하세요. 모든 키는 references/config.md에 설명되어 있습니다. 경로는 프로젝트 폴더를 기준으로 합니다.

3. 미리보기 (약 10초)

<skill>/scripts/promo.sh <project>/promo.json --preview

이것은 사진을 준비하고 (음악을 측정하고) 12장의 스틸 (롱 컷의 비트당 하나)을 out/<name>-preview.png로 렌더링합니다. 읽고 다음을 확인하세요:

  • 타이핑된 단어가 카드와 겹치지 않는지.
  • 텍스트가 너무 꽉 차지 않는지: 긴 텍스트는 줄어들지만 가독성이 떨어집니다.
  • 히어로 카드 (크고, 왼쪽)가 좋은 사진을 보여주는지: cards의 첫 번째 가로 사진을 사용합니다.
  • 피날레 텍스트가 꽃 또는 히어로 위에서 읽을 수 있는지.

4. 렌더링 (1분 미만; 롱 컷은 약 4분이므로 백그라운드에서 실행)

<skill>/scripts/promo.sh <project>/promo.json

단계는 다음 순서로 실행됩니다: assets, plan (타임라인 및 장면의 사운드 큐), render (3개의 Chrome 렌더러, --jobs N), mix, encode.

  • --from mix는 프레임을 다시 렌더링하지 않고 사운드를 다시 믹싱하고 인코딩합니다.
  • --from render는 그림을 다시 그립니다.

출력: out/<name>-1080p60.mp4 및 out/<name>-contact.png (비디오 전체에 걸쳐 약 30프레임).

5. 전달 전 확인

  • 연락처 시트를 읽으세요.
  • ffprobe는 약 11.1초 (클래식) 또는 비트 합계 (롱 컷; build/cues.json에 모든 비트 나열)를 표시해야 합니다. 믹스는 -14 LUFS / -1 dBTP로 노멀라이즈됩니다: ffmpeg -i out.mp4 -af ebur128 -f null -로 측정하세요.
  • 믹스 단계는 sfxDir에서 가져온 효과음의 수와 합성된 효과음의 수를 출력합니다.
  • 결과를 들을 수 없으므로 사용자에게 확인한 내용을 알리고 들어보라고 요청하세요. 인트로 클릭과 초원 임팩트가 가장 큰 순간입니다.

튜닝

  • 타이밍:
    • scripts/scene.mjs 상단의 plan()이 클래식 장면 시간을 보유합니다.
    • beatSpecs()가 비트를 배치합니다: mapT()가 해당 시간을 각 비트로 이동 및 늘립니다.
    • cuesFor()의 사운드 큐는 audio.py가 build/cues.json에서 읽어오므로 자동으로 따라옵니다.
  • 모양:
    • 색상은 colors에서 가져옵니다.
    • 벤토 레이아웃은 scene.mjs의 SLOTS 테이블입니다.
    • 초원, 꽃 및 오브는 buildMeadow, drawFlower 및 drawOrb에서 그려집니다.
  • 사운드: sfxDir에서 시도하는 파일 이름은 scripts/audio.py의 SFX 테이블이며, 큐당 변형이 선택됩니다. 베드의 코드와 섹션은 make_bed()에 있습니다.
  • 크기: 템플릿과 같이 1920×1080만 지원합니다. 세로 9:16 버전은 자체 레이아웃이 필요합니다.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

brand-loop

Make a seamless looping background video of glossy 3D liquid blobs in a brand's colours. Two colour families float slowly in zero gravity, each merging and pinching off like mercury, on a soft off-white studio backdrop with a warm gradient, faint ripple rings, soft drop shadows and shallow depth of field. It renders in Blender EEVEE at 4K 60 fps as H.264, HEVC 10-bit and 1080p, and the last frame flows into the first. Use it whenever the user wants a looping background, brand backdrop, abstract 3D or liquid loop, motion background for a website, stream, event screen or presentation, a "seamless loop", or a background for their logo or text, or types /brand-loop.

brand-promo

Make a ~50-second dark, kinetic studio showreel / promo video from a brand's own videos, its logo animation and a few lines of text. It has a typed intro, a ring of 3D cards, a glitchy title drop, and 3-5 spotlights (each work on a tilted card or a phone, playing its own sound). Then "Your story… next.", a 3D rush of clips, and the liquid logo reveal with the name, chips and website. It comes with an original synthesised score, narration (VoxCPM2, English or Khmer) and sound effects, as a 1080p60 MP4. Use it whenever the user wants a showreel, studio reel, portfolio video, agency or brand promo, "demo video" of their work, a promo like a template video, or a Khmer version of one, or types /brand-promo, even if they only hand over a few videos and a logo.

generate-logo

Turn any logo image (PNG, JPG, WebP or SVG) into finished 5-second animated logo reveals in five styles (liquid, neon, bounce, lens, rise). Each comes as a 1080p60 MP4 with synthesised sound effects, a transparent WebM (optional ProRes 4444 .mov) for video editors, and a keyframe sheet. It can add a two-tone wordmark, render square or vertical versions for social media, and build a bespoke style for a particular logo. Use it whenever the user wants a logo animation, animated logo, logo reveal, intro, outro or sting, motion logo, a brand intro for a video, or "make my logo move", or types /generate-logo, even if they only attach a logo and say "animate this".

portfolio-reel

Make a ~30-second creator / freelancer / developer portfolio intro reel (1080p60 MP4) in one fixed, friendly motion-design style (template "skill 2"). A mustard-yellow gradient asks a hook question ("Looking for a … Video editor?"), a white circle wipes to a profile hero (round avatar, badge pill, "Hello, I'm …", roles split by bars, a black "Here's my work ↑" button). The page then scrolls through 1-4 work sections on light grey with window-light shadows, each a title plus 1-3 rounded cards playing the user's own clips or showing their pictures. A yellow light wipe brings two closing lines, then a black social profile card pops up with counting stats, a cursor clicks Follow (it turns into Following) and the card flips in 3D to its back. Two UIs: "classic" (the template) and "app" (a search bar that types the hook and opens a results dropdown, a bento dashboard of glass tiles, a carousel of browser and phone mockups, a chat screen for the closing lines, and a profile card with a co...

관련 스킬