为 Stable Diffusion 微调创建 Diffusers 兼容的数据集

社区文章 发布于 2024 年 7 月 19 日

为了吸引年轻人,我将用你们年轻人的行话说话。😎

哟,各位小伙伴们!🎉 今天,我们将来聊聊如何创建一个 diffusers 数据集(我知道,听起来有点无聊,但请坚持住!)。🤘

第一步:加载你的炫酷 Img2Img 流水线并将其发送到 GPU(不管那意味着什么)😎😎😎

from transformers import pipeline

pipe = pipeline("image-to-text", model="Salesforce/blip-image-captioning-large", device="cuda") # I'm using blip, as that's what most SD models expect

第二步:休息一下(你#值得拥有!🏖️😎)

放松一下,我们再集合。去拿点零食什么的。🍕🌟

第三步:很高兴你回来,现在让我们设置你的超酷图片文件夹 📁✨

import os

folder = "your_image_folder" # file structure is your_image_folder/train/*.png
image_folder = os.path.join(folder, "train")

第四步:太累了,复制粘贴了这么多字符,还没署名,再休息一下吧🥵🥵🥵🥵🔥

让你的手指休息一下,因为我们很快就要继续了。🤯💥

第……我忘了……第 4 步?我想?像 #老板 一样加载那个文件夹 🚀🕶️

from datasets import load_dataset

dataset = load_dataset('imagefolder', data_dir=image_folder, split='train')

第 4 步(没错,听起来对)。有型地制作你的格式化函数 🧙‍♂️🎨

def generate_captions(examples):
    result = pipe(examples['image'])
    captions = [item[0]['generated_text'] for item in result]
    return {"text": captions}

第 4 步。映射数据集(又数据?真无聊)

dataset = dataset.map(generate_captions, batched=True, batch_size=8) # default batch size is 1000

如果你的电脑在这之后着火了 🔥 或爆炸了 💥,别怪我 😎💪。

第 4 步。把训练集找回来 😎😎🔪

from datasets import DatasetDict

dataset_dict = DatasetDict({
    'train': dataset
})

dataset_dict # test to see if the new columns are there in train, if you were paying attention they should be

第 4 步。推送到 Hub(现在是个酷炫的俱乐部了吗?🤷‍♂️)💥🌈

dataset_dict.push_to_hub("your_output_repo")

第 4 步。🎉 你做到了!🎉 (终于)

现在去看 Vine 吧,或者别的什么。等等——不对……你们年轻人用的是那个新的短视频平台……Tik Tak?

社区

注册登录 发表评论