# SkyReels-V3

SkyReels-V3 — это модель генерации видео с открытым исходным кодом от Kunlun (SkyWork AI), построенная на архитектуре видео Wan2.1. Она генерирует плавные ролики с частотой 24 кадра/с и поддерживает как преобразование текста в видео (T2V), так и преобразование изображения в видео (I2V). Модель наследует сильную согласованность движения и временную согласованность Wan2.1, а также включает доработки обучения SkyWork для улучшения визуального качества и соответствия подсказкам.

Запуск SkyReels-V3 на [Clore.ai](https://clore.ai/) позволяет получить доступ к 24 ГБ видеопамяти, необходимых модели, без покупки оборудования — арендуйте RTX 4090 за несколько долларов и начните генерировать.

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

* **Вывод 24 кадра/с** — плавная, вещательная частота кадров прямо из коробки.
* **Текст в видео** — генерируйте клипы из описаний на естественном языке с хорошим соблюдением подсказок.
* **Изображение в видео** — анимируйте эталонное изображение с управляемым движением камеры и движением объекта.
* **Построено на Wan2.1** — наследует проверенное временное внимание и моделирование движения архитектуры Wan.
* **Многоразрешенное** — поддерживает генерацию в 480p и 720p в зависимости от бюджета видеопамяти.
* **Открытые веса** — доступно по открытой лицензии для исследований и коммерческого использования.
* **Китайский + Английский** — двуязычная поддержка подсказок через текстовый энкодер Wan2.1.

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

| Компонент   | Минимум                  | Рекомендуется |
| ----------- | ------------------------ | ------------- |
| VRAM GPU    | 16 ГБ (480p с выгрузкой) | 24 ГБ         |
| ОЗУ системы | 32 ГБ                    | 64 ГБ         |
| Диск        | 25 ГБ                    | 50 ГБ         |
| Python      | 3.10+                    | 3.11          |
| CUDA        | 12.1+                    | 12.4          |

**Рекомендация Clore.ai по GPU:** Один **RTX 4090** (24 ГБ, ≈$0.5–2/день) — оптимальный вариант: достаточно видеопамяти для генерации в 720p в полной точности. Один **RTX 3090** (24 ГБ, ≈$0.3–1/день) подходит для 480p и предлагает лучшее соотношение цена/клип на рынке.

## Быстрый старт

```bash
# Установите основные зависимости
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
pip install diffusers transformers accelerate sentencepiece
pip install imageio[ffmpeg]

# Проверить GPU
python -c "import torch; print(torch.cuda.get_device_name(0))"
```

## Примеры использования

### Текст в видео

```python
import torch
from diffusers import WanPipeline
from diffusers.utils import export_to_video

# SkyReels-V3 использует архитектуру конвейера Wan2.1
pipe = WanPipeline.from_pretrained(
    "SkyworkAI/SkyReels-V3-T2V",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
pipe.enable_model_cpu_offload()

prompt = (
    "Самурай идет по бамбуковому лесу в утреннем тумане, "
    "солнечный свет просачивается через высокие стебли, кинематографичная композиция, "
    "медленное продуманное движение"
)

video_frames = pipe(
    prompt=prompt,
    negative_prompt="размытость, низкое качество, водяной знак, статичность",
    num_frames=97,               # ~4 сек при 24 кадр/с
    width=1280,
    height=720,
    num_inference_steps=30,
    guidance_scale=5.0,
    generator=torch.Generator("cuda").manual_seed(42),
).frames[0]

export_to_video(video_frames, "samurai_forest.mp4", fps=24)
print("Сохранено samurai_forest.mp4")
```

### Изображение в видео

```python
import torch
from PIL import Image
from diffusers import WanImageToVideoPipeline
from diffusers.utils import export_to_video

pipe = WanImageToVideoPipeline.from_pretrained(
    "SkyworkAI/SkyReels-V3-I2V",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")
pipe.enable_model_cpu_offload()

image = Image.open("landscape.png").resize((1280, 720))

video_frames = pipe(
    prompt="Камера медленно двигается вперед в сцену, облака плывут над головой",
    image=image,
    negative_prompt="статичность, дрожание, размытость",
    num_frames=97,
    num_inference_steps=30,
    guidance_scale=5.0,
).frames[0]

export_to_video(video_frames, "landscape_anim.mp4", fps=24)
```

### Предпросмотр в низком разрешении для быстрого просмотра

```python
import torch
from diffusers import WanPipeline
from diffusers.utils import export_to_video

pipe = WanPipeline.from_pretrained(
    "SkyworkAI/SkyReels-V3-T2V", torch_dtype=torch.bfloat16
).to("cuda")

# 480p для быстрой итерации
frames = pipe(
    prompt="Океанские волны разбиваются о скалы, драматический брызг, закат",
    num_frames=49,
    width=854,
    height=480,
    num_inference_steps=20,
    guidance_scale=5.0,
).frames[0]

export_to_video(frames, "waves_preview.mp4", fps=24)
```

## Советы для пользователей Clore.ai

1. **Используйте классы конвейера Wan** — SkyReels-V3 архитектурно основан на Wan2.1, поэтому он использует `WanPipeline` / `WanImageToVideoPipeline` из diffusers.
2. **Начните с 480p** — сначала отрабатывайте подсказки на более низком разрешении, затем генерируйте финальные клипы в 720p, когда будете довольны композицией.
3. **Выгрузка на CPU** — `enable_model_cpu_offload()` рекомендуется на картах с 24 ГБ для генерации в 720p, чтобы избежать OOM.
4. **Постоянное хранилище** — установите `HF_HOME=/workspace/hf_cache` на постоянном томе Clore.ai; модель весит \~15–20 ГБ.
5. **Родные 24 кадра/с** — не изменяйте fps при экспорте; временное внимание модели было обучено для вывода в 24 кадра/с.
6. **Двуязычные подсказки** — текстовый энкодер Wan2.1 обрабатывает и английский, и китайский; при необходимости вы можете смешивать языки.
7. **Масштаб направляющего сигнала** — лучше всего работают 4.0–6.0. Более высокие значения (>8) могут привести к пересыщению.
8. **tmux обязателен** — всегда запускайте генерацию в `tmux` сессии на Clore.ai, чтобы пережить разрывы SSH.

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

| Проблема                                 | Исправить                                                                                                                                     |
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `OutOfMemoryError` на 720p               | Включите `pipe.enable_model_cpu_offload()`; снизьте до 480p, если все еще OOM                                                                 |
| Модель не найдена на HuggingFace         | Проверьте точное имя репозитория на [странице SkyworkAI на HF](https://huggingface.co/SkyworkAI) — она может быть указана под вариантом имени |
| Дрожание или мерцание движения           | Увеличьте `num_inference_steps` до 40; уменьшите `guidance_scale` до 4.0                                                                      |
| Медленная генерация                      | \~1–3 мин на клип \~4 сек на RTX 4090 нормально для 720p; 480p примерно в 2× быстрее                                                          |
| Сдвиг цвета / пересыщение                | Понизьте `guidance_scale` до 4.0–5.0                                                                                                          |
| `ImportError: imageio`                   | `pip install imageio[ffmpeg]`                                                                                                                 |
| Повторная загрузка весов при перезапуске | Подмонтируйте постоянное хранилище и установите `HF_HOME` переменную окружения                                                                |
