> For the complete documentation index, see [llms.txt](https://docs.clore.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.clore.ai/guides/guides_v2-ru/lico-i-identichnost/facefusion.md).

# FaceFusion

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

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

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

1. Перейдите на [маркетплейс CLORE.AI](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      | 8 ГБ          | 16GB          | 24 ГБ         |
| CPU       | 8 ядер        | 16 ядер       | 32 ядра       |
| ОЗУ       | 16GB          | 32GB          | 64GB          |
| Хранилище | 50 ГБ SSD     | 100 ГБ NVMe   | 200 ГБ NVMe   |
| Интернет  | 100 Мбит/с    | 500 Мбит/с    | 1 Гбит/с      |

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

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

```
pytorch/pytorch:2.11.0-cuda12.8-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

# Запустить веб-интерфейс
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"Processing: {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 | Хорошо      | Быстрее  | 2 ГБ  |
| simswap\_256         | Лучше       | Средне   | 6 ГБ  |
| simswap\_512         | Лучше всего | Медленно | 10 ГБ |

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

| Модель         | Качество    | Скорость |
| -------------- | ----------- | -------- |
| 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 40 ГБ | \~$0.17          | \~$4.00        | \~$0.70          |
| A100 80 ГБ | \~$0.25          | \~$6.00        | \~$1.00          |

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

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

* Используйте **Spot** рынок для прерываемых задач — примерно треть серверов оценивает spot-цены ниже on-demand (медиана \~13% скидки), остальные совпадают с ними
* Платите **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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
