GIF 시네마
브리프를 원인과 결과가 있는 여러 가지 뚜렷한 동작으로 전환한 후, 검토된 숏을 조립하여 더 긴 이야기를 만듭니다. 외형, 캐릭터 동작, 그래픽 모션, 전달 형식을 분리합니다. 사용자가 선택한 아트 스타일과 승인된 푸티지를 유지합니다. 이것은 자율적인 애니메이션 모델이 아닌, 저자 안내 워크플로우입니다.
실제 제작 경로 선택하기
- 기존 GIF: 각 테이크가 실제로 보여주는 내용을 검사하고, 해당 동작을 중심으로 이야기를 구성합니다. 번들 예제는 API 키 없이 이 경로를 테스트합니다.
- 새로운 캐릭터 동작: 생성된 각 짧은 GIF당 하나의 주요 동작을 계획합니다. 사용 가능하고 승인된 생성 도구/API만 사용합니다. 각 결과를 검사하고 승인한 후에만 해당 상태를 다른 장면으로 확장합니다. generation.md를 참조하세요.
- 모션 디자인: 타이포그래피 및 악센트 룰 진입을 위해 포함된 로컬 애니메이션 타이틀 렌더러를 사용합니다. 계층적 캐릭터, 이동 가능한 소품, 마스크 또는 리깅된 동작의 경우, 환경에서 실제로 사용 가능한 컴포지터를 사용하고 편집 가능한 소스를 보존합니다. 이 패키지에는 일반적인 계층형 애니메이션 엔진이 포함되어 있지 않습니다.
카메라 이동, 오버레이, 반전된 푸티지, 동일한 클립에 다른 캡션, 또는 더 긴 유지를 새로운 캐릭터 동작으로 간주하지 마십시오. 긴 카툰에는 추가적인 스토리 이벤트가 필요합니다. 해당 그림이 없고 생성이 불가능한 경우, 완성된 카툰을 주장하지 말고, 정직한 애니메틱 또는 제작 계획을 전달하십시오.
런타임 및 키 없는 확인
Python 3.10+, Pillow, Git, FFmpeg 및 ffprobe가 필요합니다. 격리된 환경을 사용하십시오. 스킬의 헬퍼는 이 검토된 불변의 공개 런타임에서 작동합니다:
python -m venv .venv
# 셸에 맞는 명령어로 .venv를 활성화한 다음:
python -m pip install "gif-cinema @ git+https://github.com/antropos17/chatgpt-gif-cinema.git@fa82b13366a9ae94a4ece730ec6b2d065cd9a060"
python -m gif_cinema --help
ffmpeg -version
ffprobe -version
해당 리비전의 기존 체크아웃 또는 테스트된 호환 가능한 최신 런타임도 사용할 수 있습니다. 작동 중인 프로젝트를 자동으로 다운그레이드하지 마십시오. 런타임은 포함된 소스 사용 가능 평가 라이선스를 사용합니다. GIF Factory의 저작 워크플로우 영향은 THIRD_PARTY_NOTICES.md에 자체 MIT 고지가 있습니다.
헬퍼 및 에셋 경로는 이 스킬 폴더 기준으로 확인합니다. 아래 예제는 셸이 해당 폴더에 있다고 가정합니다. 다른 위치에서 작업하는 경우 헬퍼 및 입력 JSON에 절대 경로를 사용하고, 출력은 사용자 프로젝트에 저장하며 설치된 스킬에는 절대 저장하지 마십시오.
python scripts/story_project.py compile assets/example/storyboard.json --out output/story-project
python -m gif_cinema render output/story-project/film.json --dry-run --max-api-calls 0
python -m gif_cinema render output/story-project/film.json --execute --max-api-calls 0 --out output/story-render
python scripts/story_project.py export-gif output/story-render/film.mp4 --out output/story.gif
이것은 9.68초 소스 편집이며, 새로운 긴 카툰이 아닙니다: 2초 로컬 애니메이션 타이틀과
3개의 기존 2.56초 우주비행사 동작으로 구성됩니다. MP4는 25fps를 사용합니다. 소스 캐릭터는
테이크당 16개의 드로잉을 가지며, 초당 25개의 새로운 드로잉이 아닙니다. GIF 내보내기는
기본적으로 320px 너비, 10fps, 무음, 한 번 재생입니다. --repeat는 전체 결과를 반복합니다.
일부 뷰어는 GIF 반복 동작을 재정의합니다.
핵심 CLI 회귀 점검을 위해 scripts/smoke_test.py --out NEW_DIRECTORY를 실행하십시오.
두 헬퍼 모두 키가 필요하지 않습니다. 스토리 헬퍼는 프로바이더 호출을 절대 하지 않으며
기존 출력 프로젝트를 거부합니다. story-project.md는
정확한 스키마, 명령어, 타이밍 및 제한 사항을 문서화합니다.
생성 전 직접 수행
새 스토리 또는 상당한 확장의 경우 storytelling.md를 읽으십시오. 편집 가능한 스토리보드를 다음 항목과 함께 제작하십시오:
- 전제와 결말; 대상, 목표 시간, 화면비율, 언어 및 사운드 요구사항(해당되는 경우). 다시 묻지 않고 기본값을 추론하십시오.
- 간결한 시각적 바이블: 인식 가능한 캐릭터 앵커, 팔레트/재질, 의상, 소품 개수, 소유권, 스케일, 지리 및 카메라 규칙.
- 비트/숏 목록: 이전 상태 → 시각적 동작 → 이후 상태, 카메라, 예상 시간, 스토리 내 목적. 각 컷에서 손/소품/접촉을 추적하십시오.
- 소스/생성 맵: 어떤 동작이 이미 존재하는지, 어떤 동작에 새로운 드로잉이 필요한지, 어떤 동작이 로컬 그래픽인지. 렌더링되지 않은 숏은 렌더링되지 않음으로 표시하십시오.
타이머가 브리프에 도달할 때까지 푸티지를 반복하는 것이 아니라, 의미 있는 동작과 결과를 추가하여
스토리를 확장하십시오. assets/example/long-story.plan.json의 긴 스토리 예제는
렌더링되지 않은 14개 동작 제작 계획입니다. 컴파일하면 14개의 원샷 생성 입력을 준비하지만,
해당 동작을 렌더링하지는 않습니다.
의도적으로 생성 및 결합하기
스토리보드를 scripts/story_project.py compile ...로 컴파일하십시오. 소스 전용 프로젝트는
실행 가능한 film.json을 갖습니다. 누락된/생성된 숏이 있는 프로젝트는 별도의
generation/ID.json 입력과 의도적으로 불완전한 assembly-template.json을 갖습니다.
컴파일러는 유료 배치를 실행하지 않습니다.
캐릭터/방법이 새로운 경우 하나의 대표 동작을 사용하여 실현 가능성을 확인하십시오. 새로운 생성에는 사용자 자신의 API 액세스와 합의된 제한 호출 횟수가 필요합니다. 엔드포인트 연속성을 위해 승인된 이전 마지막 프레임을 추출하고 검사한 후, 기존 스틸과 깔끔한 ID 참조를 다음 숏 입력에 첨부하십시오. 컴파일러는 미래 참조나 자동 종속성 그래프를 생성하지 않습니다.
별도의 테이크 폴더와 승인/거부된 후보 기록을 유지하십시오. 재테이크는 인접한 두 결합에서
모두 검토되어야 합니다. 선택된 각 GIF의 숏 ID, 경로, SHA-256 및 검토 노트를
테이크 매니페스트에 기록하십시오. --takes takes.json으로 컴파일하여 모드를 수동으로 변경하지 않고
생성된 슬롯을 채우십시오. 헬퍼는 해당 정확한 바이트를 확인하고, 실제 지연 시간을 측정하며
원본 요청을 유지합니다. 부분 선택을 적용할 수 있으며, 누락된 동작은 명시적으로 렌더링되지 않은 상태로 남습니다.
각 프로젝트에는 휴대용 storyboard.json이 포함됩니다. 새 테이크 매니페스트와 새 출력 디렉터리로
해당 파일부터 계속 작업하십시오. 기존 소스와 렌더링된 타이틀은 해시 고정되어 있으며
매니페스트로 교체할 수 없습니다. 의도적인 재테이크의 경우 원본 스토리보드의 편집된 사본을 만들고
거기서 새 테이크를 선택하십시오. 이전 프로젝트를 유지하고 인접한 두 컷을 다시 검토하십시오.
검토 기록과 함께 프로젝트 버전을 보관하십시오. 호출자 노트는 자동 시각적 승인이 아닙니다.
정확한 선택 형식 및 키 없는 예제를 참조하십시오.
키가 우연히 구성된 경우에도 제로 호출 렌더링을 사용하십시오.
모션, 타이밍 및 내보내기
타이틀 카드는 텍스트/라인 진입 후 유지되는 일회성입니다. 레터링은 생성 프롬프트에 맡기지 않고
스토리보드에서 로컬로 편집 가능합니다. 타이틀은 별도의 숏이며 오버레이가 아닙니다.
런타임 캡션은 별도의 SRT이며 GIF에 굽지 않습니다. 필요한 경우 --font로 라이선스가 있는
로컬 폰트를 지정하고 글리프를 검사하십시오.
캐릭터 타이밍은 디코딩된 소스 GIF에서 비롯됩니다. 이 헬퍼는 소스 리타이밍, 전환, 보간, 오디오 생성 및 자동 동작 합성을 제공하지 않습니다. 고정된 런타임은 하드 컷을 사용하며 영화 스크립트를 통해 선택적 로컬 오디오를 가져올 수 있습니다. GIF에는 오디오가 없습니다. 최신 편집 도구를 사용하는 경우 현재 런타임 도움말을 따르고 고정된 패키지에 해당 기능이 포함되어 있다고 암시하지 마십시오.
먼저 검증된 MP4를 내보낸 다음 더 작은 GIF 또는 챕터를 내보내십시오. GIF 팔레트 변환은 그라데이션과 세부 윤곽을 손상시킬 수 있습니다. 실제 최종 GIF도 검토하십시오. 높은 재생 FPS는 새로운 모션을 생성하지 않습니다. review.md는 시각적 및 기술적 승인 확인 사항을 제공합니다.
실제 결과 전달
요청된 GIF/MP4 파일을 실제 시간, 크기, 루프 동작, 소스 드로잉 속도 대비 내보내기 FPS, 무음/오디오 상태 및 알려진 시각적 결함과 함께 제공하십시오. 요청 시 편집 가능한 프로젝트를 포함하십시오. 프로젝트를 공유하기 전에 소스 이름, 프롬프트, 참조 및 라이선스를 검토하고, 개인 입력을 게시하지 마십시오. 기술적 검증, 시각적 검토 및 사용자 승인을 구분하십시오.