본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 16. 07:03

Perri 구축하기: 만화 스트립 생성기

요약

LLM과 Diffusion 모델을 결합하여 만화 스트립을 생성하는 경량 도구 Perri를 소개합니다. 32B 미만의 파라미터를 사용하는 모델들을 활용하여 효율적인 파이프라인을 구축했습니다.

핵심 포인트

  • Llama-3-8B를 활용한 구조화된 스크립트 생성
  • SDXL-Turbo를 이용한 실시간 이미지 합성
  • Gradio 기반의 사용자 친화적 프론트엔드 구현
  • 32B 미만 파라미터 모델을 통한 비용 및 연산 효율성 확보

LLM (대규모 언어 모델) 기반의 스토리텔링과 실시간 확산 모델 (Diffusion Models)을 결합한 가볍고 단일 패널 형태의 만화 제작 도구인 Perri Comic Generator를 소개합니다. Perri는 Gradio 프론트엔드와 고성능 백엔드를 결합하여 매끄러운 파이프라인을 조율합니다. 간단한 스토리 씨앗 (Story seed)을 입력받아 이를 패널 설명으로 구조화하고, 아트를 생성한 뒤, 최종 이미지 위에 대사를 바로 입힙니다.

가장 좋은 점은 무엇일까요? Perri는 거대하고 리소스 집약적인 인프라 없이도 이 모든 것을 수행한다는 것입니다. Perri 내부의 모든 AI 모델은 **320억 개 (32 billion) 미만의 파라미터 (Parameters)**를 사용하며, 놀라운 것을 만들기 위해 거대하고 연산 집약적인 모델이 반드시 필요하지 않다는 것을 증명합니다.

Perri

Perri를 구동하는 아키텍처와 기술 스택의 내부 모습입니다.

기술 아키텍처 (Technical Architecture)

Perri는 생성의 무거운 작업을 사용자 인터페이스로부터 분리하는 깔끔한 관심사 분리 (Separation of concerns) 방식을 사용하여 구축되었습니다.

1. 프론트엔드 (app.py)

Gradio 6.16.0을 사용하여 구축된 프론트엔드는 스토리 씨앗을 입력하기 위한 매끄럽고 사용자 친화적인 인터페이스를 제공합니다. 만화의 창의적인 정신에 맞추어, UI는 별이 반짝이는 CSS 오버레이가 포함된 빈티지 미학을 반영한 커스텀 테마를 활용합니다.

프론트엔드의 주요 역할은 다음과 같습니다:

  • 사용자의 초기 프롬프트 (Prompt) 캡처.
  • 보안 API 요청을 통해 백엔드 인프라로 페이로드 (Payload) 전송.
  • 백엔드의 응답(Base64로 인코딩된 JPEG)을 디코딩하여 Gradio 이미지 컴포넌트 내에 렌더링.

2. 백엔드 오케스트레이터 (orchestrator.py)

오케스트레이터는 운영의 두뇌 역할을 하며, 단일 만화 패널의 생명 주기에서 세 가지 별도의 단계를 실행합니다:

  • 스크립트 생성 (Script Generation): meta-llama/Meta-Llama-3-8B-Instruct를 사용하여 사용자의 가공되지 않은 프롬프트를 고도로 구조화된 시각적 스크립트와 대화 스니펫(dialogue snippet)으로 정제합니다.
  • 이미지 생성 (Image Generation): 시각적 묘사를 stabilityai/sdxl-turbo에 전달하여 레트로 만화 스타일의 아트를 합성합니다.
  • 대화 오버레이 합성 (Dialogue Overlay Composition): 별도의 텍스트 캡션에 의존하는 대신, 오케스트레이터가 생성된 대화를 JPEG 이미지 위에 직접 동적으로 그려 넣어 정통 만화책 같은 느낌을 보장합니다.

경량 AI 스택 (32B 파라미터 미만)

현대 AI 개발은 종종 거대한 파운데이션 모델 (foundational models)을 지향하지만, Perri는 체급을 훨씬 뛰어넘는 성능을 내는 특화된 모델들을 활용하여 속도, 효율성, 그리고 비용 효율성을 우선시합니다.

| 모델 역할 |
| --- | --- |
| 스토리 및 스크립팅 (Story & Scripting) | meta-llama/Meta-Llama-3-8B-Instruct | 8 Billion | 더 큰 LLM의 지연 시간(latency) 없이 스크립팅을 위한 매우 정밀하고 구조화된 지시 이행(instruction-following)을 제공합니다. |
| 아트 생성 (Art Generation) | stabilityai/sdxl-turbo | ~3.5 Billion | 단 한 번의 단계로 고품질 만화 아트를 순식간에 생성하는 단일 단계 적대적 확산 모델 (single-step adversarial diffusion model)입니다. |

모든 모델을 32B 임계값보다 훨씬 낮게 유지함으로써, 전체 파이프라인은 고도로 최적화된 소비자용 클라우드 GPU에서 실행될 수 있으며, 이를 통해 지연 시간을 낮게 유지하고 빠릿한 사용자 경험을 제공합니다.

배포 및 인프라

Perri는 클라우드에서 손쉽게 실행되도록 구성되어 있지만, 분리된(decoupled) 인프라로 설계되었습니다:

  • Hugging Face Spaces: 오픈 소스 MIT 라이선스 하에 Gradio 프론트엔드를 호스팅하여 커뮤니티에 쉽게 공유 가능한 링크를 제공합니다.
  • Modal Labs (MODAL_ENDPOINT_URL): 백엔드 워커 풀 (worker pool)을 구동합니다. Modal을 사용하면 이미지 생성 및 오케스트레이터 로직이 사용되지 않을 때 0으로 스케일링(scale to zero)되어 컴퓨팅 비용을 절감하는 동시에, 사용자가 만화를 요청할 때 빠른 콜드 스타트 (cold-start) 시간을 제공합니다.

필요한 환경 변수

프론트엔드와 백엔드를 안전하게 연결하기 위해, 애플리케이션은 두 가지 핵심 환경 비밀값 (environment secrets)에 의존합니다:

  • HF_TOKEN: Hugging Face 허브 및 스페이스 (spaces)로의 요청을 인증하기 위한 토큰입니다.
  • MODAL_ENDPOINT_URL: 프론트엔드 UI를 서버리스 (serverless) 백엔드 워커로 안내합니다.

Perri 로컬 실행하기

테마를 실험하거나 레이아웃을 수정하고 싶으신가요? 단 몇 단계만으로 프론트엔드를 로컬에서 실행할 수 있습니다.

  1. 저장소 (repository)를 클론 (clone)하고 종속성 (dependencies) (gradio 포함)을 설치합니다.
  2. MODAL_ENDPOINT_URL을 포함하여 .env 파일을 설정합니다.
  3. 애플리케이션을 실행합니다:
python app.py

마치며

Perri 만화 생성기 (Perri Comic Generator)는 작고 특화된 모델들을 어떻게 체인 (chain)으로 연결하여 풍부하고 창의적인 애플리케이션을 구축할 수 있는지 보여줍니다. 사고 구조화를 위한 8B LLM과 생성을 위한 빠른 Turbo 확산 모델 (diffusion model)을 활용함으로써, Perri는 거대한 엔터프라이즈 AI 인프라의 오버헤드 없이도 향수를 불러일으키는 자동화된 만화 제작 경험을 제공합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0