/ 오픈소스 / banana-slides

banana-slides

Google Gemini (nano banana pro) 기반의 AI 네이티브 PPT 생성 앱입니다. 한 문장으로 전체 프레젠테이션 생성, 사용자 지정 템플릿/자료 업로드, 자연어 슬라이드 편집, 원클릭 PPTX/PDF 내보내기를 지원합니다.

TypeScriptAGPL-3.0Application
⭐ GitHubhttps://github.com/Anionex/banana-slides
15,342
스타 수
+383
스타 증가율
Jul 27, 2026
최근 업데이트
2,337
클릭 수

banana-slides 🍌

코드를 흥얼거리듯 PPT를 흥얼거리세요.

Google Gemini (nano banana pro) 기반의 네이티브 AI 기반 PPT 생성 애플리케이션으로, 진정한 "Vibe PPT" 경험을 목표로 합니다. 누구나 아름답고 전문적인 프레젠테이션을 만드는 데 드는 장벽을 낮춥니다.

GitHub: https://github.com/Anionex/banana-slides
라이선스: MIT | 별: 480+ | 포크: 72+


🧩 프로젝트 배경

기존 AI PPT 생성기는 속도품질의 균형을 맞추는 데 어려움을 겪습니다. 일반적인 문제는 다음과 같습니다.

  • 사전 설정된 템플릿만 사용 가능 — 유연한 스타일 제어 불가
  • 여러 라운드에 걸친 반복적인 편집의 자유도 낮음
  • 모두 똑같이 보이는 동질적인 결과물
  • 저품질의 일반적인 자료
  • 디자인 감각이 부족한 텍스트-이미지 레이아웃

**Google Gemini (nano banana pro)**의 등장은 상황을 바꾸었습니다. 이미지 생성 기능은 요청된 모든 텍스트 콘텐츠를 정확하게 렌더링하면서 참조 이미지 스타일을 충실히 따를 수 있어, 네이티브 "Vibe PPT" 애플리케이션의 핵심 엔진으로 이상적입니다.


✨ 주요 기능

1. 세 가지 생성 경로

  • 아이디어부터: 한 문장 또는 대략적인 개념 입력 → 전체 개요 + 슬라이드 설명 + 최종 슬라이드 자동 생성
  • 개요부터: 기존 개요 붙여넣기 → AI가 페이지별 상세 설명으로 확장
  • 설명부터: 페이지별 설명 직접 제공 → 슬라이드 이미지 즉시 생성

2. 자연어 편집

  • 개별 슬라이드 또는 슬라이드 내 선택 영역에 대한 수정을 음성으로 지시
  • 개요 카드 드래그 앤 드롭 재정렬
  • 개요 및 페이지 설명에 대한 Vibe 스타일 구두 편집

3. 스마트 자료 및 템플릿 지원

  • 스타일/콘텐츠 참조로 모든 참조 이미지, 스크린샷 또는 이전 PPT 슬라이드 업로드
  • 문서 업로드 (PDF, DOCX, MD, TXT) — 백엔드에서 MinerU + 멀티모달 LLM을 사용하여 텍스트 및 이미지 자동 파싱
  • Markdown 텍스트에 포함된 이미지 링크 자동 추출

4. 고품질 슬라이드 생성

  • Gemini 이미지 생성 기반: 고화질, 스타일 일관적인 슬라이드 디자인
  • 다중 페이지 생성을 위한 병렬 처리

5. 내보내기 옵션

  • PPTX: 표준 PowerPoint 형식
  • PDF: 빠른 공유 및 발표용
  • 기본 16:9 종횡비, 모든 주요 디스플레이에서 작동

🛠️ 기술 스택

프론트엔드

기술 목적
React 18 + TypeScript UI 프레임워크
Vite 5 빌드 도구
Zustand 상태 관리
React Router v6 라우팅
Tailwind CSS 스타일링
@dnd-kit 드래그 앤 드롭
Axios HTTP 클라이언트

백엔드

기술 목적
Python 3.10+ / Flask 3.0 API 서버
Google Gemini API AI 이미지 및 텍스트 생성
SQLite + Flask-SQLAlchemy 데이터 지속성
python-pptx PPTX 내보내기
Pillow 이미지 처리
ThreadPoolExecutor 동시 슬라이드 생성
uv Python 패키지 관리

🏗️ 아키텍처 개요

banana-slides/
├── frontend/          # React + TypeScript SPA
│   ├── pages/         # 홈, 개요 편집기, 상세 편집기, 슬라이드 미리보기, 기록
│   ├── components/    # 공유 UI 컴포넌트, 개요/미리보기 위젯
│   ├── store/         # Zustand 상태 관리
│   └── api/           # Axios 클라이언트 + 엔드포인트 정의
│
├── backend/           # Flask REST API
│   ├── models/        # 프로젝트, 페이지, 작업, 자료, 템플릿, 참조 파일
│   ├── services/      # AI 서비스 (Gemini), 파일 파서, 내보내기, 작업 관리자
│   ├── controllers/   # 모든 리소스에 대한 라우트 핸들러
│   └── utils/         # 응답 도우미, 검증기, 경로 유틸리티
│
├── docker-compose.yml # 원클릭 배포
└── pyproject.toml     # Python 프로젝트 설정 (uv 관리)

🚀 빠른 시작

Docker Compose (권장)

git clone https://github.com/Anionex/banana-slides
cd banana-slides
cp .env.example .env
# .env 파일을 편집하고 GOOGLE_API_KEY를 추가하세요.
docker compose up -d

소스에서 빌드

백엔드:

uv sync
cp .env.example .env  # GOOGLE_API_KEY 설정
cd backend && uv run python app.py

프론트엔드:

cd frontend
npm install
npm run dev

🎯 사용 사례

  • 비디자이너: 디자인 경험 없이 제로 장벽으로 아름다운 PPT 제작
  • PPT 전문가: AI 생성 디자인에서 빠른 레이아웃 영감 얻기
  • 교육자: 교육 콘텐츠를 그림이 있는 수업 슬라이드로 변환
  • 학생: 프레젠테이션 과제를 빠르게 완료하고 형식보다는 내용에 집중
  • 비즈니스 전문가: 제안서 및 제품 발표의 빠른 시각화

📄 라이선스

MIT 라이선스 — 개인 및 상업적 용도로 무료 사용 가능.