
DiffusionDB-это первый крупномасштабный набор данных о приглашении на текстовые добычи. Он содержит 14 миллионов изображений, генерируемых стабильной диффузией с использованием подсказок и гиперпараметров, указанных реальными пользователями. Беспрецедентный масштаб и разнообразие этого набора данных, проведенного человеком, предоставляют захватывающие возможности исследования для понимания взаимодействия между подсказками и генеративными моделями, обнаружения глубоких норм и проектирования инструментов взаимодействия с человеком-аи, чтобы помочь пользователям более легко использовать эти модели.
DiffusionDB доступен? Обнимание наборов данных лица.
DiffusionDB предоставляет два подмножества (DiffusionDB 2M и DiffusionDB большой) для удовлетворения различных потребностей.
| Подмножество | Число изображений | Количество уникальных подсказок | Размер | Каталог изображений | Метаданная таблица |
|---|---|---|---|---|---|
| Диффузиидб 2м | 2м | 1,5 м | 1,6 ТБ | images/ | metadata.parquet |
| Диффузия | 14 м | 1,8 м | 6,5 ТБ | diffusiondb-large-part-1/ diffusiondb-large-part-2/ | metadata-large.parquet |
png ; Изображения в DiffusionDb Large Используйте формат webp без потерь. Мы используем модульной структуру файла для распределения диффузиида. 2 миллиона изображений в DiffusionDB 2M разделены на 2000 папок, где каждая папка содержит 1000 изображений и файл JSON, который связывает эти 1000 изображений с их подсказками и гиперпараметрами. Аналогичным образом, 14 миллионов изображений в DiffusionDB Lags разбиты на 14 000 папок.
# DiffusionDB 2M
./
├── images
│ ├── part-000001
│ │ ├── 3bfcd9cf-26ea-4303-bbe1-b095853f5360.png
│ │ ├── 5f47c66c-51d4-4f2c-a872-a68518f44adb.png
│ │ ├── 66b428b9-55dc-4907-b116-55aaa887de30.png
│ │ ├── [...]
│ │ └── part-000001.json
│ ├── part-000002
│ ├── part-000003
│ ├── [...]
│ └── part-002000
└── metadata.parquet # DiffusionDB Large
./
├── diffusiondb-large-part-1
│ ├── part-000001
│ │ ├── 0a8dc864-1616-4961-ac18-3fcdf76d3b08.webp
│ │ ├── 0a25cacb-5d91-4f27-b18a-bd423762f811.webp
│ │ ├── 0a52d584-4211-43a0-99ef-f5640ee2fc8c.webp
│ │ ├── [...]
│ │ └── part-000001.json
│ ├── part-000002
│ ├── part-000003
│ ├── [...]
│ └── part-010000
├── diffusiondb-large-part-2
│ ├── part-010001
│ │ ├── 0a68f671-3776-424c-91b6-c09a0dd6fc2d.webp
│ │ ├── 0a0756e9-1249-4fe2-a21a-12c43656c7a3.webp
│ │ ├── 0aa48f3d-f2d9-40a8-a800-c2c651ebba06.webp
│ │ ├── [...]
│ │ └── part-010001.json
│ ├── part-010002
│ ├── part-010003
│ ├── [...]
│ └── part-014000
└── metadata-large.parquet Эти субсолдеры имеют имена part-0xxxxx , и каждое изображение имеет уникальное имя, сгенерированное версией UUID 4. Файл JSON в подразделе имеет то же имя, что и подпадчик. Каждое изображение представляет собой файл PNG (DiffusionDB 2M) или файл WebP без потерь (DiffusionDB большой). Файл JSON содержит пары клавиш, отображающих имена файлов, с их подсказками и гиперпараметрами. Например, ниже приведено изображение f3501e05-aef7-4225-a9e9-f516527408ac.png и его пара ключей в part-000001.json .
{
"f3501e05-aef7-4225-a9e9-f516527408ac.png" : {
"p" : " geodesic landscape, john chamberlain, christopher balaskas, tadao ando, 4 k, " ,
"se" : 38753269 ,
"c" : 12.0 ,
"st" : 50 ,
"sa" : " k_lms "
},
}Поля данных:
p : Подсказкаse : случайное семяc : Шкала CFG (шкала руководства)st : Шагиsa : Сэмплер Чтобы помочь вам легко добраться до подсказок и других атрибутов изображений без загрузки всех файлов ZIP, мы включаем два метаданных таблиц metadata.parquet и metadata-large.parquet для диффузии 2m и диффузиида, соответственно.
Форма metadata.parquet IS (2000000, 13) и форма metatable-large.parquet IS (14000000, 13). Две таблицы имеют одну и ту же схему, и каждая строка представляет изображение. Мы храним эти таблицы в формате паркета, потому что паркет основан на столбцах: вы можете эффективно запросить отдельные столбцы (например, подсказки), не читая всю таблицу.
Ниже приведены три случайных ряда из metadata.parquet .
| image_name | быстрый | part_id | семя | шаг | CFG | пробоотборник | ширина | высота | имя пользователя | временная метка | Image_nsfw | rasfor_nsfw |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0C46F719-1679-4C64-9BA9-F181E0EAE811.png | Небольшая жидкая скульптура, Corvette, вязкое, отражающее, цифровое искусство | 1050 | 2026845913 | 50 | 7 | 8 | 512 | 512 | C2F288A2BA9DF65C38386FFAAF7749106FED29311835B63D578405DB9DBCAFDB | 2022-08-11 09: 05: 00+00: 00 | 0,0845108 | 0,00383462 |
| A00BDEAA-14EB-4F6C-A303-97732177AE9.png | Человеческая скульптура долговязый инопланетянин на романтическом свидании в итальянском ресторане с улыбающейся женщиной, хорошим рестораном, фотографии, боке | 905 | 1183522603 | 50 | 10 | 8 | 512 | 768 | DF778E253E6D32168EB22279A9776B3CDE107CC82DA05517DD6D114724918651 | 2022-08-19 17: 55: 00+00: 00 | 0,692934 | 0,109437 |
| 6E5024CE-65ED-47F3-B296-EDB2813E3C5B.PNG | Портрет варварского испанского конкистадора, симметричный, Йоичи Хатенака, студия Гибли и Дэн Мамфорд | 286 | 1713292358 | 50 | 7 | 8 | 512 | 640 | 1C2E93CFB1430ADBD956BE9C690705FE295CBEE7D9AC12DE1953CE5E76D89906 | 2022-08-12 03: 26: 00+00: 00 | 0,0773138 | 0,0249675 |
metadata.parquet и metatable-large.parquet имеет одну и ту же схему.
| Столбец | Тип | Описание |
|---|---|---|
image_name | string | Изображение UUID FILENAME. |
prompt | string | Текстовое приглашение используется для генерации этого изображения. |
part_id | uint16 | Идентификатор папки этого изображения. |
seed | uint32 | Случайное семя, используемое для генерации этого изображения. |
step | uint16 | Счет шагов (гиперпараметр). |
cfg | float32 | Шкала руководства (гиперпараметр). |
sampler | uint8 | Метод пробоотборника (гиперпараметр). Картирование: {1: "ddim", 2: "plms", 3: "k_euler", 4: "k_euler_ancestral", 5: "k_heun", 6: "k_dpm_2", 7: "k_dpm_2_ancestral", 8: "k_lms", 9: "others"} . |
width | uint16 | Ширина изображения. |
height | uint16 | Высота изображения. |
user_name | string | Уникальный хэш SHA256 идентификатора Discord от пользователя, который сгенерировал это изображение. Например, хэш для xiaohk#3146 - e285b7ef63be99e9107cecd79b280bde602f17e0ca8363cb7a0889b67f0b5ed0 . «DELETED_ACCOUNT» см. Пользователи, которые удалили свои учетные записи. Никто не означает, что изображение было удалено, прежде чем мы соскребим его во второй раз. |
timestamp | timestamp | UTC TimeStamp Когда это изображение было сгенерировано. Никто не означает, что изображение было удалено, прежде чем мы соскребим его во второй раз. Обратите внимание, что временная метка не является точной для дублирующих изображений, которые имеют одинаковую подсказку, гипарепараметры, ширина, высота. |
image_nsfw | float32 | Вероятность того, что изображение будет NSFW. Оценки прогнозируются современным детектором NSFW от Laion (от 0 до 1). Оценка 2,0 означает, что изображение уже было помечено как NSFW и размыто в результате стабильной диффузии. |
prompt_nsfw | float32 | Вероятность того, что быстрое будет NSFW. Оценки прогнозируются библиотечной детоксикацией. Каждый балл представляет максимум toxicity и sexual_explicit (от 0 до 1). |
Предупреждение Несмотря на то, что у стабильной диффузионной модели есть фильтр NSFW, который автоматически размывает сгенерированные пользователем изображения NSFW, этот фильтр NSFW не идеален-DiffusionDB по-прежнему содержит некоторые изображения NSFW. Поэтому мы вычисляем и предоставляем оценки NSFW для изображений и подсказки, используя современные модели. Распределение этих баллов показано ниже. Пожалуйста, определите соответствующий порог оценки NSFW, чтобы отфильтровать изображения NSFW перед использованием DiffusionDB в ваших проектах.
DiffusionDB большая (1,6 ТБ или 6,5 ТБ)! Однако с нашей модульной структурой файла вы можете легко загрузить желаемое количество изображений и их подсказок и гиперпараметров. В example-loading.ipynb . Ниже приведено короткое резюме.
Вы можете использовать библиотеки Datasets об объятиях для легкой загрузки и изображения из DiffusionDB. Мы предварительно определили 16 подмножества DiffusionDB (конфигурации) на основе количества экземпляров. Вы можете увидеть все подмножества в предварительном просмотре набора данных.
Примечание для использования наборов данных погрузчика, вам также необходимо установить
Pillow(pip install Pillow)
import numpy as np
from datasets import load_dataset
# Load the dataset with the `large_random_1k` subset
dataset = load_dataset ( 'poloclub/diffusiondb' , 'large_random_1k' ) В этот репо включает в себя download.py Python Downloader.py, который позволяет загружать и загружать DiffusionDB. Вы можете использовать его из своей командной строки. Ниже приведен пример загрузки подмножества диффузиида.
Сценарий запускается с использованием аргументов командной строки следующим образом:
-i --index -файл для загрузки или нижней границы диапазона файлов, если -r также установлен.-r --range -верхняя граница диапазона файлов для загрузки, если -i установлен.-o --output -Имя пользовательского выходного каталога. По умолчанию в текущий каталог, если не установлен.-z --unzip -разкапливание файла/файлов после загрузки-l --large -large -Скачать из диффузии db большой. По умолчанию диффузию DB 2M. Конкретный файл для загрузки поставляется в виде номера в конце файла на HuggingFace. Сценарий автоматически нанесет номер и генерирует URL -адрес.
python download.py -i 23 Верхние и нижние границы набора файлов для загрузки установлены на флагах -i и -r соответственно.
python download.py -i 1 -r 2000Обратите внимание, что этот диапазон будет загружать весь набор данных. Сценарий попросит вас подтвердить, что у вас есть 1,7 ТБ в пункте загрузки.
Сценарий по умолчанию будет по умолчанию местоположение файлов part данных .zip на images/ . Если вы хотите переместить местоположение загрузки, вы также должны переместить эти файлы или использовать символическую ссылку.
python download.py -i 1 -r 2000 -o /home/ $USER /datahoarding/etc Опять же, скрипт автоматически добавит / между каталогом и файлом при загрузке.
Скрипт установлен для разоблачения файлов после того, как все файлы загружаются, так как оба могут быть длинными процессами в определенных обстоятельствах.
python download.py -i 1 -r 2000 -zmetadata.parquet (только текст) Если ваша задача не требует изображений, то вы можете легко получить доступ ко всем 2 миллионам подсказок и гиперпараметров в таблице metadata.parquet . Pparquet.
from urllib . request import urlretrieve
import pandas as pd
# Download the parquet table
table_url = f'https://huggingface.co/datasets/poloclub/diffusiondb/resolve/main/metadata.parquet'
urlretrieve ( table_url , 'metadata.parquet' )
# Read the table using Pandas
metadata_df = pd . read_parquet ( 'metadata.parquet' ) Мы собрали все изображения с официального сервера диффузионного диффузии. Пожалуйста, прочитайте нашу исследовательскую работу для деталей. Код включен в ./scripts/ .
Если вы найдете какие -либо вредные изображения или подсказки в DiffusionDB, вы можете использовать эту форму Google, чтобы сообщить о них. Точно так же, если вы являетесь создателем изображения, включенного в этот набор данных, вы можете использовать ту же форму, чтобы сообщить нам, если вы хотите удалить свое изображение из DiffusionDB. Мы будем внимательно следить за этой формой и периодически обновлять DiffusionDB.
DiffusionDB создается Джей Ван, Эван Монтойя, Дэвид Мунучика, Алекс Ян, Бен Гувер, Поло Чау.
@article { wangDiffusionDBLargescalePrompt2022 ,
title = { {{DiffusionDB}}: {{A}} Large-Scale Prompt Gallery Dataset for Text-to-Image Generative Models } ,
author = { Wang, Zijie J. and Montoya, Evan and Munechika, David and Yang, Haoyang and Hoover, Benjamin and Chau, Duen Horng } ,
year = { 2022 } ,
journal = { arXiv:2210.14896 [cs] } ,
url = { https://arxiv.org/abs/2210.14896 }
}Набор данных DiffusionDB доступен по лицензии CC0 1.0. Код Python в этом репозитории доступен по лицензии MIT.
Если у вас есть какие -либо вопросы, не стесняйтесь открывать проблему или свяжитесь с Джеем Вангом.