Forwarded from Не AБы какие тесты
Привет, товарищи-статистики!
На днях Дима Лунин из Авито выпустил свою 5-ую статью на хабре (с чем и поздравим!) по базе AB: "Методичка по AB-тестированию от аналитиков Авито". И когда пишет такой специалист как Дима, то прочитать стоит вне зависимости от того, база это или нет, так как, возможно, какие-то очень хорошо знакомые понятия предстанут вам под другим углом, такие углы ищу и я, корректируя и уточняя формулировки для курса.
Со своей стороны оставил ряд комментариев к статье (и не только к ней, кстати!), думаю, они могут быть полезны.
Читать комментарии к статье от Димы
P.S. В пятницу ждите пост про новый поток по AB, пора, мои товарищи, пора!
На днях Дима Лунин из Авито выпустил свою 5-ую статью на хабре (с чем и поздравим!) по базе AB: "Методичка по AB-тестированию от аналитиков Авито". И когда пишет такой специалист как Дима, то прочитать стоит вне зависимости от того, база это или нет, так как, возможно, какие-то очень хорошо знакомые понятия предстанут вам под другим углом, такие углы ищу и я, корректируя и уточняя формулировки для курса.
Со своей стороны оставил ряд комментариев к статье (и не только к ней, кстати!), думаю, они могут быть полезны.
Читать комментарии к статье от Димы
P.S. В пятницу ждите пост про новый поток по AB, пора, мои товарищи, пора!
Telegraph
Комментарии по механике AB-тестирования от Авито
1.Почему чаще всего сравниваем средние? Мне очень понравилось объяснение, почему чтобы определить, приносит ли больше денег наша фича, достаточно сравнить математические ожидания наших выборок A и B. А ведь для бизнеса это может быть неочевидно! Действительно…
Forwarded from Dimension AI | Dmitry Sirakov
Почему SGR в агентных задачах - плохая идея?
Ринат в последнее время пишет про SGR и его применение в агентных задачах. Про сам SGR подробнее можно посмотреть здесь.
TL;DR: SGR — частный случай Structured Output, где перед финальным ответом задаются «поля», которые позволяют вести LLM более контролируемо к нужной области ответа, а затем, учитывая пункты, которые она написала «выше», LLM формирует финальный ответ (или выполняет действие, которое также жёстко задано JSON-схемой).
В чём вообще отличие? Если и SGR, и Tools приводят к JSON для вызова тула?
Кажется, результат должен быть одинаковым — и в SGR мы даже можем что-то дополнительно контролировать. Звучит супер!
Как LLM пишет ответ в случае SGR (например, для тулзы)?
LLM генерирует ответ; отдельный бэкенд (например, xgrammar) выступает в роли конечного автомата: читает переданную схему, строит грамматику и «не даёт» LLM писать токены, не соответствующие схеме.
В знаменитом
Не видите подвоха?
1) В chat-template поле tools пустое (даже если LLM поддерживает tools).
2) LLM пишет какой-то JSON, а в ответ ей прилетает следующее сообщение с ролью tool (хотя тулов у LLM «нет» — они не были явно переданы через tools).
Следствие.
LLM пишет JSON, а в ответ получает результат тула. Если посмотреть на известные бенчмарки по tool calling, такого поведения вообще не ожидается: модели обычно обучаются и оцениваются в сценариях, где доступные инструменты передаются явно, а вызов идёт через структурированное поле function/tool-calls.
Представляете, что происходит в голове у LLM, когда подобных диалогов нет ни в открытых датасетах, ни в референсных туториалах провайдеров: даже семантика вызова tools теряется. В чат-истории внезапно появляются «инструменты», хотя их не передавали через tools, и «вызов» сделан абстрактным JSON в content, а не через нативное поле tool_calls. Официальные гайды OpenAI/Anthropic учат обратному: передайте список tools в шаблон, модель выберет нужную функцию и сформирует аргументы в структурированном поле; не вызывайте того, чего нет в tools.
Как работает TOOLS?
Tools - это поле, которое подмешивается в chat-template. На этапе SFT/RL модель учится работать именно с таким протоколом: не вызывать то, чего нет, и вызывать то, что доступно. Это зафиксировано и в провайдерских практиках (OpenAI/Anthropic), и в академических/ресерчерских наборах для оценки агентости (When2Call (NVIDIA)
Модель не должна пользоваться тулами, если их не передали в tools. Какие tools передали — такими и пользуется.
«Но мы же теряем reasoning и отладку?»
Нет, не теряем. Никто не запрещает первыми аргументами (по аналогии с SGR) сделать поля в функции — «reasoning», ключевые «якоря» и т. п. За счёт этого вы получаете:
1) более нативное использование инструментов (внутри официального протокола tool-calling),
2) более прозрачную историю сообщений,
3) более стабильную систему.
Да, здесь reasoning идёт в аргументы функции (которых может быть много), а не в выборе нужной функции. Но даже крупные компании не рекомендуют засовывать слишком много функций в один промпт — если модель «теряется», лучше декомпозировать систему/поправить промпты, а не «эмулировать» tool-calls через SGR.
Ради эксперимента можете измерить перплексию на диалогах с параллельными вызовами тулов в форматах SGR vs Tools и посмотреть, какой формат «интуитивнее» для модели.
Чуть с более другой стороны объяснил Валера Ковальский, подробнее тут
Ринат в последнее время пишет про SGR и его применение в агентных задачах. Про сам SGR подробнее можно посмотреть здесь.
TL;DR: SGR — частный случай Structured Output, где перед финальным ответом задаются «поля», которые позволяют вести LLM более контролируемо к нужной области ответа, а затем, учитывая пункты, которые она написала «выше», LLM формирует финальный ответ (или выполняет действие, которое также жёстко задано JSON-схемой).
В чём вообще отличие? Если и SGR, и Tools приводят к JSON для вызова тула?
Кажется, результат должен быть одинаковым — и в SGR мы даже можем что-то дополнительно контролировать. Звучит супер!
Как LLM пишет ответ в случае SGR (например, для тулзы)?
LLM генерирует ответ; отдельный бэкенд (например, xgrammar) выступает в роли конечного автомата: читает переданную схему, строит грамматику и «не даёт» LLM писать токены, не соответствующие схеме.
В знаменитом
chat.completions() нам вернётся сообщение вида {role: 'assistant', content: '<JSON-строка>', tool_calls: []}; потом мы парсим content и подкладываем в историю сообщение вида {role: 'tool', content: '<результат тула>'}. Я намеренно опустил пару деталей для наглядности, но в общих чертах так оно и выглядит.Не видите подвоха?
1) В chat-template поле tools пустое (даже если LLM поддерживает tools).
2) LLM пишет какой-то JSON, а в ответ ей прилетает следующее сообщение с ролью tool (хотя тулов у LLM «нет» — они не были явно переданы через tools).
Следствие.
LLM пишет JSON, а в ответ получает результат тула. Если посмотреть на известные бенчмарки по tool calling, такого поведения вообще не ожидается: модели обычно обучаются и оцениваются в сценариях, где доступные инструменты передаются явно, а вызов идёт через структурированное поле function/tool-calls.
Представляете, что происходит в голове у LLM, когда подобных диалогов нет ни в открытых датасетах, ни в референсных туториалах провайдеров: даже семантика вызова tools теряется. В чат-истории внезапно появляются «инструменты», хотя их не передавали через tools, и «вызов» сделан абстрактным JSON в content, а не через нативное поле tool_calls. Официальные гайды OpenAI/Anthropic учат обратному: передайте список tools в шаблон, модель выберет нужную функцию и сформирует аргументы в структурированном поле; не вызывайте того, чего нет в tools.
Как работает TOOLS?
Tools - это поле, которое подмешивается в chat-template. На этапе SFT/RL модель учится работать именно с таким протоколом: не вызывать то, чего нет, и вызывать то, что доступно. Это зафиксировано и в провайдерских практиках (OpenAI/Anthropic), и в академических/ресерчерских наборах для оценки агентости (When2Call (NVIDIA)
tool hallucination rate тому пример внутри бенча, BFCL/Gorilla включает специальную категорию Function Relevance Detection: когда ни один из переданных тулов не подходит - модель должна не делать call. Есть и Chatting Capability: вообще без переданных тулов, проверяется, что модель пишет ответ как чат-бот, не вызывая функции).Модель не должна пользоваться тулами, если их не передали в tools. Какие tools передали — такими и пользуется.
«Но мы же теряем reasoning и отладку?»
Нет, не теряем. Никто не запрещает первыми аргументами (по аналогии с SGR) сделать поля в функции — «reasoning», ключевые «якоря» и т. п. За счёт этого вы получаете:
1) более нативное использование инструментов (внутри официального протокола tool-calling),
2) более прозрачную историю сообщений,
3) более стабильную систему.
Да, здесь reasoning идёт в аргументы функции (которых может быть много), а не в выборе нужной функции. Но даже крупные компании не рекомендуют засовывать слишком много функций в один промпт — если модель «теряется», лучше декомпозировать систему/поправить промпты, а не «эмулировать» tool-calls через SGR.
Ради эксперимента можете измерить перплексию на диалогах с параллельными вызовами тулов в форматах SGR vs Tools и посмотреть, какой формат «интуитивнее» для модели.
Чуть с более другой стороны объяснил Валера Ковальский, подробнее тут
Forwarded from Pavel Zloi
img2md.rpa.icu
img2md VLM OCR
img2md VLM OCR - AI-powered document analysis and text extraction with layout preservation
Про OCR при помощи VLM
Опубликовал свой новый проект img2md-vlm-ocr, в нём я экспериментирую с использованием Vision-Language моделей (VLM) в роли OCR-движка.
На идею меня подтолкнули публикации Валерия Ковальского (раз, два) про распознавание текста с картинок при помощи сегментатора YOLOv8 заточенного под документы и VLM модели qwen2.5vl (7b, так как 72b дюже большая) запущенной на моей домашней ollama в качестве OCR.
Что умеет система:
- Можно закинуть одну или несколько картинок.
- Система выделяет bounding box при помощи сегментатора и достаёт текст через OCR.
- Вырезает отдельные куски если это не текст, а картинка или график.
- Возвращает результат в формате Markdown.
- Можно скачать итог в виде ZIP-архива (вырезки + распознанный текст).
Где посмотреть:
- Сервис: https://img2md.rpa.icu/
- API-документация: https://img2md.rpa.icu/docs/
- Репозиторий: https://github.com/EvilFreelancer/img2md-vlm-ocr
Дополнительно:
В проекте есть скрипты на Python, которые позволяют массово обрабатывать PDF-файлы и автоматически сшивать полученные Markdown воедино. Это удобно, если нужно конвертировать целые документы и получить структурированный текстовый результат.
PS. Буду рад обратной связи!
Опубликовал свой новый проект img2md-vlm-ocr, в нём я экспериментирую с использованием Vision-Language моделей (VLM) в роли OCR-движка.
На идею меня подтолкнули публикации Валерия Ковальского (раз, два) про распознавание текста с картинок при помощи сегментатора YOLOv8 заточенного под документы и VLM модели qwen2.5vl (7b, так как 72b дюже большая) запущенной на моей домашней ollama в качестве OCR.
Что умеет система:
- Можно закинуть одну или несколько картинок.
- Система выделяет bounding box при помощи сегментатора и достаёт текст через OCR.
- Вырезает отдельные куски если это не текст, а картинка или график.
- Возвращает результат в формате Markdown.
- Можно скачать итог в виде ZIP-архива (вырезки + распознанный текст).
Где посмотреть:
- Сервис: https://img2md.rpa.icu/
- API-документация: https://img2md.rpa.icu/docs/
- Репозиторий: https://github.com/EvilFreelancer/img2md-vlm-ocr
Дополнительно:
В проекте есть скрипты на Python, которые позволяют массово обрабатывать PDF-файлы и автоматически сшивать полученные Markdown воедино. Это удобно, если нужно конвертировать целые документы и получить структурированный текстовый результат.
PS. Буду рад обратной связи!
Forwarded from Young&&Yandex
Перед тем как приступить к тренировкам, захвати свой стартовый пакет. Внутри — полезные материалы:
ML:
🔘 Прошлые запуски: первые (основы), вторые (NLP), третьи (CV), а также текстовые разборы некоторых лекций🔘 Заметки Евгения Соколова с курса Машинного обучения на ФКН ВШЭ🔘 Блог Александра Дьяконова «Анализ малых данных»🔘 Учебник по ML от ШАД Яндекса🔘 Книга Mathematics for Machine Learning🔘 Сайт по RL от одного из сотрудников OpenAI
Алгоритмы:
1. Тестирование
Теория: https://youtube.com/live/c67zB3FWLOs
Практика:https://contest.yandex.ru/contest/66792
2. Множества и словари
Теория: https://youtube.com/live/jQOnYzW8ZOE?feature=share
Практика: https://contest.yandex.ru/contest/59541
3. Одномерное динамическое программирование
Теория: https://www.youtube.com/watch?v=H7lu6h8H9-4
Практика: https://contest.yandex.ru/contest/45469/enter/ и https://contest.yandex.ru/contest/45468/enter/
4. Двумерное динамическое программирование
Теория: https://www.youtube.com/live/U8gzm92fprI
Практика: https://contest.yandex.ru/contest/45469/enter/ и https://contest.yandex.ru/contest/45468/enter/
5. Деревья
Теория: https://youtube.com/live/O9ffppQ05-c?feature=share
Практика: https://contest.yandex.ru/contest/66795
6. Бинарный поиск
Теория: https://youtube.com/live/-B6xvDeGyPg?feature=share
Практика: https://contest.yandex.ru/contest/59542
7. Префиксные суммы, два указателя
Теория: https://youtube.com/live/B4uP6igiVNU?feature=share
Практика: https://contest.yandex.ru/contest/66793
8. Сортировка событий
Теория: https://www.youtube.com/watch?v=hGixDBO-p6Q&t=1s
Практика:https://contest.yandex.ru/contest/27883/enter/
Старт совсем скоро: yandex.ru/yaintern/training
Подписывайся
@Young_and_Yandex
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Maxim.ML - канал
Спонсор вайба на выходных - Илон Маск, а с меня - свежий лайфхак для vibe-кодинга
Начну сразу с главного: два дня тестирую новую Grok Code Fast 1 (xAI), которую сейчас бесплатно раздают в Cursor (аж до 2 сентября, вы тоже успеете потестировать), но все таки, пока что личный фаворит - это Claude 4 Sonnet
Grok Code Fast 1 генерирует код с какой-то нечеловеческой скоростью (авторы заявляют 160 tokens per second). Я с ним за час набросал ядро сложного мультимодального RAG-поиска. А потом пришло время все это собирать воедино с основным сервисом. И пошли проблемы. Ассистент, пытаясь исправить одну ошибку, создавал три новых. Думаю эта ситуация знакома многим
И вот мой лайфхак, который спасает 90% времени и нервов - это тесты с подробными логами. Это ваш единственный объективный критерий того, что все работает как надо
Этот подход можно разбить на две части
Допустим, мы только что собрали мультимодальный RAG-поиск. Мой промпт будет выглядеть так (обычно пишу на английском - субъективно работает лучше и дешевле ):
🟡 Пишем тесты:
Обычно в момент написания все тесты проходят без проблем, но это только пока мы не насоздавали еще десятки зависимостей
🟡 А если зависимости все ломают, то дебажим при помощи тестов:
И это отлично работает! Особенно когда приходится переключаться между чатами с потерей контекста
Что касается моих впечатлений от Grok Code Fast 1 - модель быстрая, но сыровата, хотя метрики на SWE bench могут впечатлить. Для большинства практических задач связка Claude 4 Sonnet с описанной выше методологией пока остается непревзойденной. Я потратил час на написание фичи с Grok, а потом еще 30 минут дебажил результат с помощью Claude и тестов..
Всем вайбовых выходных!
💃 #vibe_coding@ml_maxim
Начну сразу с главного: два дня тестирую новую Grok Code Fast 1 (xAI), которую сейчас бесплатно раздают в Cursor (аж до 2 сентября, вы тоже успеете потестировать), но все таки, пока что личный фаворит - это Claude 4 Sonnet
Grok Code Fast 1 генерирует код с какой-то нечеловеческой скоростью (авторы заявляют 160 tokens per second). Я с ним за час набросал ядро сложного мультимодального RAG-поиска. А потом пришло время все это собирать воедино с основным сервисом. И пошли проблемы. Ассистент, пытаясь исправить одну ошибку, создавал три новых. Думаю эта ситуация знакома многим
И вот мой лайфхак, который спасает 90% времени и нервов - это тесты с подробными логами. Это ваш единственный объективный критерий того, что все работает как надо
Этот подход можно разбить на две части
Допустим, мы только что собрали мультимодальный RAG-поиск. Мой промпт будет выглядеть так (
Here is the python module with multi-modal RAG logic [code]. Your job is write an extensive tests for it using pytest. I need at least 20 tests covering huge bunch of cases: from file uploads to API responses and edge cases like empty inputs and hard cases with different input combinations.
Обычно в момент написания все тесты проходят без проблем, но это только пока мы не насоздавали еще десятки зависимостей
Okay, look. Here is the output of the tests we wrote before. [вставляю лог с ошибками]. 4 / 20 tests failed. Your changes broke the critical functionality. Your one and only goal right now is to fix the code so that all 20 tests pass again. start fixing all failed tests.
И это отлично работает! Особенно когда приходится переключаться между чатами с потерей контекста
Что касается моих впечатлений от Grok Code Fast 1 - модель быстрая, но сыровата, хотя метрики на SWE bench могут впечатлить. Для большинства практических задач связка Claude 4 Sonnet с описанной выше методологией пока остается непревзойденной. Я потратил час на написание фичи с Grok, а потом еще 30 минут дебажил результат с помощью Claude и тестов..
Всем вайбовых выходных!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from .ml
Почему LLM без Alignment — это риск?
Обучение на миллиардах токенов даёт языковой модели грамотность, но не гарантирует адекватность. Без Alignment она может:
📌 выдавать логически неверные ответы,
📌 генерировать небезопасный контент,
📌 игнорировать бизнес-ограничения.
Что такое Alignment? Это дообучение с учётом предпочтений и ограничений, которое делает модель предсказуемой и управляемой.
Написали статью на Хабр, в которой разбираем:
📝 Методы Alignment: от PPO (Proximal Policy Optimization) до новых подходов DPO и KTO.
📝 Наш опыт: как мы в Точка Банк настроили LLM под конкретные сценарии, обучили модель наград и сократили затраты по сравнению с классическим RLHF.
📝 Грабли и лайфхаки: как работать с несбалансированным датасетом и не дать модели обмануть функцию награды.
📝 Где применять Alignment за пределами LLM: от cost-sensitive классификации до vision-language моделей.
Точно будет полезно, если строите собственную LLM — читайте и задавайте вопросы в комментариях!
Обучение на миллиардах токенов даёт языковой модели грамотность, но не гарантирует адекватность. Без Alignment она может:
📌 выдавать логически неверные ответы,
📌 генерировать небезопасный контент,
📌 игнорировать бизнес-ограничения.
Что такое Alignment? Это дообучение с учётом предпочтений и ограничений, которое делает модель предсказуемой и управляемой.
Написали статью на Хабр, в которой разбираем:
📝 Методы Alignment: от PPO (Proximal Policy Optimization) до новых подходов DPO и KTO.
📝 Наш опыт: как мы в Точка Банк настроили LLM под конкретные сценарии, обучили модель наград и сократили затраты по сравнению с классическим RLHF.
📝 Грабли и лайфхаки: как работать с несбалансированным датасетом и не дать модели обмануть функцию награды.
📝 Где применять Alignment за пределами LLM: от cost-sensitive классификации до vision-language моделей.
Точно будет полезно, если строите собственную LLM — читайте и задавайте вопросы в комментариях!
Хабр
LLM на прокачку: практический гайд по Alignment
Мы в Точка Банке делаем свою LLM. Чтобы она работала хорошо, недостаточно просто обучить её на куче текстов. Для получения осмысленного и предсказуемого поведения модели, нужен Alignment — дообучение...
Forwarded from Институт AIRI
Все лекции и семинары «Лето с AIRI 2025» теперь в открытом доступе 🔥
Собрали для вас записи выступлений ведущих исследователей и экспертов — от фундаментальных вопросов искусственного интеллекта до практических примеров его применения в науке и индустрии.
📎 Сохраняйте ссылки на плейлисты: VK Видео, YouTube
Собрали для вас записи выступлений ведущих исследователей и экспертов — от фундаментальных вопросов искусственного интеллекта до практических примеров его применения в науке и индустрии.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from max.sh
Обновленная версия CS231N🔥
У легендарного курса появилось обновление. Стэнфорд выложил все лекции CS231N про DL для задач Компьютерного Зрения на ютуб.
Ссылка на плейлист
Прошлая версия датирована 2017 годом и у меня от тех лекций только самые приятные воспоминания. Неоднократно прибегал к ним, чтобы разобраться в базовой теории.
Часть лекторов сохранилась. Fei-Fei Li мелькает только во введении (оно и понятно, у нее теперь стартап про World Models), Andrej Karpathy не замечен, а вот Justin Johnson ведет несколько блоков. Так же стало больше приглашенных лекторов.
Несмотря на упор в CV, курс является отличным введением в DL. Здесь и про базу нейронных сетей, и разные архитектуры, и методы обучения.
В частности, программу проапгрейдили на актуальные свежие темы, например:
- Vision Language Models ( VLM )
- Обучение роботов
- Large Scale Distributed Training
⚡️ Налетаем смотреть
Happy Learning!
#образование
У легендарного курса появилось обновление. Стэнфорд выложил все лекции CS231N про DL для задач Компьютерного Зрения на ютуб.
Ссылка на плейлист
Прошлая версия датирована 2017 годом и у меня от тех лекций только самые приятные воспоминания. Неоднократно прибегал к ним, чтобы разобраться в базовой теории.
Часть лекторов сохранилась. Fei-Fei Li мелькает только во введении (оно и понятно, у нее теперь стартап про World Models), Andrej Karpathy не замечен, а вот Justin Johnson ведет несколько блоков. Так же стало больше приглашенных лекторов.
Несмотря на упор в CV, курс является отличным введением в DL. Здесь и про базу нейронных сетей, и разные архитектуры, и методы обучения.
В частности, программу проапгрейдили на актуальные свежие темы, например:
- Vision Language Models ( VLM )
- Обучение роботов
- Large Scale Distributed Training
Happy Learning!
#образование
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Tensor Banana
Media is too big
VIEW IN TELEGRAM
Нейро-Эмма - Моя любовь чат джипити (infiniteTalk)
слова: tensorbanana & gemini-2.5-pro
песня: udio-1.5-allegro
картинки: wan2.2 t2i
анимация: wan2.2 i2v
липсинк: infiniteTalk video2video
консистентность: лора+детальное описание
gemini-2.5-pro, наверное, лучше всех пишет стихи на русском. На самые жирные бэнгеры пришлось самому придумывать.
udio-1.5-allegro (бесплатный) - удивил, он намного лучше бесплатного suno. Платные модели suno я не тестил, но те что стоят в бесплатном режиме - это просто прошлый век по сравнению с udio.
Сгенерировал одну стартовую картинку с гитарой, далее просто продолжал ее через image2video и движение камеры.
Лоры на движение камеры:
зум вперед: https://civitai.com/models/1784288/motion-lora-camera-push-in-wan-14b-720p-i2v
вправо-влево: https://civitai.com/models/1892318/whip-pan
Еще пробовал через первый-последний кадр в vace, но выходило плохо с движением камеры, забил на это. Надо попробовать в wan-fun, но мне было лень качать. Также просил gemini-image (nano-banana) скомпоновать новый кадр со старыми персонажами, но тот отказался (скорее всего, ему топик не понравился).
Робот танцует через vace video2video с dwpose.
infiniteTalk video2video от kijai жрет кучу врам. При 720p со скользящим окном в 49 кадров - 34 GB (уходит в виртуальную vram). Все видео делится на куски по 49 кадров с перехлестом в 9 кадров и отправляется на липсинк. Чем больше окно, тем лучше консистеность, при 49 будут видны склейки. Окно в 65 и 81 кадр в 720p у меня падают по OOM ошибке. Если мало vram - пробуйте побольше blockswap, поменьше окно и 480p. Предположу, что на 12 GB должно запуститься, но это не точно.
Скорость infiniteTalk: 28 секунд 720p видео генерируется за 40 минут на 3090.
infiniteTalk работает на 2-х шагах с фиксированным деноизом 50%, а значит мелкие детали в исходном видео будут изменены. Например, в одном прогоне он сожрал барабанные палочки, Эмма просто махала руками. Поэтому нужно прописывать такие мелкие детали в промпт: Emma Watson woman is singing and playing at drum kit with 2 drum sticks in her hands, rock music, energetic music, fast movements
wan-s2v пока не тестил, но он и не поддерживает режим video2video (там только одна говорящая картинка). А с infiniteTalk можно делать динамичные сцены.
Сделал все за 3 вечера.
Воркфлоу infiniteTalk video2video: https://github.com/Mozer/comfy_stuff/blob/main/workflows/wan_infinitetalk_video2video_720p_49f.json
слова: tensorbanana & gemini-2.5-pro
песня: udio-1.5-allegro
картинки: wan2.2 t2i
анимация: wan2.2 i2v
липсинк: infiniteTalk video2video
консистентность: лора+детальное описание
gemini-2.5-pro, наверное, лучше всех пишет стихи на русском. На самые жирные бэнгеры пришлось самому придумывать.
udio-1.5-allegro (бесплатный) - удивил, он намного лучше бесплатного suno. Платные модели suno я не тестил, но те что стоят в бесплатном режиме - это просто прошлый век по сравнению с udio.
Сгенерировал одну стартовую картинку с гитарой, далее просто продолжал ее через image2video и движение камеры.
Лоры на движение камеры:
зум вперед: https://civitai.com/models/1784288/motion-lora-camera-push-in-wan-14b-720p-i2v
вправо-влево: https://civitai.com/models/1892318/whip-pan
Еще пробовал через первый-последний кадр в vace, но выходило плохо с движением камеры, забил на это. Надо попробовать в wan-fun, но мне было лень качать. Также просил gemini-image (nano-banana) скомпоновать новый кадр со старыми персонажами, но тот отказался (скорее всего, ему топик не понравился).
Робот танцует через vace video2video с dwpose.
infiniteTalk video2video от kijai жрет кучу врам. При 720p со скользящим окном в 49 кадров - 34 GB (уходит в виртуальную vram). Все видео делится на куски по 49 кадров с перехлестом в 9 кадров и отправляется на липсинк. Чем больше окно, тем лучше консистеность, при 49 будут видны склейки. Окно в 65 и 81 кадр в 720p у меня падают по OOM ошибке. Если мало vram - пробуйте побольше blockswap, поменьше окно и 480p. Предположу, что на 12 GB должно запуститься, но это не точно.
Скорость infiniteTalk: 28 секунд 720p видео генерируется за 40 минут на 3090.
infiniteTalk работает на 2-х шагах с фиксированным деноизом 50%, а значит мелкие детали в исходном видео будут изменены. Например, в одном прогоне он сожрал барабанные палочки, Эмма просто махала руками. Поэтому нужно прописывать такие мелкие детали в промпт: Emma Watson woman is singing and playing at drum kit with 2 drum sticks in her hands, rock music, energetic music, fast movements
wan-s2v пока не тестил, но он и не поддерживает режим video2video (там только одна говорящая картинка). А с infiniteTalk можно делать динамичные сцены.
Сделал все за 3 вечера.
Воркфлоу infiniteTalk video2video: https://github.com/Mozer/comfy_stuff/blob/main/workflows/wan_infinitetalk_video2video_720p_49f.json