롤플레이
Elftia에는 SillyTavern과 호환되는 내장 롤플레이(RP) 시스템이 있어 캐릭터 카드를 만들고 가져오고, 세계관 설정을 구축하며, AI와 몰입감 있는 롤플레이 대화를 즐길 수 있습니다. TavernCard V2/V3 형식, World Info 지식 베이스, 다중 캐릭터 그룹 채팅, 정규식 텍스트 교체, 감정 스프라이트 시트를 지원합니다.
사용 사례
- 가상 캐릭터를 만들고 몰입감 있는 대화를 나누기
- SillyTavern 또는 캐릭터 카드 공유 사이트에서 캐릭터 카드 가져오기 (메타데이터가 포함된 PNG)
- 세계관 설정(World Info)을 구축하여 AI가 대화 컨텍스트에 따라 관련 지식을 자동으로 참조하도록 하기
- 여러 캐릭터가 상호작용하는 다중 캐릭터 그룹 채팅 시나리오 설정
- 정규식 스크립트를 사용하여 출력 텍스트를 자동으로 교체하거나 수정
- 캐릭터에 감정 스프라이트 시트를 구성하여 감정에 따라 표정을 동적으로 전환
캐릭터 카드
캐릭터 카드는 롤플레이의 기반으로, AI 캐릭터의 성격, 배경, 행동 패턴을 정의합니다.
카드 형식
Elftia는 여러 캐릭터 카드 형식을 지원합니다:
| 형식 | 식별자 | 설명 |
|---|---|---|
| TavernCard V2 | v2 | 표준 SillyTavern 형식으로 PNG 이미지에 Base64로 인코딩된 JSON 메타데이터가 내장됨 |
| TavernCard V3 | v3 | V2의 확장 버전으로 Assets, 생성 날짜 등 추가 필드 포함 |
| CharX | charx | 확장 캐릭터 카드 형식 |
| BYAF | byaf | Build Your AI Friend 형식 |
| JSON | json | 순수 JSON 캐릭터 데이터 형식 |
| 수동 생성 | manual | Elftia에서 수동으로 생성된 캐릭터 |
카드 필드
각 캐릭터 카드에는 다음 필드가 포함됩니다:
| 필드 | 설명 | 필수 여부 |
|---|---|---|
| 이름 (name) | 캐릭터 이름 | 필수 |
| 설명 (description) | 외모, 신원, 배경을 포함한 상세한 캐릭터 설명 | 필수 |
| 성격 (personality) | 캐릭터의 성격 특성 | 선택 |
| 시나리오 (scenario) | 대화의 장면 설정 | 선택 |
| 첫 번째 메시지 (first_mes) | 캐릭터의 첫 대사 | 선택 |
| 예시 대화 (mes_example) | 캐릭터 대화 스타일의 예시 | 선택 |
| 시스템 프롬프트 (system_prompt) | 캐릭터 전용 시스템 프롬프트 | 선택 |
| 히스토리 후 지시 (post_history_instructions) | 메시지 히스토리 이후에 삽입되는 지시 | 선택 |
| 대체 인사말 (alternate_greetings) | 여러 개의 선택 가능한 첫 대사 | 선택 |
| 제작자 노트 (creator_notes) | 캐릭터 카드 제작에 관한 메모 | 선택 |
| 태그 (tags) | 분류 태그 | 선택 |
| 캐릭터 아바타 (avatar) | 캐릭터 아바타 이미지 | 선택 |
캐릭터 카드 만들기
단계
- 캐릭터 카드 관리 페이지를 엽니다
- 캐릭터 만들기 버튼을 클릭합니다
- 캐릭터 정보를 입력합니다 (이름, 설명, 성격 등)
- (선택사항) 캐릭터 아바타를 업로드합니다
- (선택사항) 예시 대화를 작성합니다
- (선택사항) 시스템 프롬프트를 설정합니다
- 캐릭터 카드를 저장합니다
캐릭터 카드 가져오기
Elftia는 PNG 파일에서 캐릭터 카드를 가져오는 것을 지원합니다. 많은 캐릭터 카드 공유 사이트에서 캐릭터 데이터가 내장된 PNG 이미지를 제공합니다.
PNG에서 가져오기
- 캐릭터 카드 관리에서 가져오기를 클릭합니다
- 캐릭터 데이터가 포함된 PNG 파일을 선택합니다
- 시스템이 PNG에 내장된 JSON 메타데이터를 자동으로 파싱합니다
- 캐릭터 정보를 미리 봅니다
- 가져오기를 확인합니다
:::info PNG 메타데이터 형식
- V2 형식: 데이터는 PNG의
tEXt청크에 저장되며 키워드는chara이고 내용은 Base64 인코딩된 JSON - V3 형식: 키워드는
ccv3이며 더 풍부한 메타데이터 포함 :::
JSON에서 가져오기
JSON 형식의 캐릭터 데이터 파일을 직접 가져올 수도 있습니다.
캐릭터 카드 내보내기
캐릭터 카드를 PNG 파일(메타데이터 포함) 또는 JSON 파일로 내보내 공유 및 백업에 활용할 수 있습니다.
PNG로 내보내기
- 내보낼 캐릭터 카드를 선택합니다
- 내보내기 버튼을 클릭합니다
- PNG 형식을 선택합니다
- 시스템이 캐릭터 데이터를 아바타 PNG에 내장합니다
- 내보낸 PNG 파일을 저장합니다
내보낸 PNG 파일은 SillyTavern 또는 다른 호환 앱에 직접 가져올 수 있습니다.
대화에서 캐릭터 사용하기
단계
- 채팅 세션의 설정 패널을 엽니다
- 롤플레이 설정 영역을 펼칩니다
- 캐릭터 선택기에서 캐릭터 카드를 선택합니다
- RP 관련 파라미터를 구성합니다 (아래 구성 표 참조)
- 대화를 시작합니다
RP 구성 파라미터
| 파라미터 | 설명 | 기본값 |
|---|---|---|
| 캐릭터 카드 (characterCardId) | 사용할 캐릭터 선택 | 없음 |
| 사용자 이름 (userName) | RP에서 당신의 이름 | User |
| 사용자 페르소나 (userPersona) | 당신의 캐릭터 배경 | 없음 |
| 작가 노트 (authorsNote) | 대화 컨텍스트에 삽입되는 숨겨진 지시 | 없음 |
| 작가 노트 깊이 (authorsNoteDepth) | 노트가 삽입되는 위치 (최신 메시지로부터의 거리) | 4 |
| 응답 접두사 (replyPrefix) | AI 응답 전에 자동으로 추가되는 접두사 | 없음 |
| 빠른 응답 (quickReplies) | 미리 설정된 빠른 응답 버튼 | 없음 |
| 컨텍스트 템플릿 (contextTemplateId) | 커스텀 프롬프트 조합 순서 | 없음 |
| 요약 (summarizationEnabled) | 대화 요약 활성화 (긴 대화 압축) | 아니오 |
World Info
World Info는 롤플레이의 지식 베이스 시스템으로 세계관 지식 항목을 저장합니다. 대화에서 일치하는 키워드가 발견되면 관련 World Info 항목이 AI의 컨텍스트에 자동으로 주입됩니다.
핵심 개념
| 개념 | 설명 |
|---|---|
| 북 (Book) | World Info의 컨테이너로 여러 항목 포함 가능 |
| 항목 (Entry) | 트리거 키워드와 내용이 포함된 단일 지식 아이템 |
| 키 (Keys) | 항목을 트리거하는 키워드 목록 |
| 스캔 깊이 (Scan Depth) | 키워드 매칭을 위해 스캔할 최근 메시지 수 |
| 토큰 예산 (Token Budget) | World Info가 사용할 수 있는 최대 토큰 수 |
| 재귀 스캔 (Recursive Scanning) | 트리거된 항목 내용 내에서 키워드를 계속 스캔할지 여부 |
World Info 만들기
- World Info 관리 페이지를 엽니다
- 북(Book)을 만듭니다
- 북에 항목(Entry)을 추가합니다
- 각 항목에 트리거 키워드와 내용을 설정합니다
항목 구성
| 필드 | 설명 |
|---|---|
| 키워드 (keys) | 이 항목을 트리거하는 키워드 목록 |
| 내용 (content) | 항목의 지식 내용 |
| 활성화 (enabled) | 이 항목의 활성화 여부 |
| 삽입 순서 (insertion_order) | 여러 항목이 트리거될 때의 우선순위 정렬 |
| 대소문자 구분 (case_sensitive) | 키워드 매칭의 대소문자 구분 여부 |
| 선택적 매칭 (selective) | 기본 및 보조 키워드 모두 일치해야 하는지 여부 |
| 보조 키 (secondary_keys) | 선택적 매칭을 위한 보조 키워드 |
| 상시 포함 (constant) | 항상 컨텍스트에 포함할지 여부 |
| 위치 (position) | 컨텍스트에서 삽입 위치 |
| 깊이 (depth) | 커스텀 삽입 깊이 |
| 확률 (probability) | 트리거 확률 (0-100%) |
| 전체 단어 매칭 (match_whole_words) | 완전한 단어만 매칭할지 여부 |
World Info 스캔 설정
| 설정 | 설명 | 기본값 |
|---|---|---|
| 스캔 깊이 | 스캔할 최근 메시지 수 | 10 |
| 토큰 예산 | 사용 가능한 최대 토큰 수 | 2048 |
| 재귀 스캔 | 트리거된 내용 내에서 계속 매칭 | 아니오 |
World Info 사용하기
- RP 설정 패널에서 하나 이상의 북을 선택합니다
- 스캔 파라미터를 구성합니다
- 시스템이 대화 중 일치하는 항목을 자동으로 스캔하고 주입합니다
캐릭터 내장 지식 북
캐릭터 카드에는 내장된 캐릭터 북이 포함될 수 있으며, 가져올 때 해당 World Info 지식 베이스가 자동으로 생성됩니다.
그룹 채팅
그룹 채팅 모드에서는 여러 캐릭터가 동시에 대화에 참여하여 다인 상호작용을 시뮬레이션할 수 있습니다.
단계
- 그룹 채팅 구성을 만듭니다
- 참여 캐릭터(캐릭터 카드)를 추가합니다
- RP 설정에서 그룹 채팅 구성을 선택합니다
- 그룹 채팅 대화를 시작합니다
동작 방식
- 매 대화 라운드에서 시스템이 구성에 따라 어떤 캐릭터가 응답할지 결정합니다
- 각 캐릭터의 성격과 설정은 독립적으로 유지됩니다
- 다음에 응답할 캐릭터를 수동으로 지정할 수 있습니다
정규식 스크립트
정규식 스크립트를 사용하면 정규 표현식을 통해 AI의 입력 또는 출력을 자동으로 교체하고 수정할 수 있습니다.
사용 사례
- AI의 출력 자동 포맷팅
- 특정 텍스트 패턴 교체
- 특정 태그 추가 또는 제거
구성
RP 설정 패널의 정규식 스크립트 영역에서:
- 새 정규식 규칙을 추가합니다
- 매칭할 정규 표현식을 입력합니다
- 교체 텍스트를 입력합니다
- 적용 위치를 선택합니다 (입력 / 출력)
- 규칙을 활성화합니다
감정 스프라이트 시트
감정 스프라이트 시트 기능을 통해 캐릭터는 대화에서 표현된 감정에 따라 표시되는 표정을 동적으로 전환할 수 있습니다.
설정 방법
- 캐릭터를 위한 표정 이미지 세트를 준비합니다 (예: 행복, 슬픔, 화남 등)
- 캐릭터 설정에서 표정 이미지 세트를 업로드합니다
- 각 이미지에 해당하는 감정 태그를 레이블링합니다
- AI가 응답에서 감정 톤을 자동으로 감지하고 표정을 전환합니다
SillyTavern 호환성
Elftia의 롤플레이 시스템은 SillyTavern과 높은 호환성을 자랑합니다:
| 기능 | 호환성 |
|---|---|
| TavernCard V2 가져오기/내보내기 | 완전 호환 |
| TavernCard V3 가져오기/내보내기 | 완전 호환 |
| 캐릭터 북 | 완전 호환 |
| World Info 형식 | 완전 호환 |
| PNG 내장 메타데이터 | 완전 호환 |
| 정규식 스크립트 | 호환 |
| 감정 스프라이트 시트 | 호환 |
SillyTavern에서 내보낸 캐릭터 카드와 World Info를 형식 변환 없이 바로 사용할 수 있습니다.
자주 묻는 질문
| 질문 | 해결 방법 |
|---|---|
| PNG 가져오기 실패 | PNG 파일에 유효한 캐릭터 데이터가 포함되어 있는지 확인하세요 (tEXt 청크에 chara 또는 ccv3 키워드가 있어야 함) |
| 캐릭터가 설정대로 응답하지 않음 | 캐릭터 설명과 시스템 프롬프트가 충분히 상세한지 확인하고 예시 대화를 더 추가하세요 |
| World Info 항목이 트리거되지 않음 | 키워드 철자가 맞는지 확인하고 스캔 깊이가 충분한지 확인하세요 |
| World Info가 토큰 예산을 초과함 | 상시 포함 항목 수를 줄이거나 토큰 예산을 늘리세요 |
| 그룹 채팅 캐릭터들이 혼동됨 | 각 캐릭터의 설명이 충분히 고유한지 확인하고 성격 중복을 피하세요 |
| 표정이 전환되지 않음 | 표정 이미지가 올바르게 업로드되고 감정 태그가 레이블링되어 있는지 확인하세요 |
| 내보내기 후 다른 앱에서 인식하지 못함 | 내보내기 형식이 대상 앱과 호환되는지 확인하세요 (V2가 가장 넓은 호환성을 가짐) |
| 작가 노트가 작동하지 않음 | 작가 노트 깊이 설정을 확인하고 깊이가 현재 메시지 수를 초과하지 않는지 확인하세요 |