Communitygithub.com

포트폴리오 릴

크리에이터, 프리랜서, 개발자를 위한 약 30초 분량의 포트폴리오 소개 릴(1080p60 MP4)을 하나의 고정된 친근한 모션 디자인 스타일(템플릿 "skill 2")로 제작합니다.

포트폴리오 릴란 무엇인가요?

이 스킬은 사용자의 사진, 클립 몇 개, 이름만 제공해도 완성도 높은 약 30초 분량의 포트폴리오 인트로 릴을 자동으로 생성합니다. 머스타드 옐로우 그라데이션 위에 훅 질문이 타이핑되고, 흰색 원이 와이프되며 아바타, 배지, 인사말, 역할, 버튼이 등장합니다. 이후 1~4개의 작업 섹션이 라이트 그레이 배경에 부드러운 그림자와 함께 스크롤되며, 각 섹션에는 제목과 사용자의 클립이나 사진을 담은 카드가 최대 3개까지 표시됩니다. 옐로우 라이트 와이프 후 두 줄의 클로징 메시지가 나타나고, 검은색 소셜 프로필 카드가 튀어나와 통계를 보여준 후 커서가 팔로우 버튼을 클릭하면 카드가 3D로 뒤집히며 마무리됩니다. 클래식 UI와 앱 UI 두 가지를 지원하며, 5가지 컬러 스타일과 10가지 시각 효과를 선택할 수 있고, 사운드(SFX 및 로파이 비트)도 자동으로 믹싱하여 -14 LUFS로 출력합니다. Khmer(캄보디아어)도 지원합니다. 이 모든 과정은 코드로 렌더링되며, 사용자가 직접 편집할 수 있는 `promo.json` 설정 파일 하나로 제어됩니다.

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

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

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

문서

포트폴리오 릴 (템플릿: "skill 2")

이 스킬은 하나의 설정 파일 promo.json으로 완성된 약 30초짜리 인트로 릴을 제작합니다. Canvas 장면이 헤드리스 Chrome에서 모든 프레임을 그리고, 사용자의 클립을 카드 안에서 재생합니다. 스톡 푸티지, AI 영상, 템플릿 서비스는 사용하지 않습니다. 구조는 참조 릴 skill2.MP4(TikTok 크리에이터 인트로)의 페이싱을 따릅니다. 기법만 복사하며, 영상, 대사, 이름, 핸들, 워터마크는 절대 복사하지 않습니다.

시간 (3개 섹션 기준)장면
0-2.3초머스타드 그라데이션, 두 개의 큰 부드러운 원이 슬라이드 인; hook[0]이 한 단어씩 타이핑되고, 이어 hook[1]이 크고 굵게 나타남
2.3-2.9초흰색 원이 아래에서 위로 와이프; 아바타가 작은 노란색 디스크로 튀어나옴
2.9-6.4초흰 배경의 프로필 히어로: 아바타가 큰 원으로 커지고(노란색 링 또는 노란색 듀오톤), 이어 별이 있는 아웃라인 badge 알약, hello가 한 단어씩, 얇은 막대로 구분된 roles, 그리고 흰색 원 안에 ↑가 있는 검은색 button 알약이 나타남. 화살표가 위로 쏘아지고 페이지가 스크롤됨
6.4-20.5초라이트 그레이 배경에 부드러운 창문 그림자가 있는 섹션별 페이지(각 4.6초): 그라데이션 제목, 이어서 스크롤을 따라 부드럽게 떠오르는 1-3개의 둥근 카드. 비디오 재생, 사진은 천천히 확대. 세로형 카드는 높게, 가로형 카드는 넓게, 섞인 행은 엇갈려 배치
20.5-24.4초왼쪽 아래에서 노란색 빛이 그라데이션 방향으로 퍼짐; cta[0], 이어 cta[1]이 단어별로 나타남
24.4-30.3초점에서 검은색 프로필 카드가 튀어나옴(아바타 또는 logo, handle, name, 최대 3개의 카운팅 stats, 두 개의 버튼). 커서가 첫 번째 버튼을 클릭하면 회색으로 변하고 clicked가 표시된 후, 카드가 3D로 뒤집혀 back을 보여줌

길이는 섹션 3개 기준 약 30초이며, 섹션당 ±4.6초, 긴 텍스트가 있으면 약간 더 길어집니다.

두 가지 UI: "ui": "classic" (기본값) 또는 "app"

app은 동일한 타임라인과 텍스트를 유지하지만, 모든 장면이 움직이는 메시 그라데이션 위의 현대적인 앱 화면으로 표현됩니다:

시간app 장면
hook유리 검색창이 hook[0] hook[1]을 타이핑; 결과 드롭다운에 사람(아바타, 이름, 역할)과 처음 두 섹션이 표시됨; 커서가 사람을 클릭
hero클릭한 결과가 벤토 대시보드로 커짐(유리 타일들): 큰 사진 타일(이름과 핸들), 인사말 타일(배지, 하이라이터가 있는 hello, 역할 칩), profile.stats를 카운트하는 통계 타일, 커서가 클릭하는 button 타일, 섹션을 나열하는 타일
sections가로 캐러셀, 섹션당 한 슬라이드: 큰 숫자, 제목, "n works", 상단에 진행 바. 작업은 기기 목업으로 표시: 가로 클립은 브라우저 창(신호등, 주소창 site/section-title)에, 세로 클립은 휴대폰에, 오른쪽에 계단식으로 배열
cta채팅 화면: 입력 중 표시(점), 이어 cta[0]과 cta[1]이 사람의 메시지 버블로 도착(마지막 것은 강조 색상)
card그라데이션 커버 배너가 있는 프로필 카드, 겹쳐진 아바타, 핸들, 이름, 카운팅 통계, 두 개의 알약 버튼; 커서가 Follow 클릭(컨페티), 이어 profile.qr / profile.back의 QR 코드(설치 시 qrencode로 생성)로 뒤집히며, 아래에 주소 표시

site(선택 사항)는 브라우저 목업에 표시될 주소를 설정하며, 기본값은 profile.back입니다. 모든 스타일과 효과는 두 UI에서 모두 작동합니다(app에서는 orbit과 ticker가 사용되지 않음).

스타일 및 효과

"style"은 색상 테마를 선택합니다. 다크 스타일은 미세한 그리드가 있는 어두운 페이지와(window 그림자 대신) 빛나는 카드를 사용합니다.

스타일모습
mustard (기본값)템플릿: 머스타드 옐로우 그라데이션, 흰색 히어로, 라이트 그레이 페이지, 검은색 알약, 파란색 버튼
midnight인디고에서 블랙, 네온 시안과 바이올렛, 어두운 페이지, 빛나는 카드
sunset피치에서 핑크, 따뜻한 흰색 페이지, 코랄 제목과 버튼
amber검정에 가까운 배경 위의 골드(개발자 또는 포트폴리오 룩), 어두운 페이지, 앰버 알약과 버튼
mint민트에서 틸, 흰색 페이지, 녹색 제목

"colors"는 스타일의 단일 색상을 재정의합니다.

모든 효과는 기본적으로 켜져 있습니다. "effects": {"ticker": false}로 하나를 끄거나, "effects": false로 모두 꺼서 평범한 템플릿 룩으로 만들 수 있습니다:

효과기능
bokeh부드러운 빛 입자가 그라데이션 장면에서 위로 떠다님
shine큰 질문, 버튼, 프로필 카드 위로 빛이 스치고, 원 와이프에 에코 링, 버튼에 펄스 링
marker이름 아래에 하이라이터가 스와이프됨(text.highlight가 단어를 선택하거나, 두 번째 단어 이후의 모든 것)
orbit점선 링에 세 개의 점이 아바타 주위를 돎
blur페이지 스크롤 중 세로 모션 블러
labels각 섹션 제목 위에 "01 / 03", 아래에 그려지는 언더라인
glare각 작업 카드가 안착된 후 대각선 플레어가 지나감
ticker마감 라인 뒤로 스크롤되는 큰 아웃라인 태그(text.tags, 또는 roles 및 section titles)
confetti버튼 클릭 시 스타일 색상의 컨페티 버스트
grain필름 그레인과 모든 것 위의 부드러운 비네트

사용자가 선택할 수 있도록, 전체 렌더 전에 모든 스타일로 동일한 4개 순간을 렌더링합니다("스타일 보드"). promo.json의 사본에 render.mjs --times를 사용하고, 스타일만 다르게 설정하세요.

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

워크플로우

1. 릴에 필요한 것 수집

  • 아바타: 얼굴과 어깨가 나온 세로 사진. crop: [x, y, size](픽셀)를 제공하여 얼굴이 원 안에 오도록 하고, 미리보기를 확인하세요. 배경이 복잡하거나 밝은 경우, "avatarStyle": "duotone"으로 템플릿처럼 노란색 위에 어두운 형상을 만들 수 있습니다.
  • 섹션 (1-4): 각각 짧은 제목(2-4단어)과 1-3개의 클립: 비디오({"file", "at"}, at부터 5.5초 재생) 또는 사진. 사용자의 최고 작업을 사용하고, 다양성을 위해 세로와 가로를 섞으세요.
  • 텍스트: 짧게 유지하세요.
    • hook: 작은 한 줄과 1-2단어로 된 큰 질문.
    • badge: 약 50자 이내의 슬로건.
    • hello: "Hello, I'm …".
    • roles: 2-4개의 짧은 역할.
    • button: 버튼 레이블.
    • cta: 두 줄의 마감 멘트.
  • 프로필 카드: handle, name, 최대 3개의 stats, buttons, clicked, back. 실제 숫자만 사용하세요(사용자, 사용자 사이트 또는 프로필에서 가져옴). 문자열 값(예: "2023")은 카운팅 없이 그대로 표시됩니다.
  • 언어: 크메르어의 경우 "lang": "km"으로 설정하고 자연스러운 크메르어를 작성하세요. Kantumruy Pro 글꼴이 포함되어 있습니다.
  • 선택 사항: style, effects, logo(카드 원 안), colors, text.highlight, text.tags, music (+ musicStart), sfxDir.

2. 프로젝트 작성

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

3. 미리보기 (약 10초)

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

클립을 자르고 약 13개의 스틸을 out/<name>-preview.png로 렌더링합니다. 확인하세요:

  • 아바타 크롭;
  • 줄이 비좁지 않은지(긴 텍스트는 자동 축소);
  • 각 섹션의 카드가 좋은 프레임을 보여주는지: at 변경;
  • 프로필 카드의 숫자.

4. 렌더링 (약 2분; 백그라운드에서 실행)

<skill>/scripts/promo.sh <project>/promo.json --jobs 4

단계는 다음 순서로 실행됩니다: assets, plan, render, mix, encode. --from mix는 프레임을 다시 렌더링하지 않고 사운드만 리믹스합니다.

출력: out/<name>-1080p60.mp4 및 out/<name>-contact.png.

5. 전달 전 확인

  • 연락처 시트를 확인합니다.
  • ffprobe로 build/cues.json에 표시된 길이가 나오는지 확인합니다. 믹스는 -14 LUFS / -1 dBTP로 노멀라이즈됩니다.
  • 결과물의 소리를 들을 수 없으므로, 확인한 내용을 사용자에게 알리고 듣도록 요청하세요.

튜닝

  • 타이밍: scripts/scene.mjs의 plan(). SEC는 한 섹션의 길이, SCROLL은 페이지 스크롤의 길이입니다. buildCues()의 큐는 자동으로 따라옵니다.
  • 룩:
    • 테마는 scene.mjs의 STYLES, 효과는 EFFECTS입니다. 색상은 colors에서도 가져올 수 있습니다.
    • 카드 레이아웃은 layout()입니다.
    • 창 그림자는 buildShade()입니다.
    • 뒤집기는 원근감 있는 스트립으로 drawFlip()입니다.
  • 사운드: scripts/audio.py의 SFX는 sfxDir에서 시도할 파일명을 나열합니다. make_bed()는 로파이 비트입니다.

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".

saas-promo

Make a kinetic SaaS / startup / product / developer promo video (1080p60 MP4) in one fixed, fast motion-design style: an ~11-second teaser, or a ~50-second version with chapters (one per product or project) cut on the beat of the user's own song. It opens with glyph flashes and purple/lime neon shapes, then types a word with a cursor while a 3D swirl of your screenshots orbits it. Cards slide onto a painted meadow and build a bento wall with words typing inside them, and the camera zooms into a card. A glowing gradient orb then reveals the headline word by word, and a glitch drops into a long-exposure flower on a blue-to-orange sky with flying symbols and "From … / To …". Every frame is drawn in code, with typing, whoosh, riser and impact sound effects and a synthesised ambient bed or your own song (its tempo and drop are measured, so every cut lands on the beat), mixed to -14 LUFS. English or Khmer. Use it whenever the user wants a SaaS promo, product or app teaser, a developer or...

관련 스킬