- PVSM.RU - https://www.pvsm.ru -
Относительно недавно я познакомился с ComfyUI. После не очень продолжительных танцев с бубном и установки кастомных ROCm‑драйверов для моей видеокарты (официальная поддержка начинается только с AMD RX7600) я столкнулся с проблемой генерации видео.
Если быть точнее, единственное, что я мог себе позволить для полноценного вычисления с помощью видеокарты, — это модель wan2.2_ti2v_5B. Но она работала очень нестабильно: не слушалась промптов и выдавала артефакты.
Я начал более детально изучать информацию и узнал о такой вещи, как квантование, с помощью которого можно уменьшить размер модели. Вследствие этого зарезаются и её возможности, но, как многие отмечали, не в линейной зависимости.
Чем я и воспользовался. Я нашёл GGUF‑модель Wan2.2-I2V‑A14B с квантованием Q4_K_M, которая подошла мне по размеру и, как писали на форумах, показывает результаты намного лучше, чем wan2.2_ti2v_5B. Это, ко всему прочему, может обуславливаться тем, что помимо более сложной структуры генерация производится в два этапа: high и low noise. Первая генерирует основную композицию, а вторая — детали.
Также я использовал с данной моделью LoRA‑ускоритель lightx2v_4steps, что позволило получать удовлетворительный результат уже на 4 шагах. Это сильно сократило время генерации. Это решение мне ещё аукнется, но об этом позже.
Затем я произвёл небольшую оптимизацию железа, а именно установил новый SSD, на который разместил все модели и файл подкачки. Последний, между прочим, дал довольно неожиданный прирост к скорости. Оперативной памяти у меня 32 ГБ, и её всегда хватало с запасом, но как только я разместил файл подкачки на SSD, оптимальное количество кадров для генерации видео разрешения 480×480 поднялось с 39 до 53.
Но данное количество кадров меня всё равно не устраивало, да и при переходе на разрешение 720×720 количество доступных генерируемых кадров резко падало. Также я хочу отметить, что даже при возможности использовать максимальный функционал данной модели больше 81 кадра за раз сформировать всё равно не получится.
После этого я начал думать, как последовательно генерировать видео.
Первая идея была подкидывать последний кадр как референс первого. Но эта идея была провальна, так как не сохранялась информация о предыдущих кадрах, и движения получались рваные и несогласованные.
Затем я начал искать какие‑нибудь готовые решения, но все они были заключены в одну большую ноду, к которой подключались все модели одновременно, что приводило к переполнению памяти. Такие варианты были нежизнеспособны. Мне нужен был какой‑нибудь более тонкий механизм для настройки оптимизации.

В итоге после длительных изысканий я наткнулся на ноду Wan First‑Middle‑Last Frame to Video из пакета Wan22FMLF. Она умеет подготавливать данные для генерации видео по трём ключевым кадрам и с возможностью выбирать положение среднего кадра.
И тут у меня и зародилась идея о генерации нового видео по двум ключевым кадрам, взятым из предыдущего. Первый взят откуда‑то из середины предыдущего, а средний — с его конца. После генерации нам останется только подрезать пересекающиеся кадры для исключения несогласованности и объединить последний кадр с ключевым кадром из середины нового видео, которые не должны отличаться.
Единственное условие: индекс кадра среднего видео должен быть кратен четырём, так как это длина генерируемого сегмента моделью. Не номер строки, а именно индекс — индексы у нас начинаются с нуля.

После данных операций у нас получается одно длинное видео, кадры между которому согласованы. Самый лучший результат я получил при перекрытии 12 кадров, но в сильно динамичных сценах лучше использовать 8.
Этот механизм можно масштабировать до бесконечности. И при увеличении сегментов время обработки растёт линейно.
Первый и самый яркий минус, с которым я столкнулся, — это пересвет среднего кадра. Средний кадр как будто высветлялся и тянул за собой соседние. Этот эффект получилось довольно неплохо устранить за счёт настройки шума среднего кадра и увеличения перекрытия. Но полностью побороть его не получилось: в некоторых сценах он немного бьёт по глазам.
В целом на постпродакшене можно вручную поправить экспозицию и убрать засвет — ничего критичного в этом я не вижу. Чуть позже я выяснил, что этот эффект появляется из‑за lightx2v_4steps, но избавляться от него не стал, так как без него генерация видео будет длиться в 5 раз дольше.
Вторая проблема — это потеря деталей при переходе от секции к секции. В частности, если на первом и среднем кадре чего‑то нет, что было в начальном видео, скорее всего, его мы больше не увидим.
|
Разрешение |
Кадров |
Генераций |
Время |
Оверлей |
|---|---|---|---|---|
|
480×480 |
52 |
1 |
6 мин |
— |
|
480×480 |
132 |
3 |
18 мин |
12 кадров |
|
480×832 |
132 |
3 |
30 мин |
12 кадров |
На этом я закончу свой монолог. Надеюсь, данная статья была для вас полезна. Ниже приложу рабочий процесс с готовой реализацией данного механизма.
Автор: fullnavigator
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/amd/458422
Ссылки в тексте:
[1] disk.yandex.ru: https://disk.yandex.ru/showcaptcha?cc=1&form-fb-hint=2.73&mt=9F9C08B14728937D2FE553AA224299495FAD3F4E17FD763161C489174D2E891C1EBDCDED3D775AB6ACC2A94B008D071F9C220F0B96B12B79F6F71BFC0A2FEB531351024CCAE429840C29E518FE8E26B1F41E947BD837BD9AC8398A427E835B2ABB60F8E2FF19E5F6A016EBAC4285A37A49E5AD465970583C6D4F408F56BF575BEFE0F59D3B6C89E8584A1BD2341C4E9B715262B923F49E68990B1A959F63CBBA0A2E7D18161856018EC2B34093D0FEAFD02AA9A6CB607EBB7F10F7FECE2777A4F58CBD3830C0E095D16733C8179EB5B949C760B1BFCEEF68371DEB2D4B531F1B1591E3FF8B1E7B6372EDCE6E4CEA17AC84E2&retpath=aHR0cHM6Ly9kaXNrLnlhbmRleC5ydS9pL2hWLXZVbzFJOEw2Mnhn_72de21b26d1b9421a39d4dc7d984f67e&t=2%252F1789749246%252F3f2948b3a607ab682ec20a3f0ca8856b&u=9427574334678802811&s=5f3891e32bef8b867225aaf91d82b52b
[2] disk.yandex.ru: https://disk.yandex.ru/showcaptcha?cc=1&form-fb-hint=2.73&mt=9F97EA025398FBE3086F40ECBB40A4751AE6E024E6FE596204FEE284BD95B3C500CF45CCAFB912B3EA29C93B8D893DA84CAA8E171DE5D93EF49B242CDF5D5179385EE53D4A5C1FD736508D47429CF12EA6A63880D38B9BFF1FB259A1B14760E4B87C11C3F4282A0257953F7F2309B557EA988FF1A28D06CFBEFA622F659DA54E5E0737923D54240397795A4086A60FA36D6A6834710170C92EB6259131939231287F0BE936FA196008A612F90E1D169207B950B1763E85BB54AB28C82C48F5CC234A66F6FC3D6989C126E0C47D82B04B5F878C5471DEFFF09DA6232D2E6918E26DD9D930B6021B92E6D742A3BFE9A14B03CA&retpath=aHR0cHM6Ly9kaXNrLnlhbmRleC5ydS9kL0dDTGdUVHNHLUVreEZB_c5aa09169f34d68747acae89c2aceead&t=2%252F1789747932%252F7eda05af1c4e4970ad7a6431bbc3553f&u=9427486125578158222&s=983df6bda9ff67106e94c613495186c6
[3] Источник: https://habr.com/ru/articles/1084628/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1084628
Нажмите здесь для печати.