Enhancr

Enhancr позволяет повысить плавность видео с помощью AI-интерполяции кадров, увеличить разрешение нейросетевым апскейлом, убрать часть шума и блочной компрессии в режиме восстановления, а затем сохранить результат с выбранным кодеком и контейнером. Задачи можно ставить в очередь, объединять интерполяцию, масштабирование и восстановление в цепочку, обрезать исходник до обработки и контролировать ход работы через предпросмотр, счётчик кадров, FPS и ETA.

Рабочее окно разделено на Interpolation, Upscaling и Restoration. У всех трёх режимов похожая логика: выбирается исходный файл и каталог результата, задаются параметры кодирования FFmpeg, контейнер, AI-движок и специфичные для задачи параметры. Это удобно, если нужно обработать несколько роликов одинаковым способом: настройки не приходится заново искать в отдельных утилитах, а подготовленные задания отправляются в общую очередь.

Главное отличие Enhancr от обычного видеоконвертера в том, что перекодирование здесь обслуживает нейросетевую обработку, а не является самоцелью. Качество и скорость зависят не только от CRF, пресета кодека или битрейта, но и от выбранной модели, backend-а инференса, точности FP16, числа concurrent streams, размеров TensorRT engine и tiling. Поэтому оптимальная схема работы начинается с понимания того, что именно требуется исправить: движение, разрешение или дефекты изображения.

Скачать Enhancr

Оценка 9.7Рекомендуем
  • Конвертация видео
  • Сжатие файлов
  • Просто для новичков
Скачать бесплатно на Windows
Лучшая альтернатива
Enhancr
Оценка 8.5
  • TensorRT только для NVIDIA
  • Интерполяция только 2×
  • Tiling снижает скорость
Скачать Enhancr
Загрузка начнётся после нажатия

Что делает Enhancr

Мастер установки Enhancr перед началом установки

Enhancr закрывает три связанные задачи обработки видео. Interpolation синтезирует промежуточные кадры и тем самым увеличивает частоту кадров. Upscaling восстанавливает детали при увеличении разрешения с помощью моделей сверхразрешения. Restoration работает без обязательного увеличения кадра: его назначение — шумоподавление, ослабление блоков компрессии и другие варианты восстановления с моделями DPIR, ScuNET и RealESRGAN 1x. Эти операции можно выполнять независимо либо последовательно.

В режиме интерполяции программа использует семейства RIFE, CAIN и GMFSS. Для масштабирования предусмотрены RealESRGAN, RealCUGAN, ShuffleCUGAN и SwinIR. В восстановлении используются DPIR, ScuNET и варианты RealESRGAN с коэффициентом 1x. Набор движков различается по вычислительному backend-у: встречаются NCNN, DirectML, TensorRT и PyTorch. Это важнее названия модели само по себе, потому что один и тот же алгоритм на разных backend-ах может предъявлять разные требования к GPU, памяти и подготовке engine-файлов.

Enhancr читает кадры непосредственно из исходного видео и кодирует результат по ходу работы, поэтому типичный процесс не требует заранее выгружать всю последовательность в тысячи PNG-файлов. При необходимости, наоборот, в списке контейнеров есть вариант Frame Sequence. Очередь позволяет подготовить несколько задач, а функция Chain — связать Interpolation, Upscaling и Restoration в один последовательный маршрут. Для длинного материала это удобнее, чем вручную запускать три отдельных экспорта и каждый раз подставлять результат предыдущего этапа.

Интерфейс и логика рабочего пространства

Выбор каталога и ярлыков в установщике Enhancr

Слева расположены основные разделы Interpolate, Upscale, Restore, Models и Settings. В верхней части отображается текущий проект и доступ к очереди. Центральная область меняется в зависимости от выбранной операции, но базовые поля сохраняются: Input video, Output path, ffmpeg parameters, Output video container и Engine. Нижняя часть отведена под очередь и прогресс, а отдельные информационные панели показывают свойства выбранного медиа и предварительный просмотр.

После выбора файла Enhancr выводит имя, формат, размер на диске, размеры кадра, частоту кадров, длительность, предполагаемый контейнер вывода, количество кадров и битрейт. Это не заменяет специализированный анализатор потока, но помогает сразу заметить очевидную ошибку: например, если вместо 1920×1080 выбран вертикальный клип, частота кадров отличается от ожидаемой или в очередь случайно попал другой файл. Для AI-обработки разрешение особенно важно, потому что оно напрямую влияет на VRAM и время построения TensorRT engine.

Встроенный Preview может показывать ход обработки без отдельного проигрывателя. В интерфейсе предусмотрены текущий таймкод, длительность, номер кадра и общее количество кадров. Рядом с общей кнопкой Enhance video(s) есть Realtime Player, рассчитанный на просмотр результата по мере инференса при достаточной производительности. На слабом GPU его лучше не считать бесплатной функцией: аппаратное декодирование, предварительное кодирование и показ кадров тоже занимают ресурсы.

Терминал в нижней части окна выводит технический ход операции. Именно его полезно смотреть, если прогресс перестал двигаться, TensorRT строит engine дольше обычного, FFmpeg отвергает параметры или итоговый mux не создаётся. В обычной работе достаточно прогресс-бара, FPS и ETA, но при ошибках терминальный вывод позволяет отделить проблему нейросети от проблемы кодирования или контейнера.

Проекты .enhncr и сохранение состояния

Загрузка компонентов Enhancr установщиком

Enhancr использует проектный подход. Файл проекта имеет расширение .enhncr и нужен не только для группировки роликов по названию. В проекте сохраняется состояние рабочего пространства, включая выбранные исходники, пути вывода и строки FFmpeg. Благодаря этому можно закрыть программу и позже вернуться к подготовленной конфигурации, не вспоминая вручную, какой CRF или какой каталог использовался.

Новый проект создаётся с начального экрана командой Create a new enhancr project. Существующий проект можно открыть оттуда же либо через значок папки в верхней панели. Для разовой короткой задачи достаточно одного проекта, но при нескольких типах исходников практичнее разделять их. Например, отдельный проект для анимации с GMFSS и frameskip не будет смешиваться с проектом для старых домашних записей, где приоритетом являются DPIR и умеренный апскейл.

Проект не следует воспринимать как контейнер с копией исходного видео: это сохранённая конфигурация. Если переместить или удалить исходный файл, сама запись проекта не превратит его в доступный ресурс. По той же причине при переносе работы между дисками полезно сохранять понятную структуру папок и не использовать временные пути, которые очищаются системой.

Импорт видео и пакетная подготовка

Завершение установки Enhancr

Файл можно выбрать стандартным диалогом или перетащить в область программы. Поле импорта допускает множественный выбор, а очередь рассчитана на последовательную обработку нескольких элементов. Для серии клипов это удобнее, чем запускать программу для каждого файла отдельно: сначала настраивается режим, затем ролики добавляются в очередь, после чего запускается Enhance video(s).

Enhancr умеет принимать GIF и перед инференсом преобразует такой источник во временное видео. Для обычных контейнеров кадры читает FFmpeg/VapourSynth-связка. Если исходник имеет переменную частоту кадров, программа получает фактический framerate из медиаданных и передаёт его в дальнейшую обработку; это необходимо, чтобы временная шкала не расползалась только из-за того, что нейросеть работает с кадровой последовательностью.

Путь Output path задаёт каталог результата. Во время обработки конечный файл может не появляться там сразу: Enhancr использует кэш и переносит готовые данные на финальном этапе. Поэтому отсутствие выходного файла при продолжающемся инференсе само по себе не означает ошибку. Гораздо показательнее остановившийся счётчик кадров, запись Error в терминале или завершившийся процесс без стадии muxing.

Интерполяция кадров: что именно происходит

Окно удаления Enhancr из Windows

Frame interpolation создаёт изображения, которых не было в исходнике, оценивая движение между соседними кадрами. В Enhancr базовая интерполяция рассчитана на удвоение кадровой частоты: например, материал 24 fps превращается приблизительно в 48 fps, а 30 fps — в 60 fps. Это важно учитывать заранее, если цель — строго 50, 59,94 или другой телевизионный стандарт: интерфейс Enhancr не построен вокруг произвольного поля целевого FPS, как некоторые специализированные интерполяторы.

Увеличение fps не восстанавливает реально снятые моменты времени. Модель прогнозирует, как мог выглядеть промежуточный кадр. На плавном панорамировании результат обычно предсказуемее, чем на резкой смене плана, быстро появляющемся объекте, тонких решётках, субтитрах, частицах и сложной окклюзии. Поэтому выбор модели и Scene Detection важны не меньше, чем скорость инференса.

Для обычного видео разумно сначала обработать короткий отрезок с проблемным движением. Если на нём видны двойные контуры, деформация текста или желе вокруг рук и предметов, полная обработка ролика не исправит эти артефакты сама по себе. Следует сравнить RIFE и GMFSS, проверить scene detection, а уже затем запускать очередь на весь материал.

RIFE в Enhancr

RIFE представлен через NCNN и TensorRT. В выпадающем списке моделей интерфейс содержит RIFE v2.3, v4.0 и v4.6. NCNN удобен там, где нужен Vulkan-совместимый путь без привязки к TensorRT, а TensorRT предназначен для NVIDIA и требует предварительного построения оптимизированного engine. Для RIFE TensorRT Enhancr может использовать динамический диапазон форм, но максимальное разрешение связано с параметром Shape Resolution.

В Settings для RIFE есть TTA/Ensemble и UHD mode. TTA/Ensemble делает дополнительные вычисления и рассчитан на повышение качества ценой скорости. Включать его на всякий случай невыгодно: сначала полезно проверить, улучшает ли он именно проблемный фрагмент. UHD mode предназначен для высоких разрешений. Он не увеличивает кадр сам по себе, а меняет режим работы RIFE с крупным входом.

У TensorRT-варианта важна FP16 precision. На GPU с подходящими tensor cores половинная точность обычно снижает нагрузку на память и ускоряет вычисления. При этом engine, построенный с другими параметрами точности или максимальной формой, хранится отдельно. Если после изменения этих настроек начинается новая конвертация ONNX в engine, это ожидаемая часть TensorRT-пути, а не повторное скачивание модели.

CAIN: NCNN, DirectML и TensorRT

CAIN доступен через NCNN, DirectML и TensorRT. С ним особенно заметна особенность статических форм: TensorRT engine может строиться под конкретное разрешение, поэтому первый запуск нового размера занимает дополнительное время. Для часто используемых 720p, 1080p и других типовых источников это постепенно перестаёт мешать, потому что уже созданные engine-файлы переиспользуются.

В списке моделей CAIN присутствуют RVP v1.0, RVP v2.0 и CVP v6.0. Не стоит выбирать их по принципу большее число всегда лучше: модели обучены и настроены по-разному. Практический выбор делается на сценах, характерных для конкретного ролика. Для анимации полезно смотреть на контуры и повторяющиеся кадры, для живого видео — на быстро движущиеся конечности, волосы, воду, транспорт и объекты, которые перекрывают друг друга.

Если размеры кадра не делятся на восемь, Enhancr предусматривает padding для CAIN TensorRT. Это техническая компенсация ограничений модели/движка. Пользователю не нужно вручную растягивать исходник до красивого разрешения только ради кратности, однако нестандартные размеры всё равно стоит учитывать при диагностике engine и VRAM.

GMFSS Union и Fortuna

GMFSS представлен вариантами Union и Fortuna, а интерфейс также содержит Fortuna - Union. Для GMFSS доступны PyTorch и TensorRT backend-ы. Эти модели особенно интересны на анимации, где движение часто сочетает большие статичные области с локальными изменениями. В таком материале дополнительную роль играет Skip duplicate frames: если несколько исходных кадров полностью одинаковы, нет смысла каждый раз отправлять их в тяжёлый инференс.

GMFSS TensorRT, как и другие TensorRT-движки, требует подготовительного построения engine и чувствителен к разрешению, памяти и настройкам потоков. Если долгий старт наблюдается только на новом размере, а затем тот же размер запускается быстрее, причина обычно именно в создании engine. Если же конвертация повторяется каждый раз, следует проверить доступность каталога моделей, параметры FP16 и то, не очищается ли служебный каталог.

Scene Detection и защита от артефактов на склейках

Scene Detection нужен для ситуаций, где соседние кадры принадлежат разным монтажным планам. Без детектора интерполятор пытается придумать промежуточное состояние между двумя несвязанными изображениями. Результатом становится короткий, но заметный морфинг: лица и объекты одного плана смешиваются со следующим. Enhancr может обнаружить смену сцены и пропустить интерполяцию на такой границе.

Порог задаётся параметром Scene Change Sensitivity. В интерфейсе исходное значение указано как 0.180, а отдельный переключатель Override default value позволяет использовать собственное. Логика чувствительности обратная интуитивному проценту уверенности: меньшее значение означает более высокую чувствительность и больше найденных смен. Слишком низкий порог создаёт ложные срабатывания, из-за которых движение местами выглядит рваным. Слишком высокий пропускает реальные склейки и оставляет морфинг.

Настраивать порог лучше на материале с быстрыми вспышками, сильным motion blur и резкими изменениями экспозиции. Именно такие кадры часто похожи на смену сцены для простого детектора. Если ролик — монтаж музыкального клипа с частыми резкими переходами, scene detection обычно важнее, чем на одном непрерывном плане.

Skip duplicate frames: когда он ускоряет обработку

Опция Skip duplicate frames не является универсальным турбо-режимом. Она выгодна там, где исходник действительно содержит повторяющиеся кадры. Это характерно для части анимации, screen capture, некоторых конвертированных источников и роликов, где движение нарисовано на двойках или на тройках. Enhancr пропускает инференс на дублях, сокращая количество обращений к модели.

На живом видео с уникальным кадром почти на каждом временном шаге выигрыш будет небольшим. Более того, если источник уже прошёл сложное шумоподавление или содержит плавающий цифровой шум, визуально одинаковые кадры могут не быть побитно или метрик-совпадающими. Поэтому ожидаемое ускорение следует связывать с природой материала, а не с длительностью ролика.

Апскейл: увеличение разрешения

Раздел Upscaling увеличивает размер кадра в 2x, 3x или 4x. Если исходник 960×540 обработать с коэффициентом 2x, итоговая геометрия будет 1920×1080. Коэффициент сам по себе не гарантирует дополнительной реальной детализации: модель восстанавливает вероятные структуры по обученным признакам. На сильно пережатом видео она может усилить контуры блоков или превратить шум в псевдодетали, поэтому иногда перед увеличением полезнее сначала выполнить восстановление.

В списке движков есть ShuffleCUGAN, RealESRGAN, RealCUGAN и SwinIR. Конкретная доступность backend-а зависит от движка: встречаются NCNN, DirectML и TensorRT. Для компьютера без NVIDIA логично начинать с NCNN или DirectML-вариантов, а не включать показ неподдерживаемых TensorRT-движков. Отображение скрытых движков в Settings предназначено скорее для диагностики и нестандартных конфигураций, чем для обхода аппаратных ограничений.

RealESRGAN

RealESRGAN — наиболее универсальная линия в Enhancr с вариантами NCNN, DirectML и TensorRT. Она подходит как отправная точка для обычного апскейла и важна ещё по одной причине: Enhancr умеет подключать пользовательские ESRGAN-модели. Пользователь может поместить модель в специальный каталог, выбрать её в Settings и включить Use custom model. Поддерживаются ONNX и PTH, причём PTH при необходимости автоматически переводится в ONNX для дальнейшего использования.

Пользовательская модель полезна, когда универсальный пресет не соответствует типу материала. Модели для аниме, старых игр, сильно пережатого веб-видео и натуральной съёмки могут по-разному обращаться с линиями и текстурами. Но наличие файла с коэффициентом 4x не означает, что его нужно применять к любому источнику: чрезмерный scale увеличивает требования к памяти и кодированию, а артефакты модели становятся виднее.

RealCUGAN и ShuffleCUGAN

RealCUGAN ориентирован на качественное сверхразрешение и в Enhancr представлен TensorRT-вариантом. Для 1080p и видеокарт с умеренным объёмом VRAM может потребоваться tiling: официальный набор настроек прямо предусматривает разбиение кадра на плитки для снижения пикового расхода памяти. Цена — дополнительные накладные расходы и потенциально меньшая скорость.

ShuffleCUGAN доступен через NCNN и TensorRT. Его смысл — сочетать характер CUGAN-подобного восстановления с более экономным инференсом. На практике сравнивать его с RealESRGAN лучше на стоп-кадрах с мелкой текстурой, линиями и компрессионными дефектами. Если модель делает изображение резче, но превращает естественное зерно в регулярный узор, это не улучшение для конкретного источника.

SwinIR

SwinIR в интерфейсе Enhancr относится к TensorRT-пути. Модель тяжелее простых компактных ESRGAN-вариантов и может быть заметно требовательнее. Её имеет смысл выбирать не ради названия архитектуры, а если короткий тест показывает более аккуратное восстановление сложных деталей. Для длинного 4K-проекта разница в скорости между моделями быстро превращается в часы, поэтому тестовый сегмент здесь особенно важен.

Restoration: восстановление без обязательного увеличения

Restoration предназначен для случаев, когда разрешение исходника устраивает, но мешают шум, блоки сжатия или чрезмерная мягкость. Вместо масштабирования кадра можно обработать его моделью 1x и сохранить прежнюю геометрию. Это принципиально отличается от увеличить, а потом уменьшить обратно: 1x-модель сразу оптимизирована на восстановление структуры при исходном размере.

В Enhancr доступны DPIR через DirectML и TensorRT, ScuNET через TensorRT и RealESRGAN 1x через NCNN, DirectML и TensorRT. Для DPIR выбираются Denoise или Deblock, а силу можно настроить в Settings. Для RealESRGAN 1x интерфейс предлагает режимы Denoise/Sharpen и уровни Strength 15%, 25%, 50% и GAN. Это позволяет подбирать интенсивность без изменения разрешения.

DPIR Denoise

Denoise Strength в Settings имеет рекомендованный диапазон 15–30. Чем выше сила, тем активнее модель подавляет шум и мелкие нерегулярности. На старой цифровой съёмке или высоком ISO это может быть полезно, но чрезмерное значение стирает мелкую фактуру кожи, волос, ткани и слабое плёночное зерно. Для последующего апскейла потеря деталей особенно заметна, потому что модель сверхразрешения уже не сможет восстановить именно те реальные структуры, которые были удалены на первом шаге.

Практический подход — искать минимальное значение, при котором шум перестаёт отвлекать. Если конечная цель — 2x апскейл, проверять результат нужно не только на 100% исходного масштаба, но и после тестового увеличения. Иногда лёгкий остаточный шум выглядит естественнее, чем идеально гладкая поверхность, которую апскейлер затем превращает в искусственную текстуру.

DPIR Deblock

Deblock Strength рассчитан на блочные дефекты сжатия, характерные для низкого битрейта и старых MPEG/H.264-источников. В Settings указан ориентир 10–25. Слишком сильный deblock может сгладить реальные границы вместе с квадратами компрессии, поэтому для исходника с текстом, интерфейсной графикой или тонкими линиями лучше начинать снизу диапазона.

Deblock и denoise решают разные проблемы. Шум выглядит как случайная высокочастотная составляющая, а блоки обычно повторяют сетку кодека и особенно заметны на ровных градиентах и тёмных участках. Если выбирать режим только потому, что картинка грязная, легко получить ненужное размытие. Полезнее увеличить проблемный фрагмент и определить тип дефекта.

ScuNET и RealESRGAN 1x

ScuNET — ещё один путь восстановления, доступный в TensorRT-конфигурации. Его стоит тестировать на тех источниках, где DPIR слишком сильно сглаживает или, наоборот, недостаточно убирает дефекты. RealESRGAN 1x удобен для восстановления с возможностью регулировать силу и совмещать denoise с повышением воспринимаемой резкости. Режим GAN следует использовать осторожно: генеративная составляющая может сделать картинку визуально эффектнее, но не обязана сохранять исходную микротекстуру буквально.

Пять страниц Settings

Настройки Enhancr распределены по пяти страницам. Такое деление отражает разные уровни управления: оформление и системная информация, параметры интерполяции и DPIR, настройки engine/tiling/TensorRT, кодирование и точность обрезки, затем пользовательские модели и кэш. Для стабильной работы не требуется менять всё сразу. Наиболее безопасно оставить базовые значения и корректировать только тот параметр, который связан с конкретной проблемой.

Page 1: Preview, Discord Rich Presence и масштаб интерфейса

На первой странице можно включить Preview, Discord Rich Presence, изменить UI scale и выбрать цветовую тему. Здесь же выводится информация о системе и программных компонентах: операционная система, CPU, GPU, память, дисплей, версии Python, TensorRT, NCNN, Electron и Node. Эти сведения полезны при диагностике: например, если TensorRT-движок не появляется, сначала следует убедиться, что программа действительно видит ожидаемый GPU.

Preview удобно держать включённым во время подбора модели, но при ошибках NVENC его стоит временно отключить. Предпросмотр сам использует аппаратное кодирование в некоторых сценариях, поэтому может занимать доступный encoder session или дополнительную VRAM. Если основной рендер стабилен только без Preview, это важный диагностический сигнал, а не обязательно проблема AI-модели.

Page 2: RIFE, интерполяция и DPIR

Вторая страница содержит Enable TTA/Ensemble и Enable UHD mode для RIFE, Enable Scene Detection и Skip duplicate frames для интерполяции, а также Denoise Strength и Deblock Strength для DPIR. Это набор параметров, которые непосредственно меняют поведение алгоритма, поэтому их полезно сохранять в проекте вместе с понятным назначением.

TTA/Ensemble увеличивает вычислительную работу; UHD mode адаптирует RIFE к высокому разрешению; scene detection предотвращает смешивание разных планов; skip duplicates экономит инференс на повторяющихся кадрах. Ни один из этих переключателей не является универсальным улучшить качество. Их ценность определяется источником.

Page 3: Shape Resolution, Tiling, Concurrent Streams и FP16

Третья страница — ключевая для производительности и ошибок памяти. Shape Resolution задаёт форму TensorRT engine. В интерфейсе размер записывается как высота × ширина, например 1080x1920, что легко перепутать с привычным 1920×1080. Переключатель Override engine resolution нужен, если стандартный предел формы не подходит для входного разрешения или размеров плитки.

Tile Resolution определяет размер плитки. Tiling разрезает кадр на части и обрабатывает их по очереди, снижая максимальный расход VRAM. Чем меньше плитка, тем легче поместить модель в память, но тем больше накладных расходов. Кроме того, неудачное деление размеров может привести к швам или потере эффективности. Подсказка интерфейса рекомендует выбирать плитки так, чтобы исходное разрешение делилось на них без остатка.

Concurrent Streams управляет количеством параллельных потоков инференса. Слишком маленькое число недогружает мощный GPU, а слишком большое упирается в VRAM и вычислительные блоки. Увеличивать значение лучше по одному шагу, наблюдая за загрузкой GPU и стабильностью. Если добавление потока почти не повышает FPS, но резко увеличивает расход памяти, дальнейшее увеличение бессмысленно.

Use FP16 precision включает половинную точность. На современных NVIDIA с tensor cores это обычно один из наиболее эффективных способов ускорить TensorRT и уменьшить трафик памяти. Если конкретная модель или GPU ведёт себя нестабильно, FP32 остаётся запасным вариантом, но его цена — более тяжёлый инференс.

Page 4: аппаратное кодирование, Trim и чувствительность сцен

Четвёртая страница содержит Enable hardware encoding, Trim using accurate cut, Show unsupported engines и Scene Change Sensitivity. Hardware encoding переключает вывод на доступные GPU-кодировщики H.264, H.265 или AV1. Это влияет именно на этап кодирования, а не на качество нейросетевого инференса. Быстрый NVENC/AMF/QSV может существенно сократить общую длительность экспорта, если AI-модель работает быстрее, чем CPU успевает кодировать её выход.

Accurate cut меняет способ обрезки. Без него можно использовать быстрый разрез по ключевым кадрам без полного перекодирования подготовительного участка, но точка старта или конца может не совпасть с заданной секундой. С Accurate cut Enhancr добивается точной временной границы ценой перекодирования. Для тестового сегмента, где важен конкретный проблемный момент, точная обрезка обычно полезнее.

Show unsupported engines не добавляет аппаратной поддержки. Он лишь показывает варианты, которые интерфейс скрывает, например TensorRT на AMD или Intel. Если после включения пункт виден, но инференс не запускается, это ожидаемо: TensorRT остаётся технологией NVIDIA.

Page 5: пользовательские модели, кэш и Python

Пятая страница отвечает за Custom RealESRGAN model, Cache Location и выбор системного Python вместо упакованного окружения. Для пользовательских ESRGAN-моделей поддерживаются ONNX и PTH. Кнопка Open custom models folder открывает каталог, из которого Enhancr формирует список. После выбора модель нужно явно включить переключателем Use custom model.

Cache Location особенно важен при длинных роликах и маленьком системном SSD. Временные данные создаются до финального перемещения результата, поэтому нехватка места в кэше может прервать процесс, даже если на диске вывода достаточно свободного пространства. Перенос кэша на быстрый SSD обычно предпочтительнее медленного HDD, поскольку промежуточные операции активно читают и записывают данные.

Use system python instead of packaged environment предназначен для пользователей, которые понимают зависимости VapourSynth, PyTorch, TensorRT и библиотек моделей. Обычному пользователю включать его не нужно: системный Python может иметь несовместимые версии модулей, и тогда ошибка будет выглядеть как проблема Enhancr, хотя на деле нарушено окружение.

TensorRT, NCNN, DirectML и PyTorch: как выбирать backend

BackendКогда выбиратьЧто учитывать
TensorRTNVIDIA, приоритет максимальной скорости AIНужно строить engine; чувствителен к VRAM, формам и версии TensorRT
NCNNНужен Vulkan-путь на разных GPUОбычно проще запуск, но скорость зависит от модели и драйвера
DirectMLWindows и совместимый DirectX GPUУдобен как альтернативный универсальный backend, не равен TensorRT по оптимизациям
PyTorchМодель реализована прежде всего через Torch или нужен гибкий путьТяжелее окружение и выше требования к зависимостям

TensorRT компилирует оптимизированный engine под конкретную конфигурацию. Построение может занимать заметное время, зато последующие запуски с подходящей формой используют готовый файл. Engine нельзя считать обычной переносимой моделью: изменение версии TensorRT, точности или параметров формы может потребовать пересоздания. Если старый engine перестал загружаться после изменения окружения, его пересборка логичнее, чем попытки вручную подменять библиотеки.

NCNN не требует такой же стадии компиляции engine и использует Vulkan, благодаря чему встречается в вариантах для NVIDIA, AMD и Intel. Это хороший старт, если задача — проверить саму модель без дополнительной сложности TensorRT. DirectML выполняет похожую роль в Windows-экосистеме для поддерживаемых GPU. PyTorch в Enhancr используется там, где модель и её обвязка завязаны на Torch, например для некоторых GMFSS-конфигураций.

Tiling и нехватка видеопамяти

Ошибка Out of Memory не означает, что модель вообще несовместима с видеокартой. Пиковый расход зависит от разрешения, масштаба, модели, backend-а, FP16, concurrent streams и количества параллельно удерживаемых буферов. Самые очевидные способы снизить нагрузку в Enhancr — уменьшить Concurrent Streams и включить Tiling.

При tiling кадр режется на меньшие области. Если полный 4K-кадр не помещается в VRAM, несколько 512×512 или других подходящих плиток часто позволяют завершить задачу. Но это не бесплатное уменьшение памяти: обработка границ, дополнительные вызовы модели и сборка результата замедляют работу. В некоторых архитектурах слишком маленькие плитки также уменьшают доступный модели контекст, поэтому не стоит сразу выбирать минимальный размер.

Если TensorRT выдаёт сообщение no valid optimization profile found, обычно форма входа не попадает в диапазон engine. Тогда нужно проверить Shape Resolution, Override engine resolution и размеры tiling. Для входа выше стандартного 1080p максимальная форма должна действительно покрывать используемое разрешение или размер плитки.

Кодирование результата и пресеты FFmpeg

Нейросеть формирует обработанные кадры, а итоговый файл создаёт FFmpeg с параметрами из поля ffmpeg parameters. Enhancr предоставляет кнопки Codec, которые подставляют готовые строки для x264, x265, AV1, VP9, ProRes и Lossless. Продвинутый пользователь может отредактировать строку вручную. Это полезно, если нужен иной CRF, preset, pixel format или конкретный аппаратный кодировщик.

Важно отделять качество AI-обработки от качества финального кодирования. Если модель создала хороший кадр, но экспорт выполнен с агрессивным сжатием, мелкие детали снова потеряются. И наоборот, lossless-вывод не исправляет ошибки интерполяции или галлюцинации апскейлера. Для сравнения моделей разумно использовать одинаковые параметры кодирования, иначе будет непонятно, какой фактор повлиял на результат.

Встроенные программные пресеты

ПунктПараметрыПрактический смысл
x264-c:v libx264 -crf 16 -preset slow -x264-params direct=spatial:me=umh -pix_fmt yuv420pСовместимый H.264 с акцентом на качество
x265-c:v libx265 -crf 18 -preset medium -pix_fmt yuv420pHEVC с более эффективным сжатием, но более тяжёлым кодированием
AV1-c:v libsvtav1 -qp 20 -preset 7 -svtav1-params tune=0:enable-tf=0:enable-overlays=1:enable-qm=1 -pix_fmt yuv420p10le10-битный программный AV1 через SVT-AV1
VP9-c:v libvpx-vp9 -b:v 0 -crf 18 -cpu-used 3 -aq-mode 1 -pix_fmt yuv420pКачественный VP9 в режиме CRF
ProRes-c:v prores_ks -profile:v 4 -vendor apl0 -bits_per_mb 8000 -pix_fmt yuva444p10leПромежуточный монтажный формат с высоким объёмом
Lossless-c:v ffv1 -coder 2 -context 1 -level 3 -slices 12 -g 1FFV1 без потерь, большой файл

Эти строки — отправная точка, а не универсальный стандарт. Например, yuv420p удобен для совместимости, но при материале с важной цветовой субдискретизацией или профессиональным промежуточным workflow может потребоваться другой pixel format. ProRes и FFV1 создают существенно более крупные файлы, зато подходят для промежуточного хранения без дополнительной тяжёлой компрессии.

Аппаратные кодировщики

В файле пресетов Enhancr предусмотрены H.264/HEVC/AV1 для NVENC, AMF и QSV. При включённом hardware encoding программа пытается выбрать доступный GPU-кодировщик. Аппаратное кодирование особенно полезно, когда AI-инференс работает быстрее CPU-энкодера: иначе нейросеть простаивает в ожидании записи кадров.

СемействоПримерыОсобенность
NVIDIAh264_nvenc, hevc_nvenc, av1_nvencБыстрое кодирование через NVENC; AV1 зависит от поколения GPU
AMDh264_amf, hevc_amf, av1_amfAMF использует медиа-блок AMD
Intelh264_qsv, hevc_qsv, av1_qsvQuick Sync; доступность AV1 зависит от аппаратуры

Если FFmpeg сообщает No capable devices found, причина может быть не в AI-движке. Возможны неподдерживаемый кодировщик, исчерпанные encoder sessions, слишком большое разрешение или занятый аппаратный блок. Для H.264 NVENC Enhancr отдельно предупреждает о практическом пределе 4096×4096, а для HEVC/AV1 NVENC — 8192×8192. После 4x апскейла этот предел легко превысить даже на сравнительно небольшом исходнике.

Контейнеры MP4, MKV, WebM, MOV и Frame Sequence

В каждом основном режиме список Output video container содержит MP4, MKV, WebM, MOV и Frame Sequence. По умолчанию логичен MKV: он терпим к разным сочетаниям видео, аудио и субтитров. MP4 удобнее для широкого бытового воспроизведения, WebM — для соответствующих веб-сценариев, MOV — для совместимых монтажных цепочек. Frame Sequence выбирают, когда дальше нужен покадровый pipeline.

Контейнер не определяет кодек автоматически. Можно получить конфликт, если вручную выбрать комбинацию, которую контейнер или целевая платформа не поддерживает. Enhancr показывает отдельное предупреждение при субтитрах и рекомендует MKV для их сохранения. Аудио в обычном маршруте не обрабатывается нейросетью и на финальном этапе мультиплексируется обратно.

Обрезка до обработки

Команда Trim input before processing принимает диапазон вида 00:00:00-00:00:00. Это один из самых практичных инструментов для настройки: вместо обработки часа видео можно вырезать 20–40 секунд со сложным движением, мелкими деталями и шумом, сравнить модели и только потом запускать полный файл. Такой тест гораздо информативнее, чем оценка статичного первого кадра.

Режим точной обрезки следует включать, если критично попасть в конкретный момент. Без Accurate cut FFmpeg может опираться на ключевые кадры, что быстрее и позволяет избежать лишнего перекодирования подготовительного сегмента, но временная граница будет менее точной. Для визуального теста это часто приемлемо; для синхронного сравнения двух моделей — лучше точный cut.

Chain: интерполяция, апскейл и восстановление в одном маршруте

В очереди можно связать операции через Chain. Доступны Interpolation, Upscaling и Restoration. Это позволяет, например, сначала восстановить компрессионные дефекты, затем увеличить разрешение и после этого интерполировать; либо выбрать другой порядок. Однако порядок существенно влияет и на качество, и на производительность.

Для интерполяции обычно выгодно работать до крупного апскейла. При увеличении разрешения количество пикселей растёт квадратично: 2x по ширине и высоте означает примерно в четыре раза больше пикселей. Интерполятор получает более тяжёлый вход, а качество motion estimation не гарантированно улучшается. Разработчик Enhancr также указывал, что интерполяция на более высоком разрешении может работать хуже, поэтому апскейл первым не является автоматическим выбором.

Restoration чаще ставят перед Upscaling, если исходник шумный или блочный. Тогда апскейлер получает более чистую структуру. Но слишком сильный denoise перед масштабированием опасен: он удаляет детали, которые можно было сохранить. Для чистого низкоразрешённого источника восстановление вообще может быть лишним.

Очередь и пакетная обработка

Кнопка Add to queue добавляет текущую конфигурацию, но не запускает её немедленно. Это позволяет подготовить несколько файлов с одинаковыми или различающимися параметрами, проверить список и затем нажать Enhance video(s). Счётчик Queue в верхней панели показывает количество заданий. При выполнении выводятся прогресс, текущая скорость и ETA.

Очередь особенно полезна ночью или при серии коротких клипов. Но перед длинной партией стоит убедиться, что выходные имена не конфликтуют, на диске достаточно места, а первый файл действительно завершается с корректным mux. Если первый элемент падает из-за параметров FFmpeg, двадцать следующих с той же строкой кодека повторят ошибку.

Контекстные действия очереди позволяют открыть результат или папку, а после завершения интерфейс предлагает Play video file и Open file path. Есть и Share via gofile.io, однако для конфиденциального материала такую отправку следует использовать только осознанно: сам AI-инференс может выполняться на компьютере, но команда share уже означает загрузку файла во внешний сервис.

Realtime Player и Preview

Realtime Player рассчитан на ситуацию, когда GPU успевает генерировать кадры как минимум с темпом воспроизведения. Он использует mpv-компонент и поддерживает обычные элементы медиа, включая аудио и субтитры. Если инференс медленнее реального времени, проигрыватель не превращает его в быстрый: воспроизведение будет зависеть от фактической производительности.

Preview — более лёгкий инструмент контроля. Он показывает текущий обрабатываемый материал и позволяет заметить катастрофическую ошибку раньше окончания рендера: неверную модель, неправильный scale, чёрный кадр или выраженные артефакты. При этом preview тоже способен влиять на аппаратные ресурсы, поэтому при нестабильности его отключают одним из первых.

Как выбрать порядок обработки для разных источников

Старое низкоразрешённое живое видео

Для старой записи 480p или 576p сначала стоит оценить, что сильнее ограничивает качество: блоки компрессии, шум или просто низкая детализация. При выраженных блоках — лёгкий DPIR Deblock, при шуме — умеренный Denoise. Затем тестируется 2x апскейл. Интерполяцию лучше добавлять после того, как восстановление настроено, но запускать сам интерполятор на исходном или восстановленном разрешении до 2x масштабирования часто рациональнее по скорости.

Не нужно стремиться сразу к 4K. Увеличение 720×576 в 4 раза даёт огромный кадр, но исходных деталей больше не становится. 2x с аккуратной моделью часто выглядит естественнее и требует значительно меньше VRAM.

Анимация с повторяющимися кадрами

Для анимации особенно полезны GMFSS/RIFE и Skip duplicate frames. Scene Detection следует проверить на монтажных склейках и вспышках. В апскейле хорошо сравнивать RealCUGAN, ShuffleCUGAN и подходящие пользовательские ESRGAN-модели. На контурном изображении дефекты нейросети видны сильнее: дрожание линий, изменение толщины контура между кадрами и искусственная текстура фона сразу бросаются в глаза.

Если исходник 24 fps фактически содержит рисунок на 12 уникальных кадрах в секунду, простое удвоение не превращает анимацию в нативные 48 fps. Модель синтезирует движение между ключевыми рисунками. Эстетический эффект может нравиться или не нравиться, поэтому здесь особенно важно не принимать повышенную плавность за объективное улучшение.

Игровая запись и screen capture

У игрового видео обычно чистые линии интерфейса, мелкий текст и много быстрых панорамирований. Сильный restoration способен испортить HUD и шрифты, а агрессивный апскейл — дорисовать ореолы вокруг контраста. Лучше начинать с минимальной обработки и оценивать не только игровой мир, но и интерфейс. Для уже 60 fps материала интерполяция до 120 fps имеет смысл только при реальной потребности в таком выводе и достаточной производительности.

Сильно сжатое веб-видео

Низкий битрейт создаёт одновременно блоки, ringing и потерю текстур. Сначала полезно проверить Deblock или RealESRGAN 1x на коротком сегменте, затем апскейл. Слишком сильная генеративная модель может превратить ringing в новые детали, поэтому лучший результат не всегда самый резкий на стоп-кадре. Следует смотреть движение: ложная текстура, которая меняется от кадра к кадру, воспринимается как мерцание.

Практическая настройка производительности

Оптимизация Enhancr начинается не с максимального числа потоков, а с определения узкого места. Если GPU загружен слабо и VRAM свободна, можно увеличить Concurrent Streams. Если VRAM почти заполнена, сначала уменьшают streams или включают tiling. Если AI работает быстро, а общая скорость ограничена записью, смотрят на кодек и аппаратное кодирование. Если диск загружен на 100%, перенос кэша на SSD может дать больше, чем изменение модели.

  • Сначала проверить короткий сегмент на базовых настройках.
  • Для TensorRT включить FP16, если GPU корректно его поддерживает.
  • Увеличивать Concurrent Streams постепенно, а не сразу ставить большое число.
  • Включать tiling только когда он нужен из-за VRAM или формы.
  • Не использовать 4x scale, если конечному проекту достаточно 2x.
  • При медленном финальном кодировании сравнить software и hardware encoder.
  • Держать кэш на диске с достаточным свободным местом и хорошей скоростью.

Типовые ошибки Enhancr и способы их исправить

No valid optimization profile found

Сообщение Python exception: operator (): no valid optimization profile found связано с TensorRT shapes. Текущая геометрия не попадает в профиль созданного engine. Для входа выше стандартной формы нужно задать подходящий Shape Resolution и включить Override engine resolution. Если используется tiling, engine должен соответствовать форме плитки, а не случайному значению.

Out of memory при TensorRT

Первое действие — уменьшить Concurrent Streams. Если этого недостаточно, включить Tiling и выбрать разумный Tile Resolution. Также помогает FP16, когда он поддерживается. Не следует одновременно уменьшать плитки до минимума и увеличивать число streams: эти настройки воздействуют на память в противоположных направлениях.

No capable devices found у NVENC

Ошибка относится к аппаратному кодированию. Нужно проверить, поддерживает ли GPU выбранный кодек, не превышено ли максимальное разрешение, не заняты ли доступные encoder sessions другими программами. После крупного апскейла полезно вычислить итоговую геометрию: например, 2560×1440 при 4x превращается в 10240×5760, что уже выходит за пределы многих аппаратных энкодеров.

Высота или ширина не делится на требуемый модуль

Некоторые модели и кодеки требуют чётных размеров или кратности определённому числу. Enhancr содержит padding для ряда случаев, но нестандартные DVD-источники и пользовательские модели всё равно могут проявить проблему. Если ошибка появляется только с конкретным engine, следует проверить требования модели и попробовать другой backend или корректную форму.

Видео с субтитрами

Если в исходнике есть subtitle stream, Enhancr предупреждает о контейнере и предлагает MKV для сохранения. MP4 и WebM имеют собственные ограничения по типам субтитров. Самый безопасный путь — оставить MKV, убедиться, что готовый файл содержит нужные дорожки, и только после этого при необходимости делать отдельную финальную конвертацию.

Muxing идёт необычно долго

Финальная стадия объединяет обработанное видео с дополнительными потоками. Если инференс уже закончился, а результат долго не появляется, проблема может быть в mux, диске или несовместимом потоке. Enhancr использует mkvmerge для соответствующего маршрута; при сбое нужно смотреть последние строки терминала и свободное место в кэше и каталоге результата.

Конфликт с установленными компонентами

В официальном FAQ отмечался конфликт с SVP, проявлявшийся ошибкой вида No attribute with the name lsmas exists. Если такой текст возникает на системе с SVP и файлы Enhancr не модифицировались вручную, практическим решением называлось удаление конфликтующего ПО. Это редкий, но показательный пример: VapourSynth-плагины могут влиять друг на друга через окружение, поэтому добавление сторонних компонентов в каталог Enhancr усложняет диагностику.

Ошибка Python-модуля

Если пользователь включил системный Python, сообщения о недостающих пакетах нужно рассматривать прежде всего как проблему окружения. Упакованный Python нужен именно для того, чтобы версии библиотек соответствовали тем, с которыми рассчитана программа. Возврат к встроенному окружению — более надёжный первый шаг, чем установка случайных свежих версий torch, torchvision или onnxruntime.

Как проверять качество, а не только резкость

Стоп-кадр полезен, но для видео недостаточен. Нейросеть может сделать один кадр впечатляющим и одновременно создать temporal artifacts: плавающую текстуру, мерцание мелких линий, меняющиеся детали лица, деформацию пальцев или надписей. Поэтому тестовый отрезок нужно смотреть в движении с нормальной скоростью и при возможности покадрово.

Для интерполяции стоит искать разрывы на границах объектов, двойные контуры и ошибки окклюзии. Для апскейла — повторяющуюся искусственную текстуру, ореолы и нестабильные детали. Для denoise — исчезновение слабой фактуры и эффект пластика. Для deblock — размытие границ. Эти признаки позволяют понять, какой параметр менять, вместо бессистемного переключения моделей.

Сравнение должно использовать один и тот же исходный сегмент, одинаковый контейнер и близкие параметры кодирования. Если один тест сохранён в lossless, а другой в агрессивный H.264, вывод о модели будет недостоверным. При необходимости для тестов можно выбрать FFV1 или качественный ProRes, а финальный компактный кодек применять уже после выбора модели.

Сравнение Enhancr с аналогами

ПрограммаЛучше подходит дляГлавное ограничение
EnhancrСвязки интерполяции, апскейла и восстановления с выбором TensorRT/NCNN/DirectMLМного технических параметров; интерполяция ориентирована на 2x
FlowframesБыстрого повышения FPS и slow motion с RIFE и другими интерполяторамиФокус прежде всего на интерполяции, а не на полном restoration/upscale pipeline
Topaz VideoКомплексного коммерческого улучшения: upscale, denoise, restore, stabilize, slow motionПлатный продукт и тяжёлые AI-модели; меньше низкоуровневого контроля backend-а
Video2XОткрытого апскейла и интерполяции на Windows/Linux через RealESRGAN, RealCUGAN, RIFEМеньше встроенных restoration-сценариев, чем у Enhancr
Waifu2x-Extension-GUIБольшого набора движков для видео, GIF и изображений, включая upscale и interpolationИнтерфейс и число параметров могут быть перегружены для простой задачи
REAL Video EnhancerИнтерполяции, апскейла, denoise/decompress с современными backend-ами и несколькими ОСBackend-ы требуют заметного объёма памяти и отдельных зависимостей

Практический вывод зависит от задачи. Если нужен только перевод 24/30 fps в более высокую частоту и хочется минимально отвлекаться на апскейл, Flowframes проще. Если нужна коммерческая система с дополнительной стабилизацией и готовыми моделями восстановления, Topaz Video шире. Video2X хорошо подходит для открытого pipeline upscaling/interpolation, Waifu2x-Extension-GUI — для множества алгоритмов и разных типов медиа, REAL Video Enhancer — для более современного сочетания интерполяции и апскейла. Enhancr интересен именно сочетанием трёх типов AI-обработки, очереди, цепочек и низкоуровневых настроек TensorRT.

Когда Enhancr подходит лучше всего

Программа особенно уместна, если пользователь понимает разницу между моделью и backend-ом и хочет управлять ресурсами видеокарты. Возможность вручную задавать streams, FP16, shape resolution и tiling позволяет подстроить инференс под конкретный GPU. Пользовательские ESRGAN-модели расширяют апскейл без замены всего интерфейса.

Она также удобна для смешанных задач. Например, короткие анимационные клипы можно поставить в очередь с GMFSS и frameskip, старые записи — с DPIR, затем нужные элементы связать с апскейлом. Общая система проектов и очереди уменьшает количество ручных переходов между отдельными утилитами.

Если же требуется только простой транскодинг форматов без AI, Enhancr избыточен: обычный видеоконвертер даст меньше настроек и быстрее приведёт к результату. Если нужен профессиональный монтаж, таймлайн, цветокоррекция и работа со звуком, Enhancr также не заменяет NLE. Его сильная сторона — нейросетевый кадровый pipeline.

Ограничения, которые важно знать заранее

  • Интерполяция создаёт синтетические кадры и может давать артефакты на окклюзиях, тексте и резких склейках.
  • TensorRT работает на NVIDIA и требует engine-файлов; изменение формы или окружения может потребовать пересборки.
  • Большой scale быстро увеличивает VRAM, время инференса и требования к видеокодировщику.
  • Tiling помогает с памятью, но обычно замедляет обработку.
  • Аппаратное кодирование ускоряет экспорт, но не улучшает AI-часть и имеет собственные ограничения разрешения.
  • Пользовательские модели могут вести себя непредсказуемо на неподходящем типе контента.
  • Сильное шумоподавление перед апскейлом способно необратимо удалить реальные детали.

Рекомендуемая последовательность первого запуска

  1. Создать проект и выбрать один репрезентативный исходник.
  2. Обрезать короткий сложный сегмент через Trim.
  3. Выбрать только одну основную задачу: Interpolation, Upscaling или Restoration.
  4. Оставить базовые настройки engine, включив Scene Detection для интерполяции.
  5. На NVIDIA протестировать TensorRT с FP16; при проблемах сравнить NCNN/DirectML, если такой backend доступен.
  6. Не менять Concurrent Streams до получения стабильного первого результата.
  7. При нехватке памяти уменьшить streams, затем включить tiling.
  8. Сравнить две-три модели на одном сегменте с одинаковым кодированием.
  9. Только после выбора модели настроить финальный кодек и контейнер.
  10. Добавить полный ролик и остальные файлы в очередь.

Такой порядок отделяет художественный выбор модели от технической оптимизации. Если одновременно изменить модель, precision, tiling, streams и кодек, при улучшении или ухудшении результата невозможно понять причину. Последовательное тестирование занимает меньше времени, чем повторная обработка длинного файла.

Подбор настроек для NVIDIA

Для NVIDIA логичная отправная точка — TensorRT там, где он доступен, FP16 и умеренное число streams. При 8 ГБ VRAM не следует считать 1080p→4K автоматически лёгкой задачей: некоторые модели и особенно многопоточный инференс могут выйти за память. Tiling решает часть проблемы, но размер плитки нужно подбирать с учётом модели.

Если TensorRT долго строит engine, не прерывайте процесс только потому, что FPS ещё не отображается: на этой стадии идёт оптимизация. Если же engine-конвертация завершается ошибкой, в первую очередь проверяются shape, свободная VRAM и совместимость конкретной модели. Для сравнения полезно запустить NCNN-версию того же семейства: если NCNN работает, проблема вероятнее в TensorRT-конфигурации, а не во входном видео.

Подбор настроек для AMD и Intel

На AMD и Intel следует ориентироваться на NCNN/Vulkan и DirectML-варианты, которые присутствуют у конкретного движка. TensorRT-пункты можно показать через Show unsupported engines, но это не превращает их в рабочие. Если нужен RealESRGAN, DirectML и NCNN дают реальный путь без NVIDIA. Для интерполяции RIFE/CAIN через NCNN также позволяет обойтись без TensorRT.

Аппаратное кодирование при этом не связано с backend-ом AI напрямую. AMD может использовать AMF, Intel — QSV, если кодек поддерживается конкретным GPU и FFmpeg. Поэтому ситуация AI идёт через NCNN, а вывод кодируется через AMF нормальна: это два разных этапа pipeline.

Работа с пользовательскими ESRGAN-моделями

Пользовательская модель должна соответствовать архитектуре, которую Enhancr умеет преобразовать и запустить. Само расширение PTH не гарантирует совместимость: PTH — лишь контейнер параметров PyTorch, а структура сети может отличаться. Если модель из каталога не конвертируется, нужно проверять её архитектуру, а не просто переименовывать файл.

ONNX удобен как промежуточное представление, особенно для TensorRT и DirectML. Enhancr автоматизирует часть конвертации, но пользователь всё равно отвечает за выбор модели, её коэффициент масштаба и назначение. Модель, обученная на рисованном контенте, может чрезмерно упрощать натуральные текстуры. Модель для фотографий может, наоборот, создавать грязные детали на тонких аниме-линиях.

Для собственной библиотеки моделей полезно использовать понятные имена, включающие scale и назначение, например 2x-анимация или 4x-general. Тогда в выпадающем списке меньше риска перепутать 1x restoration и 4x upscale. После добавления новой модели сначала запускают короткий тест, а не сразу ставят в очередь длинный фильм.

Кэш: почему свободное место важно

Enhancr очищает и использует временный каталог для промежуточных данных, preview и подготовительных файлов. Итоговый ролик может находиться в процессе сборки вне указанной Output path до финального перемещения. Если системный диск небольшой, перенос Cache Location на отдельный SSD предотвращает внезапное заполнение профиля пользователя.

Расход места зависит от режима. Lossless или Frame Sequence создают гораздо больший поток данных, чем H.264. При цепочке из нескольких операций временные файлы также могут быть крупнее. Простое правило — оставлять запас, заметно превышающий ожидаемый размер готового файла, особенно для ProRes, FFV1 и высоких разрешений.

Почему не стоит оценивать скорость только по FPS

FPS в Enhancr показывает темп обработки кадров, но не учитывает одинаково все стадии. Построение TensorRT engine происходит до нормального инференса, mux — после него, trim и подготовка GIF — отдельно. Два запуска с одинаковым средним FPS могут иметь разное общее время из-за кодека или кэша.

Кроме того, 20 fps на 4K и 20 fps на 720p — совершенно разные объёмы вычислений. Сравнивать модели корректно на одном и том же файле, разрешении, backend-е и настройках precision. Если изменить scale или tiling, число FPS само по себе уже не характеризует относительную эффективность модели.

Как избежать лишней потери качества при повторном кодировании

Цепочка AI-операций не должна превращаться в цепочку нескольких потерь кодека. Если этапы объединены внутри Enhancr, программа может организовать обработку без необходимости вручную сохранять H.264 после каждого шага. Если же пользователь выполняет операции отдельными запусками, промежуточный lossy-кодек способен накапливать артефакты.

Для промежуточных файлов разумны ProRes или FFV1, если объём допустим. Альтернативно можно использовать очень качественный x264/x265. Главное — не применять низкий битрейт к файлу, который затем снова будет апскейлиться: модель начнёт восстанавливать уже артефакты предыдущего кодирования.

Субтитры, аудио и дополнительные потоки

Enhancr сосредоточен на видеокадрах. Аудио и субтитры не проходят через AI-модели, а возвращаются при muxing. Это упрощает обработку, но создаёт требования к контейнеру. MKV лучше переносит разнородные дорожки; MP4 и WebM имеют более жёсткие ограничения по форматам.

Если исходник содержит несколько аудиодорожек, вложенные шрифты или сложные субтитры, после первого теста нужно проверить не только картинку, но и структуру итогового контейнера в плеере. Особенности muxing могут зависеть от типа потоков, и успешное завершение AI не гарантирует, что целевая платформа поддержит все вложения.

Что означают Media Info и счётчики

Dimensions нужны для оценки scale и формы engine. Framerate определяет временную базу интерполяции. Duration и Framecount помогают понять реальный объём задачи. Bitrate важен как индикатор характера исходного сжатия, но не как прямой показатель качества: два кодека при одинаковом битрейте могут выглядеть по-разному.

Если framecount неожиданно отличается от ожидаемого, особенно у VFR-файлов, стоит сначала проверить исходник. AI-процесс строится вокруг кадровой последовательности, и неправильная временная информация может проявиться рассинхронизацией или странной длительностью. Enhancr пытается учитывать исходный framerate, но повреждённый контейнер лучше предварительно исправить.

Когда использовать Frame Sequence

Frame Sequence полезен, если следующий этап выполняется в композитинге, научном анализе или внешнем кодере, который принимает последовательность изображений. Такой вывод исключает межкадровую компрессию, но резко увеличивает количество файлов и нагрузку на файловую систему. Для обычного просмотра он избыточен.

При выборе последовательности нужно заранее подготовить быстрый диск и каталог, в котором тысячи файлов не смешаются с другими данными. После обработки аудио придётся синхронизировать на следующем этапе отдельно. Поэтому Frame Sequence — профессиональный маршрут обмена, а не самое качественное видео одной кнопкой.

Сценарий: 480p аниме до 1080p с повышением плавности

Рациональный порядок: выбрать короткий сегмент, проверить GMFSS Fortuna и RIFE, включить Scene Detection и Skip duplicate frames. Интерполяцию выполнить на исходном размере или после лёгкого 1x восстановления, затем сделать 2x апскейл подходящей CUGAN/ESRGAN-моделью. 4x здесь часто избыточен: 480p после 2x уже приближается к 960p по высоте, а дальнейшее увеличение создаёт больше вычислений, чем информации.

На тесте нужно смотреть тонкие контуры, глаза, волосы, субтитры и движение камеры. Если interpolation создаёт плавающие линии, сменить модель или отказаться от удвоения fps на этом материале лучше, чем пытаться скрыть артефакт апскейлом.

Сценарий: старая домашняя запись с шумом

Начать с DPIR Denoise около нижней части рекомендованного диапазона и при необходимости добавить Deblock отдельным тестом. После очистки сравнить 2x RealESRGAN и более щадящую модель. Интерполяцию имеет смысл добавлять только после стабилизации визуального качества, потому что шум сам по себе усложняет оценку движения между кадрами.

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

Сценарий: 1080p материал до 4K

2x scale даёт 3840×2160 и обычно достаточно для перехода 1080p→4K. Здесь tiling может понадобиться даже на видеокарте с 8 ГБ, особенно с тяжёлой TensorRT-моделью и несколькими streams. Сначала следует запустить один stream/умеренное значение, FP16 и только потом увеличивать параллелизм.

Для финального HEVC или AV1 нужно убедиться, что выбранный аппаратный энкодер поддерживает 4K и необходимый pixel format. Если цель — дальнейший монтаж, ProRes может быть удобнее, чем сразу сжимать результат в доставочный кодек.

Сценарий: только устранение блоков без изменения размера

Выбрать Restoration, DPIR Deblock, сохранить исходное разрешение и протестировать Strength в диапазоне, близком к 10–25. Апскейл и интерполяцию не добавлять, если они не нужны. Такой минимальный pipeline быстрее и уменьшает риск появления синтетических деталей.

После deblock полезно проверить градиенты, тёмные участки и тонкий текст. Если блоки уменьшились, но края стали заметно мягче, сила слишком высока. Цель — ослабить структуру компрессии, а не размыть весь кадр.

Сценарий: увеличение FPS без изменения разрешения

В Interpolation выбрать RIFE, CAIN или GMFSS, оставить scale вне маршрута, включить Scene Detection. Для анимации проверить Skip duplicate frames. Результат кодировать с достаточно высоким качеством, чтобы новые промежуточные кадры не потерялись под сильным сжатием. Если нужен строго произвольный целевой FPS, следует учитывать, что Enhancr ориентирован на удвоение, а не на свободное поле частоты.

Матрица движков и моделей

При выборе Engine полезно сначала определить не конкретную версию модели, а допустимый backend. Если видеокарта NVIDIA и требуется максимальная скорость, рассматривается TensorRT. Для более универсального Vulkan-пути — NCNN. DirectML удобен на Windows там, где он предусмотрен. После этого уже выбирается алгоритм. Такой порядок уменьшает количество комбинаций и сразу исключает варианты, которые аппаратно не подходят.

ЗадачаДвижокBackend в интерфейсеДополнительный выбор
InterpolationCAINNCNN, DirectML, TensorRTRVP v1.0, RVP v2.0, CVP v6.0
InterpolationRIFENCNN, TensorRTRIFE v2.3, v4.0, v4.6
InterpolationGMFSSPyTorch, TensorRTUnion, Fortuna, Fortuna - Union
UpscalingShuffleCUGANNCNN, TensorRTScale 2x, 3x или 4x
UpscalingRealESRGANNCNN, DirectML, TensorRTВстроенная или пользовательская ESRGAN-модель
UpscalingRealCUGANTensorRTScale 2x, 3x или 4x
UpscalingSwinIRTensorRTScale 2x, 3x или 4x
RestorationDPIRDirectML, TensorRTDenoise или Deblock
RestorationScuNETTensorRTВосстановление без смены размера
RestorationRealESRGAN 1xNCNN, DirectML, TensorRTDenoise/Sharpen и уровни Strength

Эта таблица отражает логику самого интерфейса, а не обещание одинаковой доступности на любом компьютере. Например, TensorRT-пункт связан с NVIDIA, а фактическая поддержка аппаратного AV1-энкодера определяется уже другим блоком GPU. Нельзя делать вывод раз TensorRT работает, значит AV1 NVENC тоже доступен: инференс и энкодер — независимые аппаратные возможности.

Как рассчитывать итоговое разрешение и нагрузку

Scale 2x, 3x и 4x умножает обе стороны кадра. Это означает, что число пикселей растёт не в два, три или четыре раза, а примерно в четыре, девять или шестнадцать раз. 1280×720 содержит около 0,92 млн пикселей; после 2x получается 2560×1440 с 3,69 млн, после 4x — 5120×2880 с 14,75 млн. Память и время не обязаны расти строго пропорционально, но порядок нагрузки становится понятен.

Исходник2x3x4x
640×3601280×7201920×10802560×1440
960×5401920×10802880×16203840×2160
1280×7202560×14403840×21605120×2880
1920×10803840×21605760×32407680×4320
2560×14405120×28807680×432010240×5760

Последняя строка хорошо показывает, почему 4x не следует выбирать механически. Итог 10240×5760 не только тяжёл для AI, но и превышает разрешение, которое поддерживают некоторые аппаратные энкодеры. Даже если модель способна сформировать кадр, стадия кодирования может завершиться ошибкой. Перед запуском стоит умножить геометрию вручную и проверить, нужен ли такой размер вообще.

Как выбирать между NCNN и TensorRT на одном алгоритме

Если один и тот же класс обработки доступен и через NCNN, и через TensorRT, полезно рассматривать NCNN как контрольный вариант. Он проще с точки зрения engine-файлов и помогает понять, исправен ли входной файл и сама модельная цепочка. Если NCNN успешно обрабатывает ролик, а TensorRT падает до первого кадра, искать причину логичнее в shapes, engine, FP16 или VRAM, а не в контейнере.

TensorRT становится особенно выгоден, когда один и тот же тип материала обрабатывается регулярно. Потратив время на построение engine для распространённых форм, можно затем получать более высокий throughput. Если же каждый файл имеет случайное нестандартное разрешение, постоянная подготовка отдельных engine уменьшает практическое преимущество. В таких задачах универсальный backend иногда удобнее даже при меньшем FPS.

Не стоит переносить engine-файл с другой видеокарты как обычный кэш модели. TensorRT оптимизирует план исполнения под конкретную среду, а сериализованные engine чувствительны к версии runtime и аппаратным особенностям. Надёжнее позволить Enhancr построить engine на той машине, где он будет использоваться.

Артефакты интерполяции: как распознать причину

АртефактГде заметенЧто проверить
Морфинг на склейкеРезкая смена планаScene Detection и Sensitivity
Двойной контурБыстро движущийся объектДругую модель RIFE/CAIN/GMFSS
Ломаный текстСубтитры, HUD, титрыМодель и необходимость интерполировать этот материал
Волнистые руки или ногиСложная окклюзияСравнение моделей; иногда отказаться от interpolation
Рывок вместо плавностиЛожно найденная смена сценыПовысить порог Scene Change Sensitivity
Лишний синтетический кадрПовторяющийся рисунокSkip duplicate frames

Смысл этой диагностики в том, чтобы не лечить геометрический артефакт параметрами кодека. CRF не исправит неправильное движение, а более медленный x264 preset не восстановит разрушенный контур. Сначала корректируется интерполяция, затем качество хранения её результата.

Артефакты апскейла: резкость не всегда означает качество

AI-upscale часто оценивают по тому, насколько чёткими стали края, но это только один признак. Хорошая модель должна сохранять стабильность деталей во времени. Если кирпичная стена, трава или волосы меняют узор на каждом кадре, в движении возникает мерцание даже при красивых стоп-кадрах. Такое поведение особенно заметно после сильного 4x.

Другой тип ошибки — halo: светлая или тёмная кайма около контрастной границы. Она появляется, когда модель слишком активно повышает локальную резкость. На анимации аналогичная проблема выглядит как утолщение контура. Если исходник уже резкий, более мягкая модель часто даёт визуально лучшее видео, хотя отдельный кадр кажется менее вау.

На лицах следует проверять глаза, зубы и мелкие волосы. Генеративная модель может нарисовать убедительную, но не исходную деталь. Для архивного или документального материала это критичнее, чем для развлекательного апскейла. В таких случаях приоритетом становится консервативное восстановление, а не максимальная субъективная резкость.

Сила Restoration и сохранение фактуры

Denoise и deblock стоит настраивать отдельно, потому что они воздействуют на разные типы высокочастотной информации. Шум — случайный и часто меняется от кадра к кадру. Блоки — структурированы по сетке кодирования. Если увеличить Denoise Strength в надежде убрать квадратные блоки, можно сначала потерять фактуру, а сами блоки останутся частично заметными.

Для DPIR полезна трёхточечная проверка: лицо или кожа, ровный градиент и мелкая фактура вроде ткани или листвы. На градиенте видны блоки и banding, на коже — чрезмерное сглаживание, на фактуре — потеря деталей. Настройка, которая приемлема на всех трёх областях, обычно надёжнее значения, выбранного только по одному крупному плану.

Разница между Preview и финальным файлом

Preview предназначен для оперативного контроля и не всегда следует воспринимать как точную копию финального энкода. Отображение зависит от плеера, промежуточного потока и аппаратного декодирования. Окончательное решение о качестве принимается по экспортированному файлу, воспроизведённому в надёжном плеере или открытом в монтажной программе.

Если preview показывает странный цвет, а сохранённый файл выглядит нормально, проблема может находиться в цепочке отображения. Если и preview, и результат одинаково повреждены, причина вероятнее раньше — в декодировании, модели или цветовой конвертации. Это ещё один пример, зачем разделять стадии pipeline при диагностике.

Выбор контейнера под задачу

КонтейнерУместный сценарийНа что обратить внимание
MKVМного дорожек, субтитры, промежуточный мастерНе все бытовые устройства одинаково хорошо поддерживают MKV
MP4Широкое воспроизведение и публикацияНужно подобрать совместимый видео-, аудио- и subtitle codec
WebMВеб-сценарии с VP9/AV1Не все редакторы одинаково удобны с WebM
MOVМонтажные и промежуточные workflowФактическая совместимость зависит от кодека внутри
Frame SequenceКомпозитинг и покадровая дальнейшая обработкаОчень много файлов, нет обычного единого видеоконтейнера

Контейнер выбирают после кодека, а не по расширению которое нравится. Если используется ProRes, логичен MOV или совместимый MKV-workflow; для H.264 удобен MP4 или MKV; для VP9 часто подходит WebM. Enhancr позволяет выбрать комбинацию гибко, поэтому ответственность за совместимость лежит на пользователе.

Планирование размера выходного файла

CRF/quality-based режимы заранее не дают точный размер. Чем сложнее изображение после AI, тем больше битрейта может потребоваться для того же визуального качества. Апскейл добавляет мелкие детали, а интерполяция увеличивает число кадров, поэтому результат способен оказаться значительно больше исходника даже при современном кодеке.

Особенно быстро растёт объём при ProRes и FFV1. Эти варианты полезны как мастер или промежуточный файл, но не рассчитаны на экономию места. Если нужен финальный архив, удобный подход — сначала сохранить качественный мастер, проверить его, затем отдельно сделать доставочную копию x265 или AV1.

Почему аппаратный encoder и TensorRT не конкурируют за одну настройку

TensorRT выполняет нейросеть на вычислительных блоках GPU, а NVENC/AMF/QSV использует специализированный медиаблок для кодирования. Они могут работать параллельно, но разделяют общую память и часть системных ресурсов. Поэтому включение hardware encoding часто ускоряет pipeline, однако при недостатке VRAM или ограничении encoder sessions всё равно возможна нестабильность.

Если AI идёт медленно, смена x264 на NVENC не сделает саму модель быстрее; ускорится только участок после получения кадра. Если AI работает очень быстро, наоборот, медленный CPU-кодер способен стать бутылочным горлышком. Наблюдение FPS, загрузки GPU и CPU помогает определить, где именно теряется время.

Как читать терминал Enhancr

Полезно разделять сообщения на четыре группы: подготовка input, построение engine, inference и encode/mux. Ошибка до строки запуска модели чаще связана с файлом, путём или окружением. Ошибка при trtexec — с TensorRT. Ошибка после обработки всех кадров — с кодированием, контейнером или muxing. Такой порядок резко сокращает число бессмысленных изменений настроек.

Если процесс завершился после нулевого кадра, нет смысла уменьшать CRF. Если все кадры прошли, но файл не открывается, нет смысла менять RIFE. Терминал нужен именно для определения стадии, а не для чтения каждой служебной строки.

Имена выходных файлов и повторные запуски

Enhancr позволяет менять имя выходного файла через Change output file name. Для сравнений моделей полезно включать в имя ключевую информацию: например, RIFE46-TRT, GMFSS-Fortuna или ESRGAN-2x. Тогда несколько тестов не перезаписывают друг друга и их легко сопоставлять без открытия каждого файла.

Для очереди из разных источников лучше также сохранять исходное имя в начале. Структура вроде source_model_scale_codec удобнее случайных final2, final3. Это организационная деталь, но при десятках тестов она экономит больше времени, чем повторный поиск параметров в проекте.

Как тестировать Scene Change Sensitivity

Выберите отрезок, где есть настоящая склейка и, желательно, сложный кадр без склейки — вспышка, быстрый whip-pan или резкое изменение освещения. Слишком чувствительное значение отметит оба события, слишком нечувствительное пропустит склейку. Цель — найти порог, который ловит монтажный переход, но не реагирует на нормальную динамику сцены.

После изменения Sensitivity смотрят не только терминал, но и визуальный результат. Ложное срабатывание может проявиться одним коротким рывком, который легко пропустить при просмотре целого фильма. Покадровое сравнение вокруг проблемной секунды намного надёжнее.

Точная обрезка и тестовые фрагменты

Тестовый фрагмент должен содержать именно сложные кадры, а не случайные первые 30 секунд. Для interpolation выбирают движение и склейку; для upscale — лицо, текст и мелкую фактуру; для restoration — шумный тёмный участок и блоки. Один хорошо подобранный сегмент может одновременно показать несколько слабых мест модели.

Если accurate cut включён, Enhancr перекодирует для точного попадания во временную границу. Для теста это оправдано, но нужно помнить, что дополнительное перекодирование способно слегка изменить исходные артефакты. Когда абсолютная точность не нужна, keyframe cut быстрее и сохраняет исходный поток до AI-стадии без лишнего промежуточного энкода.

Нужно ли включать TTA/Ensemble

TTA/Ensemble у RIFE следует оценивать как обмен скорости на потенциальное качество. Если базовый RIFE уже чисто интерполирует материал, удорожать весь фильм нет смысла. Если на определённых движениях ensemble уменьшает артефакты, его включение оправдано для этого проекта.

Сравнение нужно проводить на одинаковой версии RIFE и одинаковом backend-е. Иначе невозможно понять, что дало эффект: ensemble или смена модели. Это особенно важно в TensorRT, где переключение TTA может привести к созданию отдельного engine.

Когда UHD mode действительно нужен

UHD mode относится к обработке RIFE на высоком разрешении, а не к апскейлу. Он не делает 1080p изображение 4K и не заменяет вкладку Upscaling. Использовать его следует, когда сам вход уже имеет высокое разрешение и RIFE нуждается в соответствующем режиме обработки.

Если источник 720p, включение UHD для качества не обязательно принесёт пользу и может добавить вычислительные расходы. Это типичный пример настройки, которую выбирают по условиям входа, а не по желанию получить максимальное значение.

Concurrent Streams: поиск рабочей точки

Начинать лучше с небольшого числа streams. После стабильного теста число увеличивают и сравнивают FPS. Пока скорость растёт заметно и VRAM остаётся в безопасной зоне, параллелизм полезен. Когда прирост становится минимальным, достигнут предел по вычислениям, памяти или пропускной способности.

Если при следующем значении появляются OOM или случайные падения, возвращаются на предыдущий стабильный уровень. Не нужно стремиться занять 100% VRAM: системные буферы, preview и encoder тоже требуют памяти, а почти полностью заполненная VRAM оставляет мало запаса для пиковых кадров.

Shape Resolution и порядок высоты/ширины

Enhancr указывает Shape Resolution в форме height×width. Для обычного Full HD это 1080x1920, а не 1920x1080. Перепутанный порядок может создать профиль, не соответствующий реальному входу. Это особенно легко сделать пользователю, привыкшему видеть разрешение только как width×height.

Override engine resolution следует включать осознанно. Увеличение максимальной формы расширяет допустимый вход, но может повысить расход VRAM при построении и использовании engine. Если проблема решается tiling меньшего размера, огромная максимальная форма не всегда нужна.

Пользовательский Python: когда он оправдан

Системный Python полезен разработчику или пользователю, который намеренно заменяет зависимости, тестирует собственные плагины VapourSynth или изменяет модельный код. Для обычной обработки он создаёт больше рисков, чем преимуществ. Версии CUDA/TensorRT/PyTorch/ONNX должны совпадать достаточно точно, и случайное обновление одного пакета может нарушить совместимость.

Если после включения system python появляются ошибки импорта, правильный первый шаг — вернуть packaged environment. Только если задача действительно требует своей среды, следует собирать её контролируемо и фиксировать версии зависимостей.

FAQ по практической работе

Можно ли просто выбрать самый тяжёлый AI-движок?

Нет. Более тяжёлая архитектура не гарантирует лучший результат на конкретном видео. Сравнивайте короткие сегменты и учитывайте temporal stability. Иногда компактная модель даёт меньше артефактов и намного быстрее обрабатывает весь материал.

Стоит ли всегда включать 4x?

Нет. 4x увеличивает число пикселей примерно в шестнадцать раз. Если конечная цель — 1080p из 540p, достаточно 2x. Избыточный scale увеличивает время, VRAM и риск синтетических деталей.

Что выбрать при нехватке VRAM?

Снизить Concurrent Streams, включить FP16 при корректной поддержке, затем использовать Tiling. При необходимости выбрать более лёгкую модель или backend. Уменьшение разрешения самого исходника — крайняя мера, потому что оно удаляет информацию до AI.

Почему первый запуск TensorRT дольше?

До инференса строится оптимизированный engine. Для CAIN и некоторых других путей engine зависит от формы/разрешения. Последующие задачи с подходящими параметрами используют уже созданный файл.

Нужно ли кодировать без потерь?

Для тестов и промежуточных этапов lossless удобен, но требует много места. Для финального просмотра качественный x264/x265/AV1 обычно практичнее. Главное — не сравнивать AI-модели при сильно различающемся качестве энкода.

Почему после апскейла аппаратный H.264 не запускается?

Проверьте итоговое разрешение. H.264 NVENC имеет более низкий предел геометрии, чем некоторые HEVC/AV1 пути. 4x может вывести кадр за допустимый размер даже тогда, когда исходник кажется обычным.

Можно ли хранить кэш на HDD?

Можно, но интенсивные временные операции могут упереться в скорость диска. Если есть свободный SSD, он предпочтительнее. В любом случае важнее всего достаточный запас места.

Что делать, если визуально стало хуже?

Вернуться к короткому тесту и отключить лишние этапы. Определить, где возникает проблема: restoration, upscale, interpolation или encode. Затем менять только один параметр. AI enhancement не обязан улучшать каждый источник.

Нужно ли включать Preview на весь рендер?

Нет. После настройки его можно отключить, особенно если система близка к пределу по GPU или возникают проблемы с hardware encoder. Preview — инструмент контроля, а не обязательная часть результата.

Когда лучше использовать другой инструмент?

Если нужна только интерполяция с произвольным целевым FPS, специализированный интерполятор может быть проще. Если нужны стабилизация, монтаж и цветокоррекция, потребуется отдельная видеоредакторская система. Enhancr силён именно в AI interpolation/upscale/restoration pipeline.

Краткий словарь настроек Enhancr

Engine
Конкретная связка алгоритма и вычислительного backend-а, например RIFE (TensorRT).
Model
Набор обученных параметров/вариант архитектуры, определяющий характер AI-обработки.
TensorRT engine
Сериализованный оптимизированный план выполнения модели для TensorRT.
FP16
Половинная точность вычислений, часто ускоряющая инференс и снижающая память.
Concurrent Streams
Количество параллельных потоков инференса.
Shape Resolution
Размер формы, для которой разрешён/оптимизирован TensorRT engine.
Tiling
Разбиение кадра на меньшие области для уменьшения пикового расхода VRAM.
Scene Detection
Поиск монтажных склеек, на которых интерполяцию следует пропустить.
Skip duplicate frames
Пропуск повторяющихся кадров, чтобы не выполнять лишний inference.
TTA/Ensemble
Дополнительные вычисления RIFE ради потенциального повышения качества.
UHD mode
Режим RIFE для высокоразрешённых исходников.
Denoise Strength
Интенсивность подавления шума DPIR.
Deblock Strength
Интенсивность ослабления блочных артефактов DPIR.
Cache Location
Каталог временных файлов и промежуточных данных.
ffmpeg parameters
Строка параметров финального видеокодирования.
Chain
Последовательное связывание Interpolation, Upscaling и Restoration в очереди.

Понимание этих терминов достаточно, чтобы осмысленно настраивать большую часть Enhancr. Остальные параметры либо относятся к конкретной модели, либо к привычным понятиям видеокодирования.

Проверка исходника перед длинной обработкой

Перед добавлением многочасового файла в очередь полезно проверить пять вещей: контейнер открывается без ошибок, продолжительность и framerate определились корректно, разрешение соответствует ожидаемому, на диске кэша достаточно места, а выходной кодек поддерживает рассчитанную геометрию. Такая подготовка не требует отдельного анализа качества, но предотвращает ситуации, когда тяжёлый AI-инференс успешно проходит тысячи кадров и только в конце упирается в неподходящий mux или encoder.

Если исходник повреждён, имеет необычный VFR, нестандартные subtitle/data streams или ошибочные временные метки, сначала разумно сделать короткий пробный экспорт. Важный критерий — совпадение длительности и синхронизации звука после завершения. Когда тестовый файл корректен, можно переносить те же настройки на полную очередь. Если нет, проблему лучше решать на уровне контейнера и временной базы до нейросетевой обработки.

Для материала с большим разрешением заранее рассчитывают output dimensions и выбирают shape/tiling. Для анимации проверяют duplicate frames и склейки. Для шумного материала выбирают участок с худшим качеством, а не самый чистый. Чем репрезентативнее пробный отрезок, тем меньше вероятность, что настройки, хорошо выглядящие в одной сцене, развалятся на другой половине ролика.

Как сохранить воспроизводимость настроек

Проект .enhncr уже хранит значительную часть состояния, но при серьёзной работе полезно дополнительно фиксировать модель, backend, scale, strength, FP16, streams и строку FFmpeg в имени теста или рабочих заметках. Пользовательская ESRGAN-модель со временем может быть заменена файлом с тем же названием, а TensorRT engine — пересобран. Простая запись конфигурации позволяет понять, почему два экспорта отличаются.

При сравнении вариантов меняют только один параметр за раз. Например, RIFE NCNN и RIFE TensorRT сравнивают на одной версии модели; TTA включают и выключают без одновременной смены кодека; RealESRGAN 2x сравнивают с другой upscaling-моделью при одинаковом output codec. Такой метод не требует синтетических benchmark-ов и даёт ответ именно на вопрос качества конкретного видео.

Если обработка должна повторяться на другой машине, следует рассчитывать на повторное построение TensorRT engine и заново проверить доступные hardware encoders. Проект переносит логику задачи, но не отменяет различия GPU, драйверов и runtime. NCNN или DirectML могут быть удобнее для переносимой конфигурации, тогда как TensorRT обычно выбирают ради максимальной производительности на конкретной NVIDIA-системе.

Итоговая стратегия работы

Enhancr наиболее предсказуем, когда каждая операция решает одну измеримую проблему. Сначала определяется дефект исходника, затем выбирается соответствующий режим и короткий тест. После этого настраиваются scene detection, strength или модель, и только затем — performance-параметры. Такой порядок уменьшает риск получить технически быстрый, но визуально неверный результат.

Для интерполяции ключевые настройки — модель, Scene Detection, TTA/UHD и skip duplicates. Для апскейла — модель, scale, backend и tiling. Для восстановления — тип дефекта и сила обработки. Общими остаются кодек, контейнер, кэш, FP16, streams и очередь. Когда эти группы параметров не смешиваются бессистемно, Enhancr превращается из набора сложных переключателей в понятный AI-конвейер.