Skip to content
/ Artform Public

AI로 화풍을 학습시키고 학습된 화풍을 새로운 이미지에 적용하는 서비스 [ArtForm]

Notifications You must be signed in to change notification settings

Jhanoo/Artform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

아트퐁 (Art-Form)

팀명: 삼시두끼

팀원 : 강대규, 김휘동, 박준현, 정찬우, 서현석, 임정인

Front-End (FE)

  • 서현석
  • 임정인
  • 정찬우

Back-End (BE)

  • 김휘동
  • 박준현
  • 강대규

AI

  • 강대규
  • 박준현

Infrastructure (Infra)

  • 김휘동

프로젝트 소개

아트퐁 (Art-Form) 은 AI 기반 화풍 변환 기술을 활용하여 사용자가 원하는 예술 스타일로 이미지를 변환할 수 있는 서비스입니다. 사용자가 자신의 그림을 업로드하면 AI가 개별적인 화풍을 학습하고, 이를 바탕으로 사진을 변환하여 예술적인 작품을 손쉽게 제작할 수 있도록 도와줍니다.


프로젝트 구조

├── frontend/artform # 프론트엔드 폴더
│   ├── app # 라우팅 및 페이지 구성 폴더
│   ├── components # 재사용 가능한 UI 컴포넌트 폴더
│   ├── service # API 통신 및 비즈니스 로직 관련 서비스 폴더
│   ├── package.json # 프로젝트 의존성 및 스크립트 설정 파일
│   ├── .gitignore
│   └── ...
├── backend   # 백엔드 폴더
│   ├── artform-core # 이미지, 리뷰, 모델 서버
│   └── artform-user # 유저 서버
├── ai   # AI 폴더
│   ├── apply # 추론 파일
│   ├── train # 학습 파일
│   ├── .gitignore
│   └── ...
├── nginx      # nginx 설정
├── monitoring # 모니터링 설정
└── README.md # 프로젝트 설명 파일

🗂️ 시스템 아키텍처

아키텍처_다이어그램


🗂️ ERD 다이어그램

특화_프로젝트


Git Commit Message Convention

커밋 메시지는 아래 규칙을 따릅니다:

  • [FE] feat: 로그인 기능 구현
  • 커밋 유형은 영어 소문자로 작성
  • 커밋 메시지는 한글로 작성
커밋 유형 의미
feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 수정
style: 코드 formatting, 세미콜론 누락, 코드 자체의 변경이 없는 경우
refactor: 코드 리팩토링
test: 테스트 코드, 리팩토링 테스트 코드 추가
chore: 패키지 매니저 수정, 그 외 기타 수정 (예: .gitignore)
design: CSS 등 사용자 UI 디자인 변경
comment: 필요한 주석 추가 및 변경
rename: 파일 또는 폴더 명 수정 또는 이동
remove: 파일 삭제
!BREAKING CHANGE 커다란 API 변경
!HOTFIX 치명적인 버그 수정
merge 브랜치 병합

Git Branch 전략

  • master
    • 최종
    • user/develop
      • user/feat/[기능] EX ) user/feat/login
      • user/fix/[오류 수정]
    • core/develop
      • core/feat/[기능]
      • EX ) core/feat/review
      • core/fix/[오류 수정]
    • react/develop
      • react/feat/[기능]
      • EX ) react/feat/login
      • react/fix/[오류 수정]
    • ai/develop
      • ai/feat/[기능]
      • EX ) ai/feat/lora
      • ai/fix/[오류 수정]

서비스 대상자

  • 자신만의 예술 스타일을 만들고 싶은 사용자
    • AI가 사용자의 그림을 학습하여 개성 있는 화풍을 자동으로 적용해 줍니다.
  • 창작 활동을 간편하게 즐기고 싶은 일반 사용자
    • 복잡한 편집 없이 원하는 이미지를 간편하게 변환할 수 있어, 누구나 예술적인 결과물을 만들 수 있습니다.

전문가가 아니어도 쉽게 사용할 수 있도록 직관적인 인터페이스와 AI 기반 자동화 기능을 제공하여, 미술을 좋아하는 모든 사람이 부담 없이 창작을 즐길 수 있도록 도와줍니다.

서비스 설명 / 주요 기능

  • 사용자가 원하는 화풍으로 바꿔주는 서비스
  • 사용자가 약 10장의 자신만의 그림을 업로드하여 AI가 개인의 화풍을 학습하고, 이를 바탕으로 사진 촬영 시 전체 이미지를 학습된 화풍으로 변환해주는 서비스입니다. 누구나 손쉽게 자신만의 예술적 스타일을 반영한 사진을 제작할 수 있습니다.

[ 화풍 반영 사진 변환 서비스 ]

  1. 사용자가 약 10장의 화풍 학습을 위한 이미지 업로드 기능 (자신만의 예술적 화풍 제공)
  2. AI를 기반으로 Stable-Diffusion과 Lora를 활용한 맞춤형 화풍 학습 기능 (업로드된 사진을 통해 개별 화풍 모델 생성)
  3. 사용자당 화풍 모델 저장 기능 (개인화된 학습 결과물을 선택적으로 보관)
  4. 저장된 화풍 모델을 다른 사용자도 활용할 수 있으며, 인기 모델 랭킹 기능 제공 (커뮤니티 기반 추천 및 공유)
  5. 완성된 예술 사진 결과물 다운로드

프로젝트의 특장점(기능 관점)

  • 사용자 맞춤형 스타일로 개성 있는 결과물 제작
  • 인터랙티브 UI를 통한 사용 편의성 강화

1. 개인화된 사진 업로드 및 화풍 학습

  • 사용자가 약 10장의 개인화된 사진을 업로드하여, AI가 개별적인 예술 화풍을 학습할 수 있는 데이터를 제공
  • Transfer Learning 및 LoRA 기법을 활용하여 소량의 데이터로도 맞춤형 화풍 모델을 효과적으로 생성

2. 화풍 모델 저장 및 공유

  • 화풍 모델을 저장하여 개인의 학습 결과물을 선택적으로 보관
  • 저장된 화풍 모델은 커뮤니티 내에서 다른 사용자들도 활용할 수 있으며, 인기 모델 랭킹 기능을 통해 추천받은 모델을 쉽게 확인 가능

3. 스타일 변환 및 결과물 다운로드

  • 완성된 예술 사진 결과물은 이미지 저장 기능을 통해 다운로드 가능

AI 기술

사용자 제공 데이터를 기반으로 개별화된 화풍 학습

  • 사용자가 올린 그림을 바탕으로 Stable-DiffusionLora를 통해 학습

Stable Diffusion 개요

SD

Stable Diffusion은 잠재 확산 모델(Latent Diffusion Model)을 기반으로 한 텍스트-이미지 생성 AI 모델입니다. 이 모델은 이미지를 점진적으로 노이즈에서 복원하는 과정을 통해 고품질 이미지를 생성합니다. 주요 특징은 다음과 같습니다:

  • 이미지를 픽셀 공간이 아닌 압축된 잠재 공간에서 처리하여 계산 효율성 향상
  • 텍스트 프롬프트를 기반으로 이미지 생성 가능
  • 오픈소스로 제공되어 다양한 맞춤형 응용 프로그램 개발 가능

LoRA(Low-Rank Adaptation) 기술

Lora

LoRA는 대규모 사전 훈련된 모델을 적은 양의 데이터로 효율적으로 파인튜닝하기 위한 기술입니다:

  • 전체 모델 가중치를 업데이트하는 대신 저차원 행렬을 통해 모델을 적응시킴
  • 훈련 가능한 매개변수 수를 대폭 줄여 메모리 효율성 향상 및 빠른 학습 속도 제공
  • 원본 모델의 가중치는 변경하지 않고 별도의 어댑터로 작동하여 모델 배포 용이

이미지 증강 기법

사용자로부터 받은 10장의 이미지는 AI 학습에 충분한 데이터가 아닐 수 있습니다. 따라서 다음과 같은 데이터 증강(Data Augmentation) 기법을 활용하여 10장의 원본 이미지를 20장으로 확장합니다. 이러한 증강 기법을 통해 원본 이미지의 특성은 유지하면서 다양한 변형을 생성하여 AI 모델이 화풍의 본질적인 특징을 더 잘 학습할 수 있도록 합니다. 이는 소량의 사용자 데이터로도 높은 품질의 화풍 모델을 학습할 수 있게 해주는 핵심 기술입니다.

아트퐁에서 LoRA 선택 이유:

preview

주요 기술 스택

  • 프론트엔드: React-Native, Expo, TypeScript
  • 백엔드: FastAPI, Spring Boot
  • AI 모델링: Python, PyTorch/TensorFlow, Lora, Stable-Diffusion
  • 데이터베이스: PostgreSQL, Redis
  • 배포 및 인프라: Docker, Jenkins, Nginx, AWS, Prometheus, Grafana

About

AI로 화풍을 학습시키고 학습된 화풍을 새로운 이미지에 적용하는 서비스 [ArtForm]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •