

# Copyright 2022 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from pathlib import Path

from .config_args import default_config_file, load_config_from_file
from .config_utils import SubcommandHelpFormatter


A_						:     List[str]			  =				'Update an existing config file with the latest defaults while maintaining the old configuration.'


def  __a    (				SCREAMING_SNAKE_CASE ) ->       Union[str, Any]:






    '''simple docstring'''
    __UpperCAmelCase			   =     args.config_file
    if config_file is None and Path(SCREAMING_SNAKE_CASE ).exists():
        __UpperCAmelCase			   =     default_config_file
    elif not Path(SCREAMING_SNAKE_CASE ).exists():
        raise ValueError(f'''The passed config file located at {config_file} doesn\'t exist.''' )
    __UpperCAmelCase			   =     load_config_from_file(SCREAMING_SNAKE_CASE )

    if config_file.endswith('''.json''' ):
        config.to_json_file(SCREAMING_SNAKE_CASE )
    else:
        config.to_yaml_file(SCREAMING_SNAKE_CASE )
    return config_file


def  __a    (				SCREAMING_SNAKE_CASE    ,				SCREAMING_SNAKE_CASE ) ->       Tuple:






    '''simple docstring'''
    __UpperCAmelCase			   =     parser.add_parser('''update'''    ,				parents=SCREAMING_SNAKE_CASE    ,				help=SCREAMING_SNAKE_CASE    ,				formatter_class=SCREAMING_SNAKE_CASE )
    parser.add_argument(
        '''--config_file'''    ,				default=SCREAMING_SNAKE_CASE    ,				help=(
            '''The path to the config file to update. Will default to a file named default_config.yaml in the cache '''
            '''location, which is the content of the environment `HF_HOME` suffixed with \'accelerate\', or if you don\'t have '''
            '''such an environment variable, your cache directory (\'~/.cache\' or the content of `XDG_CACHE_HOME`) suffixed '''
            '''with \'huggingface\'.'''
        )    ,				)

    parser.set_defaults(func=SCREAMING_SNAKE_CASE )
    return parser


def  __a    (				SCREAMING_SNAKE_CASE ) ->       Optional[Any]:






    '''simple docstring'''
    __UpperCAmelCase			   =     update_config(SCREAMING_SNAKE_CASE )
    print(f'''Sucessfully updated the configuration file at {config_file}.''' )







from dataclasses import dataclass
from enum import Enum
from typing import List, Optional, Union

import numpy as np
import PIL
from PIL import Image

from ...utils import BaseOutput, is_torch_available, is_transformers_available
@dataclass
class    A_				( _a  ):


    '''simple docstring'''






    a__       							=    {
        "sld_warmup_steps": 15,
        "sld_guidance_scale": 20,
        "sld_threshold": 0.0,
        "sld_momentum_scale": 0.0,
        "sld_mom_beta": 0.0,
    }
    a__       							=    {
        "sld_warmup_steps": 10,
        "sld_guidance_scale": 10_00,
        "sld_threshold": 0.01,
        "sld_momentum_scale": 0.3,
        "sld_mom_beta": 0.4,
    }
    a__       							=    {
        "sld_warmup_steps": 7,
        "sld_guidance_scale": 20_00,
        "sld_threshold": 0.0_25,
        "sld_momentum_scale": 0.5,
        "sld_mom_beta": 0.7,
    }
    a__       							=    {
        "sld_warmup_steps": 0,
        "sld_guidance_scale": 50_00,
        "sld_threshold": 1.0,
        "sld_momentum_scale": 0.5,
        "sld_mom_beta": 0.7,
    }






@dataclass
class    A_				( _a  ):


    '''simple docstring'''






    a__       							=    42
    a__       							=    42
    a__       							=    42
    a__       							=    42


if is_transformers_available() and is_torch_available():
       from .pipeline_stable_diffusion_safe import StableDiffusionPipelineSafe
       from .safety_checker import SafeStableDiffusionSafetyChecker




