File size: 3,374 Bytes
fb1ae50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# RUN — как запускать генерацию

## Быстрый старт

```bash
cd /home/ubuntu/video
CUDA_VISIBLE_DEVICES=0 python3 generate.py \
  --pose drive.mp4 \
  --ref dealer/ \
  -o output.mp4 \
  --width 832 --height 480 \
  --steps 6 --shift 5 \
  --lora "lightx2v_I2V_14B_480p_cfg_step_distill_rank64_bf16.safetensors" \
  --lora-strength 0.8 \
  --fps 16 --mask \
  --positive "The person dances and gestures in a studio" \
  --negative ""
```

Время: ~1 мин SAM3-маски (только первый раз, дальше кэш) + ~1 мин загрузка моделей + ~1 мин генерация (81 кадр, 6 шагов).

## Обязательные параметры (критичные!)

| Параметр | Значение | Почему |
|---|---|---|
| `--shift` | 5 | Без ModelSamplingSD3 shift — мыльное пятно вместо видео |
| `--sampler` | euler (default) | Эталон из workflow автора |
| `--scheduler` | simple (default) | Эталон из workflow автора |
| `--steps` | 6 (default) | С distill-LoRA хватает; 20 без LoRA — хуже |
| `--lora` | lightx2v...rank64 | Distill LoRA, включает cfg=1 + мало шагов |
| `--lora-strength` | 0.8 | Как в workflow автора |
| `--negative` | "" | У автора пустой |

## Ключевые флаги

- `--ref` — файл ИЛИ директория. Директория = мультиреференс (первый по алфавиту = основной, остальные = доп. виды). Нативная поддержка SCAIL-2, до N изображений.
- `--mask` — SAM3-маски (pose_video_mask + reference_image_mask). Кэшируются в `./mask_cache/` по хэшу входных файлов. Повторный прогон — маски из кэша.
- `--replacement-mode` — режим замены (маски: белый фон для pose, чёрный для ref). С портретными рефами пока даёт мусор — см. NOTES.md.
- `--chunk-length 81 --overlap 5` — для видео >81 кадра идёт auto-extend чанками.
- `--max-frames N` — обрезать входное видео.
- `--seed` — для воспроизводимости. Внутри чанков seed инкрементируется.

## Типичные проблемы

- **Мыльное пятно** → забыл `--shift 5` или LoRA.
- **OOM при масках** → уже починено (inference_mode в masks.py); если повторится — не грузить ничего до SAM3.
- **Персона по центру вместо позиции из видео** → известная проблема animation mode, см. NOTES.md.
- GPU: работаем только на `cuda:0`. GPU 2–6 заняты чужой тренировкой (train-babka.py) — НЕ ТРОГАТЬ.

## Файлы проекта

- `generate.py` — основной скрипт (загрузка моделей → маски → генерация → mp4)
- `masks.py` — SAM3-маски с кэшем (single-person, max_objects=1)
- `composite.py` — crop-around-person + composite-back (написан, ещё НЕ подключён)
- `mask_cache/` — кэш масок (.pt)