Перевод манги из изображений в JSON с координатами баблов. Переводит японский текст на русский, определяет позиции речевых пузырей, создаёт JSON файлы для просмотрщика. Используй при работе с мангой, комиксами, визуальными новеллами, переводе изображений с текстом.
Перевод манги из изображений в JSON + просмотрщик.
/manga-translate <путь_к_папке_с_картинками>
Когда пользователь вызывает этот скилл:
pip show opencv-python PyQt5 numpy
Если чего-то нет — установи:
pip install opencv-python PyQt5 numpy
Используй list_directory для получения списка файлов. Отфильтруй jpg, jpeg, png, webp, bmp.
ВАЖНО: обрабатывай страницы строго по одной, в порядке сортировки по имени файла. Не переходи к следующей, пока не создал JSON для текущей. Это предотвратит перепутывание текста между страницами.
Для каждой страницы:
read_file. VLM увидит картинку и сможет определить координаты.Как определять координаты:
Смотри на изображение, которое вернул read_file. Для каждого текстового элемента определи bounding box. Координаты — это доля от размера того изображения, которое ты видишь:
x = pixel_x / display_widthy = pixel_y / display_heightwidth = pixel_width / display_widthheight = pixel_height / display_heightОтступы: добавь 5–10px (в долях) к границам бабла, чтобы подложка viewer'а полностью покрывала текст.
Русский текст горизонтальный — если японский бабл узкий и вертикальный, увеличь ширину бабла в JSON, чтобы русский текст влез. Если текста много — увеличь и высоту.
{
"image": "имя_файла.jpg",
"original_width": 1337,
"original_height": 1920,
"bubbles": [
{
"reading_order": 0,
"x": 0.55,
"y": 0.06,
"width": 0.36,
"height": 0.15,
"text_jp": "японский текст",
"text_ru": "русский перевод"
}
]
}
original_width / original_height — реальный размер файла. Получи через:
python -c "import cv2,numpy as np,sys; img=cv2.imdecode(np.fromfile(sys.argv[1],np.uint8),1); print(img.shape[1],img.shape[0])" "путь_к_файлу"
После создания всех JSON автоматически запусти:
python <skill_base_dir>/viewer.py "<путь_к_папке>"
Где <skill_base_dir> — это директория скилла (на Windows: D:\qwen-code\.qwen\skills\manga-translate\).
На Windows запускай в фоне:
start /b python "<skill_base_dir>\viewer.py" "<путь_к_папке>"
\n)read_file отдельноviewer.py — PyQt5, загрузить папку, наложение перевода.
Зависимости: pip install opencv-python PyQt5 numpy
Горячие клавиши:
| Клавиша | Действие |
|---|---|
| ← → | Пред./след. страница |
| T | Вкл/выкл перевод |
| J | Показать японский текст |
| B | Переключить стиль подложки |
| F | Переключить размер шрифта (мелкий/средний/крупный) |
| +/− | Масштаб |
| Ctrl+0 | Вписать в окно |
| Ctrl+O | Открыть папку |