Plotnode 소개
전체 소개
라이터 모듈
콘티 모듈
Plotnode 소개

Plotnode는 서사자산의 핵심인 시나리오를 노드 기반 구조체인 '플롯노드'로 시각화하여, 유저와 에이전트가 손쉽게 수정하면서도 안정적인 구조를 유지할 수 있도록 하는 하네싱 툴입니다. 플롯노드의 각 모듈 단위를 이용해서 소설, 웹툰, 영상 등 스토리텔링 AI 콘텐츠를 제작하는 에이전트 플랫폼입니다.
플롯노드에서는 프로젝트 모듈에서 설정을 한 번 진행한 후 시나리오, 소설, 영상, 게임 콘텐츠의 기획부터 제작까지 하나의 캔버스 위에서 진행할 수 있습니다. 사용자는 노드를 배치하고 연결하며 이야기의 구조를 시각적으로 설계하고, AI 에이전트가 같은 데이터를 읽고 생성하며 제작을 보조합니다.
핵심 컨셉
Narrative Orchestration System
Plotnode의 핵심 철학은 서사자산 구조체인 플롯노드를 에이전트를 오케스트레이션하여 제작한다는 것입니다. AI가 생성한 콘텐츠를 사용자(디렉터)가 각 단계에서 확인·수정·승인하는 구조입니다.
노드 캔버스

모든 작업은 노드 캔버스 위에서 이루어집니다. 시츄에이션(장면), 인물, 장소, 이벤트 등을 노드로 만들고 와이어로 연결하여 이야기의 흐름을 시각적으로 구성합니다.
모듈 구성
각각의 모듈과 노드 캔버스에 필요한 노드를 추가하여 만들고 싶은 콘텐츠를 재설정할 수 있습니다. 현재 제공되는 기본 모듈은 프로젝트(설정 관리), 라이터(소설 생성), 디렉터(이미지 생성: 웹툰 컷, 실사영화 키 프레임 제작용) 모듈입니다.
| 모듈 | 설명 |
|---|---|
| 프로젝트 | 설정 관리 — 시놉시스, 트리트먼트, 세계관, 인물/배경 설정 |
| 라이터 | 소설 생성 — 시나리오를 비트(Beat) 단위로 변환하여 소설 본문 작성 |
| 디렉터 | 이미지 생성 — 웹툰 컷, 실사영화 키 프레임 제작용 |
| 에디터 | 편집 — Director 영상·자막을 시퀀스로 합성하여 mp4 export (매뉴얼) |
| 갤러리 | 생성된 이미지/결과물 관리 (예정) |
| 소설 | 소설 뷰어 (예정) |
지원 환경
- 브라우저: Chrome, Edge, Firefox, Safari (최신 버전 권장)
- 테마: 다크 모드 / 라이트 모드
- 언어: 한국어, English
- 인증: 이메일/비밀번호 로그인, 관리자 승인제
화면 구성

Plotnode를 실행하면 크게 4개 영역으로 나뉜 화면이 나타납니다.
상단 메뉴 바

화면 최상단에 위치하며 다음 요소들로 구성됩니다.
- 로고: 클릭하면 사이드바 토글
- 메뉴: 파일, 편집, 보기, 도움말
- 프로젝트 탭: 여러 프로젝트를 탭으로 전환 (
+버튼으로 새 탭 추가) - 모듈 전환: 프로젝트 / 라이터 / 디렉터 / 에디터 / 갤러리 / 소설 모듈 간 전환
- 프로필: 우측 상단의 프로필 아이콘 클릭 시 이름, 이메일 수정 및 로그아웃
사이드바 (좌측)

모듈에 따라 표시되는 패널이 달라집니다.
공통 패널
- 채팅: AI 에이전트와 대화. 캔버스 데이터를 읽고 수정하는 도구를 사용할 수 있습니다.
- 채팅 목록: 이전 대화 내역
- 프로필: 사용자 정보 수정
- 설정: 관리자 전용 — 에디터 환경 설정
프로젝트 모듈

- 장르 선택
- 세계관 설정 / 인물 설정 / 배경 설정
- 시놉시스 / 트리트먼트 / 시나리오
- 노드 추가 (인물 노드, 장소 노드)
라이터 모듈

- 작성규칙 / 문체(.ton)
- 시나리오
- 노드 추가
디렉터 모듈

- 연출규칙 / 카메라 / 스타일
- 시나리오
- 노드 추가
노드 캔버스 (중앙)

이야기의 구조를 시각적으로 편집하는 메인 작업 영역입니다.
- 마우스 드래그: 캔버스 패닝 (빈 영역 드래그)
- Ctrl + 마우스휠: 줌 인/아웃
- 노드 드래그: 노드 위치 이동
- 포트 드래그: 노드 간 와이어 연결
우측 플로팅 툴바

캔버스 우측에 세로로 배치된 버튼들입니다.
- 줌 인 / 줌 아웃: 캔버스 확대·축소
- 화면에 맞추기: 모든 노드가 보이도록 자동 조정
- 뷰 초기화: 줌과 위치를 기본값으로 복원
- 토글: 모든 노드 접기/펼치기
- 리스트: 비트 리스트(라이터) 또는 컷 리스트(디렉터)
- 실행: 전체 AI 생성 실행
우측 갤러리 / 리스트

캔버스 우측에 생성된 비트(소설 텍스트) 또는 컷(이미지) 목록이 세로로 표시됩니다. 썸네일을 클릭하면 내용이 라이트 박스로 보이고, 나가면 해당 노드가 포커스됩니다.
빠른 시작
이 가이드에서는 Plotnode에 로그인하고, 시나리오를 입력하여 노드 캔버스에 시각화하는 기본 흐름을 안내합니다.
1. 로그인

Plotnode에 접속하면 로그인 화면이 나타납니다.
- 이메일과 비밀번호를 입력합니다.
- 계정이 없으면 회원가입을 클릭하여 이메일, 이름, 비밀번호(6자 이상)를 등록합니다.
- 회원가입 후 관리자 승인을 기다립니다. 승인이 완료되면 자동으로 메인 화면으로 진입합니다.

2. 새 프로젝트 만들기

- 상단 메뉴에서 파일 → 새 프로젝트 (또는
Ctrl+N)를 선택합니다. - 프로젝트 이름을 입력합니다.
- 빈 캔버스가 열립니다.
3. 시나리오 입력

사이드바에서 시나리오 패널을 열고, 다음 두 가지 방법 중 하나로 시나리오를 입력합니다.
방법 A: 직접 입력
시나리오 에디터에 직접 텍스트를 입력합니다. 표준 시나리오 포맷(씬 헤딩, 지문, 대사)을 따르면 자동 파싱됩니다.
S#1. 카페 안 / 낮
민수가 창가 자리에 앉아 커피를 마시고 있다.
수연이 문을 열고 들어온다.
수연
(놀라며)
오빠, 여기 있었어?
민수
응. 앉아.
방법 B: 파일 업로드
시나리오 불러오기 (Ctrl+Shift+I)로 .docx 또는 .pdf 파일을 업로드합니다. 서식이 포함된 텍스트가 자동 추출됩니다.
4. 플롯노드 변환

시나리오가 입력되면 사이드바 상단 툴바에서 변환 버튼을 클릭합니다.
- 플롯노드 변환: 규칙 기반으로 시나리오를 파싱하여 노드로 변환합니다.
- 플롯노드 AI 변환: AI를 사용하여 컷 분할과 연출 정보를 자동 생성합니다. (LLM 설정 필요)
변환이 완료되면 캔버스에 시츄에이션(씬) 노드, 인물 노드, 장소 노드, 컷/비트 노드가 자동 배치됩니다.

5. 캔버스에서 편집
- 노드 클릭: 해당 노드를 선택하여 내용을 편집합니다.
- 노드 드래그: 위치를 재배치합니다.
- 와이어 연결: 포트(점)를 드래그하여 노드 간 관계를 설정합니다.
- 화면에 맞추기 (
Ctrl+1): 모든 노드를 한 화면에 볼 수 있도록 줌을 조정합니다.
6. 저장
- Ctrl+S: 현재 프로젝트를 서버에 저장합니다.
- 내보내기 (
Ctrl+E):.scn파일로 로컬에 다운로드합니다.
자동 저장이 설정되어 있으면 편집 시 자동으로 저장됩니다. 설정에서 켜고 끌 수 있습니다.
노드 타입
Plotnode의 모든 콘텐츠는 노드로 표현됩니다. 노드는 캔버스 위에 배치되고, 와이어로 연결되어 이야기의 구조를 형성합니다.
시츄에이션 (Situation)

라이터 모듈의 장면 단위 노드입니다. 소설의 한 장면을 구성하는 중심 노드로, 장소·시간·등장인물·상황을 하나로 묶고 우측에 비트(Beat) 노드를 연결합니다.
- 씬 번호: 장면 순서
- 장소: 연결된 장소 노드에서 가져옵니다
- 시간: 낮 / 밤 / 새벽 / 저녁
- 내/외: 실내(Interior) 또는 실외
- 접기/펼치기: 좌측(인물/장소/상황) 및 우측(비트) 노드를 접거나 펼칠 수 있습니다
시츄에이션 노드는 캔버스의 중앙 열에 위치하며, 왼쪽에는 인물·장소·상황 노드가, 오른쪽에는 비트 노드가 연결됩니다.
상태 변화 (델타) — v0.5.0~
시츄에이션 노드는 연결된 캐릭터의 Status를 변화시키는 델타를 정의할 수 있습니다.
- 기본 델타: 파워 / 건강 / 부상 / 감정 / 감정강도 / 스트레스 / 의지
- 욕망 변화: 5축 욕망 델타 (생리/안전/애정/존경/실현)
- [적용] 버튼: 연결된 모든 캐릭터의 Status에 델타 적용
- [되돌리기] 버튼: 마지막 적용을 취소
- [💬 대화 생성]: 연결된 캐릭터들의 멀티 대화 생성 (DNA + 현재 Status 반영)
- [🎬 비트 생성]: 씬을 setup/rising/turning/climax/resolution 비트로 분할
씬 (Scene)

디렉터 모듈의 장면 단위 노드입니다. 영상·웹툰의 한 장면을 구성하는 중심 노드로, 우측에 컷(Cut) 노드를 연결하여 이미지 생성의 단위를 정의합니다.
- 씬 번호: 장면 순서
- 장소: 연결된 장소 노드에서 가져옵니다
- 시간: 낮 / 밤 / 새벽 / 저녁
- 내/외: 실내(Interior) 또는 실외
- 해상도: 씬에 연결된 컷의 기본 이미지 해상도 (예: 1280×720)
- 접기/펼치기: 좌측(인물/장소/이벤트) 및 우측(컷) 노드를 접거나 펼칠 수 있습니다
씬 노드는 캔버스의 중앙 열에 위치하며, 왼쪽에는 인물·장소·이벤트 노드가, 오른쪽에는 컷 노드가 연결됩니다.
상태 변화 (델타) — v0.5.0~
씬 노드도 시츄에이션과 동일하게 연결된 캐릭터 Status 변화 델타를 가집니다. [적용]/[되돌리기]/[대화 생성]/[비트 생성] 버튼이 모두 동일하게 작동합니다.
시츄에이션 vs 씬: 시츄에이션은 라이터 모듈(소설 생성), 씬은 디렉터 모듈(이미지 생성)의 장면 단위입니다. 같은 시나리오라도 모듈에 따라 다른 노드 타입으로 생성되며, 캔버스 상태도 모듈별로 독립 관리됩니다.
인물 (Character)

등장인물의 정보를 담는 노드입니다. v0.5.0부터 5층 DNA 구조를 사용해 캐릭터의 성격·신체·욕망·인격·현재 상태를 정밀하게 관리합니다.
기본 정보
- 이름, 성별, 나이, 직업, 외모
5층 DNA
① 영혼 (Soul)
캐릭터의 내면을 정의합니다.
- 지능: 양(capacity) / 질(quality) — 1~10
- 성격: MBTI + 가치관 + 세계관
- 기억: 고향 / 가족 / 거주지 / 학교
- 지식: 학력 / 직업 / 전문지식
② 육체 (Body)
캐릭터의 신체 능력을 정의합니다.
- 얼굴 / 체형
- 파워: 총량 / 충전속도 (1~10)
- 건강: 체질 / 지병 / 부상이력
③ 욕망 (Desire) — 매슬로 5단계
- 생리 / 안전 / 애정 / 존경 / 자아실현 (각 1~10)
④ 인격 (Persona)
- 관계별 평가 / 첫인상 / 사회적 역할
⑤ 현재 상태 (Status)
시츄에이션 적용에 따라 변하는 동적 상태입니다.
- 파워 잔량 / 건강 잔량 (0~10)
- 현재 부상 / 감정 / 감정 강도 / 스트레스 / 의지
- 욕망 현재치 (5축, DNA 기본값에서 변동)
- statusHistory: 변화 이력 (최대 50건, 되돌리기 가능)
캐릭터 대화 (💬)
캐릭터 노드 헤더의 💬 버튼을 클릭하면 채팅 패널에서 그 캐릭터로 대화할 수 있습니다. 에이전트가 DNA + 현재 Status를 시스템 프롬프트로 사용해 캐릭터답게 응답합니다.
대사 톤 변환 (🎭)
시츄에이션을 적용해서 statusHistory가 쌓이면 Status 섹션에 🎭 대사 톤 변환 버튼이 나타납니다. 시나리오에 작성된 그 캐릭터의 대사를 현재 상태에 맞게 톤만 변환합니다 (분노/공포/슬픔/체력저하 등이 말투에 반영).
인물 노드는 여러 시츄에이션에 연결할 수 있어, 같은 인물이 여러 장면에 등장하는 구조를 표현합니다.
장소 (Location)

장면이 발생하는 공간을 정의합니다.
- 이름: 장소 이름 (예: 카페, 공원, 민수의 방)
- 설명: 장소에 대한 부가 설명
- 시간대: 낮 / 밤 / 새벽 / 저녁
- 내/외: 실내 또는 실외
이벤트 (Event)

장면 내에서 발생하는 사건 또는 상황을 기술합니다.
- 상황 설명: 지문(Action Line)에 해당하는 텍스트
- 프로젝트 모듈에서는 "사건", 라이터 모듈에서는 "상황"으로 표시됩니다.
컷 / 비트 (Cut)
모듈에 따라 역할이 달라지는 출력 단위 노드입니다.
디렉터 모듈: 컷 (Cut)

카메라 샷 하나에 해당합니다. 이미지 생성의 기본 단위입니다.
- 컷 번호: 순서
- 지문: 해당 컷의 상황 설명
- 등장인물: 대사, 지시(parenthetical)
- 효과음, 전환: 사운드/트랜지션 지정
- 이미지: ComfyUI로 생성한 결과 이미지
- 연출 정보 (_directing): 프롬프트, 샷 사이즈, 카메라 앵글 등
라이터 모듈: 비트 (Beat)

소설 텍스트 출력의 기본 단위입니다.
- 컷과 동일한 구조를 갖지만, 이미지 대신 소설 텍스트 (_narrativeText)를 생성합니다.
- 스크립터(서술자 LLM) 설정에 따라 문체와 톤이 결정됩니다.
문체 (Tone)

글쓰기의 톤을 정의하는 노드입니다. (라이터 모듈)
- 이름: 문체 이름
- 설명: 문체 특징
- .ton 프로필: 문장 구조, 어휘, 리듬, 톤, 서술 관점 등을 수치화한 프로필
시츄에이션 노드에 연결하면 해당 장면의 소설 생성에 이 문체가 적용됩니다.
스타일 (Style)

비주얼 스타일을 정의하는 노드입니다. (디렉터 모듈)
- 이름: 스타일 이름
- 설명: 스타일 특징 (실사 영화, 애니메이션, 수채화 등)
씬/컷 노드에 연결하면 해당 장면의 이미지 생성에 이 스타일이 적용됩니다.
스크립터 / 카메라 (씬 컨트롤러)
스크립터 (Scripter)

라이터 모듈 — 서술자(Scripter): 소설 텍스트 생성에 사용할 LLM 설정
카메라 (Camera)

디렉터 모듈 — 카메라(Camera): 3D 카메라 제어
기타 노드
| 노드 | 설명 |
|---|---|
| 플롯 (Plot) | 플롯 기획 메모 |
| 텍스트 (Text) | 텍스트 입출력 범용 노드 |
| 이미지 (Image) | 이미지 입출력 범용 노드 |
| 동영상 (Video) | 영상 입출력 범용 노드 |
노드 추가 방법

- 사이드바의 노드 추가 섹션에서 원하는 타입을 클릭합니다.
- 캔버스에 새 노드가 생성됩니다.
- 포트를 드래그하여 다른 노드와 연결합니다.
시나리오를 플롯노드 변환하면 시츄에이션, 인물, 장소, 이벤트, 컷/비트 노드가 자동으로 생성되고 연결됩니다. 수동으로 노드를 추가하는 것은 세부 편집이나 추가 장면 구성 시에 사용합니다.
프로젝트 모듈

작품의 기획 단계를 담당합니다.
기획 문서 작성
사이드바의 각 패널에서 기획 문서를 작성합니다.
- 시놉시스: 작품 전체 줄거리를 요약합니다.
- 트리트먼트: 시놉시스를 장면 단위로 확장한 상세 기획입니다.
- 세계관 설정: 이야기의 배경이 되는 세계의 규칙, 역사, 지리 등을 정의합니다.
- 인물 설정: 주요 등장인물의 성격, 외모, 배경 등을 기록합니다.
- 배경 설정: 주요 장소의 특징과 분위기를 설명합니다.
채팅 에이전트에게 "시놉시스를 분석해줘" 또는 "인물설정을 생성해줘"와 같이 요청하면 AI가 기획 문서를 자동 작성하거나 보완할 수 있습니다.
장르 프리셋

사이드바에서 장르를 선택하면 해당 장르에 맞는 작성 규칙이 자동 적용됩니다. 판타지, 로맨스, 스릴러 등의 프리셋이 준비되어 있습니다.
시나리오 관리
- 시나리오 입력: 에디터에 직접 입력하거나 .docx/.pdf 파일을 업로드합니다.
- 플롯노드 변환: 시나리오를 파싱하여 노드 그래프로 변환합니다.
- 설정 생성: 시나리오에서 인물, 장소, 세계관 정보를 자동 추출합니다.
라이터 모듈

소설 텍스트 생성을 담당합니다.
워크플로우
- 프로젝트 모듈에서 시나리오와 설정을 준비합니다.
- 라이터 모듈로 전환합니다.
- 작성규칙을 설정합니다 — 소설 생성 시 지켜야 할 규칙을 정의합니다.
- 문체(.ton)를 선택하거나 커스텀 문체를 만듭니다.
- 시나리오를 플롯노드 변환합니다.
- 각 비트(Beat) 노드에서 소설 텍스트를 생성합니다.
비트(Beat) 생성

비트 노드는 소설의 한 단락에 해당합니다. 각 비트에 대해:
- AI가 시츄에이션 정보, 인물 성격, 문체 프로필을 종합하여 소설 텍스트를 생성합니다.
- 스크립터(서술자) 노드의 LLM 설정에 따라 모델과 파라미터가 결정됩니다.
- 생성된 텍스트는 직접 편집할 수 있습니다.
전체 생성
우측 플로팅 툴바의 실행 버튼을 클릭하면 모든 비트를 순차적으로 생성합니다.
콘티 모듈

컷(Cut) 단위로 이미지(콘티) 를 생성합니다.
워크플로우
- 프로젝트 모듈에서 시나리오와 설정을 준비합니다.
- 콘티 모듈로 전환합니다.
- 연출규칙을 설정합니다 — 컷 분할, 샷 구성의 기본 규칙을 정의합니다.
- 카메라 규칙을 설정합니다 — 샷 사이즈, 앵글 매핑 규칙을 정의합니다.
- 시나리오를 AI 플롯노드 변환하면 연출 프롬프트가 자동 생성됩니다.
- ComfyUI를 통해 이미지를 생성합니다.
컷(Cut) 이미지 생성

각 컷 노드에는 Controller가 연결되어 이미지 비율·시드 등 생성 파라미터를 제어합니다.
- Prompting: AI가 인물(나이 포함)·연출규칙·카메라 규칙을 종합해 T2I 프롬프트를 자동 작성합니다. 생성 중에는 버튼이 빨간 Stop으로 바뀌어 취소할 수 있습니다.
- 생성 제공자: Seedream(BytePlus) 또는 ComfyUI 중 선택해 이미지를 생성합니다.
ComfyUI로 생성하려면:
- 설정에서 ComfyUI 호스트 주소를 입력합니다. (기본:
http://127.0.0.1:8188) - 워크플로우 파일(.json)을 등록합니다.
- 컷 노드의 프롬프트를 확인하고, 생성 버튼을 클릭합니다.
전체 생성
우측 플로팅 툴바의 실행 버튼으로 모든 컷의 이미지를 순차 생성할 수 있습니다.
디렉터 모듈

샷(Shot) 단위로 영상(T2V / I2V) 을 생성합니다.
워크플로우
- 콘티 모듈에서 준비한 컷·이미지를 바탕으로 디렉터 모듈로 전환합니다.
- 연출규칙과 카메라 규칙을 확인합니다 — 샷 구성·카메라 무빙 규칙을 정의합니다.
- 시나리오를 플롯노드 변환하면 샷별 영상 프롬프트가 자동 생성됩니다.
- 각 샷(Shot) 노드에서 영상을 생성합니다.
샷(Shot) 영상 생성
샷 노드는 영상 한 컷에 해당합니다. 이미지 기반(I2V) 또는 텍스트 기반(T2V)으로 영상을 생성할 수 있습니다.
- Prompting: AI가 부모 씬·앞뒤 샷·인물(나이 포함)·연출규칙을 종합해 T2V 프롬프트를 자동 작성합니다.
- Controller: duration(영상 길이), 카메라 타입·무빙, 전환(transition) 등 생성 파라미터를 설정합니다. 대사 길이에 따라 duration이 자동 추정됩니다.
- 생성 제공자: Seedance(BytePlus) 또는 ComfyUI.
- Retake (◀▶): 같은 샷에서 여러 버전을 생성하고 토글로 비교·선택합니다.
전체 생성
우측 플로팅 툴바의 실행 버튼으로 모든 샷의 영상을 순차 생성할 수 있습니다.
에디터 모듈
에디터(Editor) 모듈은 Director에서 생성한 샷 영상과 시나리오 dialogue 자막을 받아 단일 mp4 시퀀스로 합성하는 NLE(Non-Linear Editor)입니다.
핵심 컨셉
다른 모듈이 콘텐츠를 생성한다면, 에디터는 생성된 자산을 편성합니다.
- 자동 시퀀싱: 샷 리스트의 모든 영상을 시간 순서대로 자동 배치, 같은 샷의 dialogue를 자막으로 동기화
- NLE 표준 편집: 트랙·클립 trim·드래그·트랜지션·multi-select 모두 지원
- ffmpeg 백엔드 export: 합성·트랜지션·자막 burn-in을 서버측 ffmpeg가 정확히 처리
UI 구성
화면은 좌측 사이드바(자산), 가운데(Preview + Timeline), 우측(Properties Inspector) 3 영역으로 나뉩니다.

좌측 사이드바 메뉴
| 메뉴 | 설명 |
|---|---|
| 샷 리스트 | Director 캔버스의 모든 shot 노드. 영상이 있으면 드래그하여 비디오 트랙에 배치 |
| 자막 | 시나리오 dialogue 목록. 같은 샷의 영상 시간에 자동 매칭 |
| 트랜지션 | 클립 사이에 드래그하여 적용 (fade/crossfade/dipToBlack/slide/wipe/zoom) |
| 텍스트 | 자유 텍스트 입력 (제목/표어/크레딧 등) |
| 이미지 | 정적 이미지 클립 |
| 오디오 | 외부 오디오 파일 |
| 요소 | 도형 overlay (rect/circle/line/arrow) |
| 채팅 | AI 어시스턴트 |
가운데 영역
Preview Viewport
- 16:9 비율 영상 미리보기
- 현재 playhead 시간의 활성 영상 + 자막 + 도형 합성 표시
- 우상단 전체화면 버튼 — Preview만 fullscreen 진입
- 하단 재생 버튼 (디렉터 RunAll과 동일 디자인, 재생 중 초록색 + pulse)
Timeline
- 트랙 헤더 (좌): 트랙명 / + / X 버튼, LVM 토글(잠금/표시/음소거), 마스터 볼륨 슬라이더
- 트랙 바디 (우): 클립 표시, 시간 ruler, playhead(빨간 선)
트랙 관리
트랙 추가
각 트랙 헤더의 + 버튼을 눌러 같은 type 트랙을 추가합니다 (video → 새 video 트랙).
트랙 이름 변경
트랙명을 더블클릭하면 input 모드로 전환됩니다. Enter / Escape로 확정.
트랙 색상
- video: 녹색 (
#22c55e) - audio: 노란색 (
#eab308) - text: 파란색 (
#3b82f6)
트랙 삭제
X 버튼을 누르면 confirm 다이얼로그가 표시됩니다. 클립/트랜지션 개수도 같이 삭제됩니다. 같은 type 트랙이 1개 남았을 때는 X가 disabled 됩니다 (복구 불가 방지).
LVM (Lock / Visible / Mute)
- 🔒 잠금: 클립 편집·드래그 차단
- 👁 표시: off 시 Preview/Export에서 제외
- 🔊 음소거: 트랙 전체 음량 0
마스터 볼륨
스피커 아이콘 + 흰색 슬라이더. 음량에 따라 wave 0~2개 표시. 평소 핸들이 숨김 → hover 시 둥근 흰 핸들 표시 (native video controls 패턴).
실제 재생 음량 = 클립 음량 × 트랙 마스터 볼륨
클립 편집
자동 배치
샷 리스트 / 자막 패널 우상단 자동 배치 버튼:
- 샷 리스트: 모든 샷의 영상이 시간 순서대로 비디오 트랙에 배치 (각 클립의 길이는 영상 duration)
- 자막: 시나리오 dialogue가 같은 샷의 영상 시간 위치로 정확히 매칭 (영상 없는 샷의 자막은 skip)
드래그 & 드롭
샷/자막을 트랙으로 드래그하여 개별 추가 가능.
Trim / Split / Move
- 클립 본체 드래그 → 이동 (스냅 적용)
- 좌우 가장자리 드래그 → trim (시작/끝 자르기)
Alt + 클릭→ 클릭 지점에서 split (분할)
Multi-select (다중 선택)
| 방법 | 동작 |
|---|---|
Ctrl/Cmd + 클릭 | 클립 토글 추가/제거 |
Shift + 클릭 | 범위 선택 |
| 빈 영역 드래그 (rubber band) | 사각형 안 클립 일괄 선택 |
Ctrl/Cmd + Shift + 드래그 | 기존 선택에 추가 |
복사 / 붙여넣기 / 삭제
Ctrl/Cmd + C— 선택 클립 복사Ctrl/Cmd + V— playhead 위치에 붙여넣기Delete또는Backspace— 선택 클립 삭제
생성 탭 (영상 재생성)
클립을 선택하면 우측 Properties Inspector의 생성 탭에서 Director 모듈로 가지 않고도 그 자리에서 영상을 다시 만들 수 있습니다. (디렉터 캔버스의 샷 노드 + Controller가 그대로 임베드되어 표시됩니다.)
- Prompting: AI가 부모 씬·앞뒤 샷·인물(나이 포함)·연출규칙을 종합해 T2V 프롬프트를 자동 작성합니다. 생성 중에는 버튼이 빨간 Stop으로 바뀌어 취소할 수 있습니다.
- T2V: 작성된 프롬프트로 Seedance(BytePlus) 영상을 생성해 클립에 자동 반영합니다. 인물 시트·장소·소품 레퍼런스가 함께 전달되어 캐릭터 일관성이 유지됩니다.
- Bridge: 같은 비디오 트랙에서 현재 클립의 앞·뒤 인접 클립 사이를 매끄럽게 잇는 보간 영상을 생성합니다. 앞 클립의 마지막 프레임 + 뒤 클립의 첫 프레임을 끝점으로 사용합니다.
샷 버전(Take)과 클립 복구
- 한 클립은 여러 take(영상 버전) 를 가질 수 있고, ◀▶ 토글로 전환합니다. take마다 길이·trim 상태가 따로 저장되어, 잘라둔 take로 돌아오면 그 길이가 그대로 복원됩니다.
- 속성 탭의 클립 복구(녹색) 버튼은 현재 take를 원본 길이로 되돌립니다(트림 초기화).
트랜지션
트랜지션 패널에서 두 인접 클립의 접합부로 드래그하여 적용.
| 카테고리 | 종류 | Preview |
|---|---|---|
| Basic | Fade / Cross Fade / Dip to Black | ✅ |
| Slide | Left / Right / Up / Down | ✅ |
| Zoom | In / Out | ✅ |
| Wipe | Left / Right | ✅ |
트랜지션 속성 (Properties)
트랜지션을 클릭 → 우측 Properties에서:
- Duration: 트랜지션 지속 시간 (초)
- Easing: linear / easeIn / easeOut / easeInOut
자막 편집
자동배치 시 기본 스타일(fontSize 18, 흰색, 검정 배경 45%, bottom)이 적용됩니다. Properties에서 클립별 변경:
- 위치: top / center / bottom
- fontSize: 10~80
- 색상 / 배경 색 / 배경 투명도
- 화자(speaker): 자막 위에 작게 표시
Preview & 재생
재생 컨트롤
| 키 | 동작 |
|---|---|
Space | 재생 / 일시정지 |
Home | 처음으로 이동 |
End | 마지막으로 이동 |
← / → | 1프레임 이동 |
Shift + ←/→ | 1초 이동 |
| 마우스 휠 | 가로 스크롤 |
Ctrl + 휠 | 줌 in/out |
Playhead
빨간 세로 선이 현재 시간을 표시합니다. 시간 ruler 클릭 또는 playhead 드래그로 이동.
Export
빠른 Export
Properties 하단 🎬 Export 버튼 → 백엔드 ffmpeg 합성 시작 → 진행률 모달 → 완료 시 ~/Downloads/plotnode_{프로젝트명}_{ts}.mp4 자동 저장 + 다운로드/재생 링크.
Export 옵션 (⚙)
Export 버튼 옆 ⚙ 옵션 버튼으로 설정 변경:
| 항목 | 옵션 |
|---|---|
| 해상도 | 4K (3840×2160) / Full HD (1920×1080) / HD (1280×720) / SD (640×360) / Custom |
| 프레임 레이트 | 24 / 30 / 60 fps |
| 품질 | 빠름(crf 28) / 표준(crf 23) / 고품질(crf 18) |
설정은 localStorage에 자동 저장되어 다음 export에 그대로 적용됩니다.
합성 처리 (백엔드 ffmpeg)
| 항목 | 처리 |
|---|---|
| 비디오 | 모든 visible video 트랙을 트랙별 xfade chain으로 합성 → background 위에 z-order overlay |
| 오디오 | 모든 visible audio (video 트랙 unmuted + audio 트랙)를 amix (트랙·클립 음량 곱 적용) |
| 트랜지션 | xfade 직접 매핑 (fade/slide/wipe) + Zoom은 zoompan으로 시간별 zoom 효과 |
| 자막 | 임시 ASS 파일 생성 → libass subtitles 필터로 burn-in (Noto Sans CJK KR) |
| 도형 | rect만 drawbox chain으로 (circle/line/arrow는 미지원) |
단축키 요약
| 키 | 동작 |
|---|---|
Space | 재생/정지 |
Ctrl/Cmd + Z / Ctrl/Cmd + Shift + Z | Undo / Redo |
Ctrl/Cmd + C / V | 복사 / 붙여넣기 |
Delete / Backspace | 선택 클립 삭제 |
Alt + 클립 클릭 | 클립 분할 |
Ctrl/Cmd + 클릭 | Multi-select 토글 |
Shift + 클릭 | 범위 선택 |
Ctrl + 휠 | 타임라인 줌 |
Home / End | 처음 / 끝 이동 |
← / → | 1프레임 이동 |
알려진 제한
- circle / line / arrow 도형은 Preview엔 표시되지만 export에 포함 X (rect만 burn-in)
- 트랙 단위 음량 자동화 (volume keyframe) 미지원 — 클립별/트랙별 단일 값
- 속도 조절 (variable speed) 미지원
- YouTube 직접 업로드 미구현 (계획)
- 음악 / 효과음 라이브러리 미제공 — 외부 오디오 파일 직접 추가
활용 흐름 예시
- 프로젝트 모듈에서 시나리오 작성 + 인물·장소 설정
- 디렉터 모듈에서 시나리오를 샷으로 분할 + 영상 생성
- 에디터 모듈로 전환 (사이드바가 샷 리스트로 자동 펼침)
- 샷 리스트 자동 배치 → 비디오 트랙에 모든 샷 영상 배치
- 자막 자동 배치 → 같은 샷의 dialogue가 자막으로 동기화
- Preview에서 흐름 확인 → 필요 시 클립 trim, 트랜지션 추가, 자막 위치/크기 수정
- 🎬 Export 버튼 → 단일 mp4가 다운로드 폴더에 저장
© Dreamers Inc. All rights reserved.
AI 설정
Plotnode는 외부 AI 서비스를 연동하여 텍스트 생성과 이미지 생성을 수행합니다. 사이드바의 설정 패널에서 구성합니다.
LLM (텍스트 생성) 설정

AI 텍스트 생성에 사용할 LLM API를 설정합니다.
지원 프로바이더
| 프로바이더 | 설명 |
|---|---|
| Ollama | 로컬 LLM 서버. 기본 주소 http://127.0.0.1:11434 |
| Anthropic | Claude API |
| OpenAI | GPT 시리즈 API (OpenAI 호환 서버 포함) |
| Gemini | Google Gemini API |
설정 항목
- API Provider: 위 프로바이더 중 선택
- API Endpoint: 서버 주소 (Ollama의 경우 로컬 주소)
- API Key: 프로바이더에서 발급받은 API 키 (Ollama는 불필요)
- 모델 선택: 사용할 모델명
- 번역 활성화: 한국어 프롬프트를 영어로 자동 번역 (이미지 생성 프롬프트용)
연결 테스트
설정 후 연결 테스트 버튼을 클릭하여 API 연결 상태를 확인합니다. 연결에 성공하면 ✓ 연결됨이 표시됩니다.
ComfyUI (이미지 생성) 설정

디렉터 모듈에서 컷 이미지를 생성하려면 ComfyUI 서버와 연동해야 합니다.
기본 설정
- ComfyUI Host: ComfyUI 서버 주소 (기본:
http://127.0.0.1:8188) - 워크플로우 등록: ComfyUI에서 내보낸 워크플로우 JSON 파일을 업로드합니다.
워크플로우 종류
- T2I (Text-to-Image): 텍스트 프롬프트로 이미지를 생성하는 워크플로우
- I2I (Image-to-Image): 기존 이미지를 기반으로 변형하는 워크플로우
이미지 생성 흐름
- 시나리오를 AI 플롯노드 변환하면 각 컷에 이미지 프롬프트가 자동 생성됩니다.
- 한국어 프롬프트는 번역 설정이 켜져 있으면 영어로 자동 번역됩니다.
- 프롬프트가 ComfyUI 워크플로우에 주입되어 이미지가 생성됩니다.
- 생성된 이미지는 컷 노드에 표시되고 갤러리에 추가됩니다.
ComfyUI 서버가 실행 중이어야 이미지를 생성할 수 있습니다. 서버가 꺼져 있으면 타임아웃 에러가 발생합니다.
BytePlus (Seedream / Seedance) 설정
ComfyUI 외에 BytePlus 클라우드 모델로 이미지·영상을 생성할 수 있습니다. 별도 서버 설치 없이 API 키만 등록하면 됩니다.
- Seedream: 콘티 모듈의 컷 이미지(T2I / I2I) 생성
- Seedance: 디렉터 모듈·에디터 생성 탭의 샷 영상(T2V / I2V), Bridge(보간) 생성
설정에서 BytePlus API 키를 입력하면 컷·샷 노드의 생성 제공자로 선택할 수 있습니다.
에이전트 채팅

사이드바의 채팅 패널에서 AI 에이전트와 대화하며 작업할 수 있습니다.
에이전트가 사용할 수 있는 도구:
- 노드 추가/수정/삭제
- 시놉시스, 트리트먼트, 세계관, 인물설정, 배경설정 조회·수정
- 시나리오 데이터 조회
- 프로젝트 저장·불러오기
- 앱 정보 조회
캐릭터 대사 도구 (v0.5.0~)
Character DNA v4 시스템과 함께 추가된 4가지 캐릭터 전용 도구:
| 도구 | 설명 |
|---|---|
speak_as_character | 특정 캐릭터의 DNA + 현재 Status로 그 캐릭터처럼 응답 생성 |
generate_multichar_dialogue | 시츄에이션/씬에 연결된 모든 캐릭터의 멀티 대화 시퀀스 생성 |
split_into_beats | 씬을 setup/rising/turning/climax/resolution 비트로 분할 |
transform_dialogue_tone | 캐릭터의 기존 대사를 현재 Status에 맞는 톤으로 재작성 |
각 도구는 캐릭터의 5층 DNA(영혼/육체/욕망/인격/현재상태)와 욕망 괴리, 결합기질을 종합해 캐릭터답고 일관된 응답을 생성합니다.
에이전트는 캔버스의 구조화된 데이터를 직접 읽고 수정하므로, 자연어로 요청하면 됩니다.
파일 형식과 단축키
파일 형식
프로젝트 파일
| 확장자 | 설명 |
|---|---|
.scn | Plotnode 프로젝트 파일. 노드, 연결, 시나리오, 설정 데이터를 JSON 형식으로 저장합니다. |
입력 파일
| 확장자 | 설명 |
|---|---|
.docx | 시나리오 업로드 — 서식 포함 텍스트를 자동 추출합니다. |
.pdf | 시나리오 업로드 — 텍스트를 추출합니다. |
내러티브 자산 파일
| 확장자 | 설명 |
|---|---|
.ton | 문체 프로필 — 문장 구조, 어휘, 리듬, 톤, 서술 관점을 수치화한 스타일 정의 |
내보내기
- 시나리오 내보내기 (
Ctrl+Shift+E): 시나리오 텍스트를 파일로 저장합니다. - 프로젝트 내보내기 (
Ctrl+E):.scn파일로 전체 프로젝트를 다운로드합니다.
키보드 단축키
파일
| 단축키 | 기능 |
|---|---|
Ctrl+N | 새 프로젝트 |
Ctrl+O | 열기 |
Ctrl+S | 저장 |
Ctrl+I | 불러오기 (Import) |
Ctrl+E | 내보내기 (Export) |
Ctrl+Shift+I | 시나리오 불러오기 |
Ctrl+Shift+E | 시나리오 내보내기 |
편집
| 단축키 | 기능 |
|---|---|
Ctrl+Z | 실행 취소 |
Ctrl+Shift+Z | 다시 실행 |
Ctrl+X | 잘라내기 |
Ctrl+C | 복사 |
Ctrl+V | 붙여넣기 |
Ctrl+A | 전체 선택 |
Del | 선택 노드 삭제 |
보기
| 단축키 | 기능 |
|---|---|
Ctrl++ | 확대 |
Ctrl+- | 축소 |
Ctrl+1 | 화면에 맞추기 |
Ctrl+0 | 뷰 초기화 |
기타
| 단축키 | 기능 |
|---|---|
Ctrl+마우스휠 | 줌 인/아웃 |
마우스 드래그 (빈 영역) | 캔버스 패닝 |