video / NOTES.md
recoilme's picture
Upload folder using huggingface_hub
fb1ae50 verified
|
Raw
History Blame Contribute Delete
6.61 kB

NOTES — саммари сессии (для продолжения)

Цель

Заменить персону в видео на «дилера» (4 фото блондинки в чёрном платье) через SCAIL-2 пайплайн, без ComfyUI-сервера — прямым Python-скриптом.

Что сделано и работает ✅

  1. generate.py — self-contained скрипт: ComfyUI ноды импортируются напрямую, без API/сервера/GUI. Модели → промпты → маски → SCAILAutoExtend.generate() → mp4.
  2. Мультиреференс работает нативно: reference_image батчем [N,H,W,C] — первый = основной, остальные = доп. виды. WanAnimatePlus для этого НЕ нужен.
  3. Критичные параметры найдены (из workflow автора, файл ComfyUI/custom_nodes/scail-auto-extend/SCAIL Auto Extend.json): ModelSamplingSD3 shift=5 + euler + simple scheduler + 6 steps + lightx2v LoRA @ 0.8 + пустой negative. Без shift — мыло.
  4. SAM3-маски с кэшем (masks.py): pose_video_mask + reference_image_mask, single-person (max_objects=1), кэш по хэшу входов в mask_cache/.
  5. Результат (animation mode, без масок и с масками): дилер перенесён (блондинка, чёрное платье), движения следуют видео, зелёный фон сохранён. 81 кадр за ~1 мин на 6 шагах.
  6. Ollama остановлен. GPU 2–6 — чужая тренировка, не трогаем.

Что НЕ работает / открытые проблемы ❌

  1. Позиция персоны: в исходнике она слева, в выходе — по центру. Маска (синий силуэт слева) идеальна, но НЕ управляет позицией. Гипотеза: pose mask — про «какие пиксели какой персоне» (multi-person), а layout модель берёт из референсов (центрированные портреты → центр).
  2. Replacement mode с нашими входами — мусор: гигантское лицо дилера на весь кадр + брюнетка-двойник. Причины:
    • Баг референсов: портретные фото 3024×4032 центр-кропятся в ландшафт 832×480 → остаётся полоса «подбородок–грудь», голова отрезана (load_reference_images в generate.py). Надо: letterbox/pad вместо crop или портретное разрешение.
    • Возможно, replacement mode ждёт полноростовый реф, а не хедшот.
  3. Маски не чинят позицию в animation mode (проверено: result3 — всё равно центр).

План действий (next steps)

Ветка А: crop-and-composite (приоритет)

composite.py уже написан, не подключён. Идея:

  1. Из SAM3-маски → union bbox персоны (person_bbox уже есть)
  2. Кроп видео вокруг персоны с margin → портрет (напр. 576×832)
  3. Генерация дилера в кропе (центрирование не мешает — кроп и так на персоне; заодно портрет = пропорции рефов дилера = голова не режется; персона ~340px ширины вместо 130px → лицо качественнее)
  4. 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, персона слева)