SangBeom-Hahn / ko-image-generator

한국어 특화 이미지 생성 (롯데 이노베이트 인턴십)

Repository from Github https://github.comSangBeom-Hahn/ko-image-generatorRepository from Github https://github.comSangBeom-Hahn/ko-image-generator

Korean Image Generator

한국어 특화 CLIP 기반 K컨텐츠 이미지 생성 프로젝트 (롯데 이노베이트 하반기 인턴십)

Introduction

본 프로젝트는 한국어 텍스트를 이해하고, 해당 텍스트에 맞게 이미지를 생성할 수 있는 Stable Diffusion 모델을 생성한다. 기존 영어 이미지 생성 모델들에 한국어를 사용하기 위해 번역 등 추가 로직을 적용하여 발생하는 Latency를 해소하고 속도와 퀄리티를 모두 만족하는 한국어 기반 이미지 생성 서비스를 제공한다.

✨ Demo

Text to Image

Image to Image

Vector Search

Dataset

Data 데이터 수 세부사항
1 130만 Common 한글-영어 번역 말뭉치 데이터
2 130만 기술 과학 한글-영어 번역 말뭉치 데이터
3 130만 사회 과학 한글-영어 번역 말뭉치 데이터

학습에는 한글-영문 번역 말뭉치 데이터 셋을 활용, 카테고리 별로 약 100만개로 구성된다.

출처 : https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=126

Model

project_pipeline

  • Image Generate

전체적인 파이프라인은 2 stage로 이루어져 있다. 1단계는 Text To Image 이미지 생성기를 통해 이미지를 생성한다. 2단계에서는 SDXL Image2Image Refiner로 1단계에서 나온 결과물을 정제하여 이미지 퀄리티를 증가시킨다.

추론 시간 : 약 4초 소요 (기존 대비 70% 감소)
VRAM 소모량 : 2.6GB (기존 대비 13% 감소)
  • Vector Search

입력 프롬프트를 CLIP Text Encoder에 입력하여 임베딩한다. 임베딩 결과를 검색 조건으로 하여 Annoy Vector DB에서 유사한 프름포트를 검색하여 이미지와 함께 제공한다. (추론 시간 : 약 1초 소요)

Project Structure

Korean Image Generator
├── demo
    ├── static
    ├── templates
    ├── utils
    ├── requirements.txt
    ├── vector_search.py
    └── app.py
└── ko_clip
    ├── config
    ├── dataset
    ├── main.py
    └── train.py
  • demo : 어플리케이션 루트 폴더

    • static : 웹페이지 구성에 필요한 리소스를 모아놓은 폴더
    • templates : 웹페이지 템플릿 폴더
    • utils : 라우팅 유틸리티 구현 폴더
    • vector_search.py : 벡터 유사도 검색 코드
    • app.py : 라우팅 API 코드
  • ko_clip : 한국어 CLIP 학습 폴더

    • config : 학습 파라미터 설정 폴더
    • dataset : 데이터 전처리 폴더
    • train.py : 모델 train 코드

Requirements

pytorch==2.x
transformers==4.x
annoy==1.17.3
diffusers==0.30.0
xformers=0.0.26
Flask==3.0.3

reference

Author

👤 SangBoem-Hahn

About

한국어 특화 이미지 생성 (롯데 이노베이트 인턴십)


Languages

Language:Python 100.0%