
DiffusionDB هو أول مجموعة بيانات موجه نص إلى صورة واسعة النطاق. أنه يحتوي على 14 مليون صورة تم إنشاؤها بواسطة انتشار مستقر باستخدام المطالبات ومقاطعات فرطمية محددة من قبل المستخدمين الحقيقيين. يوفر المقياس غير المسبوق وتنوع مجموعة البيانات التي تعمل بالإنسان فرصًا بحثية مثيرة في فهم التفاعل بين المطالبات والنماذج التوليدية ، واكتشاف الأفعال العميقة ، وتصميم أدوات التفاعل بين الإنسان AI لمساعدة المستخدمين بسهولة على استخدام هذه النماذج.
DiffusionDB متاح في؟ معانقة مجموعات بيانات الوجه.
يوفر DiffusionDB مجموعتين فرعيتين (DiffusionDB 2M و DiffusionDB كبير) لدعم الاحتياجات المختلفة.
| مجموعة فرعية | عدد الصور | NUM من المطالبات الفريدة | مقاس | دليل الصور | طاولة البيانات الوصفية |
|---|---|---|---|---|---|
| DiffusionDB 2M | 2 م | 1.5m | 1.6 تيرابايت | images/ | metadata.parquet |
| diffusionDB كبير | 14m | 1.8 م | 6.5 تيرابايت | diffusiondb-large-part-1/ diffusiondb-large-part-2/ | metadata-large.parquet |
png ؛ الصور في diffusionDB استخدم تنسيق webp بدون فقدان. نستخدم بنية ملف معيارية لتوزيع DiffusionDB. يتم تقسيم 2 مليون صورة في DiffusionDB 2M إلى 2000 مجلد ، حيث يحتوي كل مجلد على 1000 صورة وملف JSON يربط هذه الصور 1000 بمطالباتها ومقاييسها المفرطة. وبالمثل ، يتم تقسيم 14 مليون صورة في DiffusionDB الكبيرة إلى 14000 مجلد.
# 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 لـ diffusiondb 2m و diffususdb كبير ، على التوالي.
شكل metadata.parquet هو (2000000 ، 13) وشكل metatable-large.parquet هو (14000000 ، 13). يشترك جدولين في نفس المخطط ، ويمثل كل صف صورة. نقوم بتخزين هذه الجداول بتنسيق parquet لأن الباركيه يعتمد على الأعمدة: يمكنك الاستعلام عن الأعمدة الفردية بكفاءة (على سبيل المثال ، مطالبات) دون قراءة الجدول بأكمله.
فيما يلي ثلاثة صفوف عشوائية من metadata.parquet .
| image_name | اِسْتَدْعَى | part_id | البذور | خطوة | CFG | عينة | عرض | ارتفاع | اسم المستخدم | الطابع الزمني | Image_nsfw | ormper_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-977321777EAE9.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. |
prompt | string | موجه النص المستخدم لإنشاء هذه الصورة. |
part_id | uint16 | معرف المجلد لهذه الصورة. |
seed | uint32 | بذور عشوائية تستخدم لإنشاء هذه الصورة. |
step | uint16 | عدد الخطوة (Hyperparameter). |
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 SHA256 الفريد للمستخدم الذي أنشأ هذه الصورة. على سبيل المثال ، التجزئة لـ xiaohk#3146 هي e285b7ef63be99e9107cecd79b280bde602f17e0ca8363cb7a0889b67f0b5ed0 . "DELETED_ACCUNT" ارجع إلى المستخدمين الذين حذفوا حساباتهم. لا شيء يعني أن الصورة قد تم حذفها قبل أن نتخلص منها للمرة الثانية. |
timestamp | timestamp | توقيت UTC عندما تم إنشاء هذه الصورة. لا شيء يعني أن الصورة قد تم حذفها قبل أن نتخلص منها للمرة الثانية. لاحظ أن Timestamp ليس دقيقًا للصور المكررة التي لها نفس المطالبة ، ومقاييس hypareparameters ، والعرض ، والارتفاع. |
image_nsfw | float32 | احتمال أن تكون الصورة NSFW. يتم التنبؤ بالدرجات من قبل كاشف NSFW في ولاية لاون (يتراوح من 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 ، نقدم ثلاث طرق لتحميل مجموعة فرعية من DiffusionDB. فيما يلي ملخص قصير.
يمكنك استخدام مكتبة 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. يمكنك استخدامه من سطر الأوامر الخاص بك. فيما يلي مثال على تحميل مجموعة فرعية من diffusionDB.
يتم تشغيل البرنامج النصي باستخدام وسيطات سطر الأوامر على النحو التالي:
-i --index -ملف لتنزيل أو تقليل الحد من مجموعة من الملفات إذا تم تعيين -r أيضًا.-r --range -الحد الأعلى لمجموعة من الملفات للتنزيل إذا تم تعيين -i .-o --output -اسم دليل الإخراج المخصص. الإعدادات الافتراضية للدليل الحالي إذا لم يتم تعيينه.-z --unzip -فك ضغط الملف/الملفات بعد التنزيل-l --large -تنزيل من Diffusion DB كبير. الإعدادات الافتراضية للانتشار DB 2M. يتم توفير الملف المحدد للتنزيل كرقم في نهاية الملف على LuggingFace. سيقوم البرنامج النصي تلقائيًا بتطوير الرقم وإنشاء عنوان 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 (نص فقط) إذا كانت مهمتك لا تتطلب صورًا ، فيمكنك الوصول بسهولة إلى جميع المطالبات الممتدة والمصورات المفرطة في جدول 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' ) قمنا بجمع جميع الصور من خادم Discord Discord المستقر المستقر. يرجى قراءة ورقة البحث لدينا للحصول على التفاصيل. يتم تضمين الكود في ./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.
إذا كان لديك أي أسئلة ، فلا تتردد في فتح مشكلة أو الاتصال بـ Jay Wang.