Улучшение и замена уже размещённых людей через Florence2 + SAM2 + FLUX
Этот режим не решает, где поставить человека. Положение, масштаб, перспектива и приблизительная поза уже заданы исходной 3D/SDXL сценой; AI локально выделяет существующую фигуру, перегенерирует её и возвращает в тот же spatial slot.
Два маршрута сходятся в selector 459
3D отвечает за placement, AI — за quality
В исходном кадре человек уже существует как spatial anchor: его положение, высота, масштаб, перспектива и приблизительная поза заданы до генерации. Это может быть 3D proxy, библиотечный персонаж, cutout или уже присутствующий человек в базовом изображении.
AI не перестраивает композицию сцены и не выбирает новую точку для персонажа. Его задача — улучшить или заменить локальную фигуру, сохранив архитектурный контекст вокруг неё.
Placement contract
В showcase люди присутствуют в base image до PPL replacement pass.
Archviz principle
Для production это разделяет ответственность: 3D фиксирует spatial truth, генератор отвечает за visual realism.
Полный маршрут Variant 2
Florence2 находит человека, SAM2 строит точную маску
Florence2 выполняет semantic detection / phrase grounding и возвращает область человека в виде bbox или координат. На этом этапе модель отвечает на вопрос «где находится человек?».
SAM2 получает spatial cue от Florence2 и строит pixel-level mask. На этом этапе задача уже не распознать класс, а аккуратно отделить фигуру от архитектуры и окружения.
- Florence2 и SAM2 должны получать один и тот же source image и одинаковое coordinate space.
- Не продолжать downstream, если bbox или mask уже неверны.
- Batch-size image и количество bbox должны совпадать; иначе Sam2Segmentation может упасть на индексировании.
| Stage | Input | Output | QA |
|---|---|---|---|
| Florence2 | Base image + person/people prompt | BBOX / coordinates | BBox должен покрывать нужную фигуру, а не весь кадр |
| SAM2 | Same image + Florence spatial cue | Person mask | Контур головы, рук, ног и аксессуаров без захвата фасада |
Генератор работает на crop, а не на всём архитектурном кадре
По маске или bbox вырезается локальная область вокруг человека. Crop приводится к рабочему размеру и передаётся в отдельную FLUX-ветку.
Так архитектура за пределами crop не участвует в генерации: модель может улучшить лицо, одежду, материал, волосы и photographic response, не получая свободу перестроить фасад или камеру.
Local scope
Showcase использует отдельную PPL FLUX Generate секцию между segmentation и composite.
Production value
Локальный crop уменьшает область риска и повышает повторяемость по сравнению с full-frame img2img.
Generated person превращается в compositing element
После generation результат отделяется от локального фона: workflow использует операции класса Remove Background / Cut By Mask. На выходе нужна RGB-фигура с корректной alpha/mask representation.
Перед возвратом в сцену выполняется Color Match, чтобы человек не выглядел вклеенным из другого освещения или камеры.
| Operation | Purpose | Typical failure |
|---|---|---|
| Remove Background / Cut By Mask | Отделить generated person от crop background | Halo, потерянные конечности, остатки старого фона |
| Color Match | Подогнать tone / contrast / temperature под base render | Кожа и одежда выглядят из другой фотографии |
| Mask cleanup | Стабилизировать contour перед paste | Жёсткий край, грязный alpha, floating silhouette |
Paste By Mask возвращает фигуру в исходный spatial slot
Prepared cutout вставляется обратно в base scene по маске и positioning data. Цель — заменить visual appearance человека, не менять утверждённую композицию.
После paste обязательна проверка масштаба, положения ступней, контакта с поверхностью, occlusion и совпадения света.
- Сначала проверить paste до любых downstream selectors или upscale.
- Сравнить силуэт generated person с исходным proxy: смещение центра или масштаба считается ошибкой.
- Не использовать Color Match как замену правильному lighting prompt: он корректирует integration, но не исправляет физически неверный свет.
Последний локальный pass исправляет интеграцию, а не создаёт новую сцену
После composite отдельный detail/inpaint pass может исправить руки, волосы, край одежды, контакт ступней, небольшие пересечения и локальную тень.
Этот этап должен оставаться локальным: если маска расширяется на значительную часть архитектуры, workflow теряет главное преимущество controlled replacement.
Где Variant 2 особенно полезен
- Hero people на переднем и среднем плане.
- Велосипедисты и персонажи с заданной позой.
- Люди у входной группы, витрины или фасада.
- Посетители выставки и общественных пространств, где placement согласован сценой.
- Замена библиотечного 3D-персонажа без изменения camera / architecture.
Not crowd placement
Variant 2 не является алгоритмом автоматического размещения новых людей в пустой сцене.
Workflow 01 documented separately
Generate & Place New People by Mask вынесен в отдельную главу. Workflow 01 и Workflow 02 не смешиваются: у них разный spatial contract.
Проверка Variant 2 перед финалом
- Исходный человек находится в правильном месте и масштабе до AI-pass.
- Florence2 bbox покрывает только нужного персонажа.
- SAM2 mask чистая и не захватывает архитектуру.
- Crop содержит фигуру целиком и достаточный контекст для генерации.
- FLUX не меняет предполагаемую spatial role персонажа.
- Background удалён без halo и дыр в конечностях.
- Color Match согласует человека с общей экспозицией кадра.
- Paste сохраняет исходный scale / position.
- Ступни, contact shadow и occlusion выглядят физически правдоподобно.
- Финальный локальный inpaint не затрагивает архитектурную геометрию.