Sana: быстрая генерация изображений высокого разрешения, ультрамалая модель размером 0,6 ББ, работа с GPU в низкопрофильном ноутбуке
Общее введение
Sana - это эффективный фреймворк для создания изображений высокого разрешения, разработанный в NVIDIA Labs, который генерирует изображения с разрешением до 4096 × 4096 за секунды. Sana использует линейное диффузионное преобразование и технологию автокодирования с глубоким сжатием для значительного повышения скорости и качества создания изображений при снижении потребности в вычислительных ресурсах. Фреймворк поддерживает работу на обычных графических процессорах ноутбуков для создания недорогого контента.


Опыт работы в Интернете: https://nv-sana.mit.edu/
Список функций
- Создание изображений высокого разрешения: Поддерживает создание изображений с разрешением до 4096 × 4096.
- линейный диффузионный преобразователь: Повышение эффективности генерации изображений высокого разрешения с помощью механизма линейного внимания.
- Автокодировщик глубокого сжатия: Сжимает изображения до 32 раз, уменьшая количество потенциальных маркеров и повышая эффективность обучения и генерации.
- Преобразование текста в изображение: Улучшенное выравнивание изображения с текстом с помощью декодера и кодировщика текста.
- Эффективное обучение и отбор пробДля сокращения шагов дискретизации и ускорения сходимости используется Flow-DPM-Solver.
- Недорогое развертывание: Поддерживает работу на графических процессорах ноутбуков с 16 ГБ памяти и создает изображения с разрешением 1024 x 1024 менее чем за 1 секунду.
Использование помощи
Процесс установки
- Убедитесь, что версия Python >= 3.10.0, рекомендуется использовать Anaconda или Miniconda.
- Установите PyTorch версии >= 2.0.1+cu12.1.
- Клонирование склада Sana:
git clone https://github.com/NVlabs/Sana.git cd Sana
- Запустите сценарий настройки среды:
./environment_setup.sh sana
или в соответствии с
environment_setup.sh
Установите каждый компонент в соответствии с описанием в
Использование
требования к оборудованию
- Модель 0.6B требует 9 ГБ VRAM, а модель 1.6B - 12 ГБ VRAM. Для квантованной версии потребуется менее 8 ГБ видеопамяти для выводов.
Быстрый старт
- Запустите официальную онлайн-демонстрацию с помощью Gradio:
DEMO_PORT=15432 \ python app/app_sana.py \ --config=configs/sana_config/1024ms/Sana_1600M_img1024.yaml \ --model_path=hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth
- Запустите код вывода, чтобы сгенерировать изображение:
import torch from app.sana_pipeline import SanaPipeline from torchvision.utils import save_image device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") generator = torch.Generator(device=device).manual_seed(42) sana = SanaPipeline("configs/sana_config/1024ms/Sana_1600M_img1024.yaml") sana.from_pretrained("hf://Efficient-Large-Model/Sana_1600M_1024px/checkpoints/Sana_1600M_1024px.pth") prompt = 'a cyberpunk cat with a neon sign that says "Sana"' image = sana(prompt=prompt, height=1024, width=1024, guidance_scale=5.0, pag_guidance_scale=2.0, num_inference_steps=18, generator=generator) save_image(image, 'output/sana.png', nrow=1, normalize=True, value_range=(-1, 1))
Модели обучения
- Подготовьте набор данных в следующем формате:
asset/example_data ├── AAA.txt ├── AAA.png ├── BCC.txt ├── BCC.png └── CCC.txt
- Начните обучение:
bash train_scripts/train.sh \ configs/sana_config/512ms/Sana_600M_img512.yaml \ --data.data_dir="asset/example_data" \ --data.type=SanaImgDataset \ --model.multi_scale=false \ --train.train_batch_size=32
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...