1.1.0
This commit is contained in:
parent
de8f12a4b0
commit
efdf6f0f24
@ -23,7 +23,7 @@ class Event(Cog):
|
|||||||
@Cog.listener()
|
@Cog.listener()
|
||||||
async def on_application_command_error(self, ctx: ApplicationContext, exception: DiscordException) -> None:
|
async def on_application_command_error(self, ctx: ApplicationContext, exception: DiscordException) -> None:
|
||||||
if isinstance(exception, CommandOnCooldown):
|
if isinstance(exception, CommandOnCooldown):
|
||||||
await ctx.respond(embed=Default_Embed.cooldown(exception.retry_after), ephemeral=True)
|
await ctx.respond(Default_Embed.cooldown(exception.retry_after), ephemeral=True)
|
||||||
else:
|
else:
|
||||||
print(exception)
|
print(exception)
|
||||||
@Cog.listener()
|
@Cog.listener()
|
||||||
@ -44,9 +44,9 @@ class Event(Cog):
|
|||||||
@Cog.listener()
|
@Cog.listener()
|
||||||
async def on_guild_join(self, guild: Guild) -> None:
|
async def on_guild_join(self, guild: Guild) -> None:
|
||||||
if guild.system_channel is not None:
|
if guild.system_channel is not None:
|
||||||
await guild.system_channel.send(embed=Default_Embed.guild_join())
|
await guild.system_channel.send(embed=Default_Embed.default_join_embed())
|
||||||
else:
|
else:
|
||||||
await random.choice(guild.text_channels).send(embed=Default_Embed.guild_join())
|
await random.choice(guild.text_channels).send(embed=Default_Embed.default_join_embed())
|
||||||
|
|
||||||
@Cog.listener()
|
@Cog.listener()
|
||||||
async def on_guild_update(self, before: Guild, after: Guild) -> None:
|
async def on_guild_update(self, before: Guild, after: Guild) -> None:
|
||||||
|
@ -8,8 +8,9 @@ import aiohttp
|
|||||||
import asyncio
|
import asyncio
|
||||||
from aiogoogletrans import Translator
|
from aiogoogletrans import Translator
|
||||||
from typing import Any, Dict
|
from typing import Any, Dict
|
||||||
from discord import File
|
from discord import File, Asset
|
||||||
|
from Christmas.Tagging import Tagging
|
||||||
|
from Christmas.Cogs.Event import model
|
||||||
translator = Translator()
|
translator = Translator()
|
||||||
weight = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.8, 0.9]
|
weight = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.8, 0.9]
|
||||||
cfg = [6, 7, 8, 9, 10, 11]
|
cfg = [6, 7, 8, 9, 10, 11]
|
||||||
@ -20,10 +21,22 @@ def is_korean(string):
|
|||||||
match = pattern.search(string)
|
match = pattern.search(string)
|
||||||
return bool(match)
|
return bool(match)
|
||||||
|
|
||||||
async def process_prompt(prompt: str, remove: str, res: list, isnsfw: bool, style1: float, style2: float, afterprocess: float):
|
async def process_prompt(prompt: str, remove: str, res: list, isnsfw: bool, style1: float, style2: float, afterprocess: float, avatar):
|
||||||
# prompt에 "남자"가 들어있거나 remove에 "여자"가 들어있으면 man = True
|
tags = None
|
||||||
|
if not avatar == None:
|
||||||
|
# gif인 경우 png로 변환
|
||||||
|
try:
|
||||||
|
if avatar.url.endswith(".gif"):
|
||||||
|
avatar = avatar.replace(format="png")
|
||||||
|
avatar = await avatar.read()
|
||||||
|
# TypeError: a bytes-like object is required, not 'PngImageFile'
|
||||||
|
taging = Tagging(model=model)
|
||||||
|
tags = await taging.predict(avatar)
|
||||||
|
tags = tags[0]
|
||||||
|
except Exception as e:
|
||||||
|
tags = None
|
||||||
man = False
|
man = False
|
||||||
if "남자" in prompt or "여자" in remove:
|
if "남자" in prompt and "여자" in remove:
|
||||||
man = True
|
man = True
|
||||||
if is_korean(prompt):
|
if is_korean(prompt):
|
||||||
prompt = await translator.translate(prompt, dest="en")
|
prompt = await translator.translate(prompt, dest="en")
|
||||||
@ -42,8 +55,10 @@ async def process_prompt(prompt: str, remove: str, res: list, isnsfw: bool, styl
|
|||||||
prompt = prompt + "," + "(1boy)"
|
prompt = prompt + "," + "(1boy)"
|
||||||
negative_prompt = negative_prompt + "," + "(1girl)"
|
negative_prompt = negative_prompt + "," + "(1girl)"
|
||||||
add_prompt = random.choice([True, False])
|
add_prompt = random.choice([True, False])
|
||||||
#if add_prompt == True:
|
if add_prompt == True:
|
||||||
prompt = prompt + f"<lora:canistermix1.1:{random.choice(weight)}>"
|
prompt = prompt + f"<lora:canistermix1.1:{random.choice(weight)}>"
|
||||||
|
if tags != None:
|
||||||
|
prompt = prompt + "," + tags
|
||||||
payloads = {
|
payloads = {
|
||||||
"prompt": prompt,
|
"prompt": prompt,
|
||||||
"negative_prompt": negative_prompt,
|
"negative_prompt": negative_prompt,
|
||||||
@ -96,7 +111,7 @@ async def base64_to_image(base642) -> File:
|
|||||||
async def get_gpuserver_status(url) -> Dict:
|
async def get_gpuserver_status(url) -> Dict:
|
||||||
async with aiohttp.ClientSession() as session:
|
async with aiohttp.ClientSession() as session:
|
||||||
try:
|
try:
|
||||||
async with session.get(f"{url}/sdapi/v1/memory", timeout=10) as response:
|
async with session.get(f"http://172.30.1.49:7860/sdapi/v1/memory", timeout=10) as response:
|
||||||
|
|
||||||
if response.status == 200:
|
if response.status == 200:
|
||||||
result = await response.json()
|
result = await response.json()
|
||||||
|
@ -7,7 +7,7 @@ from discord.types.embed import EmbedType
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from korcen import korcen
|
from korcen import korcen
|
||||||
|
|
||||||
from Christmas.Module import get_gpuserver_status
|
|
||||||
start_time = datetime.now()
|
start_time = datetime.now()
|
||||||
|
|
||||||
class ChristmasEmbed(Embed):
|
class ChristmasEmbed(Embed):
|
||||||
@ -37,6 +37,7 @@ class Default_Embed:
|
|||||||
def default_join_embed():
|
def default_join_embed():
|
||||||
embed = ChristmasEmbed(title="🎉 크돌이를 추가해주셔서 감사해요!", description="봇을 사용하기 전에 이 서버의 관리자라면 다음의 절차를 따라주세요!")
|
embed = ChristmasEmbed(title="🎉 크돌이를 추가해주셔서 감사해요!", description="봇을 사용하기 전에 이 서버의 관리자라면 다음의 절차를 따라주세요!")
|
||||||
embed.add_field(name="1. 약관 동의", value="다음의 약관을 읽고 ``/서버 가입``명령어를 실행해주세요", inline=False)
|
embed.add_field(name="1. 약관 동의", value="다음의 약관을 읽고 ``/서버 가입``명령어를 실행해주세요", inline=False)
|
||||||
|
embed.add_field(name="1.1 약관", value="크돌이는 음악 재생과 명령어 전송을 위해 사용자가 쓴 커맨드를 확인할수 있어요, 또한 그림생성은 어떤 결과물이 나오든 크돌이는 책임지지 않아요!")
|
||||||
embed.add_field(name="2. 설정", value="``/설정`` 명령어를 통해 크돌이의 여러 기능을 설정할수 있어요!", inline=False)
|
embed.add_field(name="2. 설정", value="``/설정`` 명령어를 통해 크돌이의 여러 기능을 설정할수 있어요!", inline=False)
|
||||||
embed.add_field(name="3. 도움말", value="``/도움말`` 명령어를 통해 크돌이의 명령어를 확인할 수 있어요!", inline=False)
|
embed.add_field(name="3. 도움말", value="``/도움말`` 명령어를 통해 크돌이의 명령어를 확인할 수 있어요!", inline=False)
|
||||||
embed.set_footer()
|
embed.set_footer()
|
||||||
@ -76,7 +77,7 @@ class Default_Embed:
|
|||||||
embed.add_field(name="``/봇정보``", value="크돌이의 정보를 확인해요!", inline=False)
|
embed.add_field(name="``/봇정보``", value="크돌이의 정보를 확인해요!", inline=False)
|
||||||
embed.add_field(name="**편지**", value="``/편지 보내기 (유저)``: 유저에게 편지를 보내요!\n``/편지 확인``: 받은 편지를 확인해요!", inline=False)
|
embed.add_field(name="**편지**", value="``/편지 보내기 (유저)``: 유저에게 편지를 보내요!\n``/편지 확인``: 받은 편지를 확인해요!", inline=False)
|
||||||
embed.add_field(name="**그림**", value="``/그림 생성``: 크돌이가 그림을 그려줘요!\n``/그림 분석``: 그림을 분석해요!", inline=False)
|
embed.add_field(name="**그림**", value="``/그림 생성``: 크돌이가 그림을 그려줘요!\n``/그림 분석``: 그림을 분석해요!", inline=False)
|
||||||
embed.add_field(name="**음악**", value="``/음악 재생``: 크돌이가 음악을(LOFI) 재생해요!\n``/음악 정지``: 크돌이가 음악을 정지해요!\n``음악 설정 (설정이름) (값)``: 음악 설정을 변경해요!", inline=False)
|
embed.add_field(name="**음악**", value="``/음악 재생``: 크돌이가 음악을(LOFI) 재생해요!\n``/음악 정지``: 크돌이가 음악을 정지해요!\n``/음악 설정 (설정이름) (값)``: 음악 설정을 변경해요!", inline=False)
|
||||||
embed.set_footer()
|
embed.set_footer()
|
||||||
return embed
|
return embed
|
||||||
|
|
||||||
@ -89,7 +90,7 @@ class Default_Embed:
|
|||||||
gpuserver: [system_memory_usage,cuda_memory_usage,oom_count]
|
gpuserver: [system_memory_usage,cuda_memory_usage,oom_count]
|
||||||
"""
|
"""
|
||||||
embed = Embed(title="**봇 정보**", description="크돌이의 정보에요!")
|
embed = Embed(title="**봇 정보**", description="크돌이의 정보에요!")
|
||||||
embed.add_field(name="**봇 개요**", value=f"봇 ID: {bot.user.id}\n봇 버전: 1.0.0\n가동시간: {str(uptime)}\n개발자: RunaLab(tmddn3070)", inline=False)
|
embed.add_field(name="**봇 개요**", value=f"봇 ID: {bot.user.id}\n봇 버전: 1.1.0\n가동시간: {str(uptime)}\n개발자: RunaLab(tmddn3070,Flag_Fan,Pma,Gunu,i3l3,Non)", inline=False)
|
||||||
orin = psutil.virtual_memory().used
|
orin = psutil.virtual_memory().used
|
||||||
orin = orin / 1024 / 1024 / 1024
|
orin = orin / 1024 / 1024 / 1024
|
||||||
if gpuserver == None or gpuserver["status"] == "offline":
|
if gpuserver == None or gpuserver["status"] == "offline":
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import re
|
||||||
from discord import InputTextStyle, Interaction, Member
|
from discord import InputTextStyle, Interaction, Member
|
||||||
from discord.ui import Modal, InputText
|
from discord.ui import Modal, InputText
|
||||||
|
|
||||||
@ -82,8 +83,20 @@ class Aiart(Modal):
|
|||||||
if i in prompt:
|
if i in prompt:
|
||||||
prompt = prompt.replace(i, "")
|
prompt = prompt.replace(i, "")
|
||||||
await interaction.response.send_message(embed=Aiart_Embed.generating(), ephemeral=self.show)
|
await interaction.response.send_message(embed=Aiart_Embed.generating(), ephemeral=self.show)
|
||||||
|
avatars = None
|
||||||
|
if re.search(r"\{[0-9]{18}\}", prompt):
|
||||||
|
user_id = re.search(r"\{[0-9]{18}\}", prompt).group()[1:-1]
|
||||||
|
user = await interaction.guild.fetch_member(int(user_id))
|
||||||
|
print(user)
|
||||||
|
if user == None:
|
||||||
|
avatars = None
|
||||||
|
else:
|
||||||
|
avatars = user.avatar
|
||||||
|
print("OK")
|
||||||
|
config = ChristmasConfig()
|
||||||
#prompt: str, remove: str, res: list, isnsfw: bool, style1: float, style2: float, afterprocess: float
|
#prompt: str, remove: str, res: list, isnsfw: bool, style1: float, style2: float, afterprocess: float
|
||||||
payload = await process_prompt(prompt, remove, self.res, self.allownsfw, self.style1, self.style2, self.afterprocess)
|
print(avatars)
|
||||||
|
payload = await process_prompt(prompt, remove, self.res, self.allownsfw, self.style1, self.style2, self.afterprocess, avatars)
|
||||||
config = ChristmasConfig()
|
config = ChristmasConfig()
|
||||||
result = await post_gpu_server(f"{config.AI}/sdapi/v1/txt2img", payload)
|
result = await post_gpu_server(f"{config.AI}/sdapi/v1/txt2img", payload)
|
||||||
if result["status"] != True:
|
if result["status"] != True:
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import os
|
import os
|
||||||
import mafic
|
|
||||||
|
|
||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
@ -13,14 +12,14 @@ class Christmas(AutoShardedBot):
|
|||||||
def __init__(self, *args: Any, **kwargs: Any):
|
def __init__(self, *args: Any, **kwargs: Any):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.config = ChristmasConfig()
|
self.config = ChristmasConfig()
|
||||||
self.debug_guilds = [1090621667778244638,1015236495910649926,957142859629342790,1125370139165081612,1170310470503247993]
|
#self.debug_guilds = [1090621667778244638,1015236495910649926,957142859629342790,1125370139165081612,1170310470503247993]
|
||||||
|
|
||||||
def run(self, *args: Any, **kwargs: Any) -> None:
|
def run(self, *args: Any, **kwargs: Any) -> None:
|
||||||
kwargs.update({"token": self.config.TOKEN})
|
kwargs.update({"token": self.config.TOKEN})
|
||||||
super().run(*args, **kwargs)
|
super().run(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def load_cogs(bot) -> None:
|
def load_cogs(bot: AutoShardedBot) -> None:
|
||||||
for filename in os.listdir("Christmas/Cogs"):
|
for filename in os.listdir("Christmas/Cogs"):
|
||||||
if filename.endswith(".py"):
|
if filename.endswith(".py"):
|
||||||
bot.load_extension(f"Christmas.Cogs.{filename[:-3]}")
|
bot.load_extension(f"Christmas.Cogs.{filename[:-3]}")
|
||||||
|
Loading…
Reference in New Issue
Block a user