VYBE Image-to-Motion은(는) 무엇을 하나요?
I = node <this skill>/scripts/i2m.mjs. 단독 실행 또는 /vybe의 4~5단계로 작동합니다 (이 경우 컴포지션 디렉토리는 VYBE 프로젝트의 composition/입니다).
정직 규칙
프로그램적 모션은 원본 픽셀 주위로 카메라, 레이어, 조명 및 입자를 움직입니다. 사람이 걷거나, 미소 짓거나, 고개를 돌리거나, 물이 흐르거나, 제품의 뒷면을 보여줄 수 없습니다. 프로그램적 출력을 "사람이 걷는다" 또는 "사실적인 움직임"이라고 설명하지 마십시오. 요청에 픽셀 수준의 움직임이 필요하고 AI 제공자가 실행되지 않은 경우, 그 사실을 분명히 말하고 카메라 모션 버전을 있는 그대로 전달하십시오. AI 클립에는 .provenance.json이 포함되며 항상 AI 생성으로 표시됩니다.
1 · 분석
I analyze <image> # 크기, 종횡비 → 제안 형식, 톤 키, 팔레트
그런 다음 이미지를 보고(시각) sources/image-analysis.md를 작성합니다: 주요 피사체와 경계, 전경/중경/배경, 원근법과 수평선, 조명 방향, 움직일 수 있는 영역, 얼굴(정체성이 유지되어야 함).
2 · 계획 및 방법 선택
I classify "<사용자의 모션 요청>" [--method programmatic|ai]
I providers # 어떤 AI 제공자가 구성되어 있는지 (존재 여부만)
| 요청 내용 | 방법 |
|---|---|
| 줌, 푸시인, 풀아웃, 팬, 궤도 느낌, 시차, 깊이 | programmatic |
| 입자, 먼지, 눈, 비, 안개, 조명 스윕, 광채, 플레어 | programmatic |
| 피사체는 안정적이고 배경이 떠다니는 경우 | programmatic (레이어) |
| 분리된 객체의 부드러운 부유/흔들림 | programmatic (레이어, subjectSway) |
| 사람/동물 움직임, 표정, 손 | AI |
| 머리카락/천/잎사귀/불꽃 움직임, 물/연기 흐름 | AI |
| 변형(녹기, 피다, 폭발), 완전 360° 회전 | AI |
사용자의 명시적 --method가 항상 우선합니다. 하이브리드(AI 클립 + 프로그램적 오버레이 및 카메라)가 종종 가장 좋습니다: 유기적 움직임을 생성한 다음, HyperFrames에서 VYBE 카메라, 조명, 타이포그래피 및 사운드를 추가합니다.
sources/motion-plan.md를 작성합니다: 카메라 이동, 객체/배경 움직임, 조명, 입자, 지속 시간, 강도, 방법 + 이유, 그리고 움직이지 않을 것.
3a · 프로그램적
I scaffold --image <img> --prompt "<요청>" --composition <dir> [--mode layers|depth] [--format f] [--duration s]
cd <dir> && npx hyperframes check && npx hyperframes snapshot --frames 5 -o ../previews/i2m
- layers (기본값):
npx hyperframes remove-background가 피사체와 배경 판을 자릅니다. 피사체 구멍은 흐릿한 복사본으로 채워집니다. 판, 안개, 피사체, 입자 및 조명은 깊이에 따라 스케일링된 시차로 움직입니다. 명확한 피사체가 있을 때 가장 좋습니다. - depth: Three.js 셰이더가 가상 카메라가 움직일 때 뎁스 맵(피사체 마스크 + 지면 그라디언트)으로 이미지를 변위시킵니다 — 프레임 전체에 걸친 진정한 2.5D 시차. 풍경, 실내, 하나의 피사체가 없는 장면에 가장 좋습니다. 얼굴의 경우
intensity를 ≤ 1로 유지하십시오(강한 오프셋이 얼굴을 왜곡시킵니다). index.html의#i2m-configJSON을 통해 조정합니다 (카메라: push · pull · pan-left · pan-right · rise · orbit; intensity 0.5–1.5; effects: particles · snow · rain · fog · light-sweep; subjectSway).- 컷아웃 없이(제거 불가능) 단일 레이어 모션으로 저하됩니다 — 이를 보고합니다.
3b · AI 이미지-비디오
I generate --provider <p> --image <img> --prompt "<모션 프롬프트>" --out sources/clip.mp4 --duration 5 --aspect 16:9 --dry-run # 요청 검사 (키는 가려짐)
I generate --provider <p> --image <img> --prompt "<모션 프롬프트>" --out sources/clip.mp4 --duration 5 --aspect 16:9
I compose --clip sources/clip.mp4 --composition <dir> [--title "…"]
| 제공자 | 모델 | 참고 |
|---|---|---|
runway | gen4.5 (기본값), gen4_turbo, veo3.1, veo3.1_fast, kling3.0_pro, kling3.0_standard | 하나의 키로 Runway, Google Veo 3.1 및 Kling 3.0에 접근; 지속 시간 2–10초 (Veo 4/6/8, Kling 3–15) |
luma | ray-3.2 | 시작 프레임으로 5초; 공개 --image-url 선호, 작은 파일은 인라인 데이터 |
gemini | gemini-omni-1.1-flash | Interactions API, 16:9 또는 9:16; Veo 3.1 미리보기 모델은 2026-10-22에 폐기됨 |
kling | kling-v2-1 (직접) | 실험적 어댑터 (보조 문서의 엔드포인트); runway + kling3.0_pro 권장 |
모션 프롬프트는 샷 설명처럼 작성합니다: 피사체 + 동작 + 카메라 + 분위기 + "피사체의 정체성과 구성을 유지하십시오". 생성에는 비용이 발생합니다: 사용자가 명시적으로 AI 모션을 요청하지 않은 경우 에이전트가 시작한 유료 호출 전에 사용자에게 확인하십시오. 실패한 유료 생성은 묻지 않고 한 번 이상 재시도하지 마십시오. 오류(인증, 할당량, 검열, 시간 초과)는 그대로 보고됩니다.
세부 사항, 출처 및 주의 사항: references/providers.md.
4 · 전달
컴포지션은 일반 VYBE 처리를 받습니다: vybe audio (음악/SFX/음성; 마커 존재), vybe render, vybe qc, vybe finalize. 단독 실행: 컴포지션 디렉토리에서 npx hyperframes render --output out.mp4. 소스 이미지, 레이어, 뎁스 맵, i2m-plan.json 및 모든 .provenance.json을 보관합니다.