# FaceFusion

Профессиональный инструмент для замены и улучшения лиц.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендуемых через [CLORE.AI Marketplace](https://clore.ai/marketplace).
{% endhint %}

## Аренда на CLORE.AI

1. Посетите [CLORE.AI Marketplace](https://clore.ai/marketplace)
2. Отфильтруйте по типу GPU, объему VRAM и цене
3. Выберите **On-Demand** (фиксированная ставка) или **Spot** (цена по ставке)
4. Настройте ваш заказ:
   * Выберите Docker-образ
   * Установите порты (TCP для SSH, HTTP для веб-интерфейсов)
   * Добавьте переменные окружения при необходимости
   * Введите команду запуска
5. Выберите способ оплаты: **CLORE**, **BTC**, или **USDT/USDC**
6. Создайте заказ и дождитесь развертывания

### Доступ к вашему серверу

* Найдите данные для подключения в **Моих заказах**
* Веб-интерфейсы: используйте URL HTTP-порта
* SSH: `ssh -p <port> root@<proxy-address>`

## Что такое FaceFusion?

FaceFusion предоставляет:

* Высококачественная замена лиц
* Улучшение лица
* Изменение возраста
* Перенос выражения
* Обработка видео

## Ресурсы

* **GitHub:** [facefusion/facefusion](https://github.com/facefusion/facefusion)
* **Документация:** [docs.facefusion.io](https://docs.facefusion.io/)
* **Discord:** [Сообщество FaceFusion](https://discord.gg/facefusion)

## Рекомендованное оборудование

| Компонент | Минимум       | Рекомендуется | Оптимально    |
| --------- | ------------- | ------------- | ------------- |
| GPU       | RTX 3060 12GB | RTX 4080 16GB | RTX 4090 24GB |
| VRAM      | 8GB           | 16GB          | 24 ГБ         |
| CPU       | 8 ядер        | 16 ядер       | 32 ядра       |
| ОЗУ       | 16GB          | 32GB          | 64GB          |
| Хранилище | 50 ГБ SSD     | 100GB NVMe    | 200 ГБ NVMe   |
| Интернет  | 100 Мбит/с    | 500 Мбит/с    | 1 Гбит/с      |

## Быстрое развертывание на CLORE.AI

**Docker-образ:**

```
pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
```

**Порты:**

```
22/tcp
7860/http
```

**Команда:**

```bash
pip install facefusion && \
facefusion run --ui-layouts default
```

## Доступ к вашему сервису

После развертывания найдите ваш `http_pub` URL в **Моих заказах**:

1. Перейдите на **Моих заказах** страницу
2. Нажмите на ваш заказ
3. Найдите `http_pub` URL (например, `abc123.clorecloud.net`)

Используйте `https://YOUR_HTTP_PUB_URL` вместо `localhost` в примерах ниже.

## Установка

```bash

# Установить FaceFusion
pip install facefusion

# Или из исходников
git clone https://github.com/facefusion/facefusion.git
cd facefusion
pip install -r requirements.txt
```

## Что вы можете создать

### Развлечения

* Подготовка дубляжа фильмов
* Контент от поклонников
* Создание мемов

### Профессиональное

* Виртуальная примерка одежды
* Персонализированный маркетинг
* Защита конфиденциальности в видео

### Творческие проекты

* Арт-инсталляции
* Эффекты для музыкальных видео
* Производство короткометражных фильмов

**Важно:** Всегда используйте ответственно и с согласия.

## Базовое использование

### Веб-интерфейс

```bash

# Запустить веб-UI
facefusion run --ui-layouts default

# Доступно по адресу http://localhost:7860
```

### Командная строка

```bash

# Замена лица на одном изображении
facefusion headless-run \
    --source-paths source_face.jpg \
    --target-path target_image.jpg \
    --output-path result.jpg \
    --face-swapper-model inswapper_128

# Замена лица в видео
facefusion headless-run \
    --source-paths source_face.jpg \
    --target-path input_video.mp4 \
    --output-path output_video.mp4 \
    --face-swapper-model inswapper_128 \
    --execution-providers cuda
```

### Python API

```python
from facefusion import core
from facefusion.processors.frame.face_swapper import FaceSwapper

# Инициализация
swapper = FaceSwapper(
    model="inswapper_128",
    device="cuda"
)

# Обработать изображение
result = swapper.process(
    source_image="source_face.jpg",
    target_image="target.jpg"
)

result.save("swapped.jpg")
```

## Улучшение лица

```bash

# Повысить качество лица
facefusion headless-run \
    --target-path input.jpg \
    --output-path enhanced.jpg \
    --face-enhancer-model gfpgan_1.4 \
    --face-enhancer-blend 80
```

## Несколько лиц

```bash

# Заменить конкретные лица
facefusion headless-run \
    --source-paths face1.jpg face2.jpg \
    --target-path group_photo.jpg \
    --output-path result.jpg \
    --face-selector-mode reference \
    --reference-face-position 0 1
```

## Обработка видео

```bash

# Полная замена лица в видео с улучшением
facefusion headless-run \
    --source-paths source_face.jpg \
    --target-path input_video.mp4 \
    --output-path output_video.mp4 \
    --face-swapper-model inswapper_128 \
    --face-enhancer-model gfpgan_1.4 \
    --execution-providers cuda \
    --execution-thread-count 4 \
    --video-encoder libx264 \
    --video-quality 18
```

## Пакетная обработка

```python
import os
from facefusion import core
from facefusion.processors.frame.face_swapper import FaceSwapper

swapper = FaceSwapper(model="inswapper_128", device="cuda")

# Исходное лицо
source = "my_face.jpg"

# Целевые изображения
targets = [f for f in os.listdir("./targets") if f.endswith(('.jpg', '.png'))]

os.makedirs("./results", exist_ok=True)

for target in targets:
    print(f"Обработка: {target}")

    result = swapper.process(
        source_image=source,
        target_image=f"./targets/{target}"
    )

    result.save(f"./results/swapped_{target}")
```

## Пользовательский интерфейс Gradio

```python
import gradio as gr
from facefusion.processors.frame.face_swapper import FaceSwapper

swapper = FaceSwapper(model="inswapper_128", device="cuda")

def swap_faces(source_image, target_image, enhance):
    result = swapper.process(
        source_image=source_image,
        target_image=target_image,
        enhance=enhance
    )
    return result

demo = gr.Interface(
    fn=swap_faces,
    inputs=[
        gr.Image(type="filepath", label="Исходное лицо"),
        gr.Image(type="filepath", label="Целевое изображение"),
        gr.Checkbox(label="Улучшить результат", value=True)
    ],
    outputs=gr.Image(label="Результат"),
    title="FaceFusion - Замена лиц",
    description="Профессиональная замена лиц на серверах CLORE.AI"
)

demo.launch(server_name="0.0.0.0", server_port=7860)
```

## Настройки качества

### Модели замены

| Модель               | Качество | Скорость | VRAM |
| -------------------- | -------- | -------- | ---- |
| inswapper\_128       | Хорошо   | Быстро   | 4 ГБ |
| inswapper\_128\_fp16 | Хорошо   | Быстрее  | 2GB  |
| simswap\_256         | Лучше    | Средне   | 6 ГБ |
| simswap\_512         | Лучшее   | Медленно | 10GB |

### Модели улучшения

| Модель         | Качество | Скорость |
| -------------- | -------- | -------- |
| gfpgan\_1.4    | Отлично  | Средне   |
| codeformer     | Лучшее   | Медленно |
| gpen\_bfr\_512 | Хорошо   | Быстро   |

## Производительность

| Задача           | Разрешение | GPU      | Время |
| ---------------- | ---------- | -------- | ----- |
| Одно изображение | 1024x1024  | RTX 3090 | 0.5 с |
| Одно изображение | 1024x1024  | RTX 4090 | 0.3 с |
| Видео (1 мин)    | 1080p      | RTX 4090 | 5 мин |
| Видео (1 мин)    | 1080p      | A100     | 3 мин |

## Распространённые проблемы и решения

### Лицо не обнаружено

**Проблема:** "Лицо не найдено в источнике/цели"

**Решения:**

* Убедитесь, что лицо хорошо видно
* Лицо должно быть не менее 64x64 пикселей
* Используйте фронтальные или слегка повернутые фотографии
* Требуется хорошее освещение

### Плохое качество замены

**Проблема:** Результат выглядит неестественно

**Решения:**

```bash

# Используйте лучшую модель и улучшение
facefusion headless-run \
    --source-paths source.jpg \
    --target-path target.jpg \
    --output-path result.jpg \
    --face-swapper-model simswap_256 \
    --face-enhancer-model gfpgan_1.4 \
    --face-enhancer-blend 80
```

### Обработка видео медленная

**Проблема:** Занимает слишком много времени для видео

**Решения:**

* Используйте провайдера выполнения CUDA
* Увеличьте количество потоков
* Используйте модель fp16 для ускорения
* Обрабатывайте на A100 для наилучшей производительности

```bash
facefusion headless-run \
    --execution-providers cuda \
    --execution-thread-count 8 \
    --face-swapper-model inswapper_128_fp16
```

### Несоответствие цвета

**Проблема:** У заменённого лица другой цвет

**Решения:**

* Включите коррекцию цвета лица
* Сопоставьте освещение между источником и целью
* Постобработка с цветокоррекцией

### Проблемы с памятью

**Проблема:** Недостаточно памяти для видео

**Решения:**

```bash

# Снизить использование памяти
facefusion headless-run \
    --video-memory-strategy tolerant \
    --execution-thread-count 2
```

## Устранение неполадок

### Низкое качество замены лица

* Используйте исходные изображения более высокого разрешения
* Обеспечьте хорошее освещение на обоих изображениях
* Попробуйте разные модели улучшения лица

### "Лицо не обнаружено"

* Лицо должно быть чётко видно
* Избегайте боковых профилей
* Проверьте, что изображение не слишком маленькое

### Обработка видео зависла

* Большим видео требуется больше оперативной памяти
* Обрабатывайте в меньших сегментах
* Используйте SSD для временных файлов

### Модели не скачиваются

* Проверьте подключение к интернету
* Запустите с `--download-models` флаг
* Скачайте вручную с HuggingFace

## Оценка стоимости

Типичные ставки на маркетплейсе CLORE.AI (по состоянию на 2024):

| GPU       | Почасовая ставка | Дневная ставка | Сессия 4 часа |
| --------- | ---------------- | -------------- | ------------- |
| RTX 3060  | \~$0.03          | \~$0.70        | \~$0.12       |
| RTX 3090  | \~$0.06          | \~$1.50        | \~$0.25       |
| RTX 4090  | \~$0.10          | \~$2.30        | \~$0.40       |
| A100 40GB | \~$0.17          | \~$4.00        | \~$0.70       |
| A100 80GB | \~$0.25          | \~$6.00        | \~$1.00       |

*Цены варьируются в зависимости от провайдера и спроса. Проверьте* [*CLORE.AI Marketplace*](https://clore.ai/marketplace) *для текущих тарифов.*

**Экономьте деньги:**

* Используйте **Spot** рынок для гибких рабочих нагрузок (часто на 30–50% дешевле)
* Платите с помощью **CLORE** токенов
* Сравнивайте цены у разных провайдеров

## Дальнейшие шаги

* [InstantID](/guides/guides_v2-ru/lico-i-identichnost/instantid.md) - Сохранение идентичности
* [LivePortrait](/guides/guides_v2-ru/govoryashie-golovy/liveportrait.md) - Анимация портрета
* [GFPGAN](/guides/guides_v2-ru/obrabotka-izobrazhenii/gfpgan-face-restore.md) - Восстановление лица


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.clore.ai/guides/guides_v2-ru/lico-i-identichnost/facefusion.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
