
DiftusionDB เป็นชุดข้อมูลพรอมต์ข้อความขนาดใหญ่เป็นชุดข้อมูลขนาดใหญ่ มันมี ภาพ 14 ล้านภาพ ที่เกิดจากการแพร่กระจายอย่างเสถียรโดยใช้พรอมต์และพารามิเตอร์ไฮเปอร์พารามิเตอร์ที่ระบุโดยผู้ใช้จริง สเกลและความหลากหลายที่ไม่เคยเกิดขึ้นมาก่อนของชุดข้อมูลที่มนุษย์ทำหน้าที่นี้ให้โอกาสการวิจัยที่น่าตื่นเต้นในการทำความเข้าใจการทำงานร่วมกันระหว่างการแจ้งเตือนและแบบจำลองการกำเนิดการตรวจจับ Deepfakes และออกแบบเครื่องมือปฏิสัมพันธ์ระหว่างมนุษย์กับ AI เพื่อช่วยให้ผู้ใช้ใช้แบบจำลองเหล่านี้ได้ง่ายขึ้น
DiftusionDB มีอยู่ที่? กอดชุดข้อมูล
DiffusionDB จัดเตรียมชุดย่อยสองชุด (DiftusionDB 2M และ DiftusionDB ขนาดใหญ่) เพื่อรองรับความต้องการที่แตกต่างกัน
| ชุดย่อย | ภาพจำนวนมาก | จำนวนพรอมต์ที่ไม่ซ้ำกัน | ขนาด | ไดเรกทอรีภาพ | เมตาตาราง |
|---|---|---|---|---|---|
| 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 ; รูปภาพใน DiftusionDb ขนาดใหญ่ใช้รูปแบบ webp ที่ไม่สูญเสีย เราใช้โครงสร้างไฟล์แบบแยกส่วนเพื่อแจกจ่าย diftusionDB ภาพ 2 ล้านภาพใน DiftusionDB 2M แบ่งออกเป็น 2,000 โฟลเดอร์ซึ่งแต่ละโฟลเดอร์มี 1,000 ภาพและไฟล์ JSON ที่เชื่อมโยงภาพ 1,000 ภาพเหล่านี้กับพรอมต์และพารามิเตอร์ไฮเปอร์พารามิเตอร์ ในทำนองเดียวกันภาพ 14 ล้านภาพใน DiftusionDB ขนาดใหญ่แบ่งออกเป็น 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 : Sampler เพื่อช่วยให้คุณสามารถเข้าถึงพรอมต์และแอตทริบิวต์อื่น ๆ ของรูปภาพได้อย่างง่ายดายโดยไม่ต้องดาวน์โหลดไฟล์ zip ทั้งหมดเรารวม Metadata Tables สองตารางข้อมูล metadata.parquet และ metadata-large.parquet สำหรับ diftusionDB 2M และ diffusionDB ขนาดใหญ่ตามลำดับ
รูปร่างของ metadata.parquet คือ (2000000, 13) และรูปร่างของ metatable-large.parquet คือ (14000000, 13) สองตารางแบ่งปันสคีมาเดียวกันและแต่ละแถวแสดงถึงภาพ เราจัดเก็บตารางเหล่านี้ในรูปแบบ Parquet เนื่องจาก Parquet เป็นคอลัมน์ที่ใช้คอลัมน์: คุณสามารถสอบถามคอลัมน์แต่ละคอลัมน์ (เช่นพรอมต์) ได้อย่างมีประสิทธิภาพโดยไม่ต้องอ่านทั้งตาราง
ด้านล่างนี้เป็นสามแถวสุ่มจาก metadata.parquet
| image_name | แจ้ง | part_id | เมล็ด | ขั้นตอน | CFG | ตัวอย่าง | ความกว้าง | ความสูง | ชื่อผู้ใช้ | การประทับเวลา | image_nsfw | prompt_nsfw |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0C46F719-1679-4C64-9BA9-F181E0EAE811.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-977321777AEE.PNG | รูปปั้นมนุษย์ของมนุษย์ต่างดาวสูงผอมในวันที่โรแมนติกที่ร้านอาหารอิตาเลียนกับผู้หญิงยิ้มร้านอาหารสวยการถ่ายภาพโบเก้ | 905 | 1183522603 | 50 | 10 | 8 | 512 | 768 | DF778E253E6D32168EB222279A9776B3CDE107CC82DA05517DDD6D114724918651 | 2022-08-19 17: 55: 00+00: 00 | 0.692934 | 0.109437 |
| 6E5024CE-65ED-47F3-B296-EDB2813E3C5B.PNG | Portrait of Barbaric Spanish Conquistador, Symmetrical, โดย Yoichi Hatakenaka, Studio Ghibli และ Dan Mumford | 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 | รหัสโฟลเดอร์ของภาพนี้ |
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 ID ที่ไม่ซ้ำกันของผู้ใช้ที่สร้างภาพนี้ ตัวอย่างเช่นแฮชสำหรับ xiaohk#3146 คือ e285b7ef63be99e9107cecd79b280bde602f17e0ca8363cb7a0889b67f0b5ed0 "deleted_account" อ้างถึงผู้ใช้ที่ลบบัญชีของพวกเขา ไม่มีหมายความว่าภาพถูกลบก่อนที่เราจะขูดเป็นครั้งที่สอง |
timestamp | timestamp | การประทับเวลา UTC เมื่อภาพนี้ถูกสร้างขึ้น ไม่มีหมายความว่าภาพถูกลบก่อนที่เราจะขูดเป็นครั้งที่สอง โปรดทราบว่าการประทับเวลาไม่ถูกต้องสำหรับภาพที่ซ้ำกันที่มีพรอมต์แบบเดียวกัน Hypareparameters ความกว้างความสูง |
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 ก่อนที่จะใช้ DiftusionDB ในโครงการของคุณ
DiffusionDB มีขนาดใหญ่ (1.6TB หรือ 6.5 TB)! อย่างไรก็ตามด้วยโครงสร้างไฟล์แบบแยกส่วนของเราคุณสามารถโหลดภาพจำนวนที่ต้องการได้อย่างง่ายดายและการแจ้งเตือนและไฮเปอร์พารามิเตอร์ของพวกเขา ในโน้ตบุ๊ก example-loading.ipynb เราแสดงให้เห็นถึงวิธีการสามวิธีในการโหลดชุดย่อยของ diftusionDB ด้านล่างเป็นบทสรุปสั้น ๆ
คุณสามารถใช้ไลบรารีชุด Datasets Hugging Face เพื่อโหลดพรอมต์และรูปภาพจาก DiftusionDB ได้อย่างง่ายดาย เรากำหนดไว้ล่วงหน้า 16 ชุดย่อย DiveMusionDB (การกำหนดค่า) ตามจำนวนอินสแตนซ์ คุณสามารถดูชุดย่อยทั้งหมดในชุดข้อมูลชุดข้อมูล
หมายเหตุ ที่จะใช้ชุดข้อมูลชุดข้อมูลคุณต้องติดตั้ง
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' ) repo นี้รวมถึง download.py python downloader.py ที่ช่วยให้คุณสามารถดาวน์โหลดและโหลด diffusionDb คุณสามารถใช้จากบรรทัดคำสั่งของคุณ ด้านล่างเป็นตัวอย่างของการโหลดชุดย่อยของ diftusionDB
สคริปต์เรียกใช้โดยใช้อาร์กิวเมนต์บรรทัดคำสั่งดังนี้:
-i --index -ไฟล์ที่จะดาวน์โหลดหรือต่ำกว่าขอบเขตของช่วงของไฟล์หากตั้งค่า -r ด้วย-r --range -ขอบเขตบนของช่วงไฟล์ที่จะดาวน์โหลดถ้า -i ถูกตั้งค่า-o --output -ชื่อของไดเรกทอรีเอาต์พุตที่กำหนดเอง ค่าเริ่มต้นไปยังไดเรกทอรีปัจจุบันหากไม่ได้ตั้งค่า-z --unzip -คลายซิปไฟล์/ไฟล์หลังจากดาวน์โหลด-l --large -ดาวน์โหลดจากการแพร่กระจาย DB ขนาดใหญ่ ค่าเริ่มต้นถึงการแพร่กระจาย DB 2M ไฟล์เฉพาะที่จะดาวน์โหลดจะถูกระบุเป็นหมายเลขที่ท้ายไฟล์บน HuggingFace สคริปต์จะเพิ่มจำนวนออกโดยอัตโนมัติและสร้าง URL
python download.py -i 23 ขอบเขตบนและล่างของชุดไฟล์ที่จะดาวน์โหลดถูกตั้งค่าโดยค่าสถานะ -i และ -r ตามลำดับ
python download.py -i 1 -r 2000โปรดทราบว่าช่วงนี้จะดาวน์โหลดชุดข้อมูลทั้งหมด สคริปต์จะขอให้คุณยืนยันว่าคุณมี 1.7TB ฟรีที่ปลายทางดาวน์โหลด
สคริปต์จะเริ่มต้นไปยังที่ตั้งของไฟล์ part ข้อมูล. ZIP ของชุดข้อมูลที่ images/ หากคุณต้องการย้ายตำแหน่งดาวน์โหลดคุณควรย้ายไฟล์เหล่านี้ด้วยหรือใช้ลิงค์สัญลักษณ์
python download.py -i 1 -r 2000 -o /home/ $USER /datahoarding/etc อีกครั้งสคริปต์จะเพิ่ม / ระหว่างไดเรกทอรีและไฟล์โดยอัตโนมัติเมื่อดาวน์โหลด
สคริปต์ถูกตั้งค่าเป็นคลายซิปไฟล์ หลังจาก ดาวน์โหลดไฟล์ทั้งหมดเนื่องจากทั้งคู่อาจเป็นกระบวนการที่ยาวนานในบางสถานการณ์
python download.py -i 1 -r 2000 -zmetadata.parquet (ข้อความเท่านั้น) หากงานของคุณไม่ต้องการรูปภาพคุณสามารถเข้าถึงพรอมต์และพารามิเตอร์ไฮเปอร์พารามิเตอร์ทั้งหมดได้อย่างง่ายดายในตาราง metadata.parquet
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/ /
หากคุณพบภาพหรือพรอมต์ที่เป็นอันตรายใด ๆ ใน DiftusionDB คุณสามารถใช้แบบฟอร์ม Google นี้เพื่อรายงาน ในทำนองเดียวกันหากคุณเป็นผู้สร้างภาพที่รวมอยู่ในชุดข้อมูลนี้คุณสามารถใช้แบบฟอร์มเดียวกันเพื่อแจ้งให้เราทราบหากคุณต้องการลบภาพของคุณออกจาก DiftusionDB เราจะตรวจสอบแบบฟอร์มนี้อย่างใกล้ชิดและอัปเดต DiftusionDB เป็นระยะ
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 }
}ชุดข้อมูล DiftusionDB มีอยู่ภายใต้ใบอนุญาต CC0 1.0 รหัส Python ในที่เก็บนี้มีอยู่ภายใต้ใบอนุญาต MIT
หากคุณมีคำถามใด ๆ อย่าลังเลที่จะเปิดปัญหาหรือติดต่อ Jay Wang