> 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/generaciya-video/opensora.md).

# OpenSora

{% hint style="info" %}
**Доступны более новые альтернативы!** [**FramePack**](/guides/guides_v2-ru/generaciya-video/framepack.md) генерирует видео всего с 6 ГБ видеопамяти, [**Wan2.1**](/guides/guides_v2-ru/generaciya-video/wan-video.md) обеспечивает лучшее качество и [**LTX-2**](/guides/guides_v2-ru/generaciya-video/ltx-video-2.md) добавляет встроенную генерацию звука.
{% endhint %}

Создавайте видео с помощью OpenSora, открытой альтернативы Sora, на GPU CLORE.AI.

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

## Почему OpenSora?

* **Открытый исходный код** - Полная лицензия Apache 2.0
* **Вдохновлено Sora** - Архитектура DiT, как у Sora от OpenAI
* **Масштабируемость** - Несколько размеров модели и разрешений
* **Длинные видео** - Генерация до 16 секунд
* **Активная разработка** - Регулярные обновления и улучшения

## Варианты модели

| Модель         | Разрешение | Длительность | VRAM  | Качество |
| -------------- | ---------- | ------------ | ----- | -------- |
| OpenSora 1.2   | 720p       | 16 с         | 24 ГБ | Отлично  |
| OpenSora 1.1   | 480p       | 8 с          | 16GB  | Хорошо   |
| OpenSora 1.0   | 256p       | 4 с          | 8 ГБ  | Базовый  |
| Open-Sora-Plan | 512p       | 10 с         | 20 ГБ | Отлично  |

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

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

```
pytorch/pytorch:2.11.0-cuda12.8-cudnn9-devel
```

**Порты:**

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

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

```bash
git clone https://github.com/hpcaitech/Open-Sora && \
cd Open-Sora && \
pip install -e . && \
pip install gradio && \
python scripts/inference.py \
    --prompt "Кот играет с пряжей" \
    --num-frames 51 \
    --resolution 480p \
    --save-dir ./outputs
```

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

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

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

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

## Требования к оборудованию

| Версия модели | Минимальная GPU | Рекомендуется | Оптимально |
| ------------- | --------------- | ------------- | ---------- |
| OpenSora 1.0  | RTX 3070 8GB    | RTX 3090 24GB | RTX 4090   |
| OpenSora 1.1  | RTX 3090 16GB   | RTX 4090 24GB | A100 40 ГБ |
| OpenSora 1.2  | RTX 4090 24GB   | A100 40 ГБ    | A100 80 ГБ |

## Установка

### Из исходников

```bash
git clone https://github.com/hpcaitech/Open-Sora
cd Open-Sora

# Установить зависимости
pip install -e .

# Скачать веса модели
python scripts/download_weights.py --version 1.2
```

### Через pip

```bash
pip install opensora
```

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

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

```bash
# Простая генерация
python scripts/inference.py \
    --prompt "Красивый закат над океаном, кинематографично" \
    --num-frames 51 \
    --resolution 480p \
    --save-dir ./outputs

# Высокое качество
python scripts/inference.py \
    --prompt "Величественный орёл, парящий сквозь облака" \
    --num-frames 102 \
    --resolution 720p \
    --num-sampling-steps 100 \
    --save-dir ./outputs
```

### Python API

```python
import torch
from opensora.models import OpenSoraModel
from opensora.utils import export_to_video

# Загрузить модель
model = OpenSoraModel.from_pretrained("hpcaitech/OpenSora-v1.2")
model.to("cuda")

# Генерировать видео
prompt = "Ракета, стартующая в космос, драматическое освещение, кинематографично"

video = model.generate(
    prompt=prompt,
    num_frames=51,
    height=480,
    width=854,
    num_inference_steps=50,
    guidance_scale=7.0
)

# Сохранить
export_to_video(video, "rocket.mp4", fps=24)
```

## Продвинутая генерация

### С негативными подсказками

```python
video = model.generate(
    prompt="Профессиональная фотография тигра в дикой природе",
    negative_prompt="размыто, низкое качество, искажено, артефакты",
    num_frames=51,
    num_inference_steps=75,
    guidance_scale=7.5
)
```

### Длинные видео

```python
# Генерировать 16 секунд при 24 кадр/с
video = model.generate(
    prompt="Таймлапс распускающихся цветов в саду",
    num_frames=384,  # 16 секунд при 24 кадр/с
    height=480,
    width=854,
    num_inference_steps=100
)

export_to_video(video, "timelapse.mp4", fps=24)
```

### Высокое разрешение

```python
# Генерация 720p (требует больше видеопамяти)
video = model.generate(
    prompt="Вид с воздуха на город ночью с огнями",
    num_frames=51,
    height=720,
    width=1280,
    num_inference_steps=75
)
```

## Примеры промптов

### Кинематографическое

```python
prompts = [
    "Кинематографичный кадр: самурай достаёт меч, драматическое освещение, 4K",
    "Эпичный широкий кадр замка на утёсе во время шторма",
    "Медленное падение капель воды в спокойный пруд",
    "Путешествие по неоновой киберпанк-аллее ночью"
]
```

### Природа

```python
prompts = [
    "Северное сияние, танцующее над заснеженными горами, таймлапс",
    "Макросъёмка бабочки, выходящей из кокона",
    "Океанские волны, разбивающиеся о вулканические скалы на закате",
    "Туман, стелющийся сквозь древний лес на рассвете"
]
```

### Абстракция

```python
prompts = [
    "Цветные капли краски, падающие в воду, замедленная съёмка",
    "Фракталы, эволюционирующие и преобразующиеся, психоделические цвета",
    "Жидкий металл, принимающий разные формы"
]
```

## Параметры конфигурации

### Предустановки разрешения

```python
resolutions = {
    "256p": (256, 455),
    "360p": (360, 640),
    "480p": (480, 854),
    "720p": (720, 1280),
    "1080p": (1080, 1920)  # Требуется много видеопамяти
}
```

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

```python
# Быстрый предпросмотр
config_fast = {
    "num_frames": 25,
    "num_inference_steps": 25,
    "guidance_scale": 5.0
}

# Сбалансировано
config_balanced = {
    "num_frames": 51,
    "num_inference_steps": 50,
    "guidance_scale": 7.0
}

# Максимальное качество
config_quality = {
    "num_frames": 102,
    "num_inference_steps": 100,
    "guidance_scale": 7.5
}
```

## Интерфейс Gradio

```python
import gradio as gr
import torch
from opensora.models import OpenSoraModel
from opensora.utils import export_to_video
import tempfile

model = OpenSoraModel.from_pretrained("hpcaitech/OpenSora-v1.2")
model.to("cuda")

def generate_video(prompt, negative_prompt, frames, steps, guidance, resolution, seed):
    res_map = {"480p": (480, 854), "720p": (720, 1280)}
    height, width = res_map.get(resolution, (480, 854))

    generator = torch.Generator("cuda").manual_seed(seed) if seed > 0 else None

    video = model.generate(
        prompt=prompt,
        negative_prompt=negative_prompt,
        num_frames=frames,
        height=height,
        width=width,
        num_inference_steps=steps,
        guidance_scale=guidance,
        generator=generator
    )

    with tempfile.NamedTemporaryFile(suffix=".mp4", delete=False) as f:
        export_to_video(video, f.name, fps=24)
        return f.name

demo = gr.Interface(
    fn=generate_video,
    inputs=[
        gr.Textbox(label="Промпт", lines=2),
        gr.Textbox(label="Негативный промпт", value="размытое, низкое качество"),
        gr.Slider(25, 200, value=51, step=1, label="Кадры"),
        gr.Slider(20, 150, value=50, step=5, label="Шаги"),
        gr.Slider(3, 15, value=7, step=0.5, label="Guidance"),
        gr.Dropdown(["480p", "720p"], value="480p", label="Разрешение"),
        gr.Number(value=-1, label="Сид")
    ],
    outputs=gr.Video(label="Сгенерированное видео"),
    title="OpenSora — текст в видео",
    description="Создавайте видео с помощью OpenSora. Работает на CLORE.AI."
)

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

## Оптимизация памяти

```python
# Включить оптимизации памяти
model.enable_model_cpu_offload()
model.enable_vae_tiling()

# Для очень низкой VRAM
model.enable_sequential_cpu_offload()

# Использовать меньшую точность
model = OpenSoraModel.from_pretrained(
    "hpcaitech/OpenSora-v1.2",
    torch_dtype=torch.float16
)
```

## Пакетная генерация

```python
import os

prompts = [
    "Феникс, восстающий из пламени",
    "Дождь, падающий на городские улицы ночью",
    "Таймлапс распускающихся цветов",
    "Северное сияние над горами"
]

output_dir = "./videos"
os.makedirs(output_dir, exist_ok=True)

for i, prompt in enumerate(prompts):
    print(f"Генерация {i+1}/{len(prompts)}: {prompt[:40]}...")

    video = model.generate(
        prompt=prompt,
        num_frames=51,
        num_inference_steps=50
    )

    export_to_video(video, f"{output_dir}/video_{i:03d}.mp4", fps=24)

    # Очистить память между генерациями
    torch.cuda.empty_cache()
```

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

| Разрешение | Кадры | Шаги | GPU        | Время   |
| ---------- | ----- | ---- | ---------- | ------- |
| 480p       | 51    | 50   | RTX 4090   | ≈3 мин  |
| 480p       | 51    | 50   | A100 40 ГБ | \~2 мин |
| 720p       | 51    | 50   | A100 40 ГБ | \~5 мин |
| 720p       | 102   | 100  | A100 80 ГБ | ≈15 мин |

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

Типичные расценки маркетплейса CLORE.AI:

| GPU           | Почасовая ставка | ≈51 видео 480p в час    |
| ------------- | ---------------- | ----------------------- |
| RTX 4090 24GB | \~$0.10          | \~15-20                 |
| A100 40 ГБ    | \~$0.17          | \~25-30                 |
| A100 80 ГБ    | \~$0.25          | ≈35 (может делать 720p) |

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

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

### Недостаточно памяти

```bash
# Использовать более низкое разрешение
python scripts/inference.py --resolution 360p --num-frames 25

# Включить выгрузку на CPU
python scripts/inference.py --cpu-offload

# Уменьшите размер батча
python scripts/inference.py --batch-size 1
```

### Медленная генерация

* Уменьшите `num_inference_steps` (30–50 часто достаточно)
* Используйте более низкое разрешение для предпросмотров
* Убедитесь, что используется GPU (проверьте `nvidia-smi`)

### Низкое качество

* Увеличьте число шагов до 75–100
* Используйте более подробные подсказки
* Добавьте негативные подсказки для артефактов
* Попробуйте разные значения guidance (5–10)

### Артефакты видео

* Уменьшите коэффициент guidance
* Увеличьте число шагов инференса
* Используйте временное сглаживание
* Постобработайте с помощью стабилизации видео

## OpenSora против других

| Функция                   | OpenSora 1.2 | Hunyuan  | Wan2.1     | SVD     |
| ------------------------- | ------------ | -------- | ---------- | ------- |
| Архитектура               | DiT          | DiT      | DiT        | U-Net   |
| Максимальная длительность | 16 с         | 5 с      | 5 с        | 4 с     |
| Максимальное разрешение   | 720p         | 720p     | 720p       | 576p    |
| Качество                  | Отлично      | Отлично  | Отлично    | Хорошо  |
| Скорость                  | Средне       | Медленно | Быстро     | Быстро  |
| Лицензия                  | Apache 2.0   | Открыть  | Apache 2.0 | Открыть |

**Используйте OpenSora, когда:**

* Нужна более длинная генерация видео
* Нужна полная лицензия Apache 2.0
* Интересует архитектура, похожая на Sora
* Нужна активная поддержка сообщества

## Альтернатива Open-Sora-Plan

Ещё один вариант с открытым исходным кодом:

```bash
git clone https://github.com/PKU-YuanGroup/Open-Sora-Plan
cd Open-Sora-Plan
pip install -e .

python scripts/inference.py \
    --prompt "Ваш запрос здесь" \
    --output video.mp4
```

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

* [Hunyuan Video](/guides/guides_v2-ru/generaciya-video/hunyuan-video.md) - Высококачественный T2V
* [Wan2.1 Video](/guides/guides_v2-ru/generaciya-video/wan-video.md) - Быстрая генерация
* [Stable Video Diffusion](/guides/guides_v2-ru/generaciya-video/stable-video-diffusion.md) - Анимация изображений
* [Интерполяция RIFE](/guides/guides_v2-ru/obrabotka-video/rife-interpolation.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/generaciya-video/opensora.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.
