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

koharu-hy-qwen-pipeline

Koharu Hy-MT2 + Qwen-Pipeline

Eine unabhängige, experimentelle japanisch-zu-koreanisch Manga-Übersetzungspipeline für Koharu. Dieses Repository ist kein offizielles Koharu-Projekt und keine Upstream-Beitragsanfrage.

Das Repository enthält:

  • einen Patch, der auf den Koharu-Commit a81c5829ea99a45e04580ff97fd6affa81b2db34 festgepinnt ist und eine reine Loopback-Headless-Web-UI, HTTP-API und einen MCP-Endpunkt hinzufügt;

  • einen OpenAI-kompatiblen Übersetzungs-Sidecar, der einen festgepinnten Hy-MT2-Erstdurchlauf ausführt, ihn entlädt, einen extern verwalteten Qwen-Reviewer startet, einen gezielten Reparaturdurchlauf erlaubt und bei ungelösten Regionen sicher fehlschlägt;

  • Prozess-Wrapper, die die exakte Prozessidentität aufzeichnen und später verifizieren, bevor Koharu oder der Sidecar gestoppt oder neu gestartet werden.

Es enthält keine Modellgewichte, Manga-Seiten, OCR-Korpora, generierte Übersetzungen, private Auswertungsergebnisse oder eine Qwen-Laufzeit. Eine private Pilotstudie mit 512 Seiten / 6.525 Regionen hat die Entwicklung informiert, aber keines dieser Quellmaterialien oder detaillierten Ergebnisse wird hier veröffentlicht.

Architektur und Grenzen

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

Der Sidecar bindet standardmäßig an Loopback. Er verweigert CPU-Fallback für Hy-MT2, verweigert die Übersetzung, während Qwen bereits läuft, verlangt, dass der Qwen-Prozess meldet, dass er von der aktuellen Anfrage gestartet wurde, serialisiert GPU-Jobs und gibt einen Fehler zurück, anstatt ungelöste Ausgaben stillschweigend zu akzeptieren.

Related MCP server: mcp-i18n

Anforderungen

  • Windows 11 und PowerShell 7

  • Python 3.13

  • Rust-Toolchain und die von Koharu benötigten Build-Abhängigkeiten

  • eine CUDA-fähige NVIDIA-GPU; die Entwicklungskonfiguration verwendete eine 32-GB-RTX-5090

  • einen CUDA-fähigen PyTorch-Build, der mit dem lokalen Treiber kompatibel ist

  • curl.exe

  • einen externen OpenAI-kompatiblen Qwen-Server und ein unten beschriebenes Lebenszyklus-Skript

Der Code verwendet standardmäßig die Qwen-Modell-ID dirk-qwen3.8-27b-q5 unter http://127.0.0.1:8000/v1. Beide Werte sind konfigurierbar. Modellgewichte und deren Lizenzen bleiben in der Verantwortung des Betreibers.

Windows-GUI-Launcher

Nachdem Koharu, Python, Hy-MT2 und das Qwen-Lebenszyklus-Skript wie unten beschrieben vorbereitet wurden, doppelklicken Sie:

Launch-Koharu-GUI.cmd

Der koreanischsprachige Launcher bietet native Datei- und Ordnerauswahl. Öffnen Sie einmal 고급 실행 설정 und wählen Sie die lokale Python-Ausführungsdatei, die gepatchte koharu.exe, den Hy-MT2-Modellordner und das Qwen-Lebenszyklus-Skript. Verwenden Sie dann die nummerierten Schaltflächen:

  1. 설정 검사 validiert die lokalen Laufzeitpfade.

  2. 서비스 시작 startet den Loopback-Sidecar und das headless Koharu.

  3. 프로젝트 가져오기 erstellt oder öffnet ein leeres Projekt und importiert die ausgewählte Datei oder den ausgewählten Ordner. Dies startet keine Übersetzung.

  4. 전체 번역 실행 startet die GPU-Pipeline erst nach einer expliziten Bestätigung.

  5. 내보내기 schreibt PNG- oder PSD-Ergebnisse in den ausgewählten Ausgabeordner.

Web UI 열기 öffnet den detaillierten Editor von Koharu, 상태 새로고침 meldet das aktive Projekt und die Jobs, und 안전 종료 verwendet die exakt aufgezeichneten Prozessidentitäten des Repositories. Das Schließen des Launcher-Fensters stoppt einen laufenden Dienst nicht stillschweigend.

Maschinenspezifische Auswahlmöglichkeiten werden in der ignorierten Datei config/local.launcher.json gespeichert; sie werden nicht committet. Beim Start sichert der Launcher die Koharu-Konfiguration des Benutzers bytegenau, schreibt das Hy-MT2→Qwen-Sitzungsprofil nur lange genug, damit das headless Koharu initialisiert werden kann, und stellt die ursprünglichen Bytes sofort wieder her und verifiziert sie. Er weigert sich, Profile zu wechseln, wenn bereits ein anderer Koharu-Prozess läuft.

Koharu vorbereiten

Klonen Sie die exakte Upstream-Revision in das repository-lokale Verzeichnis vendor/koharu und wenden Sie den festgepinnten Patch an:

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

Das Anwendungsskript lehnt einen anderen Commit, einen unsauberen Checkout oder einen Patch ab, der git apply --check nicht besteht.

Python und Hy-MT2 vorbereiten

Erstellen Sie eine repository-eigene virtuelle Umgebung. Installieren Sie einen CUDA-PyTorch-Build mit dem für den lokalen Treiber geeigneten Befehl und installieren Sie dann die restlichen festgepinnten Pakete:

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 lädt nur die in config/model-lock.json aufgezeichnete Revision herunter und schreibt ein lokales SHA-256-Manifest. Das Modellverzeichnis wird von Git ignoriert.

Qwen-Lebenszyklus-Vertrag

Das Argument -QwenLifecycleScript ist obligatorisch und maschinenspezifisch. Sein Skript muss unterstützen:

  • -Operation status -Summary, das JSON zurückgibt, dessen Felder qwen.state und comfyui vor dem Pipeline-Start off melden;

  • -Operation start-qwen, das JSON mit started_by_request: true nur dann zurückgibt, wenn diese Anfrage den gestarteten Qwen-Prozess besitzt;

  • -Operation stop-qwen, das nur diesen eigenen Prozess stoppt und JSON zurückgibt.

Die Lebenszyklus-Implementierung ist bewusst nicht gebündelt, da sich Qwen-Laufzeiten, Startbefehle, Modellspeicherorte und GPU-Freigaberichtlinien von Maschine zu Maschine unterscheiden.

Konfigurieren und ausführen

Wenn Sie die Befehlszeilenskripte direkt verwenden, konfigurieren Sie den OpenAI-kompatiblen Provider von Koharu so, dass er das Modell koharu-hy-qwen-v1 und die Basis-URL http://127.0.0.1:4020/v1 verwendet. Der GUI-Launcher wendet dieses Profil vorübergehend an und stellt die ursprünglichen Benutzereinstellungen wieder her, nachdem das headless Koharu initialisiert wurde.

Starten Sie sowohl den Sidecar als auch das gepatchte Koharu:

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

Öffnen Sie dann http://127.0.0.1:4010/. Die JSON-API ist unter /api/v1 verwurzelt, und der MCP-JSON-RPC-Endpunkt ist /mcp.

Stoppen Sie nur die von diesem Repository aufgezeichneten Prozesse:

pwsh -File .\scripts\stop.ps1

stop.ps1 validiert jeden aufgezeichneten ausführbaren Pfad, die Startzeit, die übergeordnete PID, die Erstellungszeit und die vollständige Befehlszeile, bevor es eine PID berührt. Wenn sich die Identität geändert hat, behält es den Zustand bei und verweigert den Stopp.

Verifizierung

Führen Sie die portablen Prüfungen aus:

.\.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) }
}

Für den gepatchten Koharu-Checkout:

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

Der CI-Workflow führt die portablen Python-Tests, die Python-Kompilierung und PowerShell-Parser-Prüfungen aus. Vollständige Koharu-Builds und GPU-/Modelltests bleiben lokal, da sie plattformspezifische native und Modell-Eingaben erfordern.

Einschränkungen

  • Der Patch ist absichtlich auf einen einzigen Koharu-Commit festgepinnt; es wird nicht behauptet, dass er auf spätere Revisionen anwendbar ist.

  • Die Pipeline zielt derzeit auf japanisch-zu-koreanischen Text und eine feste Lettering-Rollenrichtlinie ab.

  • Der End-to-End-Betrieb erfordert eine vom Betreiber bereitgestellte Qwen-Lebenszyklus-Implementierung und ein Modell.

  • Automatisierte und Live-Funktionsvalidierung ersetzen keine manuelle Quellcode-Überprüfung oder ein unabhängiges Sicherheitsaudit.

Offenlegung der KI-Entwicklung

Die meisten nachgelagerten Änderungen wurden von OpenAI Codex aus benutzerdefinierten Anforderungen und iterativen Akzeptanzanfragen generiert und überarbeitet. Der Repository-Besitzer hat den Quellcode nicht manuell überprüft. Die Validierung basiert auf automatisierten Tests und Live-Funktionstests in der Windows/Codex-Umgebung des Besitzers. Es wurde kein unabhängiges Drittanbieter-Code- oder Sicherheitsaudit durchgeführt.

Kurz gesagt: KI-generiert, benutzergetestet, nicht manuell codeüberprüft.

Upstream-Zuschreibung und Lizenz

Der Koharu-Patch basiert auf Koharu von mayocream und Mitwirkenden am oben genannten exakten Commit. Siehe THIRD_PARTY_NOTICES.md für Abhängigkeitsgrenzen und Zuschreibung. Dieses Repository wird unter Ihrer Wahl der Apache-Lizenz 2.0 oder der MIT-Lizenz angeboten; siehe LICENSE-APACHE und LICENSE-MIT.

Related MCP Connectors

Related MCP Servers