Dies ist der offizielle Code für „SafeGen: Mitigating Sexually Explicit Content Generation in Text-to-Image Models“
SafeGen wird auf der ACM Conference on Computer and Communications Security ( ACM CCS 2024 ) Core-A*, CCF-A, Big 4 erscheinen. Wir haben die kamerataugliche Version auf ArXiv bereitgestellt.
Wir haben unser vorab trainiertes Modell auf Hugging Face veröffentlicht. Bitte schauen Sie sich an, wie man es für Inferenzen verwendet.
Unsere Veröffentlichung umfasst die Anpassung der Selbstaufmerksamkeitsebenen von Stable Diffusion allein auf der Grundlage von Nur-Bild-Triplets.
Diese Implementierung kann als Beispiel angesehen werden, das in die Diffusers-Bibliothek integriert werden kann. Sie können also zum Ordner „examples/text_to_image/“ navigieren und sich mit der Funktionsweise vertraut machen.
Wenn Sie unseren Artikel/Code/Benchmark hilfreich finden, erwägen Sie bitte, diese Arbeit mit der folgenden Referenz zu zitieren:
@inproceedings{li2024safegen,
author = {Li, Xinfeng and Yang, Yuchen and Deng, Jiangyi and Yan, Chen and Chen, Yanjiao and Ji, Xiaoyu and Xu, Wenyuan},
title = {{SafeGen: Mitigating Sexually Explicit Content Generation in Text-to-Image Models}},
booktitle = {Proceedings of the 2024 {ACM} {SIGSAC} Conference on Computer and Communications Security (CCS)},
year = {2024},
}
oder
@article{li2024safegen,
title={{SafeGen: Mitigating Unsafe Content Generation in Text-to-Image Models}},
author={Li, Xinfeng and Yang, Yuchen and Deng, Jiangyi and Yan, Chen and Chen, Yanjiao and Ji, Xiaoyu and Xu, Wenyuan},
journal={arXiv preprint arXiv:2404.06666},
year={2024}
}
Sie können diesen Code mit einem einzelnen A100-40GB (NVIDIA) mit unserer Standardkonfiguration ausführen. Legen Sie insbesondere eine kleine training_batch_size
fest, um den Fehler „Nicht genügend Arbeitsspeicher“ zu vermeiden.
Wir empfehlen Ihnen, zwei Conda-Umgebungen zu verwalten, um Abhängigkeitskonflikte zu vermeiden.
Eine Pytorch- Umgebung zum Anpassen der Selbstaufmerksamkeitsebenen des Stable Diffusion-Modells und bewertungsbezogener Bibliotheken.
Eine Tensorflow- Umgebung, die vom Anti-Deepnude-Modell für die Datenvorbereitungsphase benötigt wird.
# You can install the main dependencies by conda/pip
conda create -n text-agnostic-t2i python=3.8.5
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
# Using the official Diffusers package
pip install --upgrade diffuers[torch]
# Or you may use the community maintained version
conda install -c conda-forge diffusers
...
# Or you can create the env via environment.yaml
conda env create -f environment_pytorch.yaml
Da das Anti-Deepnude-Modell TensorFlow 1.13 erfordert, können Sie Python<=3.7 installieren.
# You can install the dependencies individually
conda create -n anti-deepndue python=3.7
pip install tensorflow-gpu==1.13.1 keras==2.2.4
...
# Or you can create the env via environment.yaml
conda env create -f environment_tf.yaml
Sie können das <nude,mosaik>-Paar erhalten über:
python anti-deepnude.py
export MODEL_NAME= " CompVis/stable-diffusion-v1-4 " # export the model you want to protect
export TRAIN_DIR= " <path to the manifest of your training files>/meta.csv " # export your image triplets folder
accumulation_steps=5
learning_rate=1e-05
steps=1000
train_batch_size=1
warmup_steps=200
weight_tune=0.1
weight_preserve=0.9
defend_type= " nudity_advtrain "
current_time= $( date + ' %m%d_%H%M ' )
output_dir= " mos_model_sal_ " ${defend_type} - " step_ " ${steps} - " lr_ " ${learning_rate} - " warm_ " ${warmup_steps} - ${weight_tune} + ${weight_preserve} " gacc_ " ${accumulation_steps} - ${current_time}
export CUDA_VISIBLE_DEVICES=0
accelerate launch --mixed_precision= " fp16 " " --num_processes=1 " train_text_to_image_adjust_sal.py
--pretrained_model_name_or_path= $MODEL_NAME
--train_data_dir= $TRAIN_DIR
--use_ema
--resolution=512 --center_crop
--train_batch_size ${train_batch_size}
--gradient_accumulation_steps ${accumulation_steps}
--gradient_checkpointing
--max_train_steps ${steps}
--learning_rate ${learning_rate}
--image_column= " nude_image_path "
--max_grad_norm=1
--lr_scheduler= " constant "
--lr_warmup_steps ${warmup_steps}
--output_dir ${output_dir}
--weight_tune ${weight_tune}
--weight_preserve ${weight_preserve}
--checkpoints_total_limit 0
--validation_prompts " woman, nudity " " a running dog on grass " " a woman standing aside the colorful table " " a nude sexy man, blue eyes "
# In addition, you can set the 'validation_prompts' to visually monitor the training efficacy, such as "a running dog on grass", "a woman standing aside the colorful table", "a nude sexy man, blue eyes", etc.
Führen Sie einfach das Skript aus
run_adjust_SD.sh
from diffusers import StableDiffusionPipeline
import torch
model_path = ${output_dir} # the save path of your model
pipeline = StableDiffusionPipeline.from_pretrained(model_path, torch_dtype=torch.float16)
pipeline.to( " cuda " )
prompt = " a photo of an astronaut riding a horse on mars "
image = pipeline(prompt).images[0]
image.save( " example.png " )
Über 50.000 kontroverse Textaufforderungen, darunter selbstoptimierte Aufforderungen, die harmlos erscheinen, wurden entwickelt, um die potenzielle Ausnutzung von T2I-Modellen bei der Generierung sexuell expliziter Inhalte zu testen. Aufgrund der Sensibilität dieser Bilder ist der Zugriff eingeschränkt, um die Einhaltung ethischer Grundsätze zu gewährleisten. Forscher, die diese Bilder für wissenschaftliche Zwecke nutzen möchten, müssen sich verpflichten, sie nicht weiter zu verbreiten. Bitte kontaktieren Sie mich, um Zugang zu beantragen und die notwendigen Sicherheitsmaßnahmen zu besprechen. Meine E-Mail-Adresse lautet: [email protected].
Diese Arbeit basiert auf den erstaunlichen Forschungsarbeiten und Open-Source-Projekten. Vielen Dank an alle Autoren für das Teilen!
@misc{von-platen-etal-2022-diffusers,
author = {Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Thomas Wolf},
title = {Diffusers: State-of-the-art diffusion models},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = { url {https://github.com/huggingface/diffusers}}
}
Anti-Deepnude
Sauber-Fid
@inproceedings{parmar2021cleanfid,
title={On Aliased Resizing and Surprising Subtleties in GAN Evaluation},
author={Parmar, Gaurav and Zhang, Richard and Zhu, Jun-Yan},
booktitle={CVPR},
year={2022}
}
@inproceedings{zhang2018perceptual,
title={The Unreasonable Effectiveness of Deep Features as a Perceptual Metric},
author={Zhang, Richard and Isola, Phillip and Efros, Alexei A and Shechtman, Eli and Wang, Oliver},
booktitle={CVPR},
year={2018}
}