Epub ai translate
Translate user-provided EPUB or PDF books into Russian with a full AI model, chapter/chunk context, a shared glossary, resumable checkpoints, preserved images, book-quality PDF output, and a final vision layout QA. Use when the user asks to translate an EPUB, PDF, e-book, or book into Russian or create a Russian PDF.From its SKILL.md
npx -y skills add bgevorkian/agent-skills --skill epub-ai-translateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.9 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it
EPUB/PDF AI Translate
Переводит предоставленные пользователем EPUB или PDF на русский через полноценную AI-модель. Поддерживает общий глоссарий, контекстные XHTML/semantic chunks, checkpoints/resume, иллюстрации, книжную перевёрстку и финальный vision layout-QA.
Единый запуск
Из каталога skill:
cd /d %USERPROFILE%\.pi\agent\skills\epub-ai-translate
uv run --python 3.13 --with beautifulsoup4 --with lxml --with pypdf --with pymupdf python scripts\translate_book.py "C:\path\book.epub-or-pdf" --model openai-codex/gpt-5.4 --workers 3 --glossary "C:\path\glossary.txt"
Unix:
cd ~/.pi/agent/skills/epub-ai-translate
uv run --python 3.13 --with beautifulsoup4 --with lxml --with pypdf --with pymupdf python scripts/translate_book.py "/path/book.epub-or-pdf" --model openai-codex/gpt-5.4 --workers 3 --glossary "/path/glossary.txt"
Dispatcher выбирает pipeline по расширению:
- EPUB input → отдельные русские EPUB + PDF, исходные XHTML/CSS/изображения сохраняются.
- PDF input с text layer → semantic extraction, удаление повторных headers/footers/page numbers, перевод контекстными chunks, reflow в новый русский PDF.
- Scanned/image-only PDF → остановка без повреждений; сначала нужен OCR/vision extraction.
Format-specific help:
python scripts\translate_epub.py --help
python scripts\translate_pdf.py --help
Python всегда запускать через uv run --python 3.13, не напрямую.
Основные параметры
--output-pdf PATH, для EPUB также--output-epub PATH.--workers N— безопасный default3.--model PROVIDER/MODEL— defaultopenai-codex/gpt-5.4; не переходить на mini, если качество важнее скорости.--glossary PATH— общий UTF-8 словарь имён и терминов.--style TEXT— возраст, жанр, тон и стилистические правила.--work-dir PATH— каталог checkpoints.--restart— удалить checkpoints и начать заново.--force— разрешить перезапись output.- EPUB only:
--epub-only.
Обязательный workflow
- Проверить input (
.epub/.pdf) и целевой формат. По умолчанию — русский PDF; для EPUB также сохранить русский EPUB. - Для PDF проверить text layer. Если pipeline сообщает об отсутствии надёжного текста, не имитировать перевод: согласовать OCR/vision pass.
- Подготовить glossary с каноническими именами, местами, фракциями, техникой и официальной терминологией франшизы.
- Для художественной книги использовать полную модель и
--style, соответствующий возрасту, жанру и тону. - Запускать как длительную фоновую задачу: pipeline порождает Pi agents, поэтому
bg_runдолжен иметьisAgent: true. - Следить за
bg_status/bg_logs; повторный запуск с тем же work-dir продолжает по checkpoints. - Проверить translation pairs/checkpoint JSON и межглавную согласованность имён/терминов.
- Обязательно выполнить layout-QA:
Передатьuv run --python 3.13 --with pymupdf --with pillow python scripts\layout_qa.py "C:\path\translated.pdf"layout-report.jsonи все contact sheets отдельной полной vision-модели по layout-qa prompt. Долгий Pi-review запускать черезbg_run,isAgent: true. - Для точечных исправлений:
Скрипт центрирует только страницы, уже ставшие image-only. Не выносить все картинки на отдельные страницы глобальным CSS.uv run --python 3.13 --with pymupdf python scripts\polish_pdf.py input.pdf output.pdf [--drop-page N] - Повторять vision-QA до
pass: 0 severe, 0 moderate либо moderate явно приняты как намеренная книжная композиция. - Проверить PDF magic/размер/число страниц, долю кириллицы и визуально первые + аномальные страницы. Затем сообщить полные пути.
Правила качества
- Литературный AI-перевод, не посегментный машинный перевод.
- EPUB переводится целыми XHTML-разделами; PDF — semantic chunks с несколькими страницами и общей терминологией.
- Не суммировать, не сокращать, не цензурировать и не добавлять текст.
- Сохранять диалоги, регистр, эмоциональные оттенки, звукоподражания и авторский темп.
- Не переводить ISBN, URL и товарные знаки вне обычной прозы.
- Не менять source-файл; output всегда отдельный.
- Нормальный пробел в конце главы допустим; глава начинается с новой страницы.
- Текст внутри изображений/обложки не переводится без отдельного OCR/image-editing этапа.
EPUB technical rules
- XHTML парсить как XML; не считать
Doctype, declaration, comments или CDATA переводимымNavigableString. - Модель переводит только временные
<t id="...">; каждый id должен вернуться ровно один раз. mimetypeпри упаковке EPUB должен идти первым без сжатия.- Каждый spine-XHTML печатать отдельно и затем объединять PDF: глобальное объединение CSS вызывает конфликты.
- Ограничивать image-only cover областью A4, чтобы она не разрывалась.
PDF input rules
- Использовать PyMuPDF
Page.get_text("dict", sort=True)и координаты blocks/spans для reading order и семантики. - Удалять только статистически повторяющиеся marginal headers/footers и page numbers; не удалять редкий авторский текст.
- Heading определять по размеру/жирности и словам
Chapter/Part/Book; обычный body reflow в<p>. - Изображения сохранять по позиции чтения; мелкие повторные декорации можно дедуплицировать.
- PDF reflow не обещает пиксельное совпадение с исходником: русский текст имеет другую длину, поэтому приоритет — читаемая книжная композиция.
- Частичный model response никогда не принимать: retry до трёх раз, затем fail без перезаписи source.
Lessons learned
- Не навязывать
page-breakвсем иллюстрациям и не повышать глобальноwidows/orphans: это создаёт лишние страницы. - Vision-QA должен отличать намеренный chapter-end whitespace от ошибки.
- Windows CMD портит Unicode paths; для путей с кириллицей передавать их через Python wrapper, а не CMD arguments.
What ships with it: 11 files
60.1 KB alongside SKILL.md, 8 of them executable
references/
- layout-qa-prompt.md1.4 KB
- pdf-input.md2.3 KB
- workflow.md4.1 KB
scripts/
- epub_to_pdf.pyruns9.1 KB
- layout_qa.pyruns4.7 KB
- polish_pdf.pyruns2.5 KB
- translate_book.pyruns891 B
- translate_epub.pyruns16.0 KB
- translate_pdf.pyruns16.2 KB
tests/
- test_markup.pyruns1.4 KB
- test_pdf_extract.pyruns1.6 KB