# AnimateDiff

AnimateDiff — это модуль plug-and-play, который **анимирует ваши существующие модели Stable Diffusion** без дополнительного обучения. Имея более 10 000 звёзд на GitHub, это основной фреймворк для превращения статичных SD чекпойнтов в плавные, временно-согласованные генераторы видео. Запустите его на GPU-инстансе Clore.ai, используя ComfyUI в качестве фронтенда для максимальной гибкости.

***

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

AnimateDiff вставляет **модуль движения** в замороженный U-Net Stable Diffusion. Модуль движения обучается один раз на видеоданных и может быть объединён с любым дообученным SD 1.5 чекпойнтом — моделями DreamBooth, LoRA, адаптерами ControlNet — без повторного обучения. В результате получаются короткие анимированные клипы (обычно 16–32 кадра при 8 fps), сохраняющие стиль базовой модели.

**Ключевые особенности:**

* Работает с любым SD 1.5 чекпойнтом из коробки
* Совместим с ControlNet, IP-Adapter, LoRAs и другими расширениями
* Экосистема узлов ComfyUI обеспечивает полный контроль над пайплайном
* Доступны модули движения для SDXL для вывода более высокого разрешения
* Сообщество поддерживает модельный зоопарк с доменно-специфичными модулями движения

***

## Требования

| Требование | Минимум  | Рекомендуется   |
| ---------- | -------- | --------------- |
| VRAM GPU   | 8 ГБ     | 16–24 ГБ        |
| GPU        | RTX 3080 | RTX 4090 / A100 |
| ОЗУ        | 16 ГБ    | 32 ГБ           |
| Хранилище  | 20 ГБ    | 50+ ГБ          |

{% hint style="info" %}
AnimateDiff со стандартной последовательностью из 16 кадров при 512×512 потребляет примерно 8–10 ГБ видеопамяти. Для 768×768 или более длинных последовательностей рекомендуется 16+ ГБ.
{% endhint %}

***

## Шаг 1 — Арендуйте GPU на Clore.ai

1. Перейдите на [clore.ai](https://clore.ai) и войдите в систему.
2. Нажмите **Маркетплейс** и фильтруйте по VRAM (≥ 16 ГБ для лучших результатов).
3. Выберите сервер — RTX 4090 или A6000 предлагают лучшее соотношение цены и производительности.
4. Под **образ Docker**, укажите ваш пользовательский образ (см. Шаг 2 ниже).
5. Настроить **открытые порты**: `22` (SSH) и `8188` (веб-интерфейс ComfyUI).
6. Нажмите **Арендовать** и дождитесь запуска инстанса (\~1–2 минуты).

{% hint style="info" %}
Используйте вкладку **Продвинутые** настройку порта для проброса порта `8188` на публичный порт. Запомните назначенный публичный порт — вы будете использовать его для доступа к веб-интерфейсу ComfyUI.
{% endhint %}

***

## Шаг 2 — Docker Image

Единого официального Docker-образа AnimateDiff не существует. Рекомендуемый подход — использовать **образ на базе ComfyUI** с предустановленными узлами AnimateDiff.

**Рекомендуемый публичный образ:**

```
yanwk/comfyui-boot:latest
```

Или соберите свой собственный:

```dockerfile
FROM pytorch/pytorch:2.1.2-cuda12.1-cudnn8-runtime

RUN apt-get update && apt-get install -y \
    git wget curl ffmpeg libgl1 libglib2.0-0 \
    openssh-server && \
    rm -rf /var/lib/apt/lists/*

# Настройка SSH
RUN mkdir /var/run/sshd && \
    echo 'root:clore123' | chpasswd && \
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# Клонировать ComfyUI
RUN git clone https://github.com/comfyanonymous/ComfyUI /workspace/ComfyUI && \
    cd /workspace/ComfyUI && pip install -r requirements.txt

# Установить ComfyUI Manager
RUN cd /workspace/ComfyUI/custom_nodes && \
    git clone https://github.com/ltdrdata/ComfyUI-Manager

# Установить узлы AnimateDiff-Evolved
RUN cd /workspace/ComfyUI/custom_nodes && \
    git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved && \
    pip install -r ComfyUI-AnimateDiff-Evolved/requirements.txt

# Установить VideoHelperSuite для вывода
RUN cd /workspace/ComfyUI/custom_nodes && \
    git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite && \
    pip install -r ComfyUI-VideoHelperSuite/requirements.txt

EXPOSE 22 8188

CMD service ssh start && \
    python /workspace/ComfyUI/main.py --listen 0.0.0.0 --port 8188 --enable-cors-header
```

***

## Шаг 3 — Подключитесь по SSH

Когда инстанс запущен, подключитесь по SSH, чтобы скачать модели:

```bash
ssh root@<clore-host> -p <assigned-ssh-port>
```

Замените `<clore-host>` и `<assigned-ssh-port>` с значениями, показанными на вашей панели Clore.ai.

***

## Шаг 4 — Скачать модели

AnimateDiff требует как минимум **базовый SD 1.5 чекпойнт** и **модуль движения**.

### Скачать модуль движения

```bash
cd /workspace/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/models

# модуль движения v3 (рекомендуется)
wget -O v3_sd15_mm.ckpt \
  "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt"

# модуль движения v2 (более широкая совместимость)
wget -O mm_sd_v15_v2.ckpt \
  "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt"
```

### Скачать базовый SD 1.5 чекпойнт

```bash
cd /workspace/ComfyUI/models/checkpoints

# Realistic Vision (популярен для AnimateDiff)
wget -O realisticVisionV60B1_v51VAE.safetensors \
  "https://huggingface.co/SG161222/Realistic_Vision_V6.0_B1_noVAE/resolve/main/Realistic_Vision_V6.0_B1_fp16-no-ema.safetensors"
```

{% hint style="info" %}
Вы можете использовать любой дообученный SD 1.5. Популярные варианты включают DreamShaper, Deliberate и Epicphotogasm. Скачивайте с CivitAI или Hugging Face.
{% endhint %}

### (Опционально) Скачать SDXL модуль движения

```bash
cd /workspace/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/models

wget -O temporaldiff-v1-animatediff.safetensors \
  "https://huggingface.co/CiaraRowles/TemporalDiff/resolve/main/temporaldiff-v1-animatediff.safetensors"
```

***

## Шаг 5 — Доступ к ComfyUI

Откройте браузер и перейдите по адресу:

```
http://<clore-host>:<public-port-8188>
```

Вы должны увидеть интерфейс редактора узлов ComfyUI.

{% hint style="info" %}
Добавьте эту ссылку в закладки. ComfyUI автоматически сохраняет ваш рабочий процесс по ходу работы — вручную сохранять не нужно, если только вы не экспортируете JSON.
{% endhint %}

***

## Шаг 6 — Загрузить рабочий процесс AnimateDiff

### Базовый рабочий процесс AnimateDiff (JSON)

В ComfyUI нажмите **Загрузить** и вставьте или импортируйте этот JSON рабочий процесс, либо соберите его вручную с этими узлами:

**Основная цепочка узлов:**

1. `Загрузить чекпойнт` → ваш SD 1.5 чекпойнт
2. `CLIP Text Encode (Prompt)` → позитивные и негативные промпты
3. `AnimateDiff Loader` → выберите ваш модуль движения
4. `KSampler (Efficient)` → настройки сэмплинга
5. `VAE Decode` → декодирование латентов
6. `Video Combine` (VideoHelperSuite) → экспорт в GIF/MP4

### Рекомендуемые настройки сэмплинга

| Параметр        | Значение        |
| --------------- | --------------- |
| Шаги            | 20–25           |
| CFG Scale       | 7–8             |
| Sampler         | DPM++ 2M Karras |
| Ширина × Высота | 512 × 512       |
| Кадры           | 16              |
| Длина контекста | 16              |

***

## Шаг 7 — Запустите вашу первую анимацию

1. В узле `CLIP Text Encode` введите ваш промпт:

   ```
   Величественный лев, идущий по высокой траве на закате, кинематографично, 4k
   ```
2. В узле негативного промпта:

   ```
   худшее качество, низкое качество, размытость, водяной знак, деформация, nsfw
   ```
3. В `AnimateDiff Loader`, выберите `v3_sd15_mm.ckpt`
4. Нажмите **Очередь промптов**

{% hint style="info" %}
Время генерации для 16 кадров при 512×512 и 20 шагах составляет примерно **30–60 секунд** на RTX 4090. Более длинные последовательности и большее разрешение масштабируются линейно.
{% endhint %}

***

## Продвинутые техники

### Использование ControlNet с AnimateDiff

AnimateDiff работает с ControlNet для направленной генерации видео:

```bash
# Скачать модель ControlNet
cd /workspace/ComfyUI/models/controlnet
wget -O control_v11p_sd15_openpose.pth \
  "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.pth"
```

Добавьте `ControlNet Apply` узел между `Загрузить модель ControlNet` и `KSampler`. Используйте изображение скелета OpenPose в качестве условия (conditioning input).

### Prompt Travel (анимация ключевых кадров)

Узел AnimateDiff-Evolved поддерживает **prompt travel** — разные текстовые промпты на разных кадрах:

```
"Лес на рассвете" → кадр 0
"Лес в полдень" → кадр 8
"Лес на закате" → кадр 16
```

Это создаёт плавные переходы между сценами без ручной установки ключевых кадров.

### Использование LoRA с AnimateDiff

```bash
# Скачать motion LoRA
cd /workspace/ComfyUI/models/loras
wget -O v2_lora_PanLeft.ckpt \
  "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanLeft.ckpt"
```

Добавьте `LoRA Loader` узел для применения эффектов движения камеры: PanLeft, PanRight, ZoomIn, ZoomOut, RollingAnticlockwise.

***

## Форматы вывода

AnimateDiff через VideoHelperSuite поддерживает:

| Формат     | Узел            | Примечания                             |
| ---------- | --------------- | -------------------------------------- |
| GIF        | `Video Combine` | Лучше всего для шаринга                |
| MP4 (h264) | `Video Combine` | Минимальный размер файла               |
| WebP       | `Video Combine` | Хорошее соотношение качества и размера |
| PNG кадры  | `Save Image`    | Для постобработки                      |

***

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

### Out of Memory (CUDA OOM)

```
RuntimeError: CUDA out of memory
```

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

* Уменьшите количество кадров (попробуйте 8 вместо 16)
* Уменьшите разрешение (512×512 — оптимальный выбор для SD 1.5)
* Включите `--lowvram` флаг в команде запуска ComfyUI
* Используйте `fp16` точность в `Загрузить чекпойнт` узле

### Модуль движения не найден

```
Ошибка: модуль движения не найден
```

**Решение:** Проверьте, что `.ckpt` файл находится в:

```
/workspace/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/models/
```

Обновите страницу ComfyUI, чтобы перезагрузить доступные модели.

### Мерцание / Несогласованные кадры

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

* Увеличьте `context_length` чтобы совпадала с общим количеством кадров
* Используйте `v3_sd15_mm.ckpt` вместо v2 (лучшее временное согласование)
* Понизьте CFG scale (попробуйте 7 вместо 9)
* Используйте сэмплер с меньшей дисперсией: `DPM++ 2M Karras` или `Euler a`

### SSH: соединение отклонено

```bash
ssh: connect to host <ip> port <port>: Connection refused
```

**Решение:** Подождите 1–2 минуты, пока демона SSH не запустится, или проверьте, полностью ли контейнер инициализировался через логи на панели Clore.ai.

***

## Рекомендации Clore.ai по GPU

AnimateDiff использует основу SD 1.5 — требования к видеопамяти умеренные по сравнению с современными видео-моделями, что делает его экономичным вариантом.

| GPU           | VRAM  | Цена Clore.ai | 16 кадров @ 512px | Примечания                                                |
| ------------- | ----- | ------------- | ----------------- | --------------------------------------------------------- |
| RTX 3090      | 24 ГБ | \~$0.12/ч     | \~50с             | Лучшее соотношение — запуск нескольких очередей пакетов   |
| RTX 4090      | 24 ГБ | \~$0.70/ч     | \~30 с            | Самый быстрый потребительский GPU                         |
| A100 40GB     | 40 ГБ | \~$1.20/ч     | \~18с             | Избыточно для SD 1.5, но хорош для SDXL+AnimateDiff       |
| RTX 3080 10GB | 10 ГБ | \~$0.07/час   | \~90с             | Бюджетный минимум — ограничен 512px, более короткие клипы |

{% hint style="info" %}
**RTX 3090 — оптимальный выбор для AnimateDiff** примерно за \~$0.12/час. 16-кадровая анимация занимает \~50 секунд, что позволяет сгенерировать более 70 клипов за потраченный доллар. Для массового создания контента ставьте задания в очередь в ComfyUI и запускайте на ночь.
{% endhint %}

**Пользователи SDXL AnimateDiff:** Модули движения для SDXL требуют 12 ГБ+ VRAM для 768px. RTX 3090/4090 хорошо с этим справляются. RTX 3080 (10 ГБ) слишком ограничен для SDXL-воркфлоу.

***

## Полезные ресурсы

* [AnimateDiff на GitHub](https://github.com/guoyww/AnimateDiff)
* [ComfyUI-AnimateDiff-Evolved](https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved)
* [Официальный ComfyUI](https://github.com/comfyanonymous/ComfyUI)
* [Модели движения AnimateDiff (HuggingFace)](https://huggingface.co/guoyww/animatediff)
* [CivitAI — SD чекпойнты](https://civitai.com)


---

# 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/generaciya-video/animatediff.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.
