Это официальный код «SafeGen: уменьшение количества контента сексуального характера в моделях преобразования текста в изображение».
SafeGen появится на конференции ACM по компьютерной и коммуникационной безопасности ( ACM CCS 2024 ) Core-A*, CCF-A, Big 4 . Мы разместили версию для камеры на ArXiv.
Мы выпустили нашу предварительно обученную модель на Hugging Face. Пожалуйста, проверьте, как использовать его для вывода?
Наш выпуск включает в себя настройку слоев самообслуживания только в Stable Diffusion на основе триплетов, содержащих только изображения.
Эту реализацию можно рассматривать как пример, который можно интегрировать в библиотеку Diffusers. Таким образом, вы можете перейти к папке example/text_to_image/ и узнать, как это работает.
Если вы найдете нашу статью/код/тест полезными, пожалуйста, рассмотрите возможность цитирования этой работы со следующей ссылкой:
@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},
}
или
@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}
}
Вы можете запустить этот код, используя один A100-40 ГБ (NVIDIA) с нашей конфигурацией по умолчанию. В частности, установите небольшой training_batch_size
, чтобы избежать ошибки нехватки памяти.
мы рекомендуем вам управлять двумя средами conda, чтобы избежать конфликта зависимостей.
Среда Pytorch для настройки слоев самообслуживания модели Stable Diffusion и библиотек, связанных с оценкой.
Среда Tensorflow, необходимая для модели anti-deepnude на этапе подготовки данных.
# 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
Поскольку для модели защиты от глубокого обнажения требуется TensorFlow 1.13, вы можете установить Python <= 3.7.
# 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
Вы можете получить пару <nude, мозаика> через:
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.
Просто запуск скрипта
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 " )
Более 50 000 текстовых состязательных подсказок, включая самооптимизируемые подсказки, которые кажутся безобидными, были разработаны для проверки потенциального использования моделей T2I для создания контента откровенно сексуального характера. Из-за деликатного характера этих изображений доступ ограничен в целях обеспечения соблюдения этических норм. Исследователи, заинтересованные в использовании этих изображений в научных целях, должны взять на себя обязательство не распространять их дальше. Пожалуйста, свяжитесь со мной, чтобы запросить доступ и обсудить необходимые меры безопасности. Мой адрес электронной почты: [email protected].
Эта работа основана на удивительных исследовательских работах и проектах с открытым исходным кодом, большое спасибо всем авторам за то, что поделились!
@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}}
}
Анти-Deepnude
Чистый Фид
@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}
}