
import numpy as np
import torch
import torch.nn as nn
from transformers import CLIPConfig, CLIPVisionModelWithProjection, PreTrainedModel

from ...utils import logging


UpperCAmelCase	      = logging.get_logger(__name__)







class        A_   (			__lowerCamelCase   ):




	'''simple docstring'''


	_UpperCamelCase     :     Any							 =       CLIPConfig

	_UpperCamelCase     :     str							 =       ["""CLIPEncoderLayer"""]





	def __init__(       self		,    snake_case       ):
		super().__init__(snake_case       )

		lowercase       =    CLIPVisionModelWithProjection(config.vision_config       )

		lowercase       =    nn.Linear(config.vision_config.projection_dim		,    1       )
		lowercase       =    nn.Linear(config.vision_config.projection_dim		,    1       )





	@torch.no_grad()
	def 	SCREAMING_SNAKE_CASE__						(       self		,    snake_case		,    snake_case		,    snake_case=0.5		,    snake_case=0.5       ):
		lowercase       =    self.vision_model(snake_case       )[0]

		lowercase       =    self.p_head(snake_case       )
		lowercase       =    nsfw_detected.flatten()
		lowercase       =    nsfw_detected > p_threshold
		lowercase       =    nsfw_detected.tolist()

		if any(snake_case       ):
			logger.warning(
			    'Potential NSFW content was detected in one or more images. A black image will be returned instead.'
			    ' Try again with a different prompt and/or seed.'       )

		for idx, nsfw_detected_ in enumerate(snake_case       ):
			if nsfw_detected_:
				lowercase       =    np.zeros(images[idx].shape       )

		lowercase       =    self.w_head(snake_case       )
		lowercase       =    watermark_detected.flatten()
		lowercase       =    watermark_detected > w_threshold
		lowercase       =    watermark_detected.tolist()

		if any(snake_case       ):
			logger.warning(
			    'Potential watermarked content was detected in one or more images. A black image will be returned instead.'
			    ' Try again with a different prompt and/or seed.'       )

		for idx, watermark_detected_ in enumerate(snake_case       ):
			if watermark_detected_:
				lowercase       =    np.zeros(images[idx].shape       )

		return images, nsfw_detected, watermark_detected



import os
from datetime import datetime as dt

from github import Github


UpperCAmelCase	      = [
    '''good first issue''',
    '''good second issue''',
    '''good difficult issue''',
    '''enhancement''',
    '''new pipeline/model''',
    '''new scheduler''',
    '''wip''',
]






def 							UpperCAmelCase_		(							):
	lowercase       =    Github(os.environ['GITHUB_TOKEN']							)
	lowercase       =    g.get_repo('huggingface/diffusers'							)
	lowercase       =    repo.get_issues(state='open'							)

	for issue in open_issues:
		lowercase       =    sorted(issue.get_comments() ,							key=lambda __SCREAMING_SNAKE_CASE							: i.created_at ,							reverse=__SCREAMING_SNAKE_CASE							)
		lowercase       =    comments[0] if len(__SCREAMING_SNAKE_CASE							) > 0 else None
		if (
		    last_comment is not None
		    and last_comment.user.login == "github-actions[bot]"
		    and (dt.utcnow() - issue.updated_at).days > 7
		    and (dt.utcnow() - issue.created_at).days >= 30
		    and not any(label.name.lower() in LABELS_TO_EXEMPT for label in issue.get_labels()							)
		):
			# Closes the issue after 7 days of inactivity since the Stalebot notification.
			issue.edit(state='closed'							)
		elif (
		    "stale" in issue.get_labels()
		    and last_comment is not None
		    and last_comment.user.login != "github-actions[bot]"
		):
			# Opens the issue if someone other than Stalebot commented.
			issue.edit(state='open'							)
			issue.remove_from_labels('stale'							)
		elif (
		    (dt.utcnow() - issue.updated_at).days > 23
		    and (dt.utcnow() - issue.created_at).days >= 30
		    and not any(label.name.lower() in LABELS_TO_EXEMPT for label in issue.get_labels()							)
		):
			# Post a Stalebot notification after 23 days of inactivity.
			issue.create_comment(
			    'This issue has been automatically marked as stale because it has not had '
			    'recent activity. If you think this still needs to be addressed '
			    'please comment on this thread.\n\nPlease note that issues that do not follow the '
			    '[contributing guidelines](https://github.com/huggingface/diffusers/blob/main/CONTRIBUTING.md) '
			    'are likely to be ignored.'							)
			issue.add_to_labels('stale'							)


if __name__ == "__main__":
	main()

