ulsanether/Novel-Writer-WPF

Ai 소설 생성 편집기

C#

0

41 commits

updated Aug 18, 2026

See the code

README

Novel Writer

프로젝트 개요

FocusWriter에서 영감을 받은, 소설 작가용 집중형 워드프로세서(Windows 데스크톱) 입니다. 단순 글쓰기 도구를 넘어, 로컬 AI(LLM)로 창작 전 과정을 돕는 것이 핵심입니다.

  • ✍️ 집중형 에디터 — 전체화면 집중 모드, 실시간 통계, 서식(굵게·색·하이라이트), Hunspell 한국어 맞춤법(붉은 물결선)
  • 🤖 텍스트 AI(LLM) — 오타·맞춤법 보정, AI 채팅, 문맥 검사, 스토리 설계 자동 생성(스토리 플래너), 참고자료 생성기 (로컬 Ollama, 오프라인)
  • 🎨 이미지 AI — 캐릭터·장면 삽화 생성(로컬 ComfyUI), 화풍 프리셋(실사/2D/지브리풍 등)
  • 📁 작품 중심 관리 — 소설 하나 = 폴더 하나 + .novel 파일 하나(원고·설계·설정·이미지 통합)

AI는 모두 로컬에서 동작합니다. 텍스트는 Ollama, 이미지는 ComfyUI로 각각 내 PC에서 돌아가며, 외부 서버로 원고가 전송되지 않습니다.





🤖 AI(LLM) 기능이란?

이 앱의 AI는 두 종류의 로컬 엔진을 사용합니다. 둘은 완전히 별개이며 각각 따로 설치·실행합니다.

엔진역할백엔드기본 포트
텍스트 LLM글쓰기·교정·설계·대화Ollama11434
이미지 생성캐릭터·장면 삽화ComfyUI8188

텍스트 LLM 기능 (Ollama)

  • 맞춤법 검사(오프라인) — Hunspell 한국어 사전이 1차로 붉은 물결선을 그리고 추천을 제시합니다. LLM 없이도 동작.
  • AI 오타 보정 — 현재 보이는 페이지의 오타를 LLM이 교정합니다.
  • AI 문맥 검사 — 문법·문맥상 어색한 부분을 파란 물결선으로 표시합니다.
  • AI 채팅(왼쪽 서랍) — 아이디어·설정·문장에 대해 질문/대답형으로 상의합니다.
  • 스토리 플래너 — 아래 「소설 작성 방식」 참고. Story Bible → 시놉시스 → 장 → 씬 → 본문을 각각 별도 AI 호출로 생성.
  • 참고자료 생성기 — 캐릭터·세계관·시놉시스·묘사 모음 등을 마크다운(.md) 으로 생성해 참고자료 폴더에 저장.
  • 원고 역분석 — 이미 쓴 원고를 거꾸로 분석해 설정·인물·시놉시스·구조를 자동 추출(장편은 요약 후 처리).

모델은 설정 창의 AI 모델(편집형 ComboBox) 에서 고릅니다. 한글 특화(EXAONE/Kanana), 창작 특화(Magnum), 무검열 등 배지로 구분되며, 설치된 모델도 함께 표시됩니다. 모델별 사양은 아래 표 참고.

이미지 생성 기능 (ComfyUI)

  • 캐릭터 레퍼런스 — 인물의 외형 프롬프트(AppearancePrompt)를 만들어 저장하고, 씬 삽화에 그 인물 외형을 자동 반영해 일관성을 유지합니다.
  • 씬 삽화 — 장면 설명을 바탕으로 삽화를 생성합니다.
  • 화풍(스타일) 프리셋 — 실사 / 2D 애니 / 수채화 / 유화 / 만화 / 지브리풍 / 웹툰풍 등 + 품질·조명·색감 세부 설정. 프리셋마다 추천 해상도·스텝이 연동됩니다.
  • 초보자용 자동 설치 — 이미지 서버 설정 창에서 ComfyUI(포터블) 자동 설치 → 모델(.safetensors) 자동 다운로드까지 버튼으로. 모델이 없으면 생성 시 자동으로 받아 연결합니다.

✍️ 소설 작성 방식 (워크플로우)

1) 작품 만들기 — .novel 프로젝트

상단 작품 → 새 작품으로 위치와 제목을 정하면, 작품명 폴더 + 유형별 하위폴더(Characters/Illustrations/Backgrounds/…) + 제목.novel 이 생성됩니다. .novel 파일 하나에 원고 · 스토리 설계 · AI 설정 · 이미지 설정이 통합 저장되고, 이미지·참고자료는 폴더에 함께 보관됩니다. (닫기 전 저장 안 된 변경이 있으면 저장 여부를 물어봅니다.)

2) 스토리를 위에서 아래로 설계 (스토리 플래너)

소설을 한 번에 뽑지 않고 계층적으로, 각 단계를 별도 AI 호출로 만듭니다 — 로컬 7B 모델도 감당할 수 있게 컨텍스트를 최소화합니다.

작품 설정(장르·시대·세계관·결말) + 등장인물
        └─▶ Story Bible
              └─▶ 전체 시놉시스 (큰 사건 위주, 본문 X)
                    └─▶ 장(Chapter) 목록
                          └─▶ 씬(Scene) 목록
                                └─▶ 씬 본문 (대사 비율 슬라이더로 문체 조절)
                                      └─▶ "에디터에 삽입" → 원고로
  • 대사 비율 슬라이더(0=묘사만 ~ 100=대사만)로 문체를 조절합니다.
  • 상세 작성은 씬을 4~6개 비트로 나눠 각 비트를 여러 문단으로 이어 붙여 긴 본문을 만듭니다.
  • 일관성 검사로 설정 충돌을 경고합니다.

3) 참고자료로 디테일 쌓기

참고자료 생성기로 캐릭터/세계관/묘사 모음을 .md로 만들어 폴더에 저장하고, 스토리 플래너에서 불러와 생성 프롬프트에 반영합니다. 캐릭터는 0000_이름_나이_직업.md 형태로 넘버링 저장됩니다.

4) 삽화 생성 & 본문 삽입

캐릭터·씬 삽화를 생성하고 「본문에 삽입」 을 누르면 원고 커서 위치에 이미지가 들어갑니다. 이미지는 원고에 토큰(⟦IMG:경로⟧)으로 저장되어 프로젝트를 다시 열어도 유지됩니다.

5) 저장 형식

  • 작품 저장: .novel(JSON) — 통합 저장, 재편집용.
  • 다른 이름으로 저장 / 내보내기: .txt · .md(평문) · .docx(서식 포함: 굵게·기울임·밑줄·글자색·크기·하이라이트). 편집기 표시 크기와 무관하게 DOCX는 11pt 기준으로 저장됩니다.

기술 요구사항

  • 프레임워크: WPF (Windows Presentation Foundation), .NET 8 (net8.0-windows)
  • 아키텍처 패턴: MVVM (Model-View-ViewModel)
  • 라이브러리:
    • CommunityToolkit.Mvvm (MVVM 패턴)
    • MaterialDesignThemes (UI)
    • DocumentFormat.OpenXml (DOCX 처리)
    • System.Data.SQLite (로컬 데이터베이스)
    • WeCantSpell.Hunspell (한국어 맞춤법)
  • 언어: C#
  • 플랫폼: Windows 데스크톱

시스템 요구사항 (설치 · 실행)

기본 (AI 없이 사용)

맞춤법 검사(Hunspell)·집중 모드·통계·DOCX 저장 등 기본 기능은 오프라인으로 동작합니다.

항목최소권장
OSWindows 10 (64-bit)Windows 11 (64-bit)
런타임.NET 8 데스크톱 런타임최신 .NET 8
RAM8GB16GB
저장공간500MB (앱 + 사전)1GB 이상

AI 기능 사용 시 — Ollama + 로컬 LLM (선택)

AI 채팅·문맥 검사·스토리 플래너·참고자료 생성은 로컬 LLM을 사용합니다. Ollama를 설치하고 모델을 받아야 합니다.

  1. Ollama 설치: https://ollama.com/download (Windows용 설치)
  2. 앱의 설정 → AI 모델에서 모델을 고르고 저장하면 자동으로 다운로드 안내가 뜹니다. (또는 터미널에서 ollama pull <모델명>)
  3. Ollama가 실행 중이어야 AI 기능이 동작합니다.

메모리 규칙: 로컬 LLM은 모델 전체가 RAM(CPU 추론) 또는 VRAM(GPU 가속) 에 올라가야 합니다. GPU가 없으면 RAM으로 CPU 추론이 가능하지만 속도가 느립니다. 아래 값은 4bit 양자화 기준이며, 실사용 시 컨텍스트 버퍼로 2~4GB 여유가 더 필요합니다.

LLM 모델별 최소 사양

모델 (Ollama 태그)다운로드최소 RAM (CPU 추론)권장 VRAM (GPU)특징
exaone3.5:2.4b~1.6GB8GB4GB한글 특화 · 가장 가벼움
exaone3.5:7.8b~4.8GB16GB8GB한글 특화 · 권장 기본
exaone3.5:32b~19GB32GB+24GB (RTX 4090급)한글 특화 · 최고 품질
qwen2.5:7b~4.7GB16GB8GB다국어 · 상업 허용
qwen2.5:14b~9GB24GB12GB다국어 · 고품질
gemma2:9b~5.4GB16GB8GB범용
llama3.1:8b~4.9GB16GB8GB범용
fluffy/magnum-v4-9b~5.5GB16GB8GB노벨(창작) 특화
dolphin3 (8B)~4.9GB16GB8GB무검열 창작
mannix/llama3.1-8b-abliterated~4.9GB16GB8GB무검열 창작
  • 가벼운 PC / 노트북(내장 그래픽): exaone3.5:2.4b 권장 (오타·간단 생성엔 충분).
  • 일반 데스크톱(RAM 16GB, VRAM 8GB): exaone3.5:7.8b 또는 magnum-v4-9b 권장.
  • 고사양(VRAM 24GB+): exaone3.5:32b, qwen2.5:14b로 품질 극대화.
  • EXAONE 3.5는 비상업(연구·개인용) 라이선스입니다. 상업 배포 시에는 Qwen2.5·Gemma 등 상업 허용 모델을 사용하세요.

주요 기능

  1. 집중 모드(F11): 전체화면, 메뉴/UI 자동 숨김 (마우스 이동 시 표시)
  2. 에디터: RichTextBox 기반, 글꼴·크기·색·하이라이트·굵게/기울임/밑줄 서식
  3. 통계: 단어수·문자수·페이지수·단락수·문장수 실시간
  4. 저장: .novel 작품 프로젝트(통합) + SQLite 자동 저장·백업, txt/md/docx 내보내기
  5. 테마: 다크/라이트/커스텀(배경 이미지·색·폰트까지)
  6. 다국어: 한글·영어
  7. 일일 목표: 단어수 목표·진행률
  8. 맞춤법: Hunspell 한국어 사전(오프라인) + AI 문맥 검사
  9. AI 텍스트: 오타 보정, 채팅, 스토리 플래너, 참고자료 생성기, 원고 역분석
  10. AI 이미지: 캐릭터·씬 삽화 생성, 화풍 프리셋, 본문 삽입

코드 스타일 요구사항

  • CommunityToolkit.Mvvm의 ObservableObject, RelayCommand 사용
  • partial 클래스 + [ObservableProperty] 속성 사용
  • 비동기 작업은 async/await 사용 (라이브러리 코드는 ConfigureAwait(false))
  • XML 문서 주석 추가 (요약, 파라미터, 반환값)
  • 한글 주석 사용
  • 인덴트: 4칸 (탭 사용 금지)

📄 오픈소스 라이센스

이 프로젝트는 다음의 오픈소스 라이브러리 및 리소스를 사용합니다:

프로젝트 라이선스

  • Novel Writer — MIT License

주요 의존성

라이브러리버전라이선스용도
CommunityToolkit.Mvvm8.4.0MITMVVM 패턴 구현
MaterialDesignThemes5.2.1MITMaterial Design UI
MaterialDesignColors5.2.1MITMaterial Design 색상
DocumentFormat.OpenXml3.3.0MITDOCX 파일 처리
System.Data.SQLite.Core1.0.119Public Domain로컬 데이터베이스
WeCantSpell.Hunspell7.0.1MITHunspell 맞춤법 검사 엔진

한국어 맞춤법 사전

  • hunspell-dict-ko (한국어 Hunspell 사전) — GPL-3.0 (combined work)
    • 소스 코드 및 단어 데이터는 MPL-1.1/GPL-2.0/LGPL-2.1 트라이 라이선스 또는 CC-BY-SA-4.0 / CC-BY-SA-2.0-KR / CC-BY-4.0으로 분배됩니다.
    • 빌드된 파일(ko.aff, ko.dic)은 GPL-3.0으로 통합 라이선스되며, 이는 본 애플리케이션과 분리된 저작물로 간주되므로 호환성 문제가 없습니다.
    • 자세한 내용은 NovelWriter.Wpf/Dictionaries/LICENSE-hunspell-dict-ko.md 참고

외부 서비스/의존 소프트웨어

본 애플리케이션의 AI 기능은 다음의 로컬 오픈소스 소프트웨어와 함께 사용되며, 별도 설치·라이선스가 필요합니다:

소프트웨어라이선스역할
OllamaMIT텍스트 LLM 런타임
ComfyUIGPL-3.0이미지 생성 (Stable Diffusion)

라이선스 준수

이 프로젝트는 모든 오픈소스 라이선스 요구사항을 준수합니다:

  • GPL-3.0: hunspell-dict-ko 사전은 GPL-3.0으로 라이선스되지만, 실행 파일과 Hunspell 사전은 분리된 저작물로 간주되어 라이선스 호환성 문제가 없습니다. (출처: https://lwn.net/Articles/481386/)
  • MIT: 대부분의 NuGet 패키지는 MIT 라이선스이며 상업 사용이 가능합니다.
  • Public Domain: System.Data.SQLite.Core는 Public Domain입니다.

기여

이 프로젝트에 기여하실 경우, 추가하는 코드 및 의존성이 위의 라이선스 정책과 호환되도록 해주세요.

ulsanether/Novel-Writer-WPF

Ai 소설 생성 편집기

C#

0

41 commits

updated Aug 18, 2026

See the code

README

Novel Writer

프로젝트 개요

FocusWriter에서 영감을 받은, 소설 작가용 집중형 워드프로세서(Windows 데스크톱) 입니다. 단순 글쓰기 도구를 넘어, 로컬 AI(LLM)로 창작 전 과정을 돕는 것이 핵심입니다.

  • ✍️ 집중형 에디터 — 전체화면 집중 모드, 실시간 통계, 서식(굵게·색·하이라이트), Hunspell 한국어 맞춤법(붉은 물결선)
  • 🤖 텍스트 AI(LLM) — 오타·맞춤법 보정, AI 채팅, 문맥 검사, 스토리 설계 자동 생성(스토리 플래너), 참고자료 생성기 (로컬 Ollama, 오프라인)
  • 🎨 이미지 AI — 캐릭터·장면 삽화 생성(로컬 ComfyUI), 화풍 프리셋(실사/2D/지브리풍 등)
  • 📁 작품 중심 관리 — 소설 하나 = 폴더 하나 + .novel 파일 하나(원고·설계·설정·이미지 통합)

AI는 모두 로컬에서 동작합니다. 텍스트는 Ollama, 이미지는 ComfyUI로 각각 내 PC에서 돌아가며, 외부 서버로 원고가 전송되지 않습니다.





🤖 AI(LLM) 기능이란?

이 앱의 AI는 두 종류의 로컬 엔진을 사용합니다. 둘은 완전히 별개이며 각각 따로 설치·실행합니다.

엔진역할백엔드기본 포트
텍스트 LLM글쓰기·교정·설계·대화Ollama11434
이미지 생성캐릭터·장면 삽화ComfyUI8188

텍스트 LLM 기능 (Ollama)

  • 맞춤법 검사(오프라인) — Hunspell 한국어 사전이 1차로 붉은 물결선을 그리고 추천을 제시합니다. LLM 없이도 동작.
  • AI 오타 보정 — 현재 보이는 페이지의 오타를 LLM이 교정합니다.
  • AI 문맥 검사 — 문법·문맥상 어색한 부분을 파란 물결선으로 표시합니다.
  • AI 채팅(왼쪽 서랍) — 아이디어·설정·문장에 대해 질문/대답형으로 상의합니다.
  • 스토리 플래너 — 아래 「소설 작성 방식」 참고. Story Bible → 시놉시스 → 장 → 씬 → 본문을 각각 별도 AI 호출로 생성.
  • 참고자료 생성기 — 캐릭터·세계관·시놉시스·묘사 모음 등을 마크다운(.md) 으로 생성해 참고자료 폴더에 저장.
  • 원고 역분석 — 이미 쓴 원고를 거꾸로 분석해 설정·인물·시놉시스·구조를 자동 추출(장편은 요약 후 처리).

모델은 설정 창의 AI 모델(편집형 ComboBox) 에서 고릅니다. 한글 특화(EXAONE/Kanana), 창작 특화(Magnum), 무검열 등 배지로 구분되며, 설치된 모델도 함께 표시됩니다. 모델별 사양은 아래 표 참고.

이미지 생성 기능 (ComfyUI)

  • 캐릭터 레퍼런스 — 인물의 외형 프롬프트(AppearancePrompt)를 만들어 저장하고, 씬 삽화에 그 인물 외형을 자동 반영해 일관성을 유지합니다.
  • 씬 삽화 — 장면 설명을 바탕으로 삽화를 생성합니다.
  • 화풍(스타일) 프리셋 — 실사 / 2D 애니 / 수채화 / 유화 / 만화 / 지브리풍 / 웹툰풍 등 + 품질·조명·색감 세부 설정. 프리셋마다 추천 해상도·스텝이 연동됩니다.
  • 초보자용 자동 설치 — 이미지 서버 설정 창에서 ComfyUI(포터블) 자동 설치 → 모델(.safetensors) 자동 다운로드까지 버튼으로. 모델이 없으면 생성 시 자동으로 받아 연결합니다.

✍️ 소설 작성 방식 (워크플로우)

1) 작품 만들기 — .novel 프로젝트

상단 작품 → 새 작품으로 위치와 제목을 정하면, 작품명 폴더 + 유형별 하위폴더(Characters/Illustrations/Backgrounds/…) + 제목.novel 이 생성됩니다. .novel 파일 하나에 원고 · 스토리 설계 · AI 설정 · 이미지 설정이 통합 저장되고, 이미지·참고자료는 폴더에 함께 보관됩니다. (닫기 전 저장 안 된 변경이 있으면 저장 여부를 물어봅니다.)

2) 스토리를 위에서 아래로 설계 (스토리 플래너)

소설을 한 번에 뽑지 않고 계층적으로, 각 단계를 별도 AI 호출로 만듭니다 — 로컬 7B 모델도 감당할 수 있게 컨텍스트를 최소화합니다.

작품 설정(장르·시대·세계관·결말) + 등장인물
        └─▶ Story Bible
              └─▶ 전체 시놉시스 (큰 사건 위주, 본문 X)
                    └─▶ 장(Chapter) 목록
                          └─▶ 씬(Scene) 목록
                                └─▶ 씬 본문 (대사 비율 슬라이더로 문체 조절)
                                      └─▶ "에디터에 삽입" → 원고로
  • 대사 비율 슬라이더(0=묘사만 ~ 100=대사만)로 문체를 조절합니다.
  • 상세 작성은 씬을 4~6개 비트로 나눠 각 비트를 여러 문단으로 이어 붙여 긴 본문을 만듭니다.
  • 일관성 검사로 설정 충돌을 경고합니다.

3) 참고자료로 디테일 쌓기

참고자료 생성기로 캐릭터/세계관/묘사 모음을 .md로 만들어 폴더에 저장하고, 스토리 플래너에서 불러와 생성 프롬프트에 반영합니다. 캐릭터는 0000_이름_나이_직업.md 형태로 넘버링 저장됩니다.

4) 삽화 생성 & 본문 삽입

캐릭터·씬 삽화를 생성하고 「본문에 삽입」 을 누르면 원고 커서 위치에 이미지가 들어갑니다. 이미지는 원고에 토큰(⟦IMG:경로⟧)으로 저장되어 프로젝트를 다시 열어도 유지됩니다.

5) 저장 형식

  • 작품 저장: .novel(JSON) — 통합 저장, 재편집용.
  • 다른 이름으로 저장 / 내보내기: .txt · .md(평문) · .docx(서식 포함: 굵게·기울임·밑줄·글자색·크기·하이라이트). 편집기 표시 크기와 무관하게 DOCX는 11pt 기준으로 저장됩니다.

기술 요구사항

  • 프레임워크: WPF (Windows Presentation Foundation), .NET 8 (net8.0-windows)
  • 아키텍처 패턴: MVVM (Model-View-ViewModel)
  • 라이브러리:
    • CommunityToolkit.Mvvm (MVVM 패턴)
    • MaterialDesignThemes (UI)
    • DocumentFormat.OpenXml (DOCX 처리)
    • System.Data.SQLite (로컬 데이터베이스)
    • WeCantSpell.Hunspell (한국어 맞춤법)
  • 언어: C#
  • 플랫폼: Windows 데스크톱

시스템 요구사항 (설치 · 실행)

기본 (AI 없이 사용)

맞춤법 검사(Hunspell)·집중 모드·통계·DOCX 저장 등 기본 기능은 오프라인으로 동작합니다.

항목최소권장
OSWindows 10 (64-bit)Windows 11 (64-bit)
런타임.NET 8 데스크톱 런타임최신 .NET 8
RAM8GB16GB
저장공간500MB (앱 + 사전)1GB 이상

AI 기능 사용 시 — Ollama + 로컬 LLM (선택)

AI 채팅·문맥 검사·스토리 플래너·참고자료 생성은 로컬 LLM을 사용합니다. Ollama를 설치하고 모델을 받아야 합니다.

  1. Ollama 설치: https://ollama.com/download (Windows용 설치)
  2. 앱의 설정 → AI 모델에서 모델을 고르고 저장하면 자동으로 다운로드 안내가 뜹니다. (또는 터미널에서 ollama pull <모델명>)
  3. Ollama가 실행 중이어야 AI 기능이 동작합니다.

메모리 규칙: 로컬 LLM은 모델 전체가 RAM(CPU 추론) 또는 VRAM(GPU 가속) 에 올라가야 합니다. GPU가 없으면 RAM으로 CPU 추론이 가능하지만 속도가 느립니다. 아래 값은 4bit 양자화 기준이며, 실사용 시 컨텍스트 버퍼로 2~4GB 여유가 더 필요합니다.

LLM 모델별 최소 사양

모델 (Ollama 태그)다운로드최소 RAM (CPU 추론)권장 VRAM (GPU)특징
exaone3.5:2.4b~1.6GB8GB4GB한글 특화 · 가장 가벼움
exaone3.5:7.8b~4.8GB16GB8GB한글 특화 · 권장 기본
exaone3.5:32b~19GB32GB+24GB (RTX 4090급)한글 특화 · 최고 품질
qwen2.5:7b~4.7GB16GB8GB다국어 · 상업 허용
qwen2.5:14b~9GB24GB12GB다국어 · 고품질
gemma2:9b~5.4GB16GB8GB범용
llama3.1:8b~4.9GB16GB8GB범용
fluffy/magnum-v4-9b~5.5GB16GB8GB노벨(창작) 특화
dolphin3 (8B)~4.9GB16GB8GB무검열 창작
mannix/llama3.1-8b-abliterated~4.9GB16GB8GB무검열 창작
  • 가벼운 PC / 노트북(내장 그래픽): exaone3.5:2.4b 권장 (오타·간단 생성엔 충분).
  • 일반 데스크톱(RAM 16GB, VRAM 8GB): exaone3.5:7.8b 또는 magnum-v4-9b 권장.
  • 고사양(VRAM 24GB+): exaone3.5:32b, qwen2.5:14b로 품질 극대화.
  • EXAONE 3.5는 비상업(연구·개인용) 라이선스입니다. 상업 배포 시에는 Qwen2.5·Gemma 등 상업 허용 모델을 사용하세요.

주요 기능

  1. 집중 모드(F11): 전체화면, 메뉴/UI 자동 숨김 (마우스 이동 시 표시)
  2. 에디터: RichTextBox 기반, 글꼴·크기·색·하이라이트·굵게/기울임/밑줄 서식
  3. 통계: 단어수·문자수·페이지수·단락수·문장수 실시간
  4. 저장: .novel 작품 프로젝트(통합) + SQLite 자동 저장·백업, txt/md/docx 내보내기
  5. 테마: 다크/라이트/커스텀(배경 이미지·색·폰트까지)
  6. 다국어: 한글·영어
  7. 일일 목표: 단어수 목표·진행률
  8. 맞춤법: Hunspell 한국어 사전(오프라인) + AI 문맥 검사
  9. AI 텍스트: 오타 보정, 채팅, 스토리 플래너, 참고자료 생성기, 원고 역분석
  10. AI 이미지: 캐릭터·씬 삽화 생성, 화풍 프리셋, 본문 삽입

코드 스타일 요구사항

  • CommunityToolkit.Mvvm의 ObservableObject, RelayCommand 사용
  • partial 클래스 + [ObservableProperty] 속성 사용
  • 비동기 작업은 async/await 사용 (라이브러리 코드는 ConfigureAwait(false))
  • XML 문서 주석 추가 (요약, 파라미터, 반환값)
  • 한글 주석 사용
  • 인덴트: 4칸 (탭 사용 금지)

📄 오픈소스 라이센스

이 프로젝트는 다음의 오픈소스 라이브러리 및 리소스를 사용합니다:

프로젝트 라이선스

  • Novel Writer — MIT License

주요 의존성

라이브러리버전라이선스용도
CommunityToolkit.Mvvm8.4.0MITMVVM 패턴 구현
MaterialDesignThemes5.2.1MITMaterial Design UI
MaterialDesignColors5.2.1MITMaterial Design 색상
DocumentFormat.OpenXml3.3.0MITDOCX 파일 처리
System.Data.SQLite.Core1.0.119Public Domain로컬 데이터베이스
WeCantSpell.Hunspell7.0.1MITHunspell 맞춤법 검사 엔진

한국어 맞춤법 사전

  • hunspell-dict-ko (한국어 Hunspell 사전) — GPL-3.0 (combined work)
    • 소스 코드 및 단어 데이터는 MPL-1.1/GPL-2.0/LGPL-2.1 트라이 라이선스 또는 CC-BY-SA-4.0 / CC-BY-SA-2.0-KR / CC-BY-4.0으로 분배됩니다.
    • 빌드된 파일(ko.aff, ko.dic)은 GPL-3.0으로 통합 라이선스되며, 이는 본 애플리케이션과 분리된 저작물로 간주되므로 호환성 문제가 없습니다.
    • 자세한 내용은 NovelWriter.Wpf/Dictionaries/LICENSE-hunspell-dict-ko.md 참고

외부 서비스/의존 소프트웨어

본 애플리케이션의 AI 기능은 다음의 로컬 오픈소스 소프트웨어와 함께 사용되며, 별도 설치·라이선스가 필요합니다:

소프트웨어라이선스역할
OllamaMIT텍스트 LLM 런타임
ComfyUIGPL-3.0이미지 생성 (Stable Diffusion)

라이선스 준수

이 프로젝트는 모든 오픈소스 라이선스 요구사항을 준수합니다:

  • GPL-3.0: hunspell-dict-ko 사전은 GPL-3.0으로 라이선스되지만, 실행 파일과 Hunspell 사전은 분리된 저작물로 간주되어 라이선스 호환성 문제가 없습니다. (출처: https://lwn.net/Articles/481386/)
  • MIT: 대부분의 NuGet 패키지는 MIT 라이선스이며 상업 사용이 가능합니다.
  • Public Domain: System.Data.SQLite.Core는 Public Domain입니다.

기여

이 프로젝트에 기여하실 경우, 추가하는 코드 및 의존성이 위의 라이선스 정책과 호환되도록 해주세요.