Generative AI Service

DiaryToon

일기 텍스트를 4컷 만화로 변환해 기록을 더 쉽고 즐겁게 만들어주는 생성형 AI 서비스입니다.

DiaryToon Main

소개

DiaryToon은 “일기 한 편”을 입력하면 AI가 핵심 내용을 요약하고, 하루의 흐름을 4개의 장면으로 재구성한 뒤, 각 장면을 이미지로 생성해 2x2 만화 형태로 보여주는 서비스입니다. 사용자는 스타일 프리셋(심플/애니/AI) 캐릭터 테마(토끼/곰/악어)를 선택해 결과의 분위기와 주인공 톤을 통일할 수 있습니다.

핵심 기능

일기 → 4컷 장면으로 변환

일기를 요약한 뒤 (도입/전개/전환/마무리) 구조로 4개의 장면을 구성하고, 각 장면을 이미지로 생성합니다.

스타일 프리셋 (심플 · 애니 · AI)

선택한 프리셋에 맞춰 프롬프트를 자동 보정해 전체 컷의 톤·질감·연출을 통일합니다.

캐릭터 적용 (토끼 · 곰 · 악어)

주인공 캐릭터 특징을 고정해 4컷 전체에 반복 주입하여, ‘같은 인물’로 보이는 일관성을 확보합니다.

재생성 · 저장

결과가 마음에 들지 않을 때 재생성하고, 최종 결과를 저장해 다시 확인할 수 있도록 구성했습니다.

아키텍처

DiaryToon Architecture

Django 서버는 일기와 사용자 설정을 기반으로 생성 파이프라인을 구성하고, 생성된 이미지는 Media 스토리지에 저장하며 일기·설정·결과 메타데이터는 DB에 기록하도록 설계했습니다. 이를 통해 결과 재생성 및 재조회가 가능한 구조를 구축했습니다.

문제점 & 해결방법

CASE 01

LoRA 적용 한계로 인해 API 기반 이미지 생성 방식으로 전환한 문제

문제 초기에는 LoRA로 캐릭터를 고정해 일관된 4컷을 만들고자 했지만, 서비스 환경(리소스/운영)과 모델 적용 방식의 제약으로 실제 제품에 안정적으로 붙이기 어려웠습니다.

  • Hugging Face 기반 모델은 용량이 커 배포/운영 부담이 컸음
  • 가벼운 모델로 내려가면 캐릭터 표현/장면 품질이 기대치에 못 미쳤음
  • API 기반 생성 흐름에서는 LoRA를 그대로 적용하기 어렵다는 제약이 있었음

해결 API 기반 이미지 생성(DALL·E-3 등)으로 전환하고, 프롬프트 설계를 ‘캐릭터 고정’ 중심으로 재구성해 제품에서 재현 가능한 방식으로 안정화했습니다.

  • 캐릭터 특징을 ‘캐릭터 바이블’ 형태로 고정 문장화해 모든 컷에 반복 주입
  • 스타일 프리셋별로 프롬프트 템플릿을 분리해 톤/질감/연출을 일관되게 유지
  • 컷별 결과를 검수하고, 캐릭터/장면이 흔들리면 재생성하도록 파이프라인 구성
Outcome

LoRA 의존 없이도 운영 가능한 구조에서 캐릭터/스타일 일관성을 확보했고, 서비스 적용(배포/재현성) 관점에서 안정적인 생성 파이프라인을 구축

CASE 02

일기 내용이 길어질수록 4컷이 아닌 6/9컷으로 생성되는 문제

문제 장문 일기의 경우 사건이 많아져 장면 설계 단계에서 컷 수가 늘어나거나, 생성 모델이 장면을 더 쪼개 해석해 4컷 포맷이 깨졌습니다.

  • 하루 이벤트가 과도하게 포함되면 ‘4개의 핵심 장면’ 추출 기준이 흔들림
  • 요약이 길면 장면 설계에서 추가 컷이 자연스럽게 생성됨
  • 컷 수가 달라지면 2x2 레이아웃(저장/보기) UX도 함께 깨짐

해결 ‘4컷 고정’ 스키마를 강제하고, 장문은 요약 단계에서 이벤트를 압축·선별해 장면 설계 입력을 제한했습니다.

  • 요약 출력 포맷을 고정(핵심 사건 4개 + 감정/장소/키워드)해 컷 수 증가 차단
  • 장면 설계 단계에서 count=4 고정 + 검증(validator)로 4개 미만/초과 시 재생성
  • 장문 입력은 우선순위 규칙(가장 중요한 전환/클라이맥스 중심)으로 이벤트 선별
Outcome

긴 일기에서도 2x2(4컷) 포맷이 안정적으로 유지되어, 저장/재생성 UX가 일관되게 동작하도록 개선

CASE 03

캐릭터 일관성이 흔들리거나, 은유 표현을 오해해 장면이 어색해지는 문제

문제 컷마다 캐릭터 외형(안경/의상 등)이 달라지거나, 일기 속 비유/은유 표현을 문자 그대로 해석해 의도와 다른 장면이 생성되는 문제가 발생했습니다.

  • 이미지 생성 특성상 같은 의도라도 컷마다 변동성이 큼
  • 캐릭터 정보를 장면별로 다르게 전달하면 모델이 ‘다른 인물’로 해석
  • 일기에는 관용구/은유/속어가 자주 등장해 문맥 오해가 발생
  • 모호한 표현이 프롬프트에서 ‘물리적 상황’으로 왜곡되면 기괴한 장면이 생성될 수 있음

해결 캐릭터 특징은 ‘잠금(고정) 프롬프트’로 통일하고, 은유/관용구는 의미를 풀어쓴 뒤 프롬프트를 한 번 더 검사해 이상 징후가 있으면 재생성하도록 구성했습니다.

  • 캐릭터 바이블(헤어/안경/상의 색/체형/분위기)을 한 문장으로 고정해 매 컷 포함
  • 프리셋별 충돌 키워드를 정리하고 캐릭터 핵심 특징이 우선되도록 프롬프트 우선순위 조정
  • 은유/관용구를 ‘의도(감정/상황)’ 중심으로 평문화(paraphrase)해 장면 오해를 줄임
  • 프롬프트 검수 단계에서 기괴한 연출로 튈 가능성이 있으면 문장 재작성 후 재생성
Outcome

컷 간 캐릭터 편차와 문맥 오해가 함께 줄어, 더 자연스럽고 ‘같은 주인공’으로 인식되는 4컷 결과를 안정적으로 확보

기술 개선 결과

4컷 고정
장면 수 안정화
스키마 강제 + 검증/재생성으로 6·9컷으로 튀는 케이스 감소
일관성↑
캐릭터 유지력 개선
캐릭터 바이블/잠금 프롬프트로 안경·의상·톤 편차 완화
오해↓
문맥 해석 품질 개선
관용구 의미 정규화 + 프롬프트 검수로 기괴한 장면 생성 빈도 감소