ziplab/ATAS

Any Time, Any Space: A World-State-Centric Framework for Agentic Video Generation

ATAS – Any Time, Any Space

개요

ATAS는 에이전트 기반 비디오 생성을 위한 연구 프레임워크로, 영화 전체에 걸쳐 영속적인 세계 상태를 유지합니다. 각본은 샷 요청 시퀀스로 컴파일되며, 각 요청은 공유 세계 메모리에서 정적 지오메트리와 동적 이벤트 정보를 가져와 비디오 생성기를 조건화하고, 생성된 클립은 검증된 후 세계에 다시 기록됩니다. 이를 통해 시스템은 과거 순간을 새로운 시점에서 다시 촬영할 수 있으며, 비디오 전체의 일관성을 보장합니다.

핵심 아이디어

구성 요소 역할
세계 상태 컴파일러 일반 텍스트 각본을 장면, 카메라, 시간, 이벤트 명세가 포함된 제한된 샷 요청으로 변환합니다.
장면 메모리 각 위치의 정적 지오메트리를 공통 좌표 프레임에 저장하여 모든 시점에서 렌더링할 수 있도록 합니다.
이벤트 메모리 동적 관찰(예: 객체, 행동)을 장면, 이벤트, 시간으로 인덱싱하여 과거 순간을 다시 방문할 수 있게 합니다.
검증된 업데이트 샷이 생성된 후, 세계 상태가 업데이트되기 전에 재구성, 등록, 확인되어 일관성을 보장합니다.

실행 방법

  1. 지오메트리 서비스(GPU 머신) – 무거운 모델(Pi3X 및 SAM‑3)을 설치하고 세계를 렌더링하는 REST 서비스를 실행합니다.
    pip install -r geometry/environment.snapshot.txt && pip install -e geometry
    cp geometry/.env.example geometry/.env   # 경로, GPU ID 편집
    cd geometry && ./run_geometry_service.sh   # http://127.0.0.1:18300/readyz에서 응답해야 함
    
  2. 클라이언트(모든 머신) – 가볍고 Python 3.12와 ffmpeg만 필요합니다.
    pip install -e client
    cp client/.env.example client/.env   # DashScope API 키, LLM 설정, 지오메트리 서비스 URL 설정
    

생성 실행

atas run \
  --screenplay examples/bookstore/screenplay.txt \
  --characters examples/bookstore/characters.json \
  --story-id bookstore
  • --characters는 생략 가능합니다.
  • --memory none, --plan-only, --max-shots N, --output DIR 같은 플래그로 추가 제어가 가능합니다.
  • 명령은 재개 가능하며, 다시 실행하면 이미 지불된 비디오 생성을 재사용합니다.
  • 출력은 client/runs/<run-id>/story_<story-id>/ 아래에 있으며 다음을 포함합니다:
    • final.mp4 – 조립된 영화
    • manifest.json – 샷별 메타데이터
    • report.md – 실행 요약

더 알아보기

  • 디자인 노트 – docs/design.md
  • 예제 – examples/ (bookstore, clockshop, record)
  • 테스트 – client && python -m pytest 및 geometry && python -m pytest
  • 논문 및 비디오 – arXiv 링크와 YouTube 프로모는 배지 바에 있습니다.

라이선스

ATAS 코드는 MIT 라이선스입니다. geometry/backbones/의 타사 구성 요소는 원래 라이선스를 유지합니다.


ATAS는 프론티어 연구 프로토타입입니다. 지오메트리 서비스에는 GPU가 필요하며, 언어-비디오 조건화를 위해 외부 LLM(DashScope를 통해)이 필요합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트