From 2440fe32db2785700f6c04fc3d244091ef9d57d5 Mon Sep 17 00:00:00 2001 From: Konstantine Tsafatinos Date: Thu, 20 Jul 2023 17:02:14 -0400 Subject: [PATCH] update max size params and add discord return card --- skynet/constants.py | 4 +-- skynet/frontend/discord/__init__.py | 21 ++++++++----- skynet/frontend/discord/ui.py | 2 +- skynet/frontend/discord/utils.py | 47 +++++++++++++++-------------- 4 files changed, 40 insertions(+), 34 deletions(-) diff --git a/skynet/constants.py b/skynet/constants.py index 2bb6d3b..0ddfa65 100755 --- a/skynet/constants.py +++ b/skynet/constants.py @@ -133,8 +133,8 @@ MP_ENABLED_ROLES = ['god'] MIN_STEP = 1 MAX_STEP = 100 -MAX_WIDTH = 512 -MAX_HEIGHT = 656 +MAX_WIDTH = 1024 +MAX_HEIGHT = 1024 MAX_GUIDANCE = 20 DEFAULT_SEED = None diff --git a/skynet/frontend/discord/__init__.py b/skynet/frontend/discord/__init__.py index f020734..29809e8 100644 --- a/skynet/frontend/discord/__init__.py +++ b/skynet/frontend/discord/__init__.py @@ -116,10 +116,12 @@ class SkynetDiscordFrontend: status_msg, method: str, params: dict, - ctx: discord.TextChannel, + ctx: discord.ext.commands.context.Context | discord.Message, file_id: str | None = None, binary_data: str = '' ): + send = ctx.channel.send + if params['seed'] == None: params['seed'] = random.randint(0, 0xFFFFFFFF) @@ -258,9 +260,9 @@ class SkynetDiscordFrontend: # attempt to get the image and send it ipfs_link = f'https://ipfs.{DEFAULT_DOMAIN}/ipfs/{ipfs_hash}/image.png' resp = await get_ipfs_file(ipfs_link) - - # caption = generate_reply_caption( - # user, params, tx_hash, worker, reward) + + caption, embed = generate_reply_caption( + user, params, tx_hash, worker, reward) if not resp or resp.status_code != 200: logging.error(f'couldn\'t get ipfs hosted image at {ipfs_link}!') @@ -273,7 +275,9 @@ class SkynetDiscordFrontend: # else: logging.info(f'success! sending generated image') - image = io.BytesIO(resp.raw) + # image = io.BytesIO(resp.raw) + # embed.set_image(url=ipfs_link) + # embed.add_field(name='params', value=caption) # await self.bot.delete_message( # chat_id=status_msg.chat.id, message_id=status_msg.id) if file_id: # img2img @@ -298,6 +302,7 @@ class SkynetDiscordFrontend: # reply_markup=build_redo_menu(), # parse_mode='HTML' # ) - await ctx.reply( - file=discord.File(image, 'image.png') - ) + + embed.set_image(url=ipfs_link) + embed.add_field(name='Parameters:', value=caption) + await send(embed=embed) diff --git a/skynet/frontend/discord/ui.py b/skynet/frontend/discord/ui.py index 6704bbe..cb54d5c 100644 --- a/skynet/frontend/discord/ui.py +++ b/skynet/frontend/discord/ui.py @@ -54,7 +54,7 @@ class Txt2ImgButton(discord.ui.Button): await db_call( 'update_user_stats', user.id, 'txt2img', last_prompt=prompt) - ec = await work_request(user.name, status_msg, 'txt2img', params, msg) + ec = await work_request(user, status_msg, 'txt2img', params, msg) if ec == 0: await db_call('increment_generated', user.id) diff --git a/skynet/frontend/discord/utils.py b/skynet/frontend/discord/utils.py index ad08bba..81724b9 100644 --- a/skynet/frontend/discord/utils.py +++ b/skynet/frontend/discord/utils.py @@ -9,6 +9,7 @@ from datetime import datetime, timezone from telebot.types import InlineKeyboardButton, InlineKeyboardMarkup from telebot.async_telebot import ExceptionHandler from telebot.formatting import hlink +import discord from skynet.constants import * @@ -37,59 +38,59 @@ def build_redo_menu(): return inline_keyboard -def prepare_metainfo_caption(tguser, worker: str, reward: str, meta: dict) -> str: +def prepare_metainfo_caption(user, worker: str, reward: str, meta: dict) -> str: prompt = meta["prompt"] if len(prompt) > 256: prompt = prompt[:256] + meta_str = f'__by {user.name}__\n' + meta_str += f'*performed by {worker}*\n' + meta_str += f'__**reward: {reward}**__\n' - meta_str = f'by {tg_user_pretty(tguser)}\n' - meta_str += f'performed by {worker}\n' - meta_str += f'reward: {reward}\n' - - meta_str += f'prompt: {prompt}\n' - meta_str += f'seed: {meta["seed"]}\n' - meta_str += f'step: {meta["step"]}\n' - meta_str += f'guidance: {meta["guidance"]}\n' + meta_str += f'`prompt:` {prompt}\n' + meta_str += f'`seed: {meta["seed"]}`\n' + meta_str += f'`step: {meta["step"]}`\n' + meta_str += f'`guidance: {meta["guidance"]}`\n' if meta['strength']: - meta_str += f'strength: {meta["strength"]}\n' - meta_str += f'algo: {meta["model"]}\n' + meta_str += f'`strength: {meta["strength"]}`\n' + meta_str += f'`algo: {meta["model"]}`\n' if meta['upscaler']: - meta_str += f'upscaler: {meta["upscaler"]}\n' + meta_str += f'`upscaler: {meta["upscaler"]}`\n' - meta_str += f'Made with Skynet v{VERSION}\n' - meta_str += f'JOIN THE SWARM: @skynetgpu' + meta_str += f'__**Made with Skynet v{VERSION}**__\n' + meta_str += f'**JOIN THE SWARM: @skynetgpu**' return meta_str def generate_reply_caption( - tguser, # telegram user + user, # discord user params: dict, tx_hash: str, worker: str, reward: str ): - explorer_link = hlink( - 'SKYNET Transaction Explorer', - f'https://explorer.{DEFAULT_DOMAIN}/v2/explore/transaction/{tx_hash}' - ) + explorer_link = discord.Embed( + title='[SKYNET Transaction Explorer]', + url=f'https://explorer.{DEFAULT_DOMAIN}/v2/explore/transaction/{tx_hash}', + color=discord.Color.blue()) - meta_info = prepare_metainfo_caption(tguser, worker, reward, params) + meta_info = prepare_metainfo_caption(user, worker, reward, params) + # why do we have this? final_msg = '\n'.join([ 'Worker finished your task!', - explorer_link, + # explorer_link, f'PARAMETER INFO:\n{meta_info}' ]) final_msg = '\n'.join([ - f'{explorer_link}', + # f'***{explorer_link}***', f'{meta_info}' ]) logging.info(final_msg) - return final_msg + return final_msg, explorer_link async def get_global_config(cleos):