Skip to content

ahnbu/make_slide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NotebookLM to PPTX

NotebookLM to PPTX는 Google NotebookLM에서 생성된 나노바나나 기반의 인포그래픽 이미지와 슬라이드 PDF를 분석하여, 텍스트와 배경을 분리하고 편집 가능한 HTML/CSS 및 PPTX로 재구성하는 자동화 도구입니다.

Google Gemini 3.0의 강력한 비전 인식 능력과 OpenCV의 이미지 처리 기술을 결합하여, 단순한 OCR을 넘어 **'디자인 레이아웃을 그대로 복원'**하는 것을 목표로 합니다.

✨ 핵심 기능 (Core Features)

  • NotebookLM to PPTX: 나노바나나 기반의 인포그래픽/PDF를 레이아웃이 살아있는 PPTX로 완벽하게 복원합니다.
  • Pixel-Perfect Reconstruction: 원본 슬라이드의 레이아웃, 폰트 크기, 색상을 HTML/PPTX로 정밀하게 구현합니다.
  • Smart Text Removal: 배경 이미지에서 텍스트를 깔끔하게 지워(Inpainting), 텍스트와 배경이 분리된 결과물을 제공합니다.
    • Advanced: 워터마크(NotebookLM 등) 자동 제거 및 Photoroom API(AI.All, Artificial, Natural 모드)를 통한 정교한 텍스트 제거 지원.
  • Custom Font Support & Multi-Format:
    • Pretendard, Noto Sans KR 등 한글 폰트 지원 및 HTML/PPTX/PDF(Ultra HD) 다양한 포맷 출력.
  • Standalone PDF Tool: 서버 설치 없이 브라우저 단독으로 실행 가능한 standalone_pdf_tool.html 제공 (오프라인 사용 가능).

🛠️ 부가 기능 (Auxiliary Features - for External Integration)

외부 툴과의 유연한 결합을 위해 다음 기능들을 별도로 제공합니다.

  • Image + Text Combination:
    • 텍스트 원본(Source)과 깨끗한 배경(Clean BG)을 각각 업로드하여 고품질 슬라이드를 결합 생성합니다.
  • PDF to PPTX / PNG (Client-Side):
    • Client-Side Generation: 서버 부하 없이 브라우저에서(PptxGenJS) 즉시 고품질 PPTX 및 PNG 변환을 처리합니다.
    • Batch Processing: 여러 장의 슬라이드를 일괄 변환하고 병합 관리합니다.

🛠️ 기술 스택 (Tech Stack)

  • Backend: Python 3.10+, FastAPI
  • AI/ML: Google Gemini 3.0 Series (Flash/Pro), OpenCV (Telea Inpainting)
  • Frontend: Vanilla JavaScript, HTML5, CSS3
  • DevOps: Local Server (uvicorn)

🚀 작업 분류별 프로세스 및 기술 스펙

1. NotebookLM to PPTX (재구성 플로우)

원본 이미지/PDF를 분석하여 텍스트와 배경을 분리하고, 편집 가능한 HTML 및 PPTX 파일로 복원하는 핵심 프로세스입니다.

단계 작업 내용 기술 스펙 Input Output
1단계: 레이아웃 분석 이미지 내 텍스트 위치, 폰트, 색상 감지 Gemini 3.0 Series Image (PNG/JPG) Layout Data (JSON)
2단계: 정밀 보정 분석 결과의 논리적 오류 수정 및 최적화 Gemini 3.0 Series Layout Data + Image Refined Layout (JSON)
3단계: 배경 복원 분석된 텍스트 영역을 지우고 배경 채우기 OpenCV (Telea Inpainting) Original Image + Layout Clean BG (PNG)
4단계: HTML/CSS 생성 웹 기반 슬라이드 코드로 변환 Algorithmic Generator Layout + Clean BG HTML/CSS File
5단계: PPTX 생성 PowerPoint 파일로 최종 변환 Python-pptx Layout + Clean BG PPTX File

2. Image + Text Combination (조합 플로우)

이미 분석된 텍스트 레이아웃 정보 또는 원본 이미지와 별도의 깨끗한 배경 이미지를 결합하여 고품질 결과물을 생성합니다.

단계 작업 내용 기술 스펙 Input Output
분석 단계 원본 이미지의 텍스트 레이아웃 정보 추출 Gemini 3.0 Series Source Image Layout Data (JSON)
정합 단계 제공된 배경 이미지를 원본 크기에 맞춤 Pillow (PIL) Clean BG Image Resized BG (PNG)
결합 단계 레이아웃 데이터와 새 배경을 결합 Python-pptx / Jinja2 Layout + Resized BG HTML & PPTX

3. 스마트 텍스트 제거 (Inpainting 플로우)

이미지에서 텍스트만 깔끔하게 제거하여 배경 이미지만 추출하는 작업입니다.

종류 기술 스펙 특징 Input Output
OpenCV 방식 OpenCV (Telea) 로컬 환경 실행, 빠르고 무료 Image Clean BG (PNG)
Gemini AI 방식 Gemini Vision API AI가 직접 픽셀 생성, 고품질 Image Clean BG (PNG)
Photoroom API Photoroom Edit API 상용 솔루션, 최고의 제거 품질 Image Clean BG (PNG)

4. 일괄 처리 (Batch Processing)

여러 장의 슬라이드를 하나의 PPTX 파일로 병합하거나 대량 변환을 수행합니다.

작업 내용 기술 스펙 프로세스 Output
일괄 PPTX 병합 Python-pptx 지정된 모든 JSON/PNG를 매칭하여 슬라이드 추가 Merged PPTX
PDF 이미지 추출 Client-side (PDF.js) 브라우저에서 PDF 페이지를 고해상도 이미지로 렌더링 Individual PNGs

🔰 초보자를 위한 사용 가이드 (with Antigravity Project)

Google Antigravity는 단순한 코딩 도구가 아닌, 스스로 계획하고 실행하는 AI 에이전트 IDE입니다. 복잡한 명령어 없이 AI와 대화하며 프로젝트를 진행해보세요.

0. 필수 준비물 (Prerequisites)

이 프로그램은 Python으로 만들어졌으며, Git을 통해 다운로드됩니다. 시작 전 꼭 설치해주세요!

  1. Python 설치 (실행기)
    • Python 다운로드에서 설치 파일을 받으세요.
    • ⚠️ 중요: 설치 화면 맨 아래 Running Add python.exe to PATH 체크박스를 반드시 선택해야 합니다. (이걸 안 하면 실행이 안 됩니다!)
  2. Git 설치 (배달부)
    • Git for Windows를 다운로드하여 기본 설정대로 쭉 설치하세요.
    • 팁: GitHub 회원가입은 필요 없습니다! 설치만 하면 바로 쓸 수 있습니다.

1단계: 실행 환경 만들기

  1. Antigravity 설치:
    • Why?: AI가 코드를 이해하고 대신 실행해주는 작업 공간입니다.
    • 공식 홈페이지에서 IDE를 다운로드하고 설치하세요.
  2. 프로젝트 가져오기 (Git Clone):
    • Why?: 인터넷에 있는 NotebookLM to PPTX 소스 코드를 내 컴퓨터로 가져오는 과정입니다.
    • Action: Antigravity 채팅창(Cmd/Ctrl+I)에 아래와 같이 입력하세요.

      "https://github.com/ahnbu/make_slide.git 주소를 현재 폴더에 복제(clone)해줘."

    • ⚠️ 문제 발생 시: "git 명령어를 찾을 수 없다"고 하면, Git이 제대로 설치되지 않은 것입니다. 재부팅 후 다시 시도해보세요.

2단계: AI 설정 및 실행

  1. Gemini API 키 설정:
    • Why?: AI 모델(Gemini)을 사용하기 위한 무료 이용권입니다.
    • Action: Google AI Studio에서 키를 발급받고, 채팅창에 입력하세요.

      "내 API 키는 AIza... 야. 이걸로 .env 파일을 만들어서 저장해줘."

  2. 바로 실행하기 (Run):
    • Why?: 필요한 부품(라이브러리)을 조립하고 서버를 켜는 과정입니다.
    • Action: 채팅창에 아래 명령어를 복사해서 붙여넣으세요.

      "가상환경을 만들고 의존성을 설치(requirements.txt)한 뒤, 서버(app.py)를 실행하고 브라우저를 띄워줘."

    • ⚠️ 문제 발생 시: "python을 찾을 수 없다"고 하면, Python 설치 시 PATH 추가를 안 한 것입니다. Python을 지우고 다시 설치하며 체크박스를 꼭 확인하세요.

3단계: AI와 함께 사용 및 확장하기

  1. 테스트 및 실행:
    • Why?: 설치된 도구가 내 컴퓨터에서 제대로 돌아가는지 확인하는 첫 단계입니다.
    • Action: 브라우저 창이 뜨면 준비한 PDF나 이미지를 업로드해보세요. AI에게 "이 파일로 변환 테스트를 진행하고 결과를 알려줘"라고 시킬 수도 있습니다.
  2. 문제 대응 및 최적화:
    • Why?: 실행 중 오류가 나거나 변환 품질이 마음에 들지 않을 때 AI의 도움을 받습니다.
    • Action: "에러 메시지가 떴어, 해결해줘" 또는 "방금 변환된 파일의 배경 제거가 깔끔하지 않아. 알고리즘을 개선해줘"라고 요청하세요.
  3. 기능 추가 및 코드 수정:
    • Why?: 기존 기능을 바꾸거나 나만의 새로운 기능을 추가하여 도구를 발전시킵니다.
    • Action: "결과물에 회사 로고를 자동으로 삽입하는 기능을 추가해줘" 또는 "HTML 출력물의 디자인을 좀 더 세련되게 CSS를 수정해줘"라고 지시해보세요.

🚀 설치 및 실행 (Installation & Setup)

  1. 환경 설정: Python 3.10 이상이 설치되어 있어야 합니다.

  2. 클론 및 패키지 설치:

    git clone https://github.com/your-repo/make-slide.git
    cd make-slide
    pip install -r requirements.txt
  3. API 키 설정: .env 파일을 생성하고 Google Gemini API 키를 입력하세요.

    GOOGLE_API_KEY=your_api_key_here
    
  4. 서버 실행:

    python app.py

    브라우저에서 http://localhost:8000으로 접속하여 사용합니다.

📂 폴더 구조 (Structure)

  • src/: 핵심 분석 및 생성 로직
  • templates/: 웹 UI 템플릿
  • static/: 정적 리소스 (JS, CSS)
  • output/: 변환 결과물 저장소
  • docs/: 개발자 문서

📝 라이선스 (License)

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors