NOTES — саммари сессии (для продолжения)
Цель
Заменить персону в видео на «дилера» (4 фото блондинки в чёрном платье) через SCAIL-2 пайплайн, без ComfyUI-сервера — прямым Python-скриптом.
Что сделано и работает ✅
generate.py— self-contained скрипт: ComfyUI ноды импортируются напрямую, без API/сервера/GUI. Модели → промпты → маски →SCAILAutoExtend.generate()→ mp4.- Мультиреференс работает нативно:
reference_imageбатчем[N,H,W,C]— первый = основной, остальные = доп. виды. WanAnimatePlus для этого НЕ нужен. - Критичные параметры найдены (из workflow автора, файл
ComfyUI/custom_nodes/scail-auto-extend/SCAIL Auto Extend.json):ModelSamplingSD3 shift=5+euler+simplescheduler +6 steps+lightx2v LoRA @ 0.8+ пустой negative. Без shift — мыло. - SAM3-маски с кэшем (
masks.py): pose_video_mask + reference_image_mask, single-person (max_objects=1), кэш по хэшу входов вmask_cache/. - Результат (animation mode, без масок и с масками): дилер перенесён (блондинка, чёрное платье), движения следуют видео, зелёный фон сохранён. 81 кадр за ~1 мин на 6 шагах.
- Ollama остановлен. GPU 2–6 — чужая тренировка, не трогаем.
Что НЕ работает / открытые проблемы ❌
- Позиция персоны: в исходнике она слева, в выходе — по центру. Маска (синий силуэт слева) идеальна, но НЕ управляет позицией. Гипотеза: pose mask — про «какие пиксели какой персоне» (multi-person), а layout модель берёт из референсов (центрированные портреты → центр).
- Replacement mode с нашими входами — мусор: гигантское лицо дилера
на весь кадр + брюнетка-двойник. Причины:
- Баг референсов: портретные фото 3024×4032 центр-кропятся в ландшафт
832×480 → остаётся полоса «подбородок–грудь», голова отрезана
(
load_reference_imagesв generate.py). Надо: letterbox/pad вместо crop или портретное разрешение. - Возможно, replacement mode ждёт полноростовый реф, а не хедшот.
- Баг референсов: портретные фото 3024×4032 центр-кропятся в ландшафт
832×480 → остаётся полоса «подбородок–грудь», голова отрезана
(
- Маски не чинят позицию в animation mode (проверено: result3 — всё равно центр).
План действий (next steps)
Ветка А: crop-and-composite (приоритет)
composite.py уже написан, не подключён. Идея:
- Из SAM3-маски → union bbox персоны (
person_bboxуже есть) - Кроп видео вокруг персоны с margin → портрет (напр. 576×832)
- Генерация дилера в кропе (центрирование не мешает — кроп и так на персоне; заодно портрет = пропорции рефов дилера = голова не режется; персона ~340px ширины вместо 130px → лицо качественнее)
composite_back— вклейка в исходные кадры (с feather-маской)
Ветка Б: идея пользователя — первый кадр через 4B edit-модель
Пользователь ранее делал так: брал 1-й кадр видео, прогонял через маленькую
4B-модель с редактированием (промпт «замени персону на персону из изображения»),
получал первый фрейм с нужной идентичностью. Дальше это можно использовать
как стартовый кадр/реф для видео-пайплайна. Кандидаты: Qwen-Image-Edit,
FLUX.2-klein-4b (уже лежит в diffusion_models: flux-2-klein-4b-fp8.safetensors!).
Обсудить на следующей сессии: стыковка с SCAIL-2 (edited first frame →
reference или previous_frames).
Ветка В (отложено): WanAnimatePlus
prefix_frames (до 5 доп. рефов поверх нативных) + transition_video
(бесшовная склейка 21-кадровыми хвостами). Требует установки
ComfyUI-WanVideoWrapper + ComfyUI-WanAnimatePlus. Пока хватает нативного.
Полезные факты
- SCAIL-2 = Wan 2.1 14B, pose кодируется на ПОЛОВИННОМ разрешении.
- Ширина/высота — кратны 32 (иначе circular-pad артефакты).
SCAILAutoExtend: чанки 81 кадр, overlap 5, color transfer Reinhard LAB между чанками (борьба с дрифтом цвета).- Маски в SCAIL-2 — цветные: animation mode = pose-маска на ЧЁРНОМ фоне, ref-маска на БЕЛОМ; replacement — наоборот. 28-канальный поток.
- Ссылки на демо-видео в README WanAnimatePlus протухли (user-attachments).
- Загрузка на HF:
hf upload AiArtLab/video . --repo-type model(auth: recoilme).
Текущие артефакты
dealer_test2.mp4— animation без масок (центр, иначе хорошо)dealer_test3.mp4— animation с масками (центр, маска не влияет на позицию)dealer_repl.mp4— replacement mode (мусор, см. выше)mask_cache/— 2 набора масок (animation + replacement варианты)dealer/— 4 фото дилера (портрет 3024×4032, EXIF ок)drive.mp4— тестовое видео (женщина в красном корсете, зелёный экран, 81 кадр, 1280×720, 16 fps, персона слева)