

Демо text-to-image модели, 1.3 млрд параметров
Zero-Shot Text-to-Image Generation.
Демо русской text-to-image модели, генерирующей изображения по тексту.
ruDALL-E XL 1.3B (1.3 млрд параметров) + ruCLIP
Новости
- Habr: ruDALL-E - генерируем изображения по текстовому описанию, или Самый большой вычислительный проект в России
- VC: Вы синиц показываете? Красивое!: что сгенерировали пользователи с помощью нейросети ruDALL-E
Подробнее о модели
Примеры кода с использованием модели: GitHub
Статья OpenAI: ссылка
Галлерея ruDALL-E: ссылка
Технические параметры
- Размер файлов:
- ruDALL-E XL 1.3B - 2.48 GB
- VQGAN - 321 MB
- SuperResolution - 67 MB
- Модель GPU: V 100
- Фреймворк: pytorch
- Tags: DALL-E, ruDALL-e, pytorch, text2image, image generation, NLP, CV
- Формат: checkpoint
- Версия: 0.1
Применение
Генерация изображений решает две важные задачи, которые не может решить поиск:
-
позволяет учесть точное описание желаемого
-
создаёт изображение, которое раньше не существовало.
Генерацию изображений можно использовать, например, для фото-иллюстрации статей, в копирайтинге, в рекламе.
Код в демо решает следующие задачи:
- генерация изображений по текстовому описанию
- выбор (ранжирование) самого релеватного и качественного изображения из сгенерированных с помощью модели ruCLIP
- увеличение разрешения изображения в 2, 4, 8 раз - super resolution
Пример: "шикарная гостиная с зелеными креслами у окна"
Описание работы модели
Шаг 1. Генерация изображения по тексту:
dalle = DalleText2Image('open-ru-dalle/configs/dalle_xl.yml', torch.device('cuda:0'))
dalle._seed_everything(42)
images = dalle.generate_images(
text='озеро в горах, а рядом красивый олень пьет воду',
top_k=1024, top_p=0.99,
images_num=24,
)
dalle.show(images, 24)
Результат:
Шаг 2. Выбираем лучшие изображения:
top_images = dalle.cherry_pick_by_clip(images, text, count=6)
dalle.show(top_images, 3)
Шаг 3. SuperResolution
sr_images = dalle.super_resolution(top_images)
dalle.show(sr_images, 3)
Готово!
Работа с KF Serving API
Воспользуйтесь кнопкой Подключить и перейдите в swagger сервиса. Ниже пример запроса.
import base64
import requests
from io import BytesIO
from IPython.display import display
from PIL import Image
response = requests.post(
'http://localhost:8080/v1/models/kfserving-default:predict',
json={
"instances": [
{
"text": "пейзаж со снежными горами и озером розового цвета",
"top_k": 1500,
"top_p": 0.99,
"images_num": 4,
"rerank_top": 2,
"hi_res": True
}
]
})
for imgtext in response.json()['images']:
msg = base64.b64decode(imgtext.encode('ascii'))
img = Image.open(BytesIO(msg))
display(img)
Галерея примеров:
Разные цветы
Красивый закат над морем
кресло в форме авокадо
Деревянная кровать в спальне
Фото китайской еды
Современное кресло фиолетового цвета
Самая большая вычислительная задача в России
На платформе Cloud.ru ML Space и суперкомпьютере Christofari модель обучалась 37 дней на 512 GPU TESLA V100, и затем еще 11 дней по 128 GPU — всего 20352 GPU-дней. Самая большая обученная модель ruDALL-E XXL (12 миллиардов параметров) сравнима с английской DALL-E от OpenAI!
Попробуйте быструю генерацию в приложении Салют. Для активации навыка скажите «Включи художника». Или попробуйте Телеграм бота @sber_rudalle_xl_bot
Дисклеймер
При использовании демо модели ruGPT-3 XL ответы формируются на автоматической основе. ООО «Облачные технологии» не несет ответственности за точность, релевантность, корректность информации, полученной пользователем посредством данного демо.
Лицензирование
Модель ruDALL-E XL 1.3B и ее исходный код поставляются на основе открытой лицензии Apache 2.0