Psy Eyes
6.8K subscribers
1.43K photos
1.57K videos
5 files
1.55K links
Креатив + AI + Web3... и мемы

Личная страница @AndreyBezryadin

Купить рекламу: https://telega.in/c/Psy_Eyes
Без наценки Telegain и индивидуальными датами — в личке.
Download Telegram
Бесшовные длинные видео.

Smooth Travel: у генераторов ваяющих видосы по двум кадрам есть проблема, что стык виден по цветам, подводящему движению, и паузе на месте шва.

Котаны с Banodoco, а именно его основатель Pom, сделал воркфлоу Smooth Travel для плавного перехода между ключевыми кадрами без этого косяка.

Работает на базе его же аниматора картинок Steerable Motion, для которого есть ноды в Comfy. Открывам воркфлоу, закидываем 7 изображений, пишем промт, выбираем нужные параметры и генерим. По ходу пьесы получаем 7 видео фрагментов, которые в конце объединяются в одно.

Воркфлоу по умолчанию настроен в 8 шагов генерить крупными 14B версиями Wan и VACE, но можно использовать и 1.3B. На удивление весьма неплохо выходит по качеству, если отключить TeaCache (для этой модели он и ни к чему). 14B очень хорошо сохраняет и дорисовывает детали. Между fp8 и fp16 разницы по скорости почти нет 57 сек/шаг против 58 сек/шаг ибо много обработки перекладывается на RAM, а по качеству она видна в детализации (нет пожатости).

FPS дефолтно стоит на 8, потому что сгенерившиеся фрагменты в конце с помощью FILM VFI интерполируются в 2 раза (или как сам поставишь) и сшиваются в итоговое видео. Я попробовал разный фреймрейт, не увидел сильной разницы по потреблению VRAM и оставил везде 24 fps, отключив интерполяцию. Что ещё дало и прирост скорости, ибо не нужно было ждать пока кадры соединятся и кэш отчистится.

Далее тесты на 4090 + 128 ГБ RAM, PyTorch 2.7, CUDA 12.9.


1.3B (fp16) скорость и потребление:

512х512, хрон 61 кадр, 8 fps, 8 шагов, 1,3 сек/шаг, TeaCache OFF, BlockSwap OFF, FLIM VFI ON === 213 сек (3,5 мин) // 6,5 ГБ VRAM

512х512, хрон 61 кадр, 24 fps, 8 шагов, 1,3 сек/шаг, TeaCache OFF, BlockSwap OFF === 115 сек (2 мин) // 6,5 ГБ VRAM

1024х1024, хрон 61 кадр, 24 fps, 8 шагов, 13 сек/шаг, TeaCache OFF, BlockSwap OFF === 814 сек (13,5 мин) // 15,2 ГБ VRAM

1024х1024, хрон 61 кадр, 24 fps, 8 шагов, 8,6 сек/шаг, TeaCache ON, BlockSwap OFF === 723 сек (12 мин) // 15,2 ГБ VRAM


14B (fp8) скорость и потребление:

512х512, хрон 61 кадр, 24 fps, 8 шагов, 6,5 сек/шаг, TeaCache OFF, BlockSwap OFF === 424 сек (7 мин) // 24 ГБ VRAM // 65 ГБ RAM

1024x1024, хрон 61 кадр, 24 fps, 8 шагов, 57 сек/шаг, TeaCache OFF, BlockSwap 25 Wan / 5 VACE === 2956 сек (49 мин) // 24 ГБ VRAM // 80 ГБ RAM


14B (fp16) скорость и потребление:

512х512, хрон 61 кадр, 24 fps, 8 шагов, 9 сек/шаг, TeaCache OFF, BlockSwap 15 Wan / 5 VACE === 497 сек (8 мин) // 24 ГБ VRAM // 85 ГБ RAM

1024х1024, хрон 61 кадр, 24 fps, 8 шагов, 58 сек/шаг, TeaCache OFF, BlockSwap 30 Wan / 5 VACE === 3015 сек (50 мин) // 24 ГБ VRAM // 117 ГБ RAM

Каждый сгенерированный фрагмент съедает пару гигов RAM. Энергопотребление в моменте подлетает до 547 Вт.

Без BlockSwap запустить fp16 и частично fp8 не получалось, упиралось в VRAM. На дефолтных BlockSwap перекладывает 40 Wan и 5 VACE блоков трансформера с обработки видеопамятью на процессор и оперативку. Так он будет занимать 19 ГБ VRAM плюс 79 ГБ RAM.

Уменьшив количество блоков до 30 удалось загрузить VRAM до 24 ГБ, освободить оперативку до 69 RAM ибо оно в конце пиканёт до 117 ГБ, и получить ускорение в 2 секунды (58 сек против 56 сек), хотя от доп 5 ГБ VRAM ожидаешь большего. На этих настройках удалось получить максимальное качество в fp16, 1024х1024, 24 fps.

Стоит ещё поиграться с ускорялками помимо TeaCache. Fast fp16 тут работает и ускоряет 1.3b 512x512 с 1,3 сек до 1 сек без потери качества. Подрубить Torch Compile, пишут 30% буст должен быть. Посмотреть на разницу в замене блоков VACE на RAM. И там ещё в опциях новый тип внимания Flex Attention, который стоит затестить.

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

Кстати разные ракурсы с котом я сгенерил халявными кредитами в Kontext на сайте BFL, и пока я тестил этот воркфлоу вышел в опенсорс Kontext Dev. Время тестов!

Comfy воркфлоу
Дискорд
Comfy: добавили ноду IntelVINO для оптимизации генерации на железе Intel, включая cpu, gpu, npu.

Нода OpenVINO_TorchCompileModel ставится через Comfy менеджер. Апдейт позволяет получить существенное ускорение создания контента, не жертвуя качеством.

Для работы нужен Triton. Есть билд на Windows и на Linux. Я долго ходил вокруг да около него, не хотел и брыкался, а он поставился быстро и безболезненно. Главное следовать инструкциям с гитхаба. Бонусом идёт то, что он нужен для всяких Sage, Flash, и прочих атеншенов. Так что на OpenVINO с ним история не заканчивается.

Чтобы ноду привести в работу, нужно запустить Comfy с параметрами:

Для портативной версии:
.\python_embeded\python.exe -s ComfyUI\main.py --cpu --use-pytorch-cross-attention --windows-standalone-build
pause

Для декстопной (хотя я не нашёл в настройках где вбить):
python3 main.py --cpu --use-pytorch-cross-attention


Нода должна соединять загрузчик модели и KSampler как на видео. Если при запуске у вас будет ошибка про компилятор cl, добавьте путь до cl.exe в переменную среды Path. Путь типа такого:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.43.34808\bin\Hostx64\x64


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

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

На моём i9 12900k первый прогон занял 50 минут на дефолтную генерацию через Flux Kontext в 20 шагов (на 4090 это 28 сек для сравнения). При этом температура цп поднимается до 87, а потребление RAM до 77 ГБ.

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

UPDATE: удалось завести. Первая генерация 37 секунд, потом ускоряет Kontext в fp8 с 24 сек на картинку до 16 сек. Если запустить в сочетании с SageAttention и флагом в батнике --gpu --use-pytorch-cross-attention, то можно добить до 12 сек на генку, но может работать нестабильно. Папка python_embeded со всем нужным в комментах в виде архива. BF16 Kontext не ускоряется ибо не помещается целиком в 24 ГБ VRAM.

Анонс
Triton (Windows)
Triton (Linux)
Обзор редактора картинок тестом Flux Kontext Dev от BFL. Подробнее про сам Kontext и его облачные версии я писал тут, а этот пост сконцентриуется на тестах опенсорсной версии Dev.

На релизе нам доступно два воркфлоу: одно для поэтапного редактирования картинки в виде изменения объектов, смены ракурса и освещения, или переноса объекта/стиля с рефа, а другое для объединения персонажей с разных картинок на одно изображение.

В обоих случаях стоит помнить, что Kontext заточена под последовательное редактирование короткими промтами. Подразумевается, что вы будете дробить общую задачу на более мелкие. Сгенерили нужное изменение — нажали refresh, и картинка подаётся на вход вместо оригинала. И так далее в глубину.

Но вместе с этим могут начать вклиниваться и нежелательные элементы: снижение разрешения, смещение цветов, итд. Так, что в идеале целевой контент должен быть на расстоянии 1 изменения от оригинала.

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

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

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

Теперь к тестам Dev модели на 4090. Есть FP8 и есть BF16 версии.

FP8 влезает в 20 ГБ VRAM, пикуя до 22 ГБ. Генерит и следует промту хорошо, но видна пожатость изображения, детализация слабее, и она чаще отходит от оригинального лица.

24 сек на 1024х1024 в 20 шагов // воркфлоу редактирования
26 сек на 1635х1243 в 20 шагов // воркфлоу объединения

BF16 занимает 23,6 ГБ VRAM, не забивая её до отказа, и заходя в оперативку на десяток другой гигов с общим потреблением ~32 ГБ RAM. Здесь сетки уже не видно, картинка плавная и чёткая, а промту следует ещё лучше. Разница по скорости с fp8 в пару секунд, а по качеству она видна на глаз — если есть 24 ГБ VRAM, запускаем BF16 без оглядки.

28 сек на 1024х1024 в 20 шагов // воркфлоу редактирования
35 сек на 1635х1243 в 20 шагов // воркфлоу объединения

На 5090 при тех же параметрах редактирование 18 сек занимает.

Тут ещё и ускорение через ноду OpenVINO подъехало.

Тренировку я ещё не тестировал, но вы можете посмотреть на эту тему заметки от разрабов Comfy с их стрима, где они сравнивают Kontext и OmniGen2.

В один пост все не вместилось — далее будут наблюдения и замечания.

Анонс Kontext Dev
Хаггинг (FP8)
Хаггинг
(BF16)
Гайд по промтингу (BFL)
Гайд по промтингу (Comfy)
Подробнее про Kontext
Наблюдения и замечания по Flux Kontext Dev:

Пока мы просто меняем фон + следом одеяние персонажа + просим придерживаться рефа while maintaining the same facial features, hairstyle, and expression = всё хорошо. Стоит только изменениям зайти в поле действия лица, например, отдалить камеру, поднять руку на уровень головы, закурить сигару, итд, как начинают появляться красные шакалинки, а лицо становиться видавшим некоторое латентное пространство и сыпаться кубиками кнор. Причём квадратный шов вокруг пожатого оригинала часто хорошо виден, а часть полученная через аутпейнт четкая и гладкая.

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

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

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

Ну, и если говорить про лоры vs Kontext, то последний хоть и отлично держит человека при минимальном изменении его позиции в кадре, но первые могут дать больше свободы для движения персонажа, ибо обладают большими данными о лице и теле с разных сторон. Есть вариант и сразу вкидывать в Kontext мультивью обзор человека скажем с 4 точек + реф одежды, для комплексной смены внешнего вида. А если в Kontext можно будет давать скажем 5-10 фоток на вход, чтобы он именно имел более полный контекст о персонаже, то в каких-то пайплайнах отпадёт необходимость в трене.

Как я уже сказал дробите задачи на этапы:
1. сменить фон и одежду (что понравилось —> Refresh)
2. дать в руку карандаш (что понравилось —> Refresh)
3. отдалить кадр и вписать его как фото в журнал (что понравилось —> Refresh)
4. итд

Также делим сам промт на логические куски. Должно по-человечески чётко считываться, в какой последовательности, что должно измениться и как. Не вваливаем всё в одну кучу. Если есть возможность выделить на рефе место, которое нужно изменить, например в фотошопе, то это поможет модели дать нам, то что нужно.

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

Для отдаления кадра не просто пишите zoom out, а описывайте картинку какой она должна выглядеть в итоге.

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

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

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

Объединение картинок в одну отрабатывает проще, если вписать тригер place both characters together in one scene. Но картинки могут и не сшиться, а могут и получиться два персонажа разных масштабов и степени зашакаленности на одном фото.

Какие то полезные замечания ещё найдёте тут.

В целом Kontext инструмент годный. Пригодится в дизайне, рекламе, кино, итд. Нужно лишь понимать его ограничения, и знать как его использовать, чтобы получить то, что нужно.
Тест редактирования в Kontext Dev одним длинным промтом:

zoom out to make the frame a part of the newspaper, add a title below the frame in the style of 1920's newspaper "Billy Butcher" and subtitle below it "Reward $30 000" and below it "Dead or avatar" and a headline "Latent Daily" above the frame, change a white hoodie to be a black suite and tie, replace microphone with a minigun, maintain the facial characteristics and scale, black and white photo 1920's style
10
This media is not supported in your browser
VIEW IN TELEGRAM
Когда взял вайбкодера в команду
Котаны с Banodoco снова на связи.

Недавно Pom вышел с бесшовными динными видео в Smooth Travel. А теперь VRGameDevGirl84 замутила апскейлер видео, который может работать как в точном режиме придерживаясь оригинала, так и в креативном, генерируя от себя детали как недавняя Astra от Topaz. Последнюю кстати в широкий доступ дали.

Вытягивает пожатый lowres в 720p или 1080p. Для точного апскейла не пишем промт и ставим sampler denoise 0.3 - 0.5. Выше значения - больше улучшений.

Если нужно немного креативного апскейла с изменением стиля, добавляем промт и ставим sampler denoise 0.7 - 0.8.

Значения выше 0.85 считай создадут новое видео по промту. Без промта будет генериться рандом.

По потреблению инфы нет. Будет тестить и выяснять.

Воркфлоу тут или в комментах.

До этого VRGameDevGirl84 выпустила топовую видеомодель Fusionix на основе Wan, MoviiGen, VACE, CausVid, Phantom, и других сладостей.

Чтобы ссылка на Discord Banodoco сработала, надо сначала зайти по инвайту.

Comfy воркфлоу
Инвайт в Discord Banodoco
Апскейлер (Discord)
1