[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-85150":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":20,"hasPages":18,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":10,"trendingCount":15,"starSnapshotCount":15,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},85150,"Artemis","momori777\u002FArtemis","momori777","🩵uncensored Fully offline AI girlfriends harem Openclaw+Local LLM+GPT-SoVITS+ComfyUI image+Live2D+desktop pet+SilllyTavern Character card import| Dual channels for QQ & Telegram | Dynamic 8GB VRAM scheduling, can run offline完全离线 AI 女友后宫 |小龙虾+本地大模型+GPT-SoVITS+ComfyUI+Live2D+桌宠+酒馆角色卡导入|QQ & Telegram 双通道 | 8GB 显存动态调度断网可跑","",null,"Python",63,4,1,0,38.1,"Other",false,"master",true,[22,23,24,25,26,27,28,29,30,31,32,33,34],"ai-girlfriend","comfyui","desktop-pet","gpt-sovits","image-generation","live2d","llm","offline-ai","openclaw","qq-bot","telegram-bot","text-to-speech","voice-synthesis","2026-06-15 10:04:53","以防有人懒得读完，我把度盘模型链接放第一行 https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1sLeSyVp76yzWcR3Q4pX0kA?pwd=0721\n# AI Girlfriend\n\n**100% Local · Fully Private · Zero API Dependencies**\n\n> All conversations, voice, images, and character animations are generated on your own machine. No cloud servers, no third-party APIs, no risk of data leakage. Your AI girlfriend belongs to you, and only you.\n\n---\n\nAn AI girlfriend project powered by OpenClaw + QQ Bot + Telegram Bot + llama.cpp + GPT-SoVITS + ComfyUI + Sakura Desktop Pet + Live2D — running entirely on your own machine.\n\n**Characters**: Supports hot-swappable AI girlfriends with isolated memories per character.\n\n### Shiki Natsume (四季夏目)\n\nFrom *Starry Moonlit Café & the Butterfly of Death*. Tall, aloof, cool exterior with a hidden warmth. A natural quietly-dominant type — she takes the lead, teases you gently, and guards you fiercely. Speaks little, but every word hits.\n\n### ATRI (亚托莉)\n\nFrom *ATRI -My Dear Moments-*. Petite, innocent, endlessly curious — a bright-eyed girl who wears her heart on her sleeve. Runs toward the future with a smile, dragging you along. **The polar opposite of Natsume**: bubbly and expressive where Natsume is reserved, emotionally transparent where Natsume is guarded, playful where Natsume is composed. If Natsume is the cool winter night, ATRI is the warm summer sun.\n\n## ✨ Why This Project?\n\n| | Cloud AI Girlfriend | This Project |\n|---|---------------------|--------------|\n| 🛡️ **Privacy** | Chat logs, voice, and images all stored on vendor servers | **Everything stays local** — zero data leaves your machine |\n| 💰 **Cost** | Monthly subscriptions \u002F per-token billing adds up | **Free**, one-time setup, runs forever (bring your own hardware) |\n| 🌐 **Network** | Needs internet; dead if servers go down | **Works offline** — flip off your WiFi and keep chatting |\n| 🎛️ **Control** | Prompts\u002Ftemplates controlled by vendor, can change anytime | **You control** all models, parameters, and character settings |\n| 🔞 **Content** | Heavy censorship, accounts get banned | **No censorship** — talk about whatever you want |\n| 🎨 **Extensibility** | Locked into vendor models and features | **Mix and match** — swap LLMs, image models, voice models freely |\n\n## 🎬 Demo\n\n### Multi-Channel Chat\n![QQ Bot Demo](media\u002Fdemo_qqbot.gif)\n\n> 👆 QQ Bot: text chat + TTS voice + ComfyUI image generation + character memory\n\n### Live2D Desktop Pet\n![Live2D Demo](media\u002Fdemo_live2d.gif)\n\n> 👆 **Shiki Natsume** Live2D: real-time character animation with emotion-driven motions, lip-sync, and speech bubbles. Controlled via local HTTP bridge.\n\n### ⭐ ATRI — Second AI Girlfriend\n\n**Personality opposite of Natsume**, hot-swappable with isolated memory.\n\n![ATRI Live2D](media\u002Fatri_live2d.gif)\n\n> 👆 **ATRI** Live2D: silver hair, ruby-red eyes, barefoot in a white dress — innocent and expressive.\n\n![ATRI ComfyUI](media\u002Fatri_comfyui.gif)\n\n> 👆 **ATRI** ComfyUI: AI image generation — seaside sunset, flowing white dress, warm golden-hour lighting.\n\n## Hardware\n\n| Component | Model |\n|-----------|-------|\n| GPU | NVIDIA GeForce RTX 5070 Laptop (8 GB VRAM) |\n| CPU | Intel Core i9-14900HX (24 cores, 32 threads) |\n| RAM | 32 GB DDR5 |\n| OS | Windows 11 |\n\n## Features\n\n- 💬 **QQ + Telegram Dual Channel** — QQ Bot + Telegram Bot integration via OpenClaw Gateway\n- 🎤 **TTS Voice Synthesis** — Local GPT-SoVITS inference, Japanese voice (emotion-matched per dialogue)\n- 🎨 **AI Image Generation** — Local ComfyUI inference, SDXL\u002FIllustrious models\n- 🖥️ **Sakura Desktop Pet** — PySide6 desktop companion with proactive care, screen observation & local LLM awareness\n- 🎭 **Live2D Character Model** — Real-time Live2D rendering with 10 motion groups, emotion-driven expressions, and speech bubbles\n- 🧠 **VRAM Scheduler** — Automatic llama-server ↔ TTS\u002FComfyUI orchestration on 8 GB VRAM\n- 💾 **Roleplay Memory** — Conversation summaries persisted to `memory\u002Frole_play\u002F`\n- 🔄 **Multi-Character Hot-Swap** — Switch between AI girlfriends (Natsume ⇄ ATRI) with one command; SOUL\u002FIDENTITY\u002FTTS weights\u002FLive2D model all switch automatically, memories isolated per character\n- 🃏 **Character Card Import** — Auto-detect SillyTavern character cards via `skills\u002Fcharacter_importer\u002F`, import → agent auto-switches role\n- 💬 **Chat Import** — Import SillyTavern JSONL chat logs into `memory\u002Frole_play\u002F\u003Ccharacter>\u002F`, agent restores conversation context on role switch\n\n## Models\n\nAll models hosted on HuggingFace: **[TAOTAO777\u002Fai-girlfriend-natsume](https:\u002F\u002Fhuggingface.co\u002FTAOTAO777\u002Fai-girlfriend-natsume)**\n\nSee [`models.yaml`](models.yaml) for full details.\n\n| Model | Purpose | Size |\n|-------|---------|------|\n| **Qwen3.6-35B-A3B-APEX-I-Compact** (Q4_K GGUF) | Chat LLM | 16.11 GB |\n| **WAI-Nsfw-Illustrious-17** | ComfyUI generation (default) | 6.46 GB |\n| **miaomiaoHarem_v20** | ComfyUI generation (backup) | 6.46 GB |\n| **GPT-SoVITS voice weights** | TTS voice synthesis | ~303 MB |\n\n### One-command Download\n\n```powershell\n# Install huggingface-cli: pip install huggingface_hub\nhuggingface-cli login\n\n# Download all models\nhuggingface-cli download TAOTAO777\u002Fai-girlfriend-natsume --local-dir .\u002Fmodels\n\n# Or download individual components:\nhuggingface-cli download TAOTAO777\u002Fai-girlfriend-natsume llm\u002F --local-dir .\u002Fmodels\nhuggingface-cli download TAOTAO777\u002Fai-girlfriend-natsume comfyui-checkpoints\u002F --local-dir .\u002Fcheckpoints\nhuggingface-cli download TAOTAO777\u002Fai-girlfriend-natsume gpt-sovits-weights\u002F --local-dir .\u002Fgpt-sovits-weights\n```\n\n### Local Configuration\n\n1. **Run `quick_setup.ps1`** — interactive wizard that generates `config.yaml` with your local paths\n2. (Alternative) Copy `config.example.yaml` → `config.yaml` and edit manually\n3. Place downloaded model files according to `models.yaml`, then update `config.yaml` paths\n\nAll Python\u002FPS scripts read paths from `config.yaml` — no hardcoded paths to edit.\n\n> ⚠️ **Disclaimer**: All models are community open-source. This project only provides mirror distribution, non-profit. Copyright belongs to original authors.\n\n## Local LLM Performance\n\nRunning Qwen3.6-35B-A3B (MoE, Q4_K, 16.10 GiB, 34.66B params) via llama.cpp (b8851-b9222).\n\n### Launch Command\n\n```powershell\nllama-server.exe `\n  -m \"Qwen3.6-35B-A3B-uncensored-heretic-APEX-I-Compact.gguf\" `\n  -c 120000 `\n  --flash-attn on -ctk q8_0 -ctv q8_0 `\n  -ngl 41 --cpu-moe --cpu-mask 0xFFFFFFFF `\n  --batch-size 4096 --ubatch-size 2048 --threads 24 `\n  --api-key *** -rea off --jinja `\n  --cache-ram 2048 --parallel 1 `\n  --kv-unified --no-mmap\n```\n\n### Key Metrics\n\n| Metric | Value | Notes |\n|--------|-------|-------|\n| VRAM Usage | ~4.6 GiB (model) + ~1.2 GiB (KV cache) | ~2 GB free on 8 GB VRAM |\n| Prefill Speed | **960 ~ 1390 t\u002Fs** | 120K context, batch-size 4096 |\n| Token Generation | **31 ~ 39 t\u002Fs** | MoE architecture, 8\u002F256 experts |\n| Context Limit | 120K (~120k tokens) | ~59k token full reprocess in ~55s |\n| Model Load Time | ~12s | --no-mmap, requires sufficient RAM |\n\n### Long Context Stability\n\nQwen3.6 MoE uses SSM (Gated Delta Net) hybrid attention with `--kv-unified`.\n\n⚠️ **Known Limitation**: Cross-turn prompt cache reuse is not supported (SSM architecture limitation). Each request triggers full context re-processing. Longer conversations = higher first-token latency (~55s for 59k tokens).\n\n**Mitigations**:\n- Periodic `\u002Freset` (Natsume writes roleplay summaries to `memory\u002Frole_play\u002F` before resetting)\n- Restore context from summaries on startup, keeping actual token count in 5K–20K range\n- `config-patch.json` sets OpenClaw contextWindow to 262144 to match model capacity\n\n### VRAM Budget\n\n```\n8 GB Total VRAM\n├── llama-server resident: ~5.8 GB (model 4.6G + KV cache 1.2G)\n├── Free: ~2.2 GB\n│\n├── TTS inference: stop llama → ~8 GB free → resume llama (~70s)\n└── ComfyUI generation: stop llama → ~8 GB free → resume llama (~120s)\n```\n\n## Directory Structure\n\n```\nAI_Girlfriend\u002F                        # OpenClaw workspace root\n├── start.ps1                         # 🚀 One-click launch: llama + Live2D + Gateway\n├── quick_setup.ps1                     # 🛠 Interactive path config wizard\n├── config.yaml                       # Generated config\n├── download-models.ps1               # One-click model download (Windows)\n├── download-models.sh                # One-click model download (Linux\u002FmacOS)\n├── setup-llama.ps1                   # Auto-detect HW + configure llama.cpp (Win)\n├── setup-llama.sh                    # Auto-detect HW + configure llama.cpp (Linux\u002FmacOS)\n├── setup-openclaw.ps1                # One-click OpenClaw install + deploy (Win)\n├── setup-openclaw.sh                 # One-click OpenClaw install + deploy (Linux\u002FmacOS)\n├── setup-all.ps1                     # 🚀 All-in-One mega script (Windows)\n├── setup-all.sh                      # 🚀 All-in-One mega script (Linux\u002FmacOS)\n├── config-qqbot.json                 # QQ Bot config patch\n├── config-telegram.json              # Telegram Bot config patch\n├── config-patch.json                 # OpenClaw LLM config patch\n├── AGENTS.md                         # Agent behavior rules\n├── SOUL.md                           # Character personality\n├── IDENTITY.md                       # Character identity\n├── USER.md                           # User info\n├── HEARTBEAT.md                      # Heartbeat config\n├── TOOLS.md                          # Tool quick reference\n├── models.yaml                       # Model catalog + download links\n├── README.md                         # This file\n├── .gitignore\n├── live2d\u002F                           # Live2D character model (Cubism 4 Core)\n│   ├── index.html                    # Browser frontend (standalone window)\n│   ├── embed.html                    # Embeddable version\n│   ├── live2dcubismcore.min.js       # Cubism Core 4 (207 KB)\n│   ├── plid-v5-bundle.js             # pixi-live2d-display v0.5.0 bundle\n│   ├── live2d-bridge.mjs             # HTTP (19200) + WebSocket (19201) bridge\n│   ├── pixi.min.js, pixi-shim.js     # PIXI.js v7 rendering\n│   ├── model\u002Fshiki_natsume\u002F          # Shiki Natsume model files\n│   ├── media\u002F                        # Generated screenshots\n│   └── _archive\u002F                     # Debug artifacts\n├── ren_pro_jp\u002F                       # Ren'Py dialog engine (planned)\n├── memory\u002F                           # [.gitignore] Runtime memory\n│   └── role_play\u002F                    # Roleplay conversation logs\n├── media\u002F                            # [.gitignore] Generated media\n│   ├── audio\u002F                        # TTS voice output\n│   ├── images\u002F                       # ComfyUI image output\n│   └── *.gif                         # README demo GIFs\n├── docs\u002F\n│   ├── telegram-setup.md             # Telegram Bot setup guide\n│   └── qqbot-setup.md                # QQ Bot setup guide\n└── skills\u002F\n    ├── live2d\u002F                       # 🆕 Live2D control skill\n    │   ├── SKILL.md                  # Live2D API invocation guide\n    │   ├── scripts\u002Fstart-live2d.ps1  # Live2D launcher\n    │   └── media\u002F                    # Shared media output\n    ├── tts\u002F\n    │   ├── SKILL.md                  # TTS invocation guide\n    │   ├── run_tts.ps1               # TTS launcher script\n    │   ├── tts_call.py               # GPT-SoVITS inference\n    │   └── ref_wavs\u002F                 # Reference audio clips\n    ├── comfyui\u002F\n    │   ├── SKILL.md                  # ComfyUI invocation guide\n    │   ├── run_comfyui.ps1           # ComfyUI launcher script\n    │   ├── comfyui_call.py           # ComfyUI inference\n    │   ├── prompt_template.md        # Character prompt template\n    │   └── custom_prompt.txt         # Custom extra prompt\n    ├── sakura\u002F                       # Sakura Desktop Pet (PySide6 GUI)\n    │   ├── SKILL.md                  # Sakura skill documentation\n    │   ├── main.py                   # Application entry point\n    │   ├── install.bat               # Windows dependency installer\n    │   ├── start.bat                 # Windows launcher\n    │   └── app\u002F                      # Source code\n    ├── llama-management.md           # VRAM management architecture doc\n    ├── llama-watchdog.ps1            # Llama health check\n    ├── cleanup_orphans.ps1           # Orphan process cleanup\n    └── character_importer\u002F           # SillyTavern character card auto-import\n```\n\n## Skills Overview\n\n| Skill | Type | Llama Kill? | Mechanism |\n|-------|------|-------------|-----------|\n| **Live2D** | HTTP exec | ❌ No | Direct HTTP calls to `localhost:19200` bridge |\n| **TTS** | sessions_spawn | ✅ Yes | Kill → GPT-SoVITS → restart llama |\n| **ComfyUI** | sessions_spawn | ✅ Yes | Kill → image gen → restart llama |\n| **Sakura** | Shared llama-client | ❌ No | Detects llama down → waits → auto-resumes |\n\n## Prerequisites\n\n| Component | Version \u002F Source | Purpose |\n|-----------|-----------------|---------|\n| [OpenClaw](https:\u002F\u002Fdocs.openclaw.ai) | latest | AI Agent Gateway |\n| QQ Bot | OpenClaw qqbot channel | QQ message relay |\n| Telegram Bot | OpenClaw telegram channel | Telegram message relay |\n| [llama.cpp](https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp) | b9222 | Local LLM inference server |\n| [GPT-SoVITS v2](https:\u002F\u002Fgithub.com\u002FRVC-Boss\u002FGPT-SoVITS) | v2pro-20250604 | TTS voice synthesis |\n| [ComfyUI](https:\u002F\u002Fgithub.com\u002Fcomfyanonymous\u002FComfyUI) | aki-v3 | Image generation engine |\n| [Sakura Desktop Pet](https:\u002F\u002Fgithub.com\u002FRvosy\u002FSakura) | v0.9.6-dev | Desktop companion GUI |\n| [pixi-live2d-display](https:\u002F\u002Fgithub.com\u002Fguansss\u002Fpixi-live2d-display) | v0.5.0 | Live2D WebGL renderer |\n| Live2D Cubism Core | 4.x (CDN: cubism.live2d.com\u002Fsdk-web\u002Fcubismcore\u002F) | Live2D physics\u002Fanimation |\n| Python | 3.12+ | Runtime (Sakura + TTS + ComfyUI) |\n\n## Quick Start\n\n### 🚀 All-in-One (Recommended)\n\n**One command, from scratch to a fully functional AI girlfriend:**\n\n**Windows:**\n```powershell\npowershell -File setup-all.ps1\n```\n\n**Linux \u002F macOS:**\n```bash\nbash setup-all.sh\n```\n\nAutomated pipeline: environment check → model download → llama.cpp setup → OpenClaw install → Sakura desktop pet → workspace deploy → path check → launch → verify.\n\n> Supports resume from breakpoint. Flags: `--skip-model-download`, `--skip-llama-setup`, `--skip-openclaw-setup`, `--skip-sakura-setup`, `--dry-run`, `--no-start`\n\n---\n\n### Step-by-Step\n\n### 0. Setup OpenClaw\n\nInstall OpenClaw Gateway and deploy the AI Girlfriend workspace:\n\n**Windows:**\n```powershell\npowershell -File setup-openclaw.ps1\n```\n\n**Linux \u002F macOS:**\n```bash\nbash setup-openclaw.sh\n```\n\nThis script installs Node.js, OpenClaw Gateway, deploys workspace files, installs daemon, and applies config patch.\n\n> **Flags:** `--skip-node`, `--skip-deploy`, `--skip-daemon`, `--no-onboard`\n\n### 1. Download Models\n\n**Windows:**\n```powershell\npip install huggingface_hub\nhuggingface-cli login\npowershell -File download-models.ps1\n```\n\n**Linux \u002F macOS:**\n```bash\npip install huggingface_hub\nhuggingface-cli login\nbash download-models.sh\n```\n\nDownloads all 5 model files (~31.7 GB) from HuggingFace with progress reporting and resume support.\n\n### 2. Setup llama.cpp\n\nAuto-detects GPU, VRAM, CPU cores, RAM and generates optimized launch configs.\n\n**Windows:**\n```powershell\npowershell -File setup-llama.ps1\n```\n\n**Linux \u002F macOS:**\n```bash\nbash setup-llama.sh\n```\n\n### 3. Configure Paths\n\n```powershell\npowershell -File quick_setup.ps1\n```\n\nInteractive wizard — enter your local paths once, all scripts are updated automatically.\n\n### 4. Quick Launch\n\n```powershell\n# One-click start all services (llama + Live2D + Gateway)\npowershell -File start.ps1\n```\n\n### 5. Start Live2D Individually\n\n```powershell\n# Start the bridge\nStart-Process node -ArgumentList \"live2d-bridge.mjs\" -WorkingDirectory live2d -WindowStyle Hidden\n\n# Open in standalone window (Chrome app mode)\nStart-Process chrome -ArgumentList \"--new-window --app=http:\u002F\u002Flocalhost:19200\u002Findex.html --window-size=450,650\"\n```\n\nLive2D runs in a frameless Chrome window — place it anywhere on your desktop.\n\n### 5. Windows Task Scheduler (optional)\n\n```powershell\n# Llama health check (every 10 min)\nschtasks \u002Fcreate \u002Ftn \"llama-watchdog\" `\n  \u002Ftr \"powershell -File C:\\Users\\\u003Cyou>\\.openclaw\\workspace\\skills\\llama-watchdog.ps1\" `\n  \u002Fsc minute \u002Fmo 10\n\n# Orphan process cleanup (hourly)\nschtasks \u002Fcreate \u002Ftn \"cleanup-orphans\" `\n  \u002Ftr \"powershell -File C:\\Users\\\u003Cyou>\\.openclaw\\workspace\\skills\\cleanup_orphans.ps1\" `\n  \u002Fsc hourly \u002Fmo 1\n```\n\n## Architecture\n\n```\nUser (QQ \u002F Telegram) ────── Sakura Desktop Pet (PySide6)\n  │                                    │\n  ▼                                    ▼\nOpenClaw Gateway              Live2D Bridge (:19200)\n  │                               ▲       │\n  ▼                               │       ▼\n  ┌───── llama-server :8080 ──────┘   Browser (Live2D model)\n  │         (Qwen3.6-35B)             │\n  ├───────────────────────────────────┤\n  │  Main session (roleplay)          │\n  │  TTS (kill → GPU → restart)       │\n  │  ComfyUI (kill → GPU → restart)   │\n  │  Live2D (HTTP → no kill needed)   │\n  └───────────────────────────────────┘\n```\n\n**Agent Hub — Immutable Capability Instructions**:\n\n```\n         ┌─────────────┐\n         │  AGENTS.md   │  ← Capability hub (never changes on role switch)\n         │  SOUL.md     │  ← Current character persona (hot-swappable)\n         │  IDENTITY.md │  ← Character metadata\n         │  TOOLS.md    │  ← Quick reference\n         │  USER.md     │  ← User profile\n         └──────┬───────┘\n                │\n    ┌───────────┴────────────┐\n    ▼                        ▼\n ┌──────────────┐   ┌──────────────────────┐\n │ skills\u002Fharem\u002F │   │ memory\u002Frole_play\u002F    │\n │   (存档后宫)  │   │   \u003C角色>\u002F (独立记忆)   │\n │ ├─ natsume\u002F   │   │ ├─ natsume\u002F*.md      │\n │ └─ enola\u002F     │   │ └─ enola\u002F*.md        │\n └──────────────┘   └──────────────────────┘\n```\n\n- `AGENTS.md` stays constant across role switches — ComfyUI \u002F TTS \u002F Live2D instructions are preserved\n- `SOUL.md` + `IDENTITY.md` are overwritten on switch; harem archives source of truth\n- Memory per character isolated in `memory\u002Frole_play\u002F\u003Cname>\u002F` — never cross-contaminated\n- SillyTavern character cards imported via PNG tEXt chunk parsing → auto-switch agent persona\n\n**Four Skills, One Brain**:\n\n| Skill | Location | Llama Interaction |\n|-------|----------|-------------------|\n| **Live2D** | `skills\u002Flive2d\u002F` | HTTP API only — never touches llama |\n| **TTS** | `skills\u002Ftts\u002F` | Kill llama → GPT-SoVITS → restart + wait \u002Fhealth |\n| **ComfyUI** | `skills\u002Fcomfyui\u002F` | Kill llama → image gen → restart + wait \u002Fhealth |\n| **Sakura** | `skills\u002Fsakura\u002F` | Shared llama-client; detects down → auto-resume |\n| **Character Importer** | `skills\u002Fcharacter_importer\u002F` | Agent-level — no GPU needed; writes SOUL\u002FIDENTITY + memory dir |\n\n**VRAM Orchestration Flow**:\n1. Main session receives user request → assembles command\n2. `sessions_spawn(mode=\"run\")` creates local model sub-session\n3. Sub-session execs PS script → `stop_llama()` kills llama-server\n4. Full 8 GB VRAM freed → TTS\u002FComfyUI inference\n5. `start_llama()` restarts llama-server (~12s load + ~3s warmup)\n6. Live2D remains active during entire cycle — bridge doesn't touch GPU\n7. Sub-session writes `.task_flags` → announces back to main session\n8. Main session reads media files → sends via `\u003Cqqmedia>` \u002F `MEDIA:`\n\n## ⚠️ Important Notes\n\n- **RTX 50xx (Blackwell) + CUDA 13.x = `munmap_chunk(): invalid pointer` crash** — CUDA 13.x has known memory management incompatibility with llama.cpp on Blackwell GPUs. **Solution: use pre-built llama.cpp binaries compiled with CUDA 12.x** (not self-compiled with CUDA 13.x). Download from [llama.cpp Releases](https:\u002F\u002Fgithub.com\u002Fggml-org\u002Fllama.cpp\u002Freleases), choose `cudart-llama-bin-win-cuda-12.4-x64.zip`. RTX 5070 Ti is fully compatible with CUDA 12.x drivers.\n- Llama-server is offline for ~60–120s during TTS\u002FComfyUI inference — conversation pauses, but Live2D keeps running\n- Sub-sessions use **local model** (same as main), DeepSeek as optional fallback\n- Llama-server does not support cross-turn prompt cache reuse (SSM limitation) — use periodic `\u002Freset`\n- **Live2D requires Cubism Core 4** (not 5 or 6) — pixi-live2d-display v0.5.0 is built for Cubism 4 Framework; Core 5+ causes clipping\u002Flayer failures\n- All model files protected by `.gitignore`\n- GPT-SoVITS weights are self-trained and not distributed — train with your own voice data\n\n## 🙏 Credits\n\n- [@Rvosy](https:\u002F\u002Fgithub.com\u002FRvosy) — Creator of [Sakura Desktop Pet](https:\u002F\u002Fgithub.com\u002FRvosy\u002FSakura), authorized for inclusion (Issue #38)\n- [@guansss](https:\u002F\u002Fgithub.com\u002Fguansss) — Creator of [pixi-live2d-display](https:\u002F\u002Fgithub.com\u002Fguansss\u002Fpixi-live2d-display)\n- [Live2D Inc.](https:\u002F\u002Fwww.live2d.com) — Cubism SDK (non-commercial use)\n",2,"2026-06-15 02:30:10","CREATED_QUERY"]