





'''simple docstring'''



import numpy as np
import torch
from imwatermark import WatermarkEncoder


# Copied from https://github.com/Stability-AI/generative-models/blob/613af104c6b85184091d42d374fef420eddb356d/scripts/demo/streamlit_helpers.py#L66
_SCREAMING_SNAKE_CASE					=    0B1011_0011_1110_1100_1001_0000_0111_1011_1011_0001_1001_1110
# bin(x)[2:] gives bits of x as str, use int to convert them to 0/1
_SCREAMING_SNAKE_CASE					=    [int(bit) for bit in bin(WATERMARK_MESSAGE)[2:]]






class 							__lowercase       :







	'''simple docstring'''

	def __init__(self )							->							List[str]:







				'''simple docstring'''





				__lowercase										=							WATERMARK_BITS
				__lowercase										=							WatermarkEncoder()

				self.encoder.set_watermark('''bits'''     ,self.watermark )


	def 						_UpperCAmelCase     (self     ,_lowerCamelCase )							->							List[str]:







				'''simple docstring'''





				if images.shape[-1] < 256:
							return images

				__lowercase										=							(255 * (images / 2 + 0.5)).cpu().permute(0     ,2     ,3     ,1 ).float().numpy()

				__lowercase										=							[self.encoder.encode(_lowerCamelCase     ,'''dwtDct''' ) for image in images]

				__lowercase										=							torch.from_numpy(np.array(_lowerCamelCase ) ).permute(0     ,3     ,1     ,2 )

				__lowercase										=							torch.clamp(2 * (images / 255 - 0.5)     ,min=-1.0     ,max=1.0 )
				return images












'''simple docstring'''



# flake8: noqa
# Lint as: python3
_SCREAMING_SNAKE_CASE					=    [
    '''VerificationMode''',
    '''Version''',
    '''disable_progress_bar''',
    '''enable_progress_bar''',
    '''is_progress_bar_enabled''',
    '''experimental''',
]

from .info_utils import VerificationMode
from .logging import disable_progress_bar, enable_progress_bar, is_progress_bar_enabled
from .version import Version
from .experimental import experimental





