Skip to content

About

A lightweight, offline-first screen translator designed for visual novels and games with local LLMs and OCR.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

ScreenTale

Умный и безопасный экранный AR-компаньон для сюжетных игр и визуальных новелл

License: GPL v3 Python Platform Status


ScreenTale Logo

ScreenTale — это легковесный оверлей-переводчик без рекламы и платных лимитов. Создан геймером для геймеров, чтобы с комфортом читать сюжет в непереведенных визуальных новеллах, JRPG, гачах и RPG-играх как через облачные сервисы, так и полностью офлайн с мощью современных локальных нейросетей.


Ключевые особенности

  • In-Place AR-Оверлей (Бесшовное замещение текста): Режим нативного перевода прямо поверх интерфейса игры или бабблов манги.
    • Smart Tint: Автоматический замер цвета фона по 4 точкам скрывает оригинальный английский/японский текст матовой подложкой в тон игре.
    • Пространственный наклон (atan2): Текст перевода поворачивается под тем же углом, что и оригинальные надписи в кадре.
    • Автоподбор шрифта ($O(\log N)$): Бинарный расчёт кегля под размер оригинального диалогового окна с вертикальным авто-ростом плашки.
    • Индикатор «ИИ думает» (LookUpper-style): При точечном клике прямо под курсором парит янтарная капсула с танцующими звёздами ✦ ✦ ✦, плавно сменяясь переводом с упругой пружинной анимацией (Spring Pop-In). - (еще в разработке)
  • Локальный LLM-перевод (llama.cpp + GGUF): Полноценные языковые модели прямо на вашей видеокарте или процессоре! Перевод художественного уровня, сохранение контекста сцены, сленга и характера персонажей без утечки данных в сеть.
  • Автоматический менеджер рантаймов: Никакой ручной возни с C++ библиотеками. ScreenTale сам определяет железо (NVIDIA CUDA 12, Vulkan или CPU AVX2), скачивает официальные бинарники с GitHub и проводит скрытый Smoke Test перед запуском.
  • Каталог GGUF-моделей в 1 клик: Встроенный загрузчик проверенных моделей прямо в Настройках (Hy-MT2 1.8B, Qwen 2.5 7B, Sakura 4B Galgame).
  • Сверхбыстрый нативный OCR: Мгновенное чтение через системный Windows OCR (WinRT API) за 10–25 мс с нулевой нагрузкой на видеокарту.
  • RapidOCR & Вертикальный текст (Tategaki): Специализированный ONNX-движок для сложных стилизованных шрифтов и традиционных японских вертикальных столбцов (чтение сверху-вниз, справа-налево в манге и новеллах).
  • Автономный парящий мини-HUD: Открепляемый пульт управления с ручкой ⋮⋮, 4-сторонним магнитным докингом к углам экрана и защитой от перекрытия текста.
  • Управление в 1 клик мыши:
    • СКМ (Колёсико): Мгновенный точечный перевод фразы или кнопки под курсором.
    • ПКМ: Быстрое растворение активных плашек перевода с экрана.
  • 100% безопасность для античитов (Zero-Risk): Работает исключительно через сквозной системный слой (HTTRANSPARENT). Не внедряется в память процессов и DirectX/OpenGL — бан исключен.
  • Режим стримера (Anti-Loop): Защита от захвата через SetWindowDisplayAffinity — плашки перевода видны только вам, но скрыты от записи OBS, Discord и скриншотеров (ShareX).

Дорожная карта (Roadmap)

✅ Завершено

v0.5.0 — Windows OCR & Floating HUD

  • [arch] Архитектура стратегий ocr_engines.py: Базовый класс BaseOcrEngine для бесшовного переключения движков.
  • [feat] Нативный Windows OCR (WinRT API): Чтение кадра за 10–25 мс, 0 МБ VRAM.
  • [feat] 🛸 Автономный парящий мини-HUD: Открепляемый тулбар с ручкой ⋮⋮, магнитным докингом к 4 углам и физикой коллизий.
  • [qol] ⏸️ Пауза авто-режима (Alt + P): Заморозка сканирования на время боя с сохранением рамки.
  • [qol] 👻 Ghost Mode (Alt + G): Сквозные клики сквозь окно перевода прямо в игру.

v0.5.1 — RapidOCR & Tategaki

  • [feat] Интеграция RapidOCR (PaddleOCR на ONNX Runtime): Высокая точность на сложных игровых шрифтах.
  • [feat] Поддержка вертикального текста (Tategaki): Автоматическая сортировка японских столбцов (справа-налево, сверху-вниз) для новелл и бабблов манги.
  • [ui] Переключатель направления: Тумблер [ Горизонтальный | Вертикальный (Tategaki) ] в Настройках.

v0.6.1 — LLM Foundation & Runtime Orchestrator

  • [feat] Интеграция C++ рантайма llama.cpp: Запуск GGUF-квантов через llama-server.exe с привязкой к Windows Job Object (100% защита от процессов-зомби).
  • [feat] Автоматический менеджер рантаймов (runtime_manager.py):
    • Аппаратное автоопределение железа (NVIDIA CUDA / Vulkan / CPU AVX2).
    • Фоновое скачивание с официальных релизов GitHub, распаковка и скрытый Smoke Test (--version).
  • [feat] Каталог GGUF-моделей в Настройках: Загрузка в 1 клик моделей Hy-MT2 1.8B, Qwen 2.5 7B, Sakura 4B.
  • [perf] Мониторинг VRAM и скорости: Отображение реального потребления видеопамяти через драйвер NVML и замер скорости холодного старта LLM в VRAM.

v0.6.2 — Global Any-to-Any & Multi-DPI

  • [feat] Честная мультиязычность «Любой ➔ Любой»:
    • Золотой пул из 12 языков: RU, EN, JA, ZH, KO, ES, PT-BR, FR, DE, IT, PL, TR.
    • Быстрая смена направления перевода [ Исходный ] ⇄ [ Целевой ] на лету.
  • [fix] 🖥️ Мультимониторный DPI (devicePixelRatio): Корректный расчёт координат на сложных сетапах с разным масштабированием (4K 150% + 1080p 100%).

v0.7.0 — In-Place AR-Оверлей & Эстетика

  • [feat] Полноэкранный AR-холст (InPlaceCanvas): Нативное замещение текста прямо в игре через прозрачный слой Windows (HTTRANSPARENT).
  • [feat] Маскировка «Хамелеон» и наклон atan2: Точный подбор цвета фона по 4 точкам и пространственный поворот плашек.
  • [feat] Мульти-бабблы без склеивания: Независимая посадка до 12 значимых реплик без превращения экрана в сплошной монолит.
  • [ui] Индикатор LookUpper & Spring Pop-In: Парящая капсула со звёздами ✦ ✦ ✦ при клике и упругая микро-пружинка при появлении перевода.
  • [ui] Глобальный тумблер в сайдбаре: Быстрое переключение между [ 💬 Чат ] и [ 🎯 In-Place ].
  • [feat] Интеграция мультиязычности UI (locales/): Полная локализация интерфейса программы (EN / RU) с поддержкой кастомных JSON-переводов.
  • [qol] Управление мышью: Быстрый точечный перевод по клику на Колёсико (СКМ) и очистка по ПКМ.

Будущие мажорные вехи

  • v1.0+ — Пользовательские глоссарии с автоопределением игры: Автоматическое распознавание активного окна игры и подгрузка словарей терминов/имён сообщества (Sinners → Грешники, Dante → Данте).

⌨Управление и горячие клавиши

Сочетание / Клик Действие
Alt + Q 1-Click скан окна игры (в режиме In-Place) / Перевод выделенной области
Alt + W Включить / выключить авто-режим субтитров по рамке
Клик СКМ (Колёсико) Точечный перевод фразы или кнопки под курсором мыши
Клик ПКМ Мгновенно убрать активные плашки перевода с экрана
Alt + P Пауза авто-режима (окно скрывается, тулбар остаётся)
Ctrl + ~ Быстро скрыть / показать окно перевода (в режиме Чата)
Alt + C Экстренно остановить перевод и очистить очередь
Alt + X Очистить историю диалогов
Alt + G Включить / выключить сквозной клик в игру (Ghost mode)

(Все клавиатурные сочетания можно свободно переназначить в Настройках).


Установка и запуск

  1. Скачайте архив ScreenTale_v0.7-beta.zip из раздела Releases.
  2. Распакуйте архив в любую удобную папку.
  3. Запустите ScreenTale.exe.
  4. Выберите режим работы в левом сайдбаре:
    • [ In-Place ] — для нативного замещения диалогов прямо в игре.
    • [ Чат ] — для классического окна истории со скроллом.
  5. Во вкладке «Перевод» настройте движок:
    • Быстрый облачный: Google Translate.
    • Локальный ИИ: Выберите LLM, нажмите «Установить движок» (программа сама подберет CUDA или Vulkan) и скачайте проверенную модель (например, Hy-MT2 1.8B или Qwen 2.5 7B).

Сборка из исходников (для разработчиков)

  1. Клонируйте репозиторий:
    git clone https://github.com/Xilleet/ScreenTale.git
    cd ScreenTale
    
  2. Создайте и активируйте виртуальное окружение:
    python -m venv .venv
    .venv\Scripts\activate
    
  3. Установите зависимости:
    pip install -r requirements.txt
    
  4. Запустите приложение:
    python main.py
    

# Разработано с ❤️ для любителей хороших игр, сюжетов и историй.
```

About

A lightweight, offline-first screen translator designed for visual novels and games with local LLMs and OCR.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages