momori777/Artemis: a fully offline AI girlfriend stack that runs on 8 GB of VRAM
破限本地AI女友后宫,openclaw/claude code+画图语音向量数据库+live2D+桌宠+酒馆角色卡导入+前端,QQ+Telegram双通道,8G显存可跑🩵uncensored Fully offline AI girlfriends harem Openclaw/Claude code+Local LLM+GPT-SoVITS+ComfyUI image+Live2D+desktop pet+SilllyTavern Character card import+frontend | Dual channels for QQ & Telegram | Dynamic 8G VRAM scheduling+mem0 qdrant, can run offline
At a glance
- What is it?
- Artemis bundles llama.cpp, GPT-SoVITS, ComfyUI, Live2D and mem0/qdrant memory behind QQ, Telegram and a local web frontend. It is a Windows-first PowerShell project for people who already own the GPU and the patience.
- Who is it for?
- Adopt Artemis if you already run ComfyUI and GPT-SoVITS locally, are comfortable in PowerShell on Windows with an NVIDIA GPU, and want character memory isolated per girlfriend rather than a single chat log. Do not adopt it if you need a documented licence, a Linux-first install, or an AMD path that the README treats as a footnote.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 5 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 18, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Artemis actually assembles
Artemis is not a model. It is a wiring project: OpenClaw plus QQ Bot plus Telegram Bot plus llama.cpp plus GPT-SoVITS plus ComfyUI plus a Sakura desktop pet plus Live2D, per its own README description. The promise is that all conversation, voice, images and character animation are generated on your own machine, with no cloud servers and no third-party APIs.
The intended user is narrow. You need an NVIDIA GPU (the README warns that default scripts target NVIDIA, with AMD users pointed at the AMD_GPU/ folder), a working ComfyUI install, and a working GPT-SoVITS install, because requirements.txt explicitly says those two are external inference frameworks reached through comfyui_root and sovits_root in config.yaml. Artemis supplies the glue, the character layer and the frontends. It does not supply the heavy engines.
The README frames the comparison as cloud AI girlfriend products versus this project, on privacy, cost, network dependence, control, censorship and extensibility. That framing is fair as far as it goes, but it hides the real cost: you become the operator of four or five separate inference services.
How the pieces talk to each other
The architecture visible in the repository is a chain of local services. A bot or the web frontend receives a message. The web chat at http://127.0.0.1:19270 connects to a local daemon proxy, which forwards to the llama.cpp server. The README describes streaming replies going through the daemon endpoint /api/chat and then to llama.cpp at /v1/chat/completions, and states there are no fake fallbacks, meaning a dead llama.cpp process produces an error rather than a canned reply.
Character state lives in skills/harem/, which the ComfyUI Workshop panel auto-loads to display persona, tags and greeting per character. Three characters ship as examples: Shiki Natsume, ATRI and Yono Sakura, each with a distinct personality description. Memories are isolated per character, so swapping girlfriends from the sidebar dropdown does not mix their history.
Memory search sits on mem0 with qdrant as the vector store. This is the part most likely to be half-installed, because requirements.txt comments out qdrant-client and sentence-transformers and notes that without them memory search degrades. The Live2D pet is driven separately through a local HTTP bridge, and TTS and image generation are described as controlled via agent subprocesses rather than in-process calls.
Installing Artemis step by step
The README is explicit that quick_setup.ps1 is the first step, before anything else. It asks you to choose the default agent language (Chinese, Japanese or English), copies the matching AGENTS_*.md to DEFAULT_AGENT.md, auto-detects ComfyUI, GPT-SoVITS, llama.cpp and embedding models, prompts for paths it cannot find, and generates config.yaml. Run it from the repository root in PowerShell:
powershell -ExecutionPolicy Bypass -File quick_setup.ps1After quick_setup completes, the README gives the order: download-models.ps1, then setup-llama.ps1, then start.ps1. Each is a separate PowerShell script in the repository root, and there are .sh equivalents for several of them (download-models.sh, setup-llama.sh, setup-all.sh) plus a setup-all.ps1 that appears to chain the steps.
powershell -ExecutionPolicy Bypass -File download-models.ps1
powershell -ExecutionPolicy Bypass -File setup-llama.ps1
powershell -ExecutionPolicy Bypass -File start.ps1Python dependencies come from requirements.txt, which the file header says to install with pip install -r requirements.txt. Note that qdrant-client and sentence-transformers are commented out there, so memory search degrades unless you uncomment and install them yourself.
pip install -r requirements.txtFirst run and the web chat frontend
Once start.ps1 has brought the stack up, the web chat frontend is the fastest way to confirm the whole chain works, because it bypasses QQ and Telegram entirely. The README states it is served at http://127.0.0.1:19270, connects directly to the local daemon proxy and then to the llama.cpp server, and that 8 GB of VRAM can run it fully without stopping.
Open that address in a browser. You should see the chat interface with a character sidebar. If replies stream, llama.cpp is reachable through the daemon. If the page loads but sends nothing back, the daemon or the llama.cpp server is down, and since the README says there are no fake fallbacks, the failure will be visible rather than masked.
Character cards are imported from the ComfyUI Workshop panel, which the README says accepts drag-and-drop or file selection of SillyTavern PNG and JSON cards and auto-parses the metadata and persona. Model selection (local llama, DeepSeek or Grok) is a Settings dropdown that routes through the daemon proxy.
Where Artemis breaks or disappoints
The licence is the first problem. The repository metadata reports NOASSERTION, and a LICENSE file exists at the top level, but nothing in the README explains what the terms are. For a project that bundles character personas drawn from named commercial visual novels (Starry Moonlit Café & the Butterfly of Death, ATRI -My Dear Moments-, Dimension W Lovers!!), that ambiguity matters more than usual. If you plan to redistribute anything, read LICENSE yourself rather than assuming.
The second problem is hardware headroom. The reference machine is an RTX 5070 Laptop with 8 GB VRAM, 32 GB DDR5 and an i9-14900HX on Windows 11. The README states the web chat can run fully on 8 GB, and separately notes the ComfyUI Workshop runs in parallel with llama at 12 GB or more. Those two statements describe different configurations. On an 8 GB card you should expect to run chat and voice comfortably and to serialize image generation rather than overlap it.
Third, requirements.txt pins nothing tightly and warns that torch must match both the CUDA driver and the GPU architecture, citing RTX 5070 Blackwell needing 2.7+cu130. That is a version constraint you inherit from ComfyUI, not one Artemis manages for you. There is no documented rollback procedure in the README for a failed model download or a broken llama.cpp build.
Alternatives and how they differ
The obvious alternative is SillyTavern with a local backend. SillyTavern is a chat frontend that connects to whatever inference server you point it at, and Artemis actually imports its character cards: the ComfyUI Workshop panel accepts drag-and-drop or file selection of SillyTavern PNG and JSON cards and parses the metadata and persona. The difference in approach is scope. SillyTavern gives you one excellent chat surface and leaves voice, image generation and desktop presence to other tools. Artemis tries to own the whole loop, including the Live2D pet, TTS subprocesses, QQ and Telegram delivery, and per-character vector memory. If you only want roleplay chat, Artemis adds moving parts you will have to keep alive.
A second reference point is the Claude Code and OpenClaw path the repository also supports, with claude-code.ps1, claude-code.sh, claude-code-ccr.ps1 and claude-code-ccr.sh present at the top level alongside openclaw.example.json and .mcp.json. That route trades the zero-API-dependency claim for hosted model quality. The README lists a model selector offering local llama, DeepSeek or Grok from the Settings dropdown, routed through the daemon proxy. Choosing DeepSeek or Grok means your conversations leave the machine, which contradicts the privacy table at the top of the README. The two positions in the same document do not reconcile.
Maintenance, upgrades and the real running cost
The last push was on 2026-09-13, and release 1.8.7 landed the same day, with 1.8.6 on 2026-09-10 and 1.8.5 on 2026-08-14. The release cadence is fast, which cuts both ways: fixes arrive quickly, and so does churn in scripts you may have customized. The README also asks readers to vote on a fourth girlfriend in Issues, so the character set is still expanding.
Upgrade cost is dominated by the external engines, not by Artemis itself. requirements.txt installs only numpy, pyyaml, Pillow, scipy, pystray and flask. Everything expensive (torch, GPT-SoVITS, ComfyUI) lives outside and is referenced by path. When ComfyUI or GPT-SoVITS changes its API, Artemis has to follow, and your config.yaml paths are the seam where that breaks. The repository includes LLAMA_TUNING.md, OPTIMIZATION_LOG.md and MODEL_PATHS.md, which suggests tuning is expected rather than optional.
On licensing: the NOASSERTION identifier means GitHub could not classify the LICENSE file. That is not a legal opinion, only a signal that you should read the file before depending on the project commercially or redistributing it.
Editorial conclusion
Adopt Artemis if you already run ComfyUI and GPT-SoVITS locally, are comfortable in PowerShell on Windows with an NVIDIA GPU, and want character memory isolated per girlfriend rather than a single chat log. Do not adopt it if you need a documented licence, a Linux-first install, or an AMD path that the README treats as a footnote. Before committing, run quick_setup.ps1 and confirm it writes a config.yaml that resolves comfyui_root and sovits_root, then check whether mem0 and qdrant-client are installed, because the requirements file leaves them commented out and memory search degrades without them.
Frequently asked questions
How do I install momori777/Artemis?
The README says to run quick_setup.ps1 first, which configures paths and language and generates config.yaml, then proceed through download-models.ps1, setup-llama.ps1 and start.ps1. The default scripts target NVIDIA GPUs, and AMD users are pointed at the AMD_GPU/ folder.
How do I use momori777/Artemis day to day?
You talk to it through a QQ bot, a Telegram bot, or the web chat frontend at http://127.0.0.1:19270, which connects to the local daemon proxy and then to the llama.cpp server. Characters can be switched from a sidebar dropdown, with memories and chat context kept separate per character.
Can momori777/Artemis run on 8 GB of VRAM?
The README states the web chat can run fully on 8 GB of VRAM without stopping, and the reference machine is an RTX 5070 Laptop with 8 GB. It separately notes the ComfyUI Workshop runs in parallel with llama at 12 GB or more, so image generation alongside chat is the configuration that needs more memory.
Does momori777/Artemis need an internet connection or cloud APIs?
The README describes it as 100 percent local, fully private and zero API dependencies, with all conversation, voice, images and character animation generated on your own machine. It also offers a model selector for DeepSeek or Grok, which would send data off the machine if you choose it.
What licence does momori777/Artemis use?
The repository reports NOASSERTION for the licence, and a LICENSE file is present at the top level, but the README does not explain the terms. Read the LICENSE file directly before relying on it.
Community notes