색담은 인공지능 기술을 활용하여 낡은 벽에 요구사항을 반영한 새로운 색을 칠하고, 결과물을 공유할 수 있는 서비스입니다.
스테이블 디퓨전 모델 베이스로, 벽화의 느낌을 살리기 위해 LoRA기법의 학습을 진행했습니다.
- BastionHost 대신 SSM을 사용해보자
- Redis와 ws를 활용한 AI 작업 모니터링
- 객체 버킷과 PreSigned URL
- Stable Diffusion 모델 LoRA 적용 과정
sequenceDiagram
participant Storage as 스토리지
participant Client as 클라이언트
participant Server as 서버
participant Redis as Redis 메시지큐
participant PubSub as Pub/Sub 채널
participant ModelServer as 모델 서버
Client->>Server: 1. Task ID 요청
Server->>Client: Task ID 응답
Client->>Server: 2. 이미지 업로드 URL 요청 (Task ID 기반)
Server->>Client: 업로드 URL 응답
Client->>Storage: 3. 이미지 업로드
Client->>Server: 4. Task 제출 (Task ID, 작업 내용)
Client->>Server: 5. 소켓 연결 체결 (Task ID 기반)
Server->>Redis: 6. Task 등록
ModelServer->>Redis: 7. Task 가져오기
ModelServer->>PubSub: 7-1. INPROGRESS 상태 전송
PubSub->>Server: INPROGRESS 상태 수신
Server->>Client: 8. 소켓 연결 통해 진행 상태 전송
ModelServer->>Storage: 9. 이미지 처리 후 저장
ModelServer->>PubSub: 9-1. COMPLETED 상태 전송
PubSub->>Server: COMPLETED 상태 수신
Server->>Client: 10. 소켓 연결 통해 완료 상태 전송
Client->>Server: 11. 처리된 이미지 URL 요청 (Task ID 기반)
Server->>Client: 처리된 이미지 URL 응답
Client->>Storage: 12. 이미지 가져오기 요청
Storage->>Client: 처리된 이미지 데이터 전송

단계 | 기간 | 활동 | 비고 |
---|---|---|---|
사전기획 | 1/6(월) ~ 1/14(화) | 프로젝트 기획 및 주제 선정 | 아이디어 선정 |
데이터 수집 | 1/15(수) ~ 1/20(월) | 시장 조사, 학습 데이터 수집 | 크롤링, 오픈 데이터셋 |
데이터 전처리 | 1/21(화) ~ 1/23(목) | 데이터 정제 | - |
모델링 | 1/24(금) ~ 1/31(금) | 세그멘테이션, 생성형 모델 구현 | 모델 성능 평가 |
서비스 구축 | 1/14(화) ~ 2/21(금) | 백엔드, 모바일, 웹 서비스 구현 | - |
테스트 및 배포 | 2/24(월) ~ 2/28(금) | 베타 테스트 및 사용자 피드백 | - |