Добавить в корзинуПозвонить
Найти в Дзене

Mantella + Skyrim + русские голоса на RTX 50xx (Blackwell)

Полное руководство по сборке локальной системы AI-NPC в Skyrim Special Edition с русским языком, оригинальными голосами актёров и работой на видеокартах NVIDIA RTX 50-серии. Версия гайда: 2026.05
Тестировалось на: Windows 11, RTX 5080 16GB, Ryzen 9 5900X, 32GB RAM
Skyrim: Anniversary Edition 1.6.1170 + SKSE 2.2.6 Локальная система, где NPC в Skyrim: Всё работает полностью локально, без интернета и платных API. Стандартные сборки XTTS-сервера НЕ работают на 50-серии. Этот гайд решает. [Микрофон]
[Whisper STT] ─────────── распознавание речи (Python, CUDA)
[Mantella.exe] ────────── оркестратор (запускается с Skyrim)
↓ ↑
↓ └─── (получает от Skyrim: имя NPC, локацию, события)
[LM Studio + Stheno] ──── генерация ответа (HTTP API :1234)
[XTTS-сервер] ─────────── синтез русской речи (HTTP API :8020)
[Skyrim] ──────────────── проигрывает .wav через actor.SayLine Три отдельных процесса работают параллельно: В порядке установки: Sthe
Оглавление

Полное руководство по сборке локальной системы AI-NPC в Skyrim Special Edition с русским языком, оригинальными голосами актёров и работой на видеокартах NVIDIA RTX 50-серии.

Версия гайда: 2026.05

Тестировалось на: Windows 11, RTX 5080 16GB, Ryzen 9 5900X, 32GB RAM

Skyrim: Anniversary Edition 1.6.1170 + SKSE 2.2.6

⚠️ Даже не пытайтесь если меньше 16GB VRAM

Что мы строим

Локальная система, где NPC в Skyrim:

  • Понимают твою русскую речь (через микрофон)
  • Отвечают через LLM с учётом своей роли, истории Скайрима и контекста
  • Говорят оригинальными голосами актёров русской локализации с любым текстом
  • Совершают действия: атакуют, следуют, торгуют, бегут

Всё работает полностью локально, без интернета и платных API.

Системные требования

Минимум

  • NVIDIA GPU 12GB+ (RTX 4070 Ti / 3080 Ti / выше)
  • 16 GB RAM
  • 50 GB свободного места на SSD
  • Микрофон

Рекомендуется

  • NVIDIA RTX 4080/5080 (16GB) или RTX 4090/5090 (24-32GB)
  • 32 GB RAM
  • NVMe SSD

Для RTX 50xx (Blackwell) — этот гайд специально для вас

Стандартные сборки XTTS-сервера НЕ работают на 50-серии. Этот гайд решает.

Архитектура

[Микрофон]

[Whisper STT] ─────────── распознавание речи (Python, CUDA)

[Mantella.exe] ────────── оркестратор (запускается с Skyrim)
↓ ↑
↓ └─── (получает от Skyrim: имя NPC, локацию, события)

[LM Studio + Stheno] ──── генерация ответа (HTTP API :1234)

[XTTS-сервер] ─────────── синтез русской речи (HTTP API :8020)

[Skyrim] ──────────────── проигрывает .wav через actor.SayLine

Три отдельных процесса работают параллельно:

  1. LM Studio — мозг (LLM)
  2. XTTS-сервер в PowerShell — голос
  3. Mantella.exe + Skyrim — игра и оркестратор

Этап 1: Skyrim + Mantella

1.1 Skyrim Special Edition (Anniversary Edition)

  • Купить и установить через Steam
  • Версия игры: русская локализация (для русских голосов в дальнейшем)
  • Запустить один раз чтобы создались папки сохранений

1.2 SKSE64

  • Версия 2.2.6 для Skyrim 1.6.1170
  • Распаковать в корень папки игры (Skyrim Special Edition/)
  • Проверить через консоль: getskseversion (должна вернуть 2.2.6)

1.3 Mod Organizer 2

  • Установить в отдельную папку, например D:\Games\ModOrganizer2
  • Создать инстанс под Skyrim Special Edition

1.4 Базовые моды (через MO2 / Nexus)

В порядке установки:

  1. Address Library for SKSE Plugins — All-in-one
  2. SkyUI 5.2 SE
  3. UIExtensions 1.2
  4. SSE Creation Kit Fonixdata Lip Sync Fix
  5. Unofficial Skyrim Special Edition Patch (USSEP) 4.3.8+
  6. World Encounter Hostility Fix (Performance Version)
  7. No NPC Greetings 1.1 (опционально, отключает заскриптованные приветствия)

1.5 Mantella mod

1.6 Visual C++ Redistributable

1.7 Проверка

  • Запустить MO2 → SKSE → игра загружается
  • В MCM игры должно появиться меню Mantella

Этап 2: LM Studio + LLM

2.1 Установка LM Studio

  • Скачать с https://lmstudio.ai/
  • Установить
  • При первом запуске пропустить онбординг

2.2 Загрузка модели Stheno

Stheno 3.2 — лучшая 8B-модель для ролевых диалогов на момент написания.

В LM Studio → вкладка 🔎 Discover:

  • Поиск: Lewdiculous Stheno v3.2
  • Репо: Lewdiculous/L3-8B-Stheno-v3.2-GGUF-IQ-Imatrix
  • Выбрать квант Q5_K_M (~5.7 GB) — оптимум качества/VRAM
  • Скачать

2.3 Запуск сервера

  • В LM Studio → вкладка Developer
  • Загрузить модель кнопкой Load Model → выбрать Stheno Q5_K_M
  • Status: Running (зелёный тогл)
  • Адрес сервера: http://127.0.0.1:1234
  • Запомнить API Model Identifier (правая панель) — это строка вида:

    l3-8b-stheno-v3.2-iq-imatrix@q5_k_m

2.4 Параметры модели

  • Context Length: 4096 (хватит для большинства диалогов)
  • GPU Offload: Auto / максимум
  • Server Settings → Max idle TTL: 60 minutes или Never

Этап 3: XTTS-сервер для Blackwell

⚠️ Этот этап — главное отличие от стандартных гайдов. Обычные сборки

XTTS-сервера
не работают на RTX 50xx из-за устаревшего PyTorch.

3.1 Установить Python 3.11

⚠️ НЕ устанавливай Python 3.12 или 3.13 — XTTS зависимости несовместимы.

  1. Скачать Windows installer (64-bit) с https://www.python.org/downloads/release/python-3119/
  2. Запустить установщик
  3. На первом экране:✅ Add python.exe to PATH (внизу)
    Customize installation
  4. Optional Features — оставить как есть, Next
  5. Advanced Options:✅ Install for all users
    Add Python to environment variables
    Customize install location:
    C:\Python311
  6. Install
  7. Закрыть и открыть PowerShell заново

Проверка:

powershell

python --version # Python 3.11.9
where.exe python # должен показать C:\Python311\python.exe ПЕРВЫМ
pip --version # pip 24.0+

⚠️ Если where.exe python показывает C:\Users\...\WindowsApps\python.exe —

в PATH прописан Microsoft Store stub раньше реального Python. Исправить:

Win → "переменные среды" → системные → Path → подними C:\Python311 выше WindowsApps.

3.2 Установить Git

3.3 Клонировать Blackwell-форк XTTS-сервера

powershell

mkdir D:\AI
cd D:\AI
git clone https://github.com/shmitix/xtts-api-server-mantella-blackwell.git
cd xtts-api-server-mantella-blackwell

3.4 Создать venv и активировать

powershell

python -m venv venv

# Разрешить выполнение скриптов в PowerShell (один раз):
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
# На вопрос ответить Y

.\venv\Scripts\Activate.ps1

В приглашении PowerShell должна появиться приставка (venv).

3.5 Исправить requirements.txt (КРИТИЧНО)

Оригинальный requirements.txt содержит конфликтующие версии. Перепиши его:

powershell

copy requirements.txt requirements.txt.bak

@"
PyAudio==0.2.14
requests==2.31.0
pyttsx3==2.90
stream2sentence==0.2.2
fastapi>=0.104.1
loguru
pydantic
pydub
python-dotenv
uvicorn
cutlet
fugashi[unidic-lite]
coqui-tts[languages]==0.24.3
transformers>=4.43.0
uuid
spacy
"@ | Out-File -Encoding utf8 requirements.txt

3.6 Установить зависимости

powershell

pip install -r requirements.txt

Долго (~5-15 минут). Жёлтые warnings игнорировать. Должно завершиться Successfully installed ....

3.7 Установить PyTorch nightly с CUDA 12.8 (для Blackwell)

powershell

pip install --pre --force-reinstall torch torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

⚠️ --force-reinstall обязателен — иначе pip оставит CPU-версию torch которая
была установлена как зависимость coqui-tts.

Скачивание ~3 GB, время 10-25 минут.

3.8 Проверить что Blackwell видится

powershell

python -c "import torch; print('PyTorch:', torch.__version__); print('CUDA available:', torch.cuda.is_available()); print('CUDA device:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'NONE'); print('CUDA version:', torch.version.cuda)"

Должно вывести:

PyTorch: 2.12.0.dev20260408+cu128 ← важно: НЕ +cpu!
CUDA available: True
CUDA device: NVIDIA GeForce RTX 5080 (или твоя 50xx)
CUDA version: 12.8

3.9 Зафиксировать совместимую версию transformers

Новейшие transformers ломают coqui-tts (нет LogitsWarper). Фиксируем:

powershell

pip install transformers==4.46.3

3.10 Установить torchcodec

Новые torchaudio требуют отдельный пакет:

powershell

pip install torchcodec

3.11 Установить FFmpeg shared (КРИТИЧНО)

torchcodec нужны DLL-файлы FFmpeg. Стандартный winget ставит статическую версию без DLL.

  1. Распаковать через 7-Zip (https://www.7-zip.org/) в C:\ffmpeg
  2. Финальная структура должна быть:

C:\ffmpeg\bin\ffmpeg.exe
C:\ffmpeg\bin\avcodec-61.dll
C:\ffmpeg\bin\avformat-61.dll
... ещё DLL

  1. Добавить в PATH (Win → "переменные среды" → системные → Path → Создать):

C:\ffmpeg\bin

Поднять выше C:\Users\...\WindowsApps
5. Закрыть и открыть PowerShell заново

Проверка:

powershell

ffmpeg -version

Должно вывести ffmpeg version 7.1.1-full_build с --enable-shared.

⚠️ Если выводит 8.x.x или без --enable-shared — у тебя winget-версия,

удали её через winget uninstall Gyan.FFmpeg и поставь shared вручную.

3.12 Первый запуск XTTS-сервера

powershell

python -m xtts_api_server --device cuda --speaker-folder "D:\AI\xtts-api-server-mantella-blackwell\speakers"

При первом запуске:

  • Скачается модель XTTS v2.0.2 (~2 GB)
  • Может попросить согласия с CPML лицензией — ввести y
  • Завершение: Uvicorn running on http://localhost:8020

Не закрывать окно — сервер должен работать всё время игры.

Проверка в браузере: http://localhost:8020/docs — должна открыться Swagger UI.

Этап 4: Русские голоса из Skyrim

4.1 Концепция

Mantella для каждого NPC шлёт в XTTS имя voice_model (например MaleEvenToned).
XTTS ищет образцы голоса в папке speakers/ru/<voice_model>/*.wav.

Мы извлечём оригинальные русские голоса из BSA-архива Skyrim, отберём короткие
качественные сэмплы и разложим по voice_model папкам.

4.2 Установить BAE (Bethesda Archive Extractor)

4.3 Извлечь BSA

  1. Запустить bae.exe
  2. File → Open Archive
  3. Открыть D:\Steam\steamapps\common\Skyrim Special Edition\Data\Skyrim - Voices_ru0.bsa (~2 GB)
  4. Извлечь всё содержимое в:

C:\Users\<имя>\Downloads\BAE-extracted\

Должны появиться 4 папки: skyrim.esm, dawnguard.esm, dragonborn.esm, hearthfires.esm.

4.4 Установить Yakitori Audio Converter

4.5 Отобрать нужные .fuz файлы

Скрипт берёт по 10 файлов размером 40-60 KB (~5-10 сек звука) из каждого voicetype:

powershell

# === НАСТРОЙКИ ===
$sourceRoot = "C:\Users\<ИМЯ>\Downloads\BAE-extracted\sound\voice\skyrim.esm"
$destRoot = "D:\Tools\BAE-selected"
$filesPerVoice = 10
$minSize = 40KB
$maxSize = 60KB

$voicetypes = @(
"femalesultry", "malenord", "femaleyoungeager", "femaleeventoned",
"maleeventoned", "femalenord", "femalecommoner", "malecommoneraccented",
"malecommoner", "malecondescending", "maleorc", "maleyoungeager",
"malebrute", "malekhajiit", "femalecommander", "maleargonian",
"maleelfhaughty", "maledarkelf", "femaleelfhaughty", "malechild",
"maleeventonedaccented", "maleslycynical", "femalecondescending",
"femaledarkelf", "femalechild", "femaleoldgrumpy"
)

if (Test-Path $destRoot) {
Remove-Item $destRoot -Recurse -Force
}
New-Item -ItemType Directory -Path $destRoot -Force | Out-Null

foreach ($vt in $voicetypes) {
$srcPath = Join-Path $sourceRoot $vt
if (-not (Test-Path $srcPath)) {
Write-Host " [SKIP] $vt" -ForegroundColor Red
continue
}
$destPath = Join-Path $destRoot $vt
New-Item -ItemType Directory -Path $destPath -Force | Out-Null

$files = Get-ChildItem -Path $srcPath -Filter "*.fuz" |
Where-Object { $_.Length -ge $minSize -and $_.Length -le $maxSize } |
Get-Random -Count $filesPerVoice -ErrorAction SilentlyContinue

if (-not $files) {
$files = Get-ChildItem -Path $srcPath -Filter "*.fuz" |
Sort-Object { [Math]::Abs($_.Length - 50KB) } |
Select-Object -First $filesPerVoice
}

foreach ($f in $files) {
Copy-Item $f.FullName -Destination $destPath
}
Write-Host " [OK] $vt ($($files.Count))" -ForegroundColor Green
}

⚠️ Заменить <ИМЯ> на твоё имя пользователя Windows.

Должно скопировать ~260 файлов в D:\Tools\BAE-selected\<voicetype>\.

4.6 Конвертация .fuz → .wav через Yakitori

В Yakitori:

  • Input format: .fuz
  • Output format: .wav
  • ❌ Снять галку Same as input folder
  • Output folder: D:\AI\xtts-api-server-mantella-blackwell\speakers\ru
  • ✅ Поставить галку Create subfolders
  • Max threads: 16

Перетащить все 26 папок из D:\Tools\BAE-selected\ в окно Yakitori → Convert.

⚠️ Известный баг Yakitori: иногда игнорирует "Create subfolders" и сваливает
всё в одну папку. Если файлы лежат вперемешку — следующий скрипт раскладывает их по папкам:

powershell

$yakitoriOutput = "D:\AI\xtts-api-server-mantella-blackwell\speakers\ru"
$bumpedSource = "D:\Tools\BAE-selected"
$tempWavDump = "$env:TEMP\yakitori_dump"

if (-not (Test-Path $tempWavDump)) { New-Item -ItemType Directory -Path $tempWavDump -Force | Out-Null }
Get-ChildItem -Path $yakitoriOutput -Filter "*.wav" -File | Move-Item -Destination $tempWavDump -Force
Get-ChildItem -Path $yakitoriOutput -Filter "*.lip" -File | Remove-Item -Force

$voicetypeFolders = Get-ChildItem -Path $bumpedSource -Directory
foreach ($vtFolder in $voicetypeFolders) {
$destPath = Join-Path $yakitoriOutput $vtFolder.Name
New-Item -ItemType Directory -Path $destPath -Force | Out-Null

$fuzFiles = Get-ChildItem -Path $vtFolder.FullName -Filter "*.fuz"
foreach ($f in $fuzFiles) {
$wavInDump = Join-Path $tempWavDump ($f.BaseName + ".wav")
if (Test-Path $wavInDump) {
Move-Item $wavInDump -Destination $destPath -Force
}
}
Write-Host " [OK] $($vtFolder.Name)" -ForegroundColor Green
}

4.7 Переименовать папки в PascalCase

Skyrim BSA хранит имена в lowercase, а Mantella ожидает PascalCase:

powershell

$root = "D:\AI\xtts-api-server-mantella-blackwell\speakers\ru"

$rename = @{
"femalesultry" = "FemaleSultry"
"malenord" = "MaleNord"
"femaleyoungeager" = "FemaleYoungEager"
"femaleeventoned" = "FemaleEvenToned"
"maleeventoned" = "MaleEvenToned"
"femalenord" = "FemaleNord"
"femalecommoner" = "FemaleCommoner"
"malecommoneraccented" = "MaleCommonerAccented"
"malecommoner" = "MaleCommoner"
"malecondescending" = "MaleCondescending"
"maleorc" = "MaleOrc"
"maleyoungeager" = "MaleYoungEager"
"malebrute" = "MaleBrute"
"malekhajiit" = "MaleKhajiit"
"femalecommander" = "FemaleCommander"
"maleargonian" = "MaleArgonian"
"maleelfhaughty" = "MaleElfHaughty"
"maledarkelf" = "MaleDarkElf"
"femaleelfhaughty" = "FemaleElfHaughty"
"malechild" = "MaleChild"
"maleeventonedaccented" = "MaleEvenTonedAccented"
"maleslycynical" = "MaleSlyCynical"
"femalecondescending" = "FemaleCondescending"
"femaledarkelf" = "FemaleDarkElf"
"femalechild" = "FemaleChild"
"femaleoldgrumpy" = "FemaleOldGrumpy"
}

foreach ($pair in $rename.GetEnumerator()) {
$oldPath = Join-Path $root $pair.Key
if (Test-Path $oldPath) {
$tempName = $pair.Key + "_temp"
$tempPath = Join-Path $root $tempName
Rename-Item -Path $oldPath -NewName $tempName -Force
Rename-Item -Path $tempPath -NewName $pair.Value -Force
Write-Host " [OK] $($pair.Key) -> $($pair.Value)" -ForegroundColor Green
}
}

# Создаём копию MaleDarkElf -> MaleDunmer (Mantella использует оба имени)
$src = Join-Path $root "MaleDarkElf"
$dst = Join-Path $root "MaleDunmer"
if ((Test-Path $src) -and (-not (Test-Path $dst))) {
Copy-Item $src -Destination $dst -Recurse -Force
Write-Host " [OK] MaleDarkElf -> MaleDunmer (copy)" -ForegroundColor Cyan
}

Двойное переименование через _temp нужно потому что Windows file system
регистронечувствительная — femaleeventoned и FemaleEvenToned для неё
один и тот же путь.

После этого в speakers/ru/ должно быть 27 папок в PascalCase
(26 voicetype + MaleDunmer как копия MaleDarkElf).

4.8 Перезапустить XTTS-сервер

В окне сервера: Ctrl+C → дождаться приглашения → запустить заново:

powershell

python -m xtts_api_server --device cuda --speaker-folder "D:\AI\xtts-api-server-mantella-blackwell\speakers"

В логах должно появиться:

Latents created for all 27 new speakers in ru.

Этап 5: Настройка Mantella

5.1 Запустить Mantella UI

Открыть в браузере: http://localhost:4999/ui/?__theme=dark

Mantella UI работает только когда Skyrim запущен (mantella.exe запускается с игрой).

5.2 Вкладка Large Language Model

ПолеЗначениеLLM Servicehttp://localhost:1234/v1/Modell3-8b-stheno-v3.2-iq-imatrix@q5_k_m (точное имя из LM Studio)Max Sentences per Response (Single NPC)4Max Sentences per Response (Multi NPC)12Custom Token Count4096Custom Summary Model☐ выключено

⚠️ После смены Model жми зелёную кнопку Update — без неё изменения не применятся.

5.3 Вкладка Text-to-Speech

ПолеЗначениеTTS ServiceXTTSxVASynth Folder(пусто)XTTS Folder(пусто — работаем через URL)Number of Words TTS3Lip File GenerationEnabledXTTS URLhttp://127.0.0.1:8020XTTS Default ModelmainXTTS DevicecudaXTTS DeepSpeed☐ выключено (не работает на Blackwell)XTTS Low VRAM☐ выключеноXTTS Dataдефолтный JSON

⚠️ Красные предупреждения про несуществующие xVASynth/XTTS Folder можно игнорировать —
Mantella работает с XTTS по HTTP.

5.4 Вкладка Speech-to-Text

ПолеЗначениеAudio Threshold0.4Allow Interruption☑ или ☐ (см. ниже)STT ServiceWhisperPause Threshold0.25Push-to-Talk☑ включеноPush-to-Talk HotkeyV (или твоё)Whisper Modellarge-v3Whisper STT LanguageruWhisper Process Devicecuda

Allow Interruption — если включено, NPC прерывается когда ты начинаешь говорить.
Это
частая причина "пропавших" реплик. Если хочешь чтобы NPC всегда дослушивал —
отключи.

5.5 Вкладка Vision

  • Vision: ☐ выключено (Stheno не умеет в vision)

5.6 Вкладка Actions

Оставить дефолт (Attack, Barter, EndConversation, Flee, Follow, Inventory, Listen,
Look, MoveTo, StandDown активны).

5.7 Вкладка Language

  • Language: ru

5.8 MCM в игре (Mantella → System → Mods → Mantella)

General:

  • ✅ Microphone Enabled
  • ✅ Use Hotkey to Start Mic
  • Controls: B = Start, H = Text Prompt, N = End
  • ❌ Radiant Dialogue (жор VRAM)
  • ❌ NPCs can Approach Player

Player:

  • Voice Player InputВАЖНО! Отключить! Иначе твоя речь будет
    дублироваться голосом NPC и пайплайн будет в 2 раза медленнее.
  • Player Voice Model: твой выбор (MALENORD, MALEEVENTONED и т.д.)

Запуск и порядок старта сервисов

Каждый раз перед игрой:

1. LM Studio

  • Запустить
  • Developer → Load Model → Stheno Q5_K_M
  • Status: Running

2. XTTS-сервер

В PowerShell:

powershell

cd D:\AI\xtts-api-server-mantella-blackwell
.\venv\Scripts\Activate.ps1
python -m xtts_api_server --device cuda --speaker-folder "D:\AI\xtts-api-server-mantella-blackwell\speakers"

НЕ закрывать это окно до конца сессии.

3. Skyrim

  • MO2 → SKSE
  • Mantella.exe запустится автоматически
  • В игре: создать персонажа → подойти к NPC → нажать B (Mantella spell) → нажать V и говорить

Известные проблемы и решения

"Python was not found"

Microsoft Store stub в PATH раньше реального Python. Решение:

  • Системные → Path → подними C:\Python311 выше C:\Users\...\WindowsApps
  • Закрой и открой PowerShell заново

Could not load libtorchcodec

FFmpeg установлен как static, нужен shared. См. п. 3.11.

ImportError: cannot import name 'LogitsWarper' from 'transformers'

Слишком свежий transformers. Решение: pip install transformers==4.46.3

Could not find voice model X in XTTS models list

В speakers/ru/ нет папки с этим именем. Проверь:

  • Папка создана с PascalCase, не lowercase
  • Перезапусти XTTS-сервер с флагом --speaker-folder

Loaded latents for 0 speakers in 'ru' subfolder

XTTS-сервер смотрит не в ту папку. Запускать обязательно с флагом:

--speaker-folder "D:\AI\xtts-api-server-mantella-blackwell\speakers"

Mantella говорит "No secret key found"

Это обманчивое сообщение. Реальная причина — LM Studio не отвечает.
Проверь:

  • LM Studio Status: Running
  • Mantella UI → Model совпадает с API Model Identifier в LM Studio

NPC говорит только первую часть реплики

  • Отключить Allow Interruption в Speech-to-Text
  • Увеличить Number of Words TTS с 3 до 10-15
  • Не двигай камеру / не уходи во время речи NPC

LLM иногда вставляет английские/иероглифы в русский ответ

Известная проблема 8B моделей. Решения:

  • В Prompts добавить жёсткую инструкцию по языку
  • Уменьшить max_tokens в Parameters (Advanced LLM) с 250 до 150
  • Попробовать модель Saiga-Llama3-8B (русско-натренированная альтернатива)

Cold-start 4-5 секунд после простоя

Проверить в LM Studio Server Settings:

  • Max idle TTL: не меньше 60 минут (или Never)
  • Just-in-Time Model Loading: можно выключить

Оптимизация VRAM

Распределение VRAM в нашей сборке (RTX 5080 16GB):

XTTS-сервер: ~3.7 GB
Skyrim (рендер): ~2.0 GB (зависит от настроек графики)
Stheno Q5_K_M + контекст: ~7.5 GB
─────────────────────────────────────
Idle: ~13 GB
На пиках (синтез речи): ~15 GB
Запас: ~1-2 GB

Меры экономии VRAM (от лёгких к радикальным):

  1. Stheno Q5_K_M вместо Q6_K: экономия ~1 GB (этот гайд уже использует Q5_K_M)
  2. Context Length 4096 → 3072: экономия ~300-500 MB
  3. Whisper Process Device → CPU: экономия ~200 MB, добавит 0.5 сек к STT
  4. XTTS Low VRAM (галка в Mantella UI): экономия ~1.5 GB, может не работать на Blackwell
  5. Понизить графику Skyrim: только если совсем впритык

Меры если VRAM 12 GB и меньше:

  • Stheno Q4_K_M (~5 GB) вместо Q5_K_M
  • Skyrim на 1080p вместо 1440p/4K
  • XTTS Low VRAM включить

Структура папок в финале

D:\
├── AI\
│ ├── LM studio\ ← LM Studio + модели
│ └── xtts-api-server-mantella-blackwell\
│ ├── venv\ ← Python окружение
│ ├── speakers\
│ │ └── ru\
│ │ ├── FemaleEvenToned\ ← 10 wav-сэмплов
│ │ ├── MaleEvenToned\
│ │ └── ... (27 папок)
│ └── xtts_api_server\
├── Games\
│ └── ModOrganizer2\ ← MO2 с модами
├── Steam\steamapps\common\
│ └── Skyrim Special Edition\
└── Tools\
├── BAE\ ← BSA extractor
├── Yakitori\ ← fuz → wav конвертер
└── BAE-selected\ ← временно: отобранные .fuz

C:\
├── Python311\ ← Python 3.11
└── ffmpeg\bin\ ← FFmpeg shared 7.1.1

Финальная проверка работоспособности

Заходим в Ривервуд → подходим к Алвору (кузнецу) → жмём B → жмём V, говорим:

"Привет! Как дела с работой?"

Ожидаемое поведение:

  1. ~0.5 сек — Whisper распознаёт
  2. ~0.5 сек — Stheno генерит ответ на русском
  3. ~1-2 сек — XTTS синтезирует голос Алвора
  4. Алвор отвечает оригинальным голосом актёра русской локализации, но с твоим контекстом и в характере кузнеца

Если всё работает — поздравляю, ты собрал самую навороченную AI-NPC сборку
для Skyrim из доступных в 2026.

Кредиты

  • Mantella: art-from-the-machine — основной мод
  • XTTS-сервер для Blackwell: shmitix — Python-форк
  • XTTS v2: Coqui AI — мультиязычная TTS модель
  • Stheno v3.2: Sao10K + Lewdiculous — RP-натренированная Llama 3
  • Whisper: OpenAI — STT
  • LM Studio: удобный GUI для локальных LLM

Гайд составлен на основе двухдневной отладки на реальном железе.