채팅 분기
분기는 특정 메시지까지의 채팅을 복사한 사본입니다. 원래 채팅은 그대로 둔 채 다른 전개를 시험해 볼 때 사용합니다. 이 가이드에서는 분기를 만들고, 전환하고, 보고, 이름을 바꾸고, 삭제하고, 내보내고, 가져오는 방법을 설명합니다.
한 채팅의 분기는 모두 하나로 묶입니다. 채팅 목록에서 그 채팅은 한 줄로 유지되고 분기 개수가 표시됩니다. 묶음 안의 분기 중 하나라도 어느 채팅에서 나왔는지 기록되어 있으면 개수를 클릭해 트리를 펼칠 수 있습니다. 이 기록이 없는 분기는 채팅 바로 아래에 놓입니다. 묶음 안의 어떤 분기에도 이 기록이 없으면(예전에 만들었거나 가져온 분기) 묶음은 한 줄로 유지됩니다. 이때는 Chat Branches(채팅 분기)에서 분기를 여세요. 분기에서 만든 분기는 그 분기 아래에 중첩되므로 트리 형태로 보입니다. 분기마다 표시 이름과 마지막 활동 시각이 있어서 "friendly ending", "dark ending"처럼 이름을 붙여 둘 수 있습니다. 표시 이름은 채팅 이름과 별개입니다. Game 묶음은 한 줄로 유지됩니다. Game 세션은 분기가 아니라 번호가 붙은 세션이기 때문입니다.
여기서부터 분기 만들기
- 메시지를 탭해(컴퓨터에서는 마우스를 올려) 메시지 동작 막대를 표시하세요.
- 작은 분기 모양 아이콘인 Branch from here(여기서 분기 생성)를 클릭하세요.
Marinara는 그 메시지까지 포함해 채팅을 복사하고 New Branch라는 이름의 새 분기를 만듭니다. 이름은 나중에 바꿀 수 있습니다.
새 분기는 다음과 같습니다.
- 모드, 캐릭터, 페르소나, 프롬프트 프리셋, 연결이 원본과 같습니다.
- 모든 메시지를 복사하며, 모든 스와이프와 어느 스와이프가 활성 상태였는지도 함께 복사합니다. 메시지 조작을 참고하세요.
- 복사된 메시지에 연결된 트래커와 게임 상태를 복사합니다.
- Roleplay(롤플레이) 채팅에서는 Advanced Memory의 작업을 유지합니다. 이전에 끝난 장면의 기억은 계속 회상할 수 있는 상태로 남습니다. 분기한 지점의 장면은 다시 진행 중인 장면이 되며, 그 장면의 이전 기억은 버려집니다. Memory Recall과 채팅 요약을 참고하세요.
- 원본과 같은 채팅 폴더에 남습니다.
일간 요약과 주간 요약은 넘어오지 않습니다. 복사된 메시지 안에 온전히 들어가는 롤링 요약은 넘어옵니다. 분기 지점에 걸치는 요약과 메시지 정보가 없는 예전 요약은 제외되며, 새 분기는 그런 요약을 처음부터 다시 만듭니다.
작동하지 않는 경우: 장면 채팅에는 Branch from here가 나타나지 않습니다. 장면 채팅에는 대신 Clone from here(여기서 복제)가 있습니다. 장면: Roleplay 분기하기를 참고하세요.
Chat Branches 섹션
Chat Settings(채팅 설정)를 열고 Chat Name(채팅 제목) 아래의 Chat Branches를 펼치세요. 헤더에 분기 개수가 표시됩니다. 컴퓨터에서는 이 섹션을 별도 창으로 꺼낼 수 있습니다. 채팅 설정을 참고하세요.
이 섹션에는 채팅의 모든 분기가 나열되며, 지금 보고 있는 분기가 맨 위에 옵니다. 각 줄에는 표시 이름과 마지막 수정 시각이 나옵니다. 줄을 클릭하면 그 분기로 전환됩니다.
목록 위의 버튼:
| 버튼 | 하는 일 |
| Branch graph(분기 그래프) | 그래프 창을 엽니다. 아래를 참고하세요. |
| JSONL, Text(텍스트), Markdown(마크다운), Story(스토리) | 지금 보고 있는 분기를 내보냅니다. 채팅 내보내기와 가져오기를 참고하세요. |
| Export a range(범위 지정 내보내기) | 채팅의 일부를 내보냅니다. Game에는 없습니다. 채팅 내보내기와 가져오기를 참고하세요. |
| Import(가져오기) | .jsonl 파일을 새 분기로 추가합니다. 아래를 참고하세요. |
| Stats(통계) | 지금 보고 있는 분기의 채팅 통계를 엽니다. |
분기 그래프 보기
그래프는 목록으로는 알 수 없는, 각 분기가 갈라진 지점을 보여 줍니다.
- Chat Branches를 열고 Branch graph를 클릭하세요. 다시 클릭하면 그래프가 닫힙니다.
그래프는 옮기고 크기를 바꿀 수 있는 별도 창으로 열립니다. 휴대폰에서는 시트로 열립니다. 묶음 안의 채팅마다 채팅 목록과 같은 순서로 한 행이 배정됩니다. 메시지는 왼쪽에서 오른쪽으로 이어지며, 메시지마다 점 하나로 표시됩니다.
- 회색 점은 내 메시지, 강조색 점은 캐릭터의 답변, 속이 빈 고리는 서술자나 시스템 메시지입니다.
- 분기에는 그 분기만의 메시지만 그려집니다. 분기를 만든 원본 메시지와는 선으로 이어집니다.
- 기록된 분기 지점이 없는 분기는 맨 위 채팅에서 점선으로 이어지며, 범례에 Fork not recorded(분기 지점 기록 없음)가 표시됩니다. 예전에 만든 분기와 원본 채팅이 삭제된 분기가 여기에 해당합니다.
- 분기 지점이 없는 긴 구간은 ··· N ··· 표시로 접힙니다. N은 숨겨진 메시지 수입니다. 표시를 클릭하면 메시지가 펼쳐집니다. Expand all(모두 펼치기)은 모든 구간을 펼치고, Collapse long runs(긴 구간 접기)는 다시 접습니다.
- 분기 지점과 각 분기의 최신 메시지에는 고리가 표시됩니다. 고리를 탭하거나, 마우스를 올리거나, 키보드로 초점을 맞추면 메시지 번호, 작성자, 글의 시작 부분이 보입니다.
- 분기의 이름이나 행을 클릭하면 그 분기로 전환됩니다. 지금 보고 있는 분기는 강조 표시됩니다.
분기를 만들거나 채팅 이름을 바꾸거나 채팅을 삭제하면 그래프가 갱신되며, 새 메시지가 도착한 뒤에도 곧 갱신됩니다.
분기 이름 바꾸기
- Chat Branches에서 분기 줄의 연필 버튼을 클릭하세요.
- Rename Branch(분기 이름 변경) 창("Set a display name for this chat branch.")에 새 이름을 입력하세요.
- Rename(이름 바꾸기)을 클릭하세요.
비어 있거나 바뀌지 않은 이름은 무시됩니다.
분기 삭제하기
- Chat Branches에서 분기 줄의 휴지통 버튼을 클릭하세요.
- Delete Branch(분기 삭제) 창("Delete this branch? Messages will be lost.")에서 Delete(삭제)를 클릭하세요.
그 분기와 그 안의 메시지만 지워집니다. 다른 분기는 그대로 남습니다.
분기가 둘 이상이면 섹션 아래쪽에 Delete All Branches(모든 분기 삭제)가 나타납니다. 이 버튼은 "Delete all N branches? This cannot be undone."라고 묻습니다. Delete All(전체 삭제)로 확정하세요. 채팅 목록에서 시작할 수도 있습니다. 분기가 있는 채팅을 목록에서 삭제하면 Delete This Branch Only(이 분기만 삭제)와 Delete All N branches가 제시됩니다. 채팅 목록 관리를 참고하세요.
파일을 새 분기로 가져오기
- Chat Branches에서 Import를 클릭하세요.
- SillyTavern이나 Marinara에서 내보낸
.jsonl파일을 고르세요.
Marinara는 파일을 현재 채팅 묶음의 새 분기로 추가하고 "Imported N messages as a new branch"를 표시한 뒤 그 분기로 전환합니다.
분기가 연결되는 방식
이 섹션은 분기 데이터를 활용해 무언가를 만드는 사람을 위한 내용입니다.
- 각 분기에는 바로 위의 원본 채팅과 분기가 갈라진 메시지가 기록됩니다. 원본 메시지 ID와 복사된 메시지 ID를 둘 다 보관하므로, 복사된 메시지에 새 ID가 부여되어도 연동 기능이 분기 경계를 찾을 수 있습니다.
- 분기에서 다시 분기를 만들면 맨 처음 원본이 아니라 그 분기가 부모로 기록됩니다.
- 묶음 안의 분기 중 하나라도 원본을 기록하고 있으면 채팅 목록에서 개수를 클릭해 트리를 열 수 있습니다. 원본을 알 수 없는 분기는 채팅 바로 아래에 놓입니다. 알려진 원본이 하나도 없는 묶음은 한 줄로 유지되며, 그 분기는 Chat Branches에서 엽니다.
- 부모 채팅을 삭제해도 자식 채팅에 기록된 원본은 바뀌지 않습니다. 묶음 전체를 삭제하면 그 안의 채팅이 모두 삭제됩니다.