Skip to content

Latest commit

 

History

History
210 lines (177 loc) · 11.1 KB

README.md

File metadata and controls

210 lines (177 loc) · 11.1 KB


💽 앨범 표지 맞춤 제작 서비스 💽

✨ 팀 소개

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

💀 프로젝트 소개

앨범 표지는 가수와 그의 팬들 사이의 첫 만남입니다. 처음 만나는 순간의 중요성은 첫사랑, 첫 만남, 첫 인상과 같은 기억 속에서도 느껴집니다. 이러한 중요성은 영화 포스터나 유튜브 썸네일과 같이 앨범 커버도 작품의 분위기와 아티스트의 이미지를 대변합니다. 하지만 앨범 제작은 많은 비용과 시간이 소요되는 작업입니다. 본 프로젝트는 이러한 과정을 단순화하여 빠르고 쉽게 맞춤형 앨범 커버를 제작하는 서비스를 제공합니다.

해당 프로젝트는 Boostcamp AI Tech 내에서 진행된 최종 프로젝트입니다.

📆 프로젝트 일정

프로젝트 전체 일정

  • 2023.07.03 ~ 2023.07.28

프로젝트 세부 일정

  • ~ 2023.06.25 : 주제 선정
  • 2023.06.26 ~ 2023.06.30 : Dataset Search 및 Model Research
  • 2023.07.01 ~ 2023.07.02 : Dataset Crawling
  • 2023.07.03 ~ 2023.07.11 : Stable Diffusion 학습 파이프라인 구축 및 FastAPI를 이용한 Scratch 제작
  • 2023.07.11 ~ 2023.07.12 : BigQuery와 Google Cloud Storage를 사용해 DataWarehouse 구축
  • 2023.07.12 ~ 2023.07.13 : Error Reporting
  • 2023.07.13 ~ 2023.07.28 : Dreambooth와 Stable Diffusion을 활용한 Fine-Tuning 실험
  • 2023.07.12 ~ 2023.07.28 : Celery, Redis, FastAPI를 활용한 Back-End 구축
  • 2023.07.17 ~ 2023.07.28 : Front-End와 Github Action을 활용한 CI 구축, Airflow 연결
  • 2023.07.28 ~ : 프로젝트 마무리 및 배포

🚧 프로젝트 구조

👨‍💻 프로젝트 수행

  1. Dataset✔️
  2. Stable Diffusion✔️
  3. Dreambooth✔️
  4. Scratch✔️
  5. Experiments✔️
  6. 발표자료
  7. 발표영상

🗒️ 프로젝트 결과

🔸Dataset

  • 데이터 수집이 편리하고 국내/국외 노래 데이터 골고루 수집가능한 멜론 음원사이트 선택
  • 해당 음원사이트로부터 노래 제목, 가수 이름, 앨범 이 름, 발매일, 노래 장르, 노래 가사, 앨범 표지 URL을 Crawling하여 총 3,851개의 데이터 수집

🔸Model

1. Stable Diffusion

Stable Diffusion은 높은 품질의 이미지를 생성하고, Text-To-Image 작업을 가능하게 해주는 모델입니다. 사용자로부터 입력 받은 노래 정보를 ChatGPT API를 통해 Prompt로 생성한 후, 이를 Stable Diffusion 모델에 입력하여 앨범 커버를 생성합니다.

2. Dreambooth

Dreambooth는 Stable Diffusion과는 달리, 사용자로부터 추가적으로 가수의 사진을 입력 받고 이를 통해 Fine-Tuning하여 가수 사진이 포함된 앨범 커버를 생성해줍니다.


🔄️ Directory

├── .gitignore
├── .pre-commit-config.yaml
├── gitcommit_template.txt
├── README.md
├── Makefile
├── poetry.lock
├── pyproject.toml
├── imgs
├── docs
├── tests
└── src
    ├──  scratch
    │    ├── apache_config
    │    ├── config
    │    ├── dags
    │    │    ├── bigquery_data_pipeline.py
    │    │    └── model_retrain.py
    │    ├── dreambooth
    │    │    ├── dreambooth.yaml
    │    │    ├── inference.py
    │    │    └── run.py
    │    ├── gcp
    │    │    ├── bigquery.py
    │    │    ├── cloud_storage.py
    │    │    └── error.py
    │    ├── htdocs
    │    │    ├── images
    │    │    ├── js
    │    │    ├── styles
    │    │    ├── create.html
    │    │    ├── index.html
    │    │    └── mypage.html
    │    ├── gpt3-api.py
    │    ├── main.py
    │    ├── model.py
    │    ├── streamlit_frontend.py
    │    ├── train_dreambooth.py
    │    ├── translation.py
    │    ├── utils.py
    │    ├── worker_dreambooth.py
    │    ├── worker_sd.py
    │    └── worker_sdxl.py
    │
    ├── stable_diffusion
    │    ├── dataset.py
    │    ├── main.py
    │    ├── test.py
    │    ├── train.py
    │    ├── utils
    │    │    ├── plot.py
    │    │    ├── training.py
    │    │    └── util.py
    │    └── experiments
    │         └── [tag]ExpName
    │			    ├── albums.csv
    │			    ├── prompts.txt
    │			    ├── checkpoints
    │			    └── results
    │			     
    └── stable_diffusion_xl 
         └── (stable_diffusion과 구조 동일)

🤔 Wrap-Up Report

⚠️저작권 표기