これは「SafeGen: テキストから画像へのモデルにおける性的に露骨なコンテンツ生成の軽減」の公式コードです。
SafeGen は、ACM Conference on Computer and Communications Security ( ACM CCS 2024 ) Core-A*、CCF-A、Big 4に参加します。カメラ対応バージョンを ArXiv にアップしました。
Hugging Face の事前トレーニング済みモデルをリリースしました。推論に使用する方法を確認してください。
私たちのリリースには、画像のみのトリプレットに基づいて安定拡散のみのセルフ アテンション レイヤーを調整することが含まれています。
この実装は、Diffusers ライブラリに統合できる例とみなすことができます。したがって、examples/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-40GB (NVIDIA) を使用して実行できます。特に、メモリ不足エラーを回避するには、 training_batch_size
小さく設定します。
依存関係の競合を避けるために、2 つの conda 環境を管理することをお勧めします。
安定拡散モデルの自己注意層と評価関連ライブラリを調整するためのPytorch環境。
データ準備段階のディープヌード対策モデルに必要なTensorflow環境。
# 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, mosaic> ペアは次の方法で取得できます。
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}}
}
アンチディープヌード
クリーンフィッド
@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}
}