Skip to content

Ability to select the strength of the safety_checker #9003

@suzukimain

Description

@suzukimain

Is your feature request related to a problem? Please describe.
Safety_checker can currently only be turned on/off, and we would like to be able to configure it in more detail.

Describe alternatives you've considered.
I made it based on StableDiffusionPipeline.

Describe the solution you'd like.
I would like to be able to specify this in any pipeline using a parameter such as safety_Level.

pipe = StableDiffusionPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5",
    safety_Level="MAX"
    ).to("cuda")

Additional context.

git clone https://github.com/suzukimain/diffusers.git -b edit_safety_checker ./diffusers
pip install ./diffusers

import torch
from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5",
    ).to("cuda")

"""
About safety_Level.
`int` or `float` or one of the following
'WEAK',
'MEDIUM',
'NOMAL',
'STRONG',
'MAX'.
"""

#-------------
#To see the filter strength.
pipe.safety_checker.safety_Level() # 0.0 (default)

#--------------
#If you want to change the intensity.
pipe.safety_checker_Level("STRONG", pipe.safety_checker)
pipe.safety_checker.safety_Level() # 0.1

#--------------
# If numbers are used
pipe.safety_checker_Level(3.0, pipe.safety_checker)
pipe.safety_checker.safety_Level() # 3.0

It is related to #5623.

Also, I wasn't sure what range of numbers to put in for adjustment, so I put -0.2~0.2 for once.
(If possible, I would appreciate it if someone could tell me about the range of adjustment.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleIssues that haven't received updates

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions