A_V

AI 숏츠 비디오 자동 생성기: 2025년 6월 8일 전체 요약

Solo.dev 2025. 6. 8. 22:04
AI 숏츠 비디오 자동 생성기: 2025년 6월 8일 전체 요약

🤖 AI 숏츠 비디오 자동 생성기: 2025년 6월 8일 전체 요약

✅ 완료된 작업 (기존 + 신규)

스크립트 생성 (script_generator.py)

  • OpenAI API (gpt-4o-mini 등)를 사용하여 사용자 입력(주제, 핵심 내용, 장면 수, 캡션 언어, 비디오 스타일 가이드) 기반으로 각 장면에 대한 image_prompt(영문 이미지 생성용)와 caption(선택 언어, 내레이션/자막용) 생성.
  • image_prompt 생성 지침을 매우 상세하게 업데이트하여 SDXL과 같은 이미지 생성 AI가 더 나은 품질의 이미지를 만들도록 유도. (Main Subject, Action, Background, Mood & Style, Composition, Lighting, Quality Boost 등 상세 항목 포함)
  • 출력: JSON 형식, 각 장면은 image_promptcaption 키 포함.

이미지 생성 (image_generator.py)

  • script_generator.py에서 생성된 image_prompt를 사용.
  • Stability AI SDXL 1.0 API를 연동하여 각 장면에 맞는 이미지 생성.
  • negative_prompt 지원 추가.
  • cfg_scale, steps, style_preset 등 주요 파라미터 조절 기능 구현.
  • 생성된 이미지는 assets/generated_temp/ 폴더에 저장 (예: scene_XX_image.png).
  • 품질 관련 현재 상황:
    • 가격: 이미지 당 약 0.1달러 수준으로 비용은 만족.
    • 품질: 특히 인물 표현에서 기대보다 낮은 퀄리티 (손, 발, 얼굴 등).
    • 고민: 프롬프트 엔지니어링 및 파라미터 최적화를 통해 현재 모델의 한계를 극복할지, 또는 상위 모델/다른 API로 전환할지 검토 중.

TTS 파일 생성 (text_to_speech.py)

  • 생성된 captiontext_to_speech.py로 전달.
  • ElevenLabs API를 사용해 각 caption에 해당하는 TTS 오디오 파일 생성.
  • 오디오 파일은 assets/generated_temp/ 폴더에 저장 (예: scene_XX_audio.wav).
  • 오디오 길이(초)를 반환하여 자막 및 비디오 클립 동기화에 활용.
  • 파일 저장 시 Permission denied 오류 대응을 위한 재시도 로직 추가.

자막 생성 (subtitle_handler.py)

  • caption과 TTS 오디오 길이를 기반으로 MoviePy TextClip (자막 클립) 생성.
  • 자막 스타일은 configs/ 폴더의 .json 설정 파일 (예: groovy_vlog_moviepy_params.json)에서 로드하여 적용 (폰트, 크기, 색상, 위치 등).
  • ImageMagick 경로 설정의 중요성 인지 및 main.py에 설정 코드 반영.

메인 실행 스크립트 (main.py) 통합

  • 사용자 입력 처리 (주제, 핵심 내용, 장면 수, 캡션 언어, 비디오 스타일 선택).
  • ScriptGenerator, ImageGenerator, generate_audio_elevenlabs, create_subtitle_clips 모듈 순차 호출 및 데이터 전달 로직 구현.
  • 각 장면의 이미지, 오디오, 자막 클립을 MoviePy를 사용하여 하나의 비디오 클립으로 합성.
  • 모든 장면 클립을 이어붙여 최종 비디오 파일 (final_video_output.mp4) 생성 및 assets/generated_temp/에 저장.
  • 비디오 생성 과정의 디버깅 로그 및 오류 처리 강화.

📊 현재 상태

완료된 모듈

  • script_generator.py: OpenAI API로 스크립트 및 이미지 프롬프트 생성.
  • image_generator.py: Stability AI API로 이미지 생성.
  • text_to_speech.py: ElevenLabs API로 TTS 오디오 생성.
  • subtitle_handler.py: MoviePy TextClip (자막 클립) 생성.
  • main.py: 사용자 입력부터 스크립트, 이미지, TTS, 자막 클립 생성 후 최종 비디오 파일 생성까지의 전체 워크플로우 기본 골격 완성.

미완성/개선 필요 모듈

  • video_processor.py (별도 파일 대신 main.py에 통합됨): 현재는 기본적인 이미지+오디오+자막 합성이지만, 고급 편집 기능(전환 효과, 배경음악 정교한 믹싱 등)은 추가 개발 필요.
  • audio_processor.py (별도 파일 대신 main.pytext_to_speech.py에 일부 기능 분산): 배경음악, 효과음 통합 등은 아직 미구현.
  • utils.py: 공용 유틸리티 함수 (필요시 생성).

🚀 다음 단계 및 주요 과제

  1. 이미지 품질 개선 (가장 시급)

    • SDXL 1.0 최적화: 프롬프트 엔지니어링 (더욱 상세하고 구조화된 프롬프트, 다양한 키워드 조합 테스트), 네거티브 프롬프트 강화, cfg_scalesteps 파라미터 정밀 튜닝.
    • 대안 모델/API 연구: DALL·E 3, Midjourney API (사용 가능 여부 및 비용 확인), 또는 LoRA 적용이 가능한 다른 플랫폼/API 탐색.
  2. 자막 렌더링 문제 해결

    • 한국어 자막 표시 문제: 현재 영어 자막은 정상적으로 표시되나, 한국어 자막이 최종 비디오에 렌더링되지 않는 문제 해결. (폰트 호환성, ImageMagick 설정, MoviePy TextClip 인코딩 등 점검)
  3. 비디오 편집 기능 강화 (main.py 또는 별도 모듈)

    • 장면 간 전환 효과 적용 (설정 파일 기반).
    • 배경 음악 추가 및 볼륨 조절 (자동 추천 기능은 장기 과제).
    • 인트로/아웃트로, 워터마크 등 추가 요소 삽입 기능.
  4. 사용자 경험 개선

    • main.py의 사용자 입력 방식을 더 편리하게 개선 (예: argparse 활용, 선택지 명확화).
    • 오류 처리 및 사용자 피드백 강화.
  5. 테스트 코드 작성

    • image_generator.py, subtitle_handler.py 등에 대한 단위 테스트 코드 작성.
  6. 문서화 업데이트

    • README.mdTASKS.md를 최신 상태로 지속 업데이트.