Evolution
Тема интерфейса

Запуск Kandinsky 5.0 Video Lite на GPU NVIDIA A100

Эта статья полезна?

С помощью этого руководства вы развернете ComfyUI с поддержкой модели Kandinsky 5.0 Video Lite на виртуальной машине с GPU NVIDIA A100 в облаке Cloud.ru Evolution.

Модель Kandinsky 5.0 Video Lite — это компактная, но мощная модель для генерации видео с открытым исходным кодом. Она позволяет генерировать видео длиной до 10 секунд в разрешении 768×512. Также у модели есть оптимизированные версии (distilled), позволяющие ускорить инференс в 6 раз.

Вы научитесь:

  • развертывать виртуальную машину с графическим процессором NVIDIA A100;

  • устанавливать CUDA, Docker и ComfyUI;

  • загружать и настраивать Kandinsky 5.0 Video Lite в ComfyUI;

  • генерировать видео с помощью визуального интерфейса;

  • обеспечивать безопасный доступ к сервису через HTTPS.

Вы будете использовать следующие сервисы:

  • Виртуальные машины — сервис, в рамках которого предоставляется виртуальная машина с GPU.

  • Публичный IP-адрес для доступа к сервису через интернет.

  • Docker — система контейнеризации.

  • Docker Compose — инструмент для запуска и управления Docker-контейнерами.

  • Бесплатный сервис nip.io для получения публичного доменного имени и сертификата. Вы также можете использовать собственное зарегистрированное доменное имя и SSL-сертификат для организации доступа.

  • Nginx — веб-сервер для проксирования запросов и организации защищeнного HTTPS-доступа к приложению.

  • Let’s Encrypt — сервис для автоматического получения бесплатного SSL-сертификата.

  • ComfyUI — визуальный интерфейс с открытым исходным кодом для запуска и управления диффузионными моделями генерации изображений и видео. Позволяет строить сложные рабочие процессы (workflows) в виде узлов и соединений, обеспечивая гибкость и контроль над генерацией.

Шаги:

Перед началом работы

  1. Если вы уже зарегистрированы, войдите под своей учетной записью.

1. Разверните ресурсы в облаке

На этом шаге вы создадите группу безопасности, подсеть и виртуальную машину.

  1. Создайте группу безопасности с названием vm-gpu-sg в зоне доступности ru.AZ-2 и добавьте в нее правила:

    Трафик

    Протокол

    Порт

    Тип источника/адресат

    Источник/Адресат

    Входящий

    TCP

    443

    IP-адрес

    0.0.0.0/0

    Входящий

    TCP

    80

    IP-адрес

    0.0.0.0/0

    Исходящий

    Любой

    Оставьте пустым

    IP-адрес

    0.0.0.0/0

  2. Создайте подсеть со следующими параметрами:

    • Названиеvm-gpu-subnet.

    • VPCDefault.

    • Адрес10.10.1.0/24.

    • DNS-серверы8.8.8.8.

  3. Создайте виртуальную машину со следующими параметрами:

    • Названиеvm-gpu.

    • Зона доступностиru.AZ-2.

    • Графический процессор (GPU) — включите опцию.

    • Образ — публичный образ Ubuntu 22.04 with GPU.

    • Модель GPUNVIDIA A100.

    • Загрузочный диск — укажите размер 350 ГБ.

    • Сетевой интерфейс — выберите тип Подсеть с публичным IP.

    • Подсетьvm-gpu-subnet.

    • Публичный IP — оставьте Арендовать новый или выберите IP-адрес из списка арендованных.

    • Группы безопасности — добавьте vm-gpu-sg.

    • Метод аутентификацииПубличный ключ и Пароль.

    • Публичный ключ — укажите ключ, созданный ранее.

    • Пароль — задайте пароль пользователя.

Убедитесь, что ресурсы созданы и отображаются в личном кабинете:

  1. На странице Инфраструктура → Виртуальные машины отображается виртуальная машина vm-gpu со статусом «Запущена».

  2. На странице Сети → Группы безопасности отображается группа безопасности vm-gpu-sg со статусом «Создана».

2. Настройте окружение на виртуальной машине

На этом шаге вы установите необходимые пакеты и настроите систему на ВМ.

  1. Подключитесь к виртуальной машине vm-gpu через серийную консоль или по SSH.

  2. Обновите систему и установите необходимые зависимости:

    sudo apt update && sudo apt upgrade -y &&\
    sudo apt install -y curl apt-transport-https\
    ca-certificates\
    software-properties-common\
    gnupg2\
    lsb-release
  3. Перезагрузите ВМ:

    sudo reboot
  4. Установите Docker:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io -y
  5. Дайте текущему пользователю права на запуск Docker:

    sudo usermod -aG docker $USER
    newgrp docker
  6. Установите Docker Compose:

    sudo apt-get install docker-compose -y
  7. Проверьте, что Docker и Docker Compose установлены корректно:

    docker --version
    docker-compose version
  8. Установите и запустите Nginx:

    sudo apt install nginx -y
    sudo systemctl enable nginx
    sudo systemctl start nginx
  9. Установите Let’s Encrypt и плагин для Nginx:

    sudo apt install certbot python3-certbot-nginx -y
  10. Установите NVIDIA Container Toolkit:

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    sudo apt-get update
    sudo apt-get install -y nvidia-docker2
    sudo systemctl restart docker

3. Настройте Nginx и HTTPS для ComfyUI

На этом шаге вы настроите службу Nginx и обеспечите доступ по HTTPS.

  1. Подключитесь к виртуальной машине vm-gpu через серийную консоль или по SSH.

  2. Сконфигурируйте межсетевой экран:

    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'
    sudo ufw enable
  3. Создайте конфигурационный файл Nginx:

    sudo nano /etc/nginx/sites-available/comfyui.conf
  4. Вставьте конфигурацию, заменив <ip_address> на значение публичного IP-адреса виртуальной машины:

    server {
    listen 80;
    server_name comfyui.<ip_address>.nip.io www.comfyui.<ip_address>.nip.io;
    location / {
    proxy_pass http://localhost:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    }
    }
  5. Активируйте конфигурацию и перезапустите Nginx:

    sudo ln -sf /etc/nginx/sites-available/comfyui.conf /etc/nginx/sites-enabled/comfyui.conf
    sudo rm -f /etc/nginx/sites-enabled/default
    sudo nginx -t
    sudo systemctl reload nginx
  6. Проверьте, что Nginx работает:

    sudo systemctl status nginx

    Сервис Nginx должен быть в статусе «active (running)».

  7. Перейдите по адресу http://comfyui.<ip_address>.nip.io. Откроется страница с текстом «502 Bad Gateway».

  8. Выпустите SSL-сертификат:

    sudo certbot --nginx -d comfyui.<ip_address>.nip.io --redirect --agree-tos -m <email>

    Где:

    • <ip_address> — публичный IP-адрес виртуальной машины.

    • <email> — email для регистрации сертификата.

  9. Перейдите по адресу https://comfyui.<ip_address>.nip.io и убедитесь, что браузер отмечает соединение как безопасное.

4. Разверните ComfyUI с моделью Kandinsky 5

На этом шаге вы развернете ComfyUI с помощью Docker Compose.

  1. Подключитесь к виртуальной машине vm-gpu через серийную консоль или по SSH.

  2. Создайте структуру проекта:

    mkdir -p $HOME/comfyui
    cd $HOME/comfyui
  3. Клонируйте репозиторий Kandinsky 5 и перейдите в него:

    git clone https://github.com/ai-forever/Kandinsky-5.git
    cd Kandinsky-5
  4. Загрузите модели Kandinsky 5 с помощью скрипта download_models.py:

    pip install huggingface_hub
    python download_models.py

    Чтобы не скачивать все модели, вы можете удалить ненужные внутри скрипта.

  5. Перенесите скачанные модели в директорию comfyui/models:

    mkdir -p ~/comfyui/models/diffusion_models
    mkdir -p ~/comfyui/models/vae
    mkdir -p ~/comfyui/models/text_encoders
    mv weights/model ~/comfyui/models/diffusion_models/
    mv weights/vae ~/comfyui/models/vae/
    mv weights/text_encoder ~/comfyui/models/text_encoders/
    mv weights/text_encoder2 ~/comfyui/models/text_encoders/
  6. Вернитесь в директорию comfyui:

    cd ~/comfyui
  7. Создайте папку output, в которую будут сохраняться сгенерированные видео:

    mkdir ~/comfyui/output
  8. Создайте файл docker-compose.yml:

    sudo nano docker-compose.yml
  9. Вставьте в созданный файл описание контейнера:

    version: '3.8'
    services:
    comfyui:
    build:
    context: .
    dockerfile: Dockerfile
    ports:
    - "8080:8188"
    volumes:
    - ./models:/comfyui/models
    - ./output:/comfyui/output
    shm_size: '16gb'
    deploy:
    resources:
    reservations:
    devices:
    - driver: nvidia
    count: 1
    capabilities: [gpu]
    restart: unless-stopped
  10. Создайте Dockerfile:

    sudo nano Dockerfile
  11. Вставьте содержимое:

    # Используем CUDA-образ для A100
    FROM nvidia/cuda:12.4.1-devel-ubuntu22.04
    # Устанавливаем системные зависимости
    RUN apt-get update && apt-get install -y \
    python3.10 \
    python3-pip \
    git \
    wget \
    ffmpeg \
    build-essential \
    --no-install-recommends && \
    rm -rf /var/lib/apt/lists/*
    # Добавляем символическую ссылку python → python3.10
    RUN ln -s /usr/bin/python3.10 /usr/bin/python
    # Устанавливаем pip
    RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python
    WORKDIR /comfyui
    # =============== 1. Устанавливаем ComfyUI ===============
    RUN git clone https://github.com/comfyanonymous/ComfyUI.git .
    RUN pip install -r requirements.txt
    # =============== 2. Устанавливаем PyTorch с CUDA ===============
    RUN pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
    # =============== 3. Устанавливаем flash-attn ===============
    RUN pip install packaging && \
    pip install "flash-attn>=2.0" --no-build-isolation --no-use-pep517 --no-cache-dir
    # =============== 4. Клонируем kandinsky-5-inference в custom_nodes ===============
    RUN mkdir -p custom_nodes
    WORKDIR /comfyui/custom_nodes
    RUN git clone https://github.com/gen-ai-team/kandinsky-5-inference.git kandinsky
    # =============== 5. Устанавливаем зависимости плагина + omegaconf ===============
    WORKDIR /comfyui/custom_nodes/kandinsky
    RUN pip install -r requirements.txt
    RUN pip install omegaconf # Требуется для nodes_kandinsky.py
    # =============== 6. Копируем workflow в ComfyUI ===============
    WORKDIR /comfyui
    RUN mkdir -p workflows
    RUN cp /comfyui/custom_nodes/kandinsky/comfyui/kandisnky5_lite_T2V.json workflows/kandisnky5_lite_T2V.json
    # =============== 7. Запускаем ComfyUI ===============
    EXPOSE 8188
    CMD ["python", "main.py", "--listen", "0.0.0.0", "--port", "8188", "--gpu-only", "--use-flash-attention"]
  12. Создайте файл .dockerignore:

    sudo nano .dockerignore
  13. Вставьте содержимое:

    models/
    output/
    .git
    __pycache__
    *.log
    temp/
    logs/
    *.safetensors
    *.bin
    *.pt
    *.pth
  14. Запустите сервис:

    docker-compose up -d
  15. Проверьте, что сервис запущен:

    docker compose ps

5. Сгенерируйте видео в ComfyUI

  1. Перейдите по адресу https://comfyui.<ip_address>.nip.io.

    Откроется интерфейс ComfyUI.

  2. Загрузите файл конфигурации: в меню ComfyUI нажмите File → Открыть.

    ../_images/s__kandinsky-open-conf.png

    После этого у вас появится рабочий процесс для модели Kandinsky 5.

    ../_images/s__kandinsky-workflow.png
  3. Выберите необходимую модель для генерации из тех, что вы скачали ранее.

    Например:

    • kandinsky5lite_t2v_sft_5s.safetensors — для лучшего качества.

    • kandinsky5lite_t2v_distilled16steps_5s.safetensors — в 6 раз быстрее, но без серьезной потери качества.

    ../_images/s__kandinsky-select-model.png
  4. Настройте ключевые параметры:

    • prompt — описание сцены, которую хотите увидеть.

      Чем детальнее, тем лучше: указывайте объекты, движение, стиль, освещение.

      Пример:

      A cat running through a sunlit forest, cinematic, 4K
    • negative prompt — то, что нужно исключить: артефакты, деформации, нежелательные объекты.

      Пример:

      blurry, low quality, extra limbs, text
    • width × height × length — размер кадра и количество кадров.

      Укажите:

      • Для 5-секундного видео: 768×512×121.

      • Для 10-секундного видео: 768×512×241.

      Примечание

      Для 10-секундного видео ширина и высота должны делиться на 128.

    • steps — число итераций генерации.

      Укажите 50 для SFT и Pretrain моделей, 16 — для distilled-версий.

    • cfg — параметр определяет, насколько строго модель следует промпту.

      Рекомендуемое значение — 5.0. Более высокие значения могут снизить качество.

    • scheduler_scale — управляет шумом и динамикой.

      Для 5-секундного видео укажите 5.0, для 10-секундного — 10.0.

  5. После введения промпта и выбора параметров нажмите кнопку Запустить.

    ../_images/s__kandinsky-gen-start.png

    Когда генерация завершится, в ComfyUI отобразится превью, а оригинальное видео сохранится в директории /comfyui/output.

    ../_images/s__kandinsky-result-video.png

6. Отключите доступ по SSH для виртуальной машины

Когда вы развернули и настроили сервис, закройте доступ по SSH для повышения безопасности.

  1. В личном кабинете на верхней панели слева нажмите Кнопка с изображением девяти точек и выберите Инфраструктура → Виртуальные машины.

  2. В списке виртуальных машин выберите vm-gpu.

  3. Перейдите на вкладку Сетевые параметры.

  4. В блоке сетевого интерфейса нажмите Горизонтальное меню и выберите Изменить группы безопасности.

  5. Удалите группу SSH-access_ru и сохраните изменения.

  6. Убедитесь, что доступа нет — попробуйте подключиться к виртуальной машине по SSH. После отключения доступа по SSH, администрирование сервиса будет доступно через серийную консоль виртуальной машины.

Результат

Вы развернули ComfyUI с поддержкой Kandinsky 5.0 Video Lite на GPU NVIDIA A100 с доступом через HTTPS.

В нем вы можете:

  • Загружать workflow одним кликом.

  • Генерировать видео до 10 секунд по текстовому промпту.

  • Настраивать параметры: длину, шаги, CFG, разрешение.

  • Сохранять результаты в папку output на хосте.

Теперь вы можете генерировать качественные короткие видео с помощью одной из самых передовых открытых видеомоделей в удобном интерфейсе ComfyUI.