mirror of https://github.com/skygpu/skynet.git
commit
7f50952088
|
@ -384,9 +384,9 @@ def dgpu(
|
|||
@click.option(
|
||||
'--key', '-k', default=None)
|
||||
@click.option(
|
||||
'--hyperion-url', '-y', default=f'https://{DEFAULT_DOMAIN}')
|
||||
'--hyperion-url', '-y', default=f'https://testnet.{DEFAULT_DOMAIN}')
|
||||
@click.option(
|
||||
'--node-url', '-n', default=f'https://{DEFAULT_DOMAIN}')
|
||||
'--node-url', '-n', default=f'https://testnet.{DEFAULT_DOMAIN}')
|
||||
@click.option(
|
||||
'--ipfs-url', '-i', default=DEFAULT_IPFS_REMOTE)
|
||||
@click.option(
|
||||
|
@ -445,9 +445,9 @@ def telegram(
|
|||
@click.option(
|
||||
'--key', '-k', default=None)
|
||||
@click.option(
|
||||
'--hyperion-url', '-y', default=f'https://{DEFAULT_DOMAIN}')
|
||||
'--hyperion-url', '-y', default=f'https://testnet.{DEFAULT_DOMAIN}')
|
||||
@click.option(
|
||||
'--node-url', '-n', default=f'https://{DEFAULT_DOMAIN}')
|
||||
'--node-url', '-n', default=f'https://testnet.{DEFAULT_DOMAIN}')
|
||||
@click.option(
|
||||
'--ipfs-url', '-i', default=DEFAULT_IPFS_REMOTE)
|
||||
@click.option(
|
||||
|
|
|
@ -37,7 +37,7 @@ commands work on a user per user basis!
|
|||
config is individual to each user!
|
||||
|
||||
/txt2img TEXT - request an image based on a prompt
|
||||
/img2img <attach_image> TEXT - request an image base on an image and a promtp
|
||||
/img2img <attach_image> TEXT - request an image base on an image and a prompt
|
||||
|
||||
/redo - redo last command (only works for txt2img for now!)
|
||||
|
||||
|
@ -54,14 +54,17 @@ config is individual to each user!
|
|||
{N.join(SHORT_NAMES)}
|
||||
|
||||
/config step NUMBER - set amount of iterations
|
||||
/config seed NUMBER - set the seed, deterministic results!
|
||||
/config size WIDTH HEIGHT - set size in pixels
|
||||
/config seed [auto|NUMBER] - set the seed, deterministic results!
|
||||
/config width NUMBER - set horizontal size in pixels
|
||||
/config height NUMBER - set vertical size in pixels
|
||||
/config upscaler [off/x4] - enable/disable x4 size upscaler
|
||||
/config guidance NUMBER - prompt text importance
|
||||
/config strength NUMBER - importance of the input image for img2img
|
||||
'''
|
||||
|
||||
UNKNOWN_CMD_TEXT = 'Unknown command! Try sending \"/help\"'
|
||||
|
||||
DONATION_INFO = '0xf95335682DF281FFaB7E104EB87B69625d9622B6\ngoal: 25/650usd'
|
||||
DONATION_INFO = '0xf95335682DF281FFaB7E104EB87B69625d9622B6\ngoal: 0.0465/1.0000 ETH'
|
||||
|
||||
COOL_WORDS = [
|
||||
'cyberpunk',
|
||||
|
@ -120,10 +123,19 @@ ing more may produce a slightly different picture, but not necessarily better \
|
|||
quality.
|
||||
''',
|
||||
|
||||
'guidance': '''
|
||||
'guidance': '''
|
||||
The guidance scale is a parameter that controls how much the image generation\
|
||||
process follows the text prompt. The higher the value, the more image sticks\
|
||||
to a given text input.
|
||||
to a given text input. Value range 0 to 20. Recomended range: 4.5-7.5.
|
||||
''',
|
||||
|
||||
'strength': '''
|
||||
Noise is added to the image you use as an init image for img2img, and then the\
|
||||
diffusion process continues according to the prompt. The amount of noise added\
|
||||
depends on the \"Strength of img2img\"” parameter, which ranges from 0 to 1,\
|
||||
where 0 adds no noise at all and you will get the exact image you added, and\
|
||||
1 completely replaces the image with noise and almost acts as if you used\
|
||||
normal txt2img instead of img2img.
|
||||
'''
|
||||
}
|
||||
|
||||
|
@ -140,13 +152,13 @@ MAX_HEIGHT = 1024
|
|||
MAX_GUIDANCE = 20
|
||||
|
||||
DEFAULT_SEED = None
|
||||
DEFAULT_WIDTH = 512
|
||||
DEFAULT_HEIGHT = 512
|
||||
DEFAULT_WIDTH = 1024
|
||||
DEFAULT_HEIGHT = 1024
|
||||
DEFAULT_GUIDANCE = 7.5
|
||||
DEFAULT_STRENGTH = 0.5
|
||||
DEFAULT_STEP = 35
|
||||
DEFAULT_STEP = 28
|
||||
DEFAULT_CREDITS = 10
|
||||
DEFAULT_MODEL = list(MODELS.keys())[0]
|
||||
DEFAULT_MODEL = list(MODELS.keys())[4]
|
||||
DEFAULT_ROLE = 'pleb'
|
||||
DEFAULT_UPSCALER = None
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ class SkynetDiscordFrontend:
|
|||
ctx: discord.ext.commands.context.Context | discord.Message,
|
||||
file_id: str | None = None,
|
||||
binary_data: str = ''
|
||||
):
|
||||
) -> bool:
|
||||
send = ctx.channel.send
|
||||
|
||||
if params['seed'] == None:
|
||||
|
@ -168,7 +168,7 @@ class SkynetDiscordFrontend:
|
|||
await self.bot.channel.send(
|
||||
status_msg,
|
||||
'skynet has suffered an internal error trying to fill this request')
|
||||
return
|
||||
return False
|
||||
|
||||
enqueue_tx_id = res['transaction_id']
|
||||
enqueue_tx_link = f'[**Your request on Skynet Explorer**](https://explorer.{DEFAULT_DOMAIN}/v2/explore/transaction/{enqueue_tx_id})'
|
||||
|
@ -230,7 +230,7 @@ class SkynetDiscordFrontend:
|
|||
color=discord.Color.blue())
|
||||
|
||||
await message.edit(embed=embed)
|
||||
return
|
||||
return False
|
||||
|
||||
tx_link = f'[**Your result on Skynet Explorer**](https://explorer.{DEFAULT_DOMAIN}/v2/explore/transaction/{tx_hash})'
|
||||
|
||||
|
@ -265,3 +265,5 @@ class SkynetDiscordFrontend:
|
|||
else: # txt2img
|
||||
embed.set_image(url=ipfs_link)
|
||||
await send(embed=embed, view=SkynetView(self))
|
||||
|
||||
return True
|
||||
|
|
|
@ -115,9 +115,9 @@ def create_handler_context(frontend: 'SkynetDiscordFrontend'):
|
|||
await db_call(
|
||||
'update_user_stats', user.id, 'txt2img', last_prompt=prompt)
|
||||
|
||||
ec = await work_request(user, status_msg, 'txt2img', params, ctx)
|
||||
success = await work_request(user, status_msg, 'txt2img', params, ctx)
|
||||
|
||||
if ec == None:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
@bot.command(name='redo', help='Redo last request')
|
||||
|
@ -153,13 +153,13 @@ def create_handler_context(frontend: 'SkynetDiscordFrontend'):
|
|||
**user_config
|
||||
}
|
||||
|
||||
ec = await work_request(
|
||||
success = await work_request(
|
||||
user, status_msg, 'redo', params, ctx,
|
||||
file_id=file_id,
|
||||
binary_data=binary
|
||||
)
|
||||
|
||||
if ec == None:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
@bot.command(name='img2img', help='Responds with an image')
|
||||
|
@ -243,13 +243,13 @@ def create_handler_context(frontend: 'SkynetDiscordFrontend'):
|
|||
last_binary=ipfs_hash
|
||||
)
|
||||
|
||||
ec = await work_request(
|
||||
success = await work_request(
|
||||
user, status_msg, 'img2img', params, ctx,
|
||||
file_id=file_id,
|
||||
binary_data=ipfs_hash
|
||||
)
|
||||
|
||||
if ec == None:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
|
||||
|
|
|
@ -63,9 +63,9 @@ class Txt2ImgButton(discord.ui.Button):
|
|||
await db_call(
|
||||
'update_user_stats', user.id, 'txt2img', last_prompt=prompt)
|
||||
|
||||
ec = await work_request(user, status_msg, 'txt2img', params, msg)
|
||||
success = await work_request(user, status_msg, 'txt2img', params, msg)
|
||||
|
||||
if ec == None:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
|
||||
|
@ -145,13 +145,13 @@ class Img2ImgButton(discord.ui.Button):
|
|||
last_binary=ipfs_hash
|
||||
)
|
||||
|
||||
ec = await work_request(
|
||||
success = await work_request(
|
||||
user, status_msg, 'img2img', params, msg,
|
||||
file_id=file_id,
|
||||
binary_data=ipfs_hash
|
||||
)
|
||||
|
||||
if ec == None:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
|
||||
|
@ -195,13 +195,13 @@ class RedoButton(discord.ui.Button):
|
|||
'prompt': prompt,
|
||||
**user_config
|
||||
}
|
||||
ec = await work_request(
|
||||
success = await work_request(
|
||||
user, status_msg, 'redo', params, interaction,
|
||||
file_id=file_id,
|
||||
binary_data=binary
|
||||
)
|
||||
|
||||
if ec == None:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ class SkynetTelegramFrontend:
|
|||
params: dict,
|
||||
file_id: str | None = None,
|
||||
binary_data: str = ''
|
||||
):
|
||||
) -> bool:
|
||||
if params['seed'] == None:
|
||||
params['seed'] = random.randint(0, 0xFFFFFFFF)
|
||||
|
||||
|
@ -161,7 +161,7 @@ class SkynetTelegramFrontend:
|
|||
await self.update_status_message(
|
||||
status_msg,
|
||||
'skynet has suffered an internal error trying to fill this request')
|
||||
return
|
||||
return False
|
||||
|
||||
enqueue_tx_id = res['transaction_id']
|
||||
enqueue_tx_link = hlink(
|
||||
|
@ -223,7 +223,7 @@ class SkynetTelegramFrontend:
|
|||
f'\n[{timestamp_pretty()}] <b>timeout processing request</b>',
|
||||
parse_mode='HTML'
|
||||
)
|
||||
return
|
||||
return False
|
||||
|
||||
tx_link = hlink(
|
||||
'Your result on Skynet Explorer',
|
||||
|
@ -253,7 +253,7 @@ class SkynetTelegramFrontend:
|
|||
reply_markup=build_redo_menu(),
|
||||
parse_mode='HTML'
|
||||
)
|
||||
return
|
||||
return True
|
||||
|
||||
png_img = resp.raw
|
||||
with Image.open(io.BytesIO(resp.raw)) as image:
|
||||
|
@ -290,3 +290,5 @@ class SkynetTelegramFrontend:
|
|||
reply_markup=build_redo_menu(),
|
||||
parse_mode='HTML'
|
||||
)
|
||||
|
||||
return True
|
||||
|
|
|
@ -157,9 +157,9 @@ def create_handler_context(frontend: 'SkynetTelegramFrontend'):
|
|||
await db_call(
|
||||
'update_user_stats', user.id, 'txt2img', last_prompt=prompt)
|
||||
|
||||
ec = await work_request(user, status_msg, 'txt2img', params)
|
||||
success = await work_request(user, status_msg, 'txt2img', params)
|
||||
|
||||
if ec == 0:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
|
||||
|
@ -243,13 +243,13 @@ def create_handler_context(frontend: 'SkynetTelegramFrontend'):
|
|||
last_binary=ipfs_hash
|
||||
)
|
||||
|
||||
ec = await work_request(
|
||||
success = await work_request(
|
||||
user, status_msg, 'img2img', params,
|
||||
file_id=file_id,
|
||||
binary_data=ipfs_hash
|
||||
)
|
||||
|
||||
if ec == 0:
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
|
||||
|
@ -307,12 +307,15 @@ def create_handler_context(frontend: 'SkynetTelegramFrontend'):
|
|||
**user_config
|
||||
}
|
||||
|
||||
await work_request(
|
||||
success = await work_request(
|
||||
user, status_msg, 'redo', params,
|
||||
file_id=file_id,
|
||||
binary_data=binary
|
||||
)
|
||||
|
||||
if success:
|
||||
await db_call('increment_generated', user.id)
|
||||
|
||||
|
||||
# "proxy" handlers just request routers
|
||||
|
||||
|
|
|
@ -24,10 +24,10 @@ class IPFSHTTP:
|
|||
)
|
||||
|
||||
|
||||
async def get_ipfs_file(ipfs_link: str):
|
||||
async def get_ipfs_file(ipfs_link: str, timeout: int = 60):
|
||||
logging.info(f'attempting to get image at {ipfs_link}')
|
||||
resp = None
|
||||
for i in range(20):
|
||||
for i in range(timeout):
|
||||
try:
|
||||
resp = await asks.get(ipfs_link, timeout=3)
|
||||
|
||||
|
|
Loading…
Reference in New Issue