• Stefy Lanza (nextime / spora )'s avatar
    xtts: keep the protocol clean and accept the licence; surya on a pod serves docTR · f0986acb
    Stefy Lanza (nextime / spora ) authored
    XTTS reached its own loader on a pod and died on 'unparseable worker reply'.
    coqui prints an interactive CPML licence prompt to stdout and then blocks on
    input() — on a pipe, that corrupts the JSON protocol and then waits forever.
    
    Two fixes. The service now keeps the real stdout for the protocol and sends
    everything else the process prints to stderr, so no library chatter can reach
    the caller's parser again. And the CPML acceptance travels as COQUI_TOS_AGREED,
    locally and to a pod: configuring an XTTS model at all IS the decision, exactly
    as surya's licence is handled, and the pod inherits it. Verified in the image:
    the load returns clean JSON with the full speaker list.
    
    Surya: 0.22 is a VLM (surya-ocr-2), not a self-contained OCR library. It needs
    a server — vLLM, which it spawns IN DOCKER, or llama-server on a GGUF — and the
    pod image has neither; locally it rides coderai's own vLLM engine. A pod asked
    for surya now serves the request with docTR, which is in the image and has
    passed, and logs why — instead of loading surya, reaching inference, and dying
    on 'docker binary not found'. Surya on a pod belongs with the engine images,
    where a llama-server and the GGUF are the same work as colibri and ds4.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_0182DhR1eFNPQyGmDrpHbedY
    f0986acb
xtts_worker.py 5.16 KB