Skip to main content
Glama
M-T-D-N

koharu-hy-qwen-pipeline

Конвейер Koharu Hy-MT2 + Qwen

Независимый экспериментальный конвейер перевода манги с японского на корейский для Koharu. Этот репозиторий не является официальным проектом Koharu и не является запросом на вклад в вышестоящий проект.

Репозиторий содержит:

  • патч, привязанный к коммиту Koharu a81c5829ea99a45e04580ff97fd6affa81b2db34, который добавляет headless веб-интерфейс, HTTP API и конечную точку MCP, доступные только через loopback;

  • совместимый с OpenAI сайдкар перевода, который выполняет первый проход Hy-MT2, выгружает его, запускает внешне управляемый рецензент Qwen, допускает один целевой проход исправления и завершается с ошибкой на неразрешённых областях;

  • обёртки процессов, которые записывают и впоследствии проверяют точную идентичность процесса перед остановкой или перезапуском Koharu или сайдкара.

Он не содержит весов моделей, страниц манги, корпусов OCR, сгенерированных переводов, частных результатов оценки или среды выполнения Qwen. Частный пилотный проект на 512 страницах / 6 525 областях повлиял на разработку, но ни один из этих исходных материалов или подробных результатов здесь не публикуется.

Архитектура и границы

Koharu pipeline
  -> loopback OpenAI-compatible sidecar
  -> pinned Hy-MT2-7B first translation (CUDA only)
  -> Hy-MT2 process exits and releases VRAM
  -> externally owned Qwen lifecycle starts the reviewer
  -> sparse review, then at most one targeted repair
  -> deterministic validation and Koharu typography update
  -> Qwen lifecycle stops the reviewer

Сайдкар по умолчанию привязывается к loopback. Он отказывается от запасного варианта CPU для Hy-MT2, отказывается переводить, пока Qwen уже запущен, требует, чтобы процесс Qwen сообщал, что он был запущен текущим запросом, сериализует задания GPU и возвращает ошибку, а не молча принимает неразрешённый вывод.

Related MCP server: mcp-i18n

Требования

  • Windows 11 и PowerShell 7

  • Python 3.13

  • инструментарий Rust и зависимости сборки, требуемые Koharu

  • NVIDIA GPU с поддержкой CUDA; в конфигурации разработки использовалась RTX 5090 на 32 ГБ

  • сборка PyTorch с поддержкой CUDA, совместимая с локальным драйвером

  • curl.exe

  • внешний сервер Qwen, совместимый с OpenAI, и скрипт жизненного цикла, описанный ниже

В коде по умолчанию используется идентификатор модели Qwen dirk-qwen3.8-27b-q5 по адресу http://127.0.0.1:8000/v1. Оба значения настраиваются. Веса моделей и их лицензии остаются ответственностью оператора.

Графический лаунчер для Windows

После подготовки Koharu, Python, Hy-MT2 и скрипта жизненного цикла Qwen, как описано ниже, дважды щёлкните:

Launch-Koharu-GUI.cmd

Лаунчер на корейском языке предоставляет встроенные средства выбора файлов и папок. Откройте 고급 실행 설정 один раз и выберите локальный исполняемый файл Python, пропатченный koharu.exe, папку модели Hy-MT2 и скрипт жизненного цикла Qwen. Затем используйте пронумерованные кнопки:

  1. 설정 검사 проверяет локальные пути среды выполнения.

  2. 서비스 시작 запускает loopback-сайдкар и headless Koharu.

  3. 프로젝트 가져오기 создаёт или открывает пустой проект и импортирует выбранный файл или папку. Это не запускает перевод.

  4. 전체 번역 실행 запускает конвейер GPU только после явного подтверждения.

  5. 내보내기 записывает результаты PNG или PSD в выбранную выходную папку.

Web UI 열기 открывает подробный редактор Koharu, 상태 새로고침 сообщает об активном проекте и заданиях, а 안전 종료 использует точные записанные идентичности процессов из репозитория. Закрытие окна лаунчера не останавливает молча работающий сервис.

Специфичные для машины настройки сохраняются в игнорируемый config/local.launcher.json; они не фиксируются. При запуске лаунчер создаёт резервную копию конфигурации Koharu пользователя побайтово, записывает профиль сессии Hy-MT2→Qwen только на время, необходимое для инициализации headless Koharu, и немедленно восстанавливает и проверяет исходные байты. Он отказывается переключать профили, если другой процесс Koharu уже запущен.

Подготовка Koharu

Клонируйте точную вышестоящую ревизию в локальный каталог репозитория vendor/koharu и примените привязанный патч:

git clone https://github.com/mayocream/koharu.git vendor/koharu
git -C vendor/koharu checkout a81c5829ea99a45e04580ff97fd6affa81b2db34
pwsh -File .\scripts\apply-koharu-patch.ps1 -KoharuCheckout .\vendor\koharu
cargo build --manifest-path .\vendor\koharu\Cargo.toml -p koharu

Скрипт приложения отклоняет другой коммит, грязный checkout или патч, который не проходит git apply --check.

Подготовка Python и Hy-MT2

Создайте виртуальную среду, принадлежащую репозиторию. Установите сборку PyTorch с CUDA, используя команду, подходящую для локального драйвера, затем установите остальные закреплённые пакеты:

python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
# Install a compatible CUDA build of PyTorch here.
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe .\scripts\download-model.py hy-mt2-7b

download-model.py загружает только ревизию, записанную в config/model-lock.json, и записывает локальный манифест SHA-256. Каталог модели игнорируется Git.

Контракт жизненного цикла Qwen

Аргумент -QwenLifecycleScript обязателен и специфичен для машины. Его скрипт должен поддерживать:

  • -Operation status -Summary, возвращающий JSON, в котором поля qwen.state и comfyui сообщают off до запуска конвейера;

  • -Operation start-qwen, возвращающий JSON с started_by_request: true только когда этот запрос владеет запущенным процессом Qwen;

  • -Operation stop-qwen, останавливающий только этот принадлежащий процесс и возвращающий JSON.

Реализация жизненного цикла намеренно не включена в комплект, поскольку среды выполнения Qwen, команды запуска, расположение моделей и политика совместного использования GPU различаются в зависимости от машины.

Настройка и запуск

При прямом использовании скриптов командной строки настройте совместимого с OpenAI провайдера Koharu на использование модели koharu-hy-qwen-v1 и базового URL http://127.0.0.1:4020/v1. Графический лаунчер временно применяет этот профиль и восстанавливает исходные настройки пользователя после инициализации headless Koharu.

Запустите и сайдкар, и пропатченный Koharu:

pwsh -File .\scripts\start.ps1 `
  -QwenLifecycleScript C:\path\to\your\Invoke-QwenLifecycle.ps1

Затем откройте http://127.0.0.1:4010/. JSON API находится в корне /api/v1, а конечная точка MCP JSON-RPC — /mcp.

Остановите только процессы, записанные этим репозиторием:

pwsh -File .\scripts\stop.ps1

stop.ps1 проверяет каждый записанный путь к исполняемому файлу, время запуска, родительский PID, время создания и полную командную строку перед обращением к PID. Если идентичность изменилась, он сохраняет состояние и отказывается от остановки.

Проверка

Запустите переносимые проверки:

.\.venv\Scripts\python.exe -m unittest service.test_server

$scripts = Get-ChildItem .\scripts -Filter *.ps1
foreach ($script in $scripts) {
  $tokens = $null
  $errors = $null
  [void][System.Management.Automation.Language.Parser]::ParseFile($script.FullName, [ref]$tokens, [ref]$errors)
  if ($errors.Count) { throw ($errors | Out-String) }
}

Для пропатченного checkout Koharu:

cargo test --manifest-path .\vendor\koharu\Cargo.toml -p koharu-app api::tests
cargo test --manifest-path .\vendor\koharu\Cargo.toml -p koharu-pipeline onomatopoeia_becomes_a_sound_effect_text_layer
cargo test --manifest-path .\vendor\koharu\Cargo.toml -p koharu-translator serializes_optional_koharu_region_metadata
cargo build --manifest-path .\vendor\koharu\Cargo.toml -p koharu

Рабочий процесс CI запускает переносимые тесты Python, компиляцию Python и проверки синтаксического анализа PowerShell. Полные сборки Koharu и тесты GPU/моделей остаются локальными, поскольку требуют специфичных для платформы нативных и модельных входных данных.

Ограничения

  • Патч намеренно привязан к одному коммиту Koharu; не утверждается, что он применим к более поздним ревизиям.

  • Конвейер в настоящее время ориентирован на текст с японского на корейский и фиксированную политику ролей леттеринга.

  • Сквозная работа требует предоставленной оператором реализации жизненного цикла Qwen и модели.

  • Автоматизированная и живая функциональная проверка не заменяет ручную проверку исходного кода или независимый аудит безопасности.

Раскрытие информации об ИИ-разработке

Большинство последующих изменений были сгенерированы и доработаны OpenAI Codex на основе требований пользователя и итеративных запросов на принятие. Владелец репозитория не проверял исходный код вручную. Проверка основана на автоматизированных тестах и живом функциональном тестировании в среде Windows/Codex владельца. Независимый сторонний аудит кода или безопасности не проводился.

Короче: сгенерировано ИИ, протестировано пользователем, не проверено вручную.

Атрибуция вышестоящего проекта и лицензия

Патч Koharu основан на Koharu от mayocream и участников на точном коммите, указанном выше. См. THIRD_PARTY_NOTICES.md для границ зависимостей и атрибуции. Этот репозиторий предлагается на ваш выбор под лицензией Apache License 2.0 или MIT License; см. LICENSE-APACHE и LICENSE-MIT.

Related MCP Connectors

Related MCP Servers