
diffusionDBは、最初の大規模なテキストから画像へのプロンプトデータセットです。実際のユーザーが指定したプロンプトとハイパーパラメーターを使用して、安定した拡散によって生成された1400万枚の画像が含まれています。この人間が作動するデータセットの前例のないスケールと多様性は、プロンプトと生成モデル間の相互作用を理解し、ディープフェイクを検出し、ユーザーがこれらのモデルをより簡単に使用できるようにするための人間との相互作用ツールの設計における刺激的な研究機会を提供します。
diffusiondbはで利用できますか?フェイスデータセットを抱き締める。
DiffusionDBは、さまざまなニーズをサポートするために、2つのサブセット(diffusionDB 2mおよびdiffusiondb varge)を提供します。
| サブセット | 画像の数 | ユニークなプロンプトの数 | サイズ | 画像ディレクトリ | メタデータテーブル |
|---|---|---|---|---|---|
| diffusiondb 2m | 2m | 1.5m | 1.6TB | images/ | metadata.parquet |
| diffusiondb大きい | 14m | 1.8m | 6.5TB | diffusiondb-large-part-1/ diffusiondb-large-part-2/ | metadata-large.parquet |
png形式で保存されます。 diffusiondb大規模の画像は、ロスレスwebp形式を使用します。 モジュール化されたファイル構造を使用して、diffusionDBを分配します。 DiffusionDB 2Mの200万の画像は2,000フォルダーに分割されており、各フォルダーには1,000の画像と、これらの1,000の画像をプロンプトとハイパーパラメーターにリンクするJSONファイルが含まれています。同様に、DiffusionDBの大型の1400万枚の画像は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 Large)です。 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ファイルをダウンロードせずに画像のプロンプトやその他の属性に簡単にアクセスできるようにするには、それぞれ2つのメタデータテーブルmetadata.parquetとmetadata-large.parquetをそれぞれ拡散DB 2MおよびDiffusionDBを含めます。
metadata.parquetの形状は(2000000、13)であり、 metatable-large.parquetの形状は(14000000、13)です。 2つのテーブルが同じスキーマを共有し、各行は画像を表します。 Parquetは列ベースであるため、これらのテーブルをParquet形式で保存します。テーブル全体を読むことなく、個々の列(プロンプトなど)を効率的に照会できます。
以下は、 metadata.parquetから3つのランダムな行です。
| image_name | プロンプト | part_id | シード | ステップ | CFG | サンプラー | 幅 | 身長 | user_name | タイムスタンプ | image_nsfw | PROMPT_NSFW |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0C46F719-1679-4C64-9BA9-F181E0EA811.png | 小さな液体の彫刻、コルベット、粘性、反射、デジタルアート | 1050 | 2026845913 | 50 | 7 | 8 | 512 | 512 | C2F288A2BA9DF65C38386FFAAF7749106FED29311835B63D578405DB9DBCAFDB | 2022-08-11 09:05:00+00:00 | 0.0845108 | 0.00383462 |
| A00BDEAA-14EB-4F6C-A303-9773217777777777777777777777777777777777777 | 笑顔の女性、素敵なレストラン、写真、ボケと一緒にイタリアンレストランでロマンチックなデートにあるランキーな背の高いエイリアンの人間の彫刻 | 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 | 野barなスペインの征服者の肖像、対称、ヨイチ・ハタケナカ、スタジオ・ギブリ、ダン・マンフォード | 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ファイル名。 |
prompt | string | この画像を生成するために使用されるテキストプロンプト。 |
part_id | uint16 | この画像のフォルダーID。 |
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 | この画像を生成したユーザーのユニークなDiscord IDのSHA256ハッシュ。たとえば、 xiaohk#3146のハッシュはe285b7ef63be99e9107cecd79b280bde602f17e0ca8363cb7a0889b67f0b5ed0です。 「deleted_account」には、アカウントを削除したユーザーを参照してください。削る前に画像が削除されたということはありません。 |
timestamp | timestamp | この画像が生成されたときのUTCタイムスタンプ。削る前に画像が削除されたということはありません。タイムスタンプは、同じプロンプト、ハイパレパラメーター、幅、高さを持つ複製画像の正確ではないことに注意してください。 |
image_nsfw | float32 | 画像がNSFWである可能性。スコアは、Laionの最先端のNSFW検出器(0〜1の範囲)によって予測されます。 2.0のスコアは、画像がすでにNSFWとしてフラグが付けられており、安定した拡散によってぼやけていることを意味します。 |
prompt_nsfw | float32 | プロンプトがNSFWになる可能性があります。スコアは、図書館の解毒によって予測されます。各スコアは、 toxicityとsexual_explicitの最大値(0〜1の範囲)を表します。 |
警告安定した拡散モデルには、ユーザーが生成したNSFW画像を自動的に曖昧にするNSFWフィルターがありますが、このNSFWフィルターは完全ではありません。したがって、最先端のモデルを使用して、画像とプロンプトのNSFWスコアを計算して提供します。これらのスコアの分布を以下に示します。プロジェクトでdiffusionDBを使用する前に、NSFW画像を除外する適切なNSFWスコアのしきい値を決定してください。
diffusionDBは大きい(1.6TBまたは6.5 TB)!ただし、モジュール化されたファイル構造を使用すると、望ましい数の画像とそのプロンプトとハイパーパラメーターを簡単にロードできます。 example-loading.ipynbノートブックでは、diffusionDBのサブセットをロードする3つの方法を示します。以下は短い要約です。
Hugging Face Datasets Libraryを使用して、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' )このレポは、DiffusionDBをダウンロードしてロードできるPython Downloader download.pyが含まれています。コマンドラインから使用できます。以下は、diffusionDBのサブセットをロードする例です。
スクリプトは、次のようにコマンドライン引数を使用して実行されます。
-i --index -rも設定されている場合、ファイルの範囲をダウンロードまたは下限するファイル。-r - --range -iが設定されている場合、ダウンロードするファイルの範囲の上限。-o --outputカスタム出力ディレクトリの名前。設定されていない場合、デフォルトは現在のディレクトリになります。-z --unzipダウンロード後にファイル/ファイルを解凍します-l --large -large-拡散db vargeからダウンロード。デフォルトは拡散db 2mになります。 ダウンロードする特定のファイルは、Huggingface上のファイルの最後にある番号として提供されます。スクリプトは自動的に番号をパッドアウトし、URLを生成します。
python download.py -i 23ダウンロードするファイルのセットの上限と下限は、それぞれ-iフラグと-rフラグによって設定されます。
python download.py -i 1 -r 2000この範囲はデータセット全体をダウンロードすることに注意してください。スクリプトでは、ダウンロード先に1.7TBが無料であることを確認するように依頼します。
スクリプトは、 images/でデータpartのZIPファイルの場所の場所にデフォルトになります。ダウンロード場所を移動する場合は、これらのファイルも移動するか、シンボリックリンクを使用する必要があります。
python download.py -i 1 -r 2000 -o /home/ $USER /datahoarding/etc繰り返しますが、スクリプトは、ダウンロード時にディレクトリとファイル/を自動的に追加します。
スクリプトは、すべてのファイルがダウンロードされた後にファイルを解凍するように設定されています。
python download.py -i 1 -r 2000 -zmetadata.parquet (テキストのみ)を使用するタスクが画像を必要としない場合は、 metadata.parquetテーブルの200万個のプロンプトとハイパーパラメーターすべてに簡単にアクセスできます。
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' )公式のStable Diffusion Discord Serverからすべての画像を収集しました。詳細については、研究論文をご覧ください。コードは./scripts/に含まれています。
diffusionDBで有害な画像またはプロンプトが見つかった場合は、このGoogleフォームを使用してそれらを報告できます。同様に、あなたがこのデータセットに含まれる画像の作成者である場合、同じフォームを使用して、DiffusionDBから画像を削除するかどうかをお知らせください。このフォームを綿密に監視し、diffusionDBを定期的に更新します。
DiffusionDBは、Jay Wang、Evan Montoya、David Munechika、Alex Yang、Ben Hoover、Polo Chauによって作成されています。
@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ライセンスで入手できます。
ご質問がある場合は、問題を開いたり、Jay Wangに連絡してください。