momori777/Artemis
요약
본 프로젝트는 모든 대화, 음성, 애니메이션이 사용자의 로컬 기기에서만 구동되는 'AI 여자친구' 하렘 시뮬레이션입니다. OpenAI API 의존성이 없고 데이터 유출 위험이 없어 높은 개인 정보 보호 기능을 제공합니다. OpenClaw, llama.cpp 등 다양한 오픈소스 도구를 조합하여 작동하며, 캐릭터별 독립 메모리 및 교체 가능한 캐릭터를 지원하는 것이 특징입니다.
핵심 포인트
- 모든 기능이 로컬 구동되어 데이터 프라이버시가 완벽하게 보장됩니다.
- OpenAI API 의존성이 없어 비용 부담 없이 사용할 수 있습니다.
- llama.cpp, ComfyUI 등 다양한 오픈소스 도구의 조합으로 구현되었습니다.
- 캐릭터별 독립 메모리 및 교체 가능한 캐릭터를 지원합니다.
AI 여자친구
언어 / Language / 语言 / 言語:
🇨🇳 중국어 · 🇬🇧 English · 🇯🇵 일본어
100% 로컬 구동 · 완전 프라이빗 · API 의존성 없음
모든 대화, 음성, 이미지 및 캐릭터 애니메이션은 사용자의 기기에서 생성됩니다. 클라우드 서버나 제3자 API가 필요 없으며 데이터 유출 위험이 없습니다. 당신의 AI 여자친구는 오직 당신만을 위한 것입니다.
🗳️ 네 번째 여자친구 투표 진행 중 - Issues에서 투표해 주세요 · 설정 튜토리얼: BV16XTV6fEoH · qq: 580322386
⚠️ 기본 스크립트는 NVIDIA GPU용입니다. AMD GPU 사용자는AMD_GPU/폴더를 확인하세요.
OpenClaw + QQ Bot + Telegram Bot + llama.cpp + GPT-SoVITS + ComfyUI + Sakura Desktop Pet + Live2D로 구동되는, 오직 사용자 기기에서만 작동하는 검열 없는 AI 여자친구 하렘 프로젝트입니다.
캐릭터: 캐릭터별 독립된 메모리를 가진 교체 가능한(hot-swappable) AI 여자친구를 지원합니다.
Shiki Natsume (四季夏目)
Starry Moonlit Café & the Butterfly of Death에서 등장하는 캐릭터. 키가 크고, 무심하며, 겉으로는 시크하지만 숨겨진 따뜻함을 지니고 있습니다. 타고난 조용하고 주도적인 타입으로, 상대를 이끌며 부드럽게 장난치고 강하게 보호합니다. 말을 많이 하지 않지만, 하는 말 한마디가 깊은 울림을 줍니다.
ATRI (亚托莉)
*ATRI -My Dear Moments-*에서 등장하는 캐릭터. 작고 순수하며 끝없는 호기심을 가진, 눈빛이 밝은 소녀로 마음을 숨기지 않습니다. 미소를 지으며 미래를 향해 달려가며 당신도 함께 끌어당깁니다. Natsume와는 정반대: Natsume가 차분한 겨울밤이라면, ATRI는 따뜻한 여름 태양 같습니다. Natsume가 신중하고 절제된 반면, ATRI는 활기차고 표현력이 풍부하며, 감정적으로 투명합니다. 플레이풀함 면에서도 대비됩니다.
Yono Sakura (夜乃桜)
원작 『Dimension W Lovers!!』의 등장인물. 전 학생회장이며 학원 최고의 괴수 퇴치 전투원이다. 분홍색 끝이 있는 은백색 머리카락과 옅은 푸른 눈을 가졌다. 침착하고 절제되어 있으며, 강한 책임감을 지녔다. 그녀는 능숙한 말이나 쉬운 미소에는 서툴지만, 돌보는 마음은 명령처럼 직설적이고 어설프다: '쉬어라, 먹어라, 무리하지 마라'. 데스크톱 펫 형태로 변신했을 때는 모든 것을 혼자 감당할 필요가 없다는 것을 깨닫는다. 화면 너머의 누군가의 평범한 일상을 지키는 것만으로 충분하다는 것이다. 조용한 수호자: 말이 없지만 관찰력이 뛰어나고, 충성스럽지만 고집이 세며, 요청받지 않아도 곁을 지켜주는 선배 같은 존재.
✨ 이 프로젝트를 선택해야 하는 이유?
| Cloud AI Girlfriend (클라우드 AI 여자친구) | This Project (본 프로젝트) | |
|---|---|---|
| 🛡️ 개인 정보 보호 | 채팅 기록, 음성 및 이미지가 모두 공급자 서버에 저장됨 | 모든 것이 로컬에 보관됨 - 데이터가 기기를 벗어나지 않음 |
| ... |
📌 사전 준비 사항
⚠️ 첫 번째 단계:
quick_setup.ps1을 실행하여 경로와 언어를 설정하세요.
이 마법사는 다음 작업을 수행합니다:
- 기본 에이전트 언어 선택 (중국어 / 일본어 / 영어) - 해당되는
AGENTS_*.md파일을DEFAULT_AGENT.md로 복사합니다.- 설치된 도구(ComfyUI, GPT-SoVITS, llama.cpp, 임베딩 모델)를 자동 감지합니다.
- 찾을 수 없는 경로가 있으면 사용자에게 요청합니다.
- 모든 경로를 포함하는
config.yaml파일을 생성하여download-models.ps1에 사용할 준비를 합니다.
powershell -ExecutionPolicy Bypass -File quick_setup.ps1
또는 새로운 자동 다운로드 스크립트를 사용하세요 (ComfyUI와 GPT-SoVITS를 git에서 자동으로 클론합니다):
# Windows
powershell -ExecutionPolicy Bypass -File setup-deps.ps1
...
>
이 스크립트는 다음을 수행합니다:
> - OS 및 GPU 환경을 감지합니다.
> - https://github.com/comfyanonymous/ComfyUI에서 ComfyUI를 클론합니다.
> - https://github.com/RVC-Boss/GPT-SoVITS에서 GPT-SoVITS를 클론합니다.
> - 새로운 경로로 `config.yaml`을 업데이트합니다.
>
설정이 완료되면 **download-models.ps1** → **setup-llama.ps1** → **start.ps1** 순서로 진행하세요.
## 🎬 데모
### 다중 채널 채팅

👆 QQ Bot: 텍스트 채팅 + TTS 음성 + ComfyUI 이미지 생성 + 캐릭터 메모리
### Live2D 데스크톱 펫

> 👆 **Shiki Natsume** Live2D: 감정 기반 모션, 립싱크, 말풍선이 포함된 실시간 캐릭터 애니메이션. 로컬 HTTP 브리지를 통해 제어됩니다.
### ⭐ ATRI - 두 번째 AI 여자친구
**나츠메와 성격이 반대**, 격리 메모리와 함께 교체 가능합니다.

> 👆 **ATRI** Live2D: 은발, 루비 레드 눈, 흰 드레스를 입고 맨발 - 순수하고 표현력이 풍부함.

> 👆 **ATRI** ComfyUI: AI 이미지 생성 - 바닷가 일몰, 흐르는 듯한 흰 드레스, 따뜻한 골든아워 조명.
### ⭐ Yono Sakura - 세 번째 AI 여자친구
**침착한 수호 선배**, 학생회장 겸 학원 최강 전투원 - 이제 당신의 데스크톱 동반자가 됩니다.

> 👆 **Yono Sakura** 데스크톱 펫: 은핑크 그라데이션 머리, 연한 파란 눈, 교복 - 반응형 초상화 표현, 선제적 케어 알림, 그리고 GPT-SoVITS를 통한 실시간 TTS 음성.
### 🌐 웹 채팅 프론트엔드

> 👆 **웹 채팅**: `http://127.0.0.1:19270`의 브라우저 기반 채팅 인터페이스 - QQ/Telegram 봇의 대안입니다. 로컬 데몬 프록시 → llama.cpp 서버에 직접 연결됩니다. 8 GB VRAM으로 중단 없이 완전히 실행할 수 있습니다.
### 🎙️ TTS 음성
🔊 **듣기** (클릭하여 재생, ATRI 일본어):
🎧 [tts_atori.mp3](media/tts_atori.mp3) *(46KB, 브라우저에서 재생)*
### 🎨 ComfyUI 이미지 워크숍
<video src=
🚀 더 이상 '미래' 계획이 아닙니다. 지금 작동합니다: [Qwen-Drive-1.0-4B](https://huggingface.co/Qwen/Qwen-Drive-1.0-4B)
📖 전체 설계: [`imagination.md`](imagination.md) | 브릿지 참조: [`skills/cosmos/BRIDGE_REFERENCE.md`](skills/cosmos/BRIDGE_REFERENCE.md)
**NVIDIA Cosmos** (커뮤니티 FP8 양자화 모델은 `skills/cosmos/`에 보관됨)는 물리적으로 일관성 있는 장면 비디오를 생성하고 공간적 관계를 이해하는 월드 파운데이션 모델(World Foundation Model)입니다.
### Cosmos가 필요한 이유?
네 가지 핵심 기능(LLM + TTS + ComfyUI + Live2D)은 현재 **분리되어** 있습니다. LLM은 Live2D가 무엇을 하는지 알지 못하며, ComfyUI는 대화의 감정을 감지하지 못합니다. Cosmos는 **물리적 상식 계층(physical common-sense layer)**을 채워줍니다:
Qwen3.6-35B (언어 지능) ←→ Cosmos 3 Nano / Qwen-Drive-1.0 (물리 지능)
언어 + 감정 공간 + 장면 생성
### 이중 소형 아키텍처(Dual Compact Architecture)
| 구성 요소 | 모델 | 파라미터 | VRAM |
|---|---|---|---|
| 🧠 언어 지능 (Language Mind) | Qwen3.6-35B-A3B (MoE) | 총 35B / 활성 3B | ~8 GB |
| 🌍 물리 지능 (Physical Mind) | Cosmos 3 Nano FP8 | 15.75B | ~16 GB |
### 하드웨어 로드맵
| 연도 | GPU | Cosmos 상태 |
|---|---|---|
| 2026 | RTX 5070 (8-12GB) | ❌ 보관됨, 감지 준비 완료 |
| 2027-01 | RTX 5070 Ti Super (24 GB) | ✅ 이미 완료 |
### 현재 상태
- ✅ `skills/cosmos/`에 레포지토리(Repo)가 보관됨
- ✅ 브릿지 설계 `imagination.md` + `cosmos_check.py` 준비 완료
- ✅ Qwen ↔ Cosmos 이중 지능 아키텍처 설계 완료
- ✅ 2027-01: RTX 5070 Ti Super (24 GB) — 이미 구동 중
## 기능(Features)
- 🔄 **다중 캐릭터 핫스왑(Multi-Character Hot-Swap)** - AI 여자친구 간 원클릭 전환 가능 (Natsume ⇄ ATRI ⇄ Sakura); SOUL/IDENTITY/TTS 가중치/Live2D 모델이 모두 자동 전환되며, 메모리는 캐릭터별로 격리됩니다.
- 🃏 **SillyTavern 캐릭터 카드 가져오기(Character Card Import)** - PNG/JSON 캐릭터 카드를 자동 감지 및 가져옵니다; 에이전트가 가져오는 즉시 페르소나를 자동으로 전환합니다.
- 💬 **채팅 로그 가져오기(Chat Log Import)** - SillyTavern JSONL 대화 로그를 `memory/role_play/<character>/`에 가져와 저장합니다; 에이전트는 역할 전환 시 컨텍스트를 복원합니다.
- 🎤 **TTS 음성 합성(Voice Synthesis)** - 로컬 GPT-SoVITS 추론, 일본어 음성 (대화별 감정 일치), 3가지 캐릭터 음성 모델 (Natsume / ATRI / Sakura)
- 🎤 **ASR 음성 인식(Speech Recognition)** - 로컬 Faster-Whisper small 모델 (~1.5GB VRAM), llama와 공존; 99개 언어 지원
- 🎨 **AI 이미지 생성(Image Generation)** - 로컬 ComfyUI 추론, SDXL/Illustrious 모델, 3가지 캐릭터 프롬프트 템플릿
- 🖥️ **Sakura 데스크톱 펫(Desktop Pet)** - 능동적인 케어, 화면 관찰 및 로컬 LLM 인지 기능을 갖춘 PySide6 데스크톱 동반자; 3가지 캐릭터 지원
- 🎭 **Live2D 캐릭터 모델(Character Model)** - 감정 기반 표현 및 말풍선이 있는 실시간 Live2D 렌더링 (Natsume / ATRI L2D; Sakura 초상화 모드)
- 🧠 **스마트 VRAM 계층화(Smart VRAM Tiering)** - GPU VRAM을 자동 감지하고 적절한 전략을 선택합니다: ≥12GB는 모든 것을 온라인 상태로 유지 (llama + 스킬); 8GB는 GPU 집약적 작업을 위해 llama를 핫스왑; <8GB는 안전 모드.
제로 수동 설정
- 🎛️ **Artemis Studio Console** - Visual TTS + ComfyUI 워크샵, llama 상태와 무관하게 언제든지 DIY 음성 및 이미지 제작 가능 - 진정한 오프라인 크리에이티브 스위트
- 💾 **역할극 메모리(Roleplay Memory)** - `memory/role_play/` 디렉토리 내 캐릭터별 일일 대화 요약본
- 🧠 **장기 기억 시스템(Long-term Memory System)** - [headroom](https://github.com/chopratejas/headroom) (SmartCrusher + CCR) 및 [mem0](https://github.com/mem0ai/mem0) (Qdrant 벡터 데이터베이스) 기반:
- **중국어 임베딩 부스트(Chinese Embedding Boost)** - 모든-MiniLM-L6-v2와 함께 BGE-small-zh-v1.5를 추가하여 CN/JP/EN 하이브리드 메모리 검색의 정확도 향상
- **SmartCrusher 컨텍스트 트리밍(Context Trimming)** - LLM 요청당 채팅 기록을 24 메시지 / 40K 문자열로 제한
- **CCR (Curate-Consolidate-Retrieve)** - 백그라운드 워커가 매 8턴마다 지속 가능한 사실을 추출하여 mem0 Qdrant에 작성
- **벡터 + BM25 하이브리드 검색(Vector + BM25 Hybrid Search)** - Qdrant를 통한 의미적 유사성 + 키워드 일치
- **자동 동기화 브릿지(Auto-Sync Bridge)** - 크론 작업이 30분마다 Qdrant → `_mem0_auto.md`를 동기화하여 OpenClaw의 네이티브 `memory_search`로 벡터 메모리 검색 가능하게 함
- **캐릭터별 격리(Per-Character Isolation)** - Qdrant에서 `user_id` 스코핑; 4개의 독립적인 메모리 공간 (sakura / natsume / enola / atori)
- **회상 우선순위(Recall Priority)** - 벡터 장기 기억 > 손으로 작성한 일일 노트 > SOUL 기반 페르소나
> [skills/behavior-engine/README.md](skills/behavior-engine/README.md) 및 [AGENTS_roleplay_EN.md#behavior-engine](AGENTS_roleplay_EN.md#behavior-engine) 참조.
### 💖 관계 시스템 (행동 엔진, Behavior Engine)
별도의 프로젝트인 **girl-agent**에서 포팅된 **계층적 의사 결정 엔진(layered decision engine)**으로, 각 캐릭터에게 독립적인 관계 점수, 갈등 상태, 관계 단계, 그리고 호르몬 주기를 부여하여 그들의 행동과 답변 스타일을 구동합니다.
**핵심 루프:** 매 턴마다 무드 델타(moodDelta) (관심/신뢰/매력/짜증/역겨움)를 생성 → 점수에 누적됨 → 갈등 고조/진정기를 유발 → 관계 단계 전환을 자동 확인 → LLM의 답변 스타일을 형성합니다.
| Field | Range | 의미 | 효과 |
|-------|-------|---------|--------|
| `score.interest` | -100~100 | 관심도 (Interest) | 답장 온기, 주도성 |
| ... |
**9가지 관계 단계:** 처음 만남 → 냉랭한 시기 → 분위기가 무르익음 → 설득됨 → 첫 데이트 → 초기 연애 → 안정적인 연애 → 장기적 관계 → 이별
**4단계 갈등 시스템:** 레벨 0 정상 → 레벨 1 약간의 토라짐 (slight sulk) → 레벨 2 짜증남 (in a huff) → 레벨 3 심각한 냉전 (severe cold war) → 레벨 4 차단/삭제 (blocked/deleted)
**호르몬 주기:** 가우시안 사이클 모델(Gaussian cycle model)은 에너지, 짜증, 애정, 성욕의 주기적인 변화를 시뮬레이션하여 답장의 길이와 분위기에 영향을 미칩니다.
**상태 파일 (State file):** `memory/role_play/<char>/relationship.json` (캐릭터별 독립적이며, 핫 로딩(hot-loaded)됨)
**모듈 위치 (Module location):** `skills/behavior-engine/`
## 모델 (Models)
HuggingFace에 호스팅된 모든 모델: **[TAOTAO777/ai-girlfriend-natsume](https://huggingface.co/TAOTAO777/ai-girlfriend-natsume)**
자세한 내용은 [`models.yaml`](models.yaml)을 참조하세요.
| 모델 | 용도 | 크기 | 컨텍스트 |
|---|---|---|---|
| **LuffyTheFox Qwen3.6-35B-A3B Genesis Hermes V13 MTP APEX Compact** (GGUF) | 채팅 LLM (주요 MoE) | 16.11 GB | 120K |
| ... |
> 📁 임베딩 모델 경로: `embedding/all-MiniLM-L6-v2/` + `embedding/bge-small-zh-v1.5/` (HF 리포지토리)
### 원클릭 다운로드 (One-command Download)
```powershell
# huggingface-cli 설치: pip install huggingface_hub
huggingface-cli login
...
🇨🇳 중국 사용자: hf-mirror.com을 사용하세요 - VPN 불필요:
set HF_ENDPOINT=https://hf-mirror.com후 평소처럼 hf download를 실행합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기