Промт для ИИ-реставрации: как превратить старый дом в новый по одному фото и двум референсам

Инструкция / Нейросети / Промпт-инжиниринг

Промт для ИИ-реставрации: как превратить старый дом в новый по одному фото и двум референсам

Разберём пайплайн: от подготовки исходников и выбора модели (ControlNet, IP-Adapter, Img2Img) до структуры промта, весов и параметра denoising, чтобы сохранить геометрию и накатить стиль нового дома.

ControlNet Depth/Canny IP-Adapter Style Transfer Denoising Strength 0.4–0.6 Multi-Reference Blending

С какой задачей мы работаем

На входе три изображения: фото текущего состояния дома (старый, возможно, с дефектами, другой ракурс, освещение) и два референса отремонтированного варианта (новый фасад, материалы, цветовая гамма, архитектурные детали). Цель — получить генерацию, где геометрия и планировка старого дома сохранены, а визуальный язык полностью соответствует новым референсам.

Главная сложность — конфликт источников. Старое фото задаёт структуру (где стены, окна, крыша), новые задают текстуры и стиль. Если просто скормить всё в Img2Img с высоким denoising, потеряется геометрия. Если низким — останутся старые текстуры. Нужен гибридный подход.

Ключевой принцип: Разделяем ответственность. ControlNet (Depth или Canny) держит геометрию старого дома. IP-Adapter (или Image Prompt) миксует стиль двух новых референсов. Текстовый промт уточняет материалы и атмосферу.

Минимальный стек инструментов

  • Stable Diffusion (SDXL / SD1.5) с поддержкой ControlNet и IP-Adapter Plus. В Midjourney — комбинация --iw (image weight) и --cref (character reference, работает как стиль), но контроль геометрии слабее.
  • Pre-processors: Depth Anything V2 или Canny для старого фото. Depth лучше для архитектуры (сохраняет объём), Canny — для чётких контуров.
  • IP-Adapter Plus (V2): загружаем оба новых референса. Веса: 0.6–0.8 на каждый. Режим «Style Transfer» или «Style + Composition» в зависимости от схожести ракурсов.

Подготовка исходников: выравнивание перед генерацией

1. Приведение к единому разрешению и соотношению сторон
Все три изображения должны иметь одинаковое разрешение (например, 1024×1024 или 1024×768 для SDXL) и одинаковое соотношение сторон. Используйте кроп или аутпеинт, но не растяжение. Ракурс старого фото — опорный, референсы приводятся под него.
2. Коррекция перспективы и освещения
Если старое фото сделано снизу вверх, а референсы — фронтально, ControlNet передаст искажённую перспективу. Выпрямите старое фото (Lens Correction / Perspective Warp). Выровняйте экспозицию: тени на старом фото не должны стать «дырами» в новой текстуре.
3. Маскировка неизменяемых зон (опционально)
Если нужно сохранить окружение (деревья, соседние здания, небо) строго как на старом фото — подготовьте белую маску на фасаде дома. В ControlNet Inpaint или вручную через Inpaint зафиксируйте фон. Это уберёт галлюцинации на границах.

Архитектура промта: слои и веса

Промт строится модульно. Не пишите простыню. Используйте синтаксис весов (SD: (keyword:weight), MJ: keyword::weight). Порядок важен: сначала структура/материалы, потом атмосфера/свет.

# — СТРУКТУРА И МАТЕРИАЛЫ (высокий вес) — architectural photography, (exterior facade:1.3), (retaining original structure:1.4), (exact window placement:1.3), (roof geometry preserved:1.3),
(new cladding material:1.3), (modern brick texture:1.2), (composite panels:1.1), (large panoramic glazing:1.2), (clean architectural lines:1.2),

# — СТИЛЬ И ЦВЕТ (из референсов через IP-Adapter, промт подкрепляет) —
(contemporary minimalism:1.2), (warm beige palette:1.1), (terracotta accents:1.1), (natural wood soffits:1.1), (integrated lighting:1.0),

# — СВЕТ, РАКУРС, КАЧЕСТВО —
(golden hour lighting:1.2), (soft directional shadows:1.1), (front elevation view:1.3), (8k resolution:1.1), (hyperrealistic:1.1), (archviz quality:1.2), (sharp focus:1.1)
Negative prompt (общий): ugly, deformed, noisy, blurry, lowres, distortion, artifacts, text, watermark, signature, grain, oversaturated, cartoon, illustration, 3d render, sketch, drawing, wrong perspective, extra windows, missing roof, collapsed structure, fantasy elements, vegetation overgrowth

Настройка ControlNet: удержание геометрии

1Preprocessor: Depth Anything V2

Лучший выбор для архитектуры. Сохраняет глубину навесов, пролётов, текстуру кирпича как рельеф. Настройте Resolution: 1024 (или 512 для SD1.5).

2Model: control_v11f1p_sd15_depth / t2i-adapter_depth_sdxl

Вес (Control Weight): 0.8–1.0. Начинайте с 1.0. Если генерация «прилипает» к дефектам старой стены (трещины, пятна) — снижайте до 0.8. Ending Control Step: 0.8–0.9 (отпускаем контроль на финальных шагах для детализации текстур).

3Альтернатива: Canny + Lineart

Если Depth «плывёт» на бесфункциональных стенах — используйте Canny (Low threshold 50, High 100). Даёт жёсткие контуры. Вес 0.7–0.9. Можно комбинировать: Depth (0.6) + Canny (0.4) в двух юнитах ControlNet.

IP-Adapter: смешивание двух референсов стиля

Почему два референса меняют дело

Один референс заставляет ИИ копировать его один в один (композиция, ракурс, конкретные деревья). Два референса заставляют вычленять общий знаменатель: палитру, тип кирпича, ритм окон, стиль кровели, игнорируя уникальные детали каждого.

Настройка IP-Adapter Plus V2:
• Image Encoder: CLIP-ViT-H-14 (laion2b_s32b_b79k).
• Weight Type: linear или style transfer.
• Weight: 0.7 на каждый референс (суммарное влияние ~1.4, но нормализуется).
• Start Step: 0%, End Step: 80% (стилистика накатывается рано, детали дорисовываются моделью).

Режимы работы (SD WebUI / ComfyUI)

  • Style Transfer: Только стиль. Игнорирует композицию референсов. Идеально, если ракурсы референсов отличаются от старого фото.
  • Style + Composition: Если референсы сняты с похожего ракурса. Переносит и расположение элементов (балконов, входных групп).
  • Composable (ComfyUI): Позволяет смешивать через IPAdapterApply с разными весами по шагам. Например: шаги 0-10 — только Реф1 (цвет), шаги 10-20 — Реф1+Реф2 (текстура).

Параметр Denoising Strength: руль преобразования

0.2 – 0.35 «Косметический ремонт»

Структура абсолютно сохраняется. Меняются только текстуры стен, цвет краски, декор. Старые окна остаются старыми (рамы, стекла). Подходит, если референсы показывают тот же тип остекления.

0.4 – 0.6 «Капитальный ремонт» ОПТИМУМ

Баланс. Геометрия домов (углы, контуры крыши) держится на ControlNet. IP-Adapter переписывает материалы: старый кирпич → новый клинкер, деревянные рамы → панорамные блоки. Может измениться деталь оконных bindings.

0.7 – 0.9 «Перестройка»

Высокий риск. ControlNet может не удержать планировку. Появляются лишние этажи, сдвигаются проёмы, меняется крыша. Только если старый дом сносится до фундамента и референсы — это концепт нового здания на том же месте.

Три типовых сценария: выбирайте свой

Сценарий А
Ракурсы совпадают идеально
  • ControlNet: Depth (Weight 0.9, End 0.9).
  • IP-Adapter: Style+Composition (Weight 0.7 each).
  • Denoising: 0.45–0.55.
  • CFG: 5.5–6.5.
  • Результат: Максимальная точность попадания в референсы. Окна, двери, карнизы копируются 1-в-1.
Сценарий Б
Ракурсы разные (старое — сбоку, новые — фасад)
  • ControlNet: Depth (Weight 1.0, End 0.95) — главный страж.
  • IP-Adapter: Style Transfer Only (Weight 0.8 each).
  • Denoising: 0.5–0.6 (даём модели свободу перерисовать фасад).
  • Prompt: усильте (front elevation view:1.4).
  • Результат: Геометрия старого, материалы новых. Окна могут сдвинуться.
Сценарий В
Референсы — только куски (фрагменты фасада, текстуры)
  • IP-Adapter: не используйте (или Weight 0.3).
  • ControlNet: Depth (0.9) + Tile ControlNet (Weight 0.6, для текстуры).
  • Prompt: детально описывайте материалы словами.
  • Denoising: 0.55–0.65.
  • Результат: «Сборка» нового дома из описания, привязанная к геометрии старого.

Чек-листtypical ошибок: что ломает результат

1
Галлюцинации на стыках
Старая крыша + новый фасад = лишний ярус или кривой коньок. Лечится маской Inpaint на границе или поднятием ControlNet End Step до 0.95.
2
«Призраки» старого дома
Светоотражающие элементы (окна, мокрое дерево) на старом фото просачиваются как артефакты. В Negative prompt добавьте: reflection, ghosting, double exposure, old texture bleed.
3
Цветовой диссонанс
Один референс — тёплый бежевый, второй — холодный серый. ИИ усреднит в грязный цвет. Решение: оцените доминантный референс весом 0.9, второстепенный 0.5, или сделайте коллаж-референс вручную.
4
Искажение перспективы
Depth-мапа старого фото с широкоугольным объективом даёт «бочковую» геометрию. Исправьте перспективу в редакторе ДО загрузки в ControlNet. Либо используйте Canny с Low Threshold.

Практический шаблон для копирования (SDXL / Automatic1111 / ComfyUI)

# === POSITIVE PROMPT === (architectural photography:1.3), (front elevation view:1.4), (retaining exact building footprint:1.3), (preserving roof silhouette:1.3), (preserving window rhythm:1.2),
(new facade system:1.3), (clinker brick facade:1.2), (anthracite window frames:1.2), (floor-to-ceiling glazing:1.1), (aluminum mullions:1.1),
(warm natural lighting:1.2), (golden hour:1.1), (soft shadows accentuating texture:1.1), (8k uhd:1.1), (masterpiece:1.1), (sharp focus:1.1),

# === NEGATIVE PROMPT === (worst quality:1.4), (low quality:1.4), (deformed:1.3), (distorted perspective:1.3), (extra floors:1.3), (missing roof:1.3), (changed window positions:1.3), (old paint texture:1.2), (cracks:1.2), (moss:1.1), (vegetation on facade:1.2), (watermark:1.4), (text:1.4), (blur:1.3), (noise:1.2),

# === SETTINGS (SDXL) === Steps: 30 | Sampler: DPM++ 2M Karras | Schedule: Karras | CFG: 6.0 | Denoising: 0.5
ControlNet Unit 0: Depth | Weight: 0.9 | Start: 0 | End: 0.9 | Preprocessor: depth_anything_v2
ControlNet Unit 1 (opt): Tile | Weight: 0.5 | Start: 0.3 | End: 0.7 | Preprocessor: tile_resample
IP-Adapter: Ref1 (Weight 0.7, Style Transfer) + Ref2 (Weight 0.7, Style Transfer) | Start: 0 | End: 0.8

Главное правило: итерация勝过 идеальный промт

Нет универсального набора весов, который сработает на любой тройке изображений. Геометрия старого дома уникальна, референсы разные. Запустите батч из 16–25 генераций с вариацией Denoising (0.4, 0.45, 0.5, 0.55, 0.6) и IP-Adapter Weight (0.6, 0.7, 0.8). Сохраняйте сиды удачных вариантов.

Используйте ControlNet как «жёсткий каркас», IP-Adapter как «обои», а текстовый промт — как «штукатурку», заполняющую швы. Порядок применения в пайплайне: 1. ControlNet (структура) → 2. IP-Adapter (стиль) → 3. Prompt (детализация) → 4. Denoising (степень свободы).

Сгенерированный вариант — это черновик. Финальный полиш: Inpaint оконных групп (под референс), корректная перспектива светоотражений в стеклах, уборка артефактов на стыке крыши и стены. Нейросеть даёт 90% результата, последние 10% — ручная работа в редакторе.