mirror of https://github.com/skygpu/skynet.git
commit
b48ce8ac3f
|
@ -13,7 +13,7 @@ import asyncio
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
from leap.cleos import CLEOS
|
from leap.cleos import CLEOS
|
||||||
from leap.sugar import collect_stdout
|
from leap.sugar import collect_stdout, Name, asset_from_str
|
||||||
from leap.hyperion import HyperionAPI
|
from leap.hyperion import HyperionAPI
|
||||||
|
|
||||||
from skynet.ipfs import IPFSHTTP
|
from skynet.ipfs import IPFSHTTP
|
||||||
|
@ -100,7 +100,8 @@ def download():
|
||||||
'--node-url', '-n', default='https://skynet.ancap.tech')
|
'--node-url', '-n', default='https://skynet.ancap.tech')
|
||||||
@click.option(
|
@click.option(
|
||||||
'--reward', '-r', default='20.0000 GPU')
|
'--reward', '-r', default='20.0000 GPU')
|
||||||
@click.option('--algo', '-a', default='midj')
|
@click.option('--jobs', '-j', default=1)
|
||||||
|
@click.option('--model', '-m', default='prompthero/openjourney')
|
||||||
@click.option(
|
@click.option(
|
||||||
'--prompt', '-p', default='a red old tractor in a sunny wheat field')
|
'--prompt', '-p', default='a red old tractor in a sunny wheat field')
|
||||||
@click.option('--output', '-o', default='output.png')
|
@click.option('--output', '-o', default='output.png')
|
||||||
|
@ -110,12 +111,14 @@ def download():
|
||||||
@click.option('--step', '-s', default=26)
|
@click.option('--step', '-s', default=26)
|
||||||
@click.option('--seed', '-S', default=None)
|
@click.option('--seed', '-S', default=None)
|
||||||
@click.option('--upscaler', '-U', default='x4')
|
@click.option('--upscaler', '-U', default='x4')
|
||||||
|
@click.option('--binary_data', '-b', default='')
|
||||||
def enqueue(
|
def enqueue(
|
||||||
account: str,
|
account: str,
|
||||||
permission: str,
|
permission: str,
|
||||||
key: str | None,
|
key: str | None,
|
||||||
node_url: str,
|
node_url: str,
|
||||||
reward: str,
|
reward: str,
|
||||||
|
jobs: int,
|
||||||
**kwargs
|
**kwargs
|
||||||
):
|
):
|
||||||
key, account, permission = load_account_info(
|
key, account, permission = load_account_info(
|
||||||
|
@ -125,21 +128,32 @@ def enqueue(
|
||||||
'user', node_url, None, None)
|
'user', node_url, None, None)
|
||||||
|
|
||||||
with open_cleos(node_url, key=key) as cleos:
|
with open_cleos(node_url, key=key) as cleos:
|
||||||
if not kwargs['seed']:
|
async def enqueue_n_jobs():
|
||||||
kwargs['seed'] = random.randint(0, 10e9)
|
for i in range(jobs):
|
||||||
|
if not kwargs['seed']:
|
||||||
|
kwargs['seed'] = random.randint(0, 10e9)
|
||||||
|
|
||||||
req = json.dumps({
|
req = json.dumps({
|
||||||
'method': 'diffuse',
|
'method': 'diffuse',
|
||||||
'params': kwargs
|
'params': kwargs
|
||||||
})
|
})
|
||||||
binary = ''
|
binary = kwargs['binary_data']
|
||||||
|
|
||||||
ec, out = cleos.push_action(
|
res = await cleos.a_push_action(
|
||||||
'telos.gpu', 'enqueue', [account, req, binary, reward], f'{account}@{permission}'
|
'telos.gpu',
|
||||||
)
|
'enqueue',
|
||||||
|
{
|
||||||
|
'user': Name(account),
|
||||||
|
'request_body': req,
|
||||||
|
'binary_data': binary,
|
||||||
|
'reward': asset_from_str(reward),
|
||||||
|
'min_verification': 1
|
||||||
|
},
|
||||||
|
account, key, permission,
|
||||||
|
)
|
||||||
|
print(res)
|
||||||
|
trio.run(enqueue_n_jobs)
|
||||||
|
|
||||||
print(collect_stdout(out))
|
|
||||||
assert ec == 0
|
|
||||||
|
|
||||||
@skynet.command()
|
@skynet.command()
|
||||||
@click.option('--loglevel', '-l', default='INFO', help='Logging level')
|
@click.option('--loglevel', '-l', default='INFO', help='Logging level')
|
||||||
|
@ -235,12 +249,17 @@ def dequeue(
|
||||||
'user', node_url, None, None)
|
'user', node_url, None, None)
|
||||||
|
|
||||||
with open_cleos(node_url, key=key) as cleos:
|
with open_cleos(node_url, key=key) as cleos:
|
||||||
ec, out = cleos.push_action(
|
res = trio.run(cleos.a_push_action,
|
||||||
'telos.gpu', 'dequeue', [account, request_id], f'{account}@{permission}'
|
'telos.gpu',
|
||||||
|
'dequeue',
|
||||||
|
{
|
||||||
|
'user': Name(account),
|
||||||
|
'request_id': int(request_id),
|
||||||
|
},
|
||||||
|
account, key, permission,
|
||||||
)
|
)
|
||||||
|
print(res)
|
||||||
|
|
||||||
print(collect_stdout(out))
|
|
||||||
assert ec == 0
|
|
||||||
|
|
||||||
@skynet.command()
|
@skynet.command()
|
||||||
@click.option(
|
@click.option(
|
||||||
|
@ -269,12 +288,17 @@ def config(
|
||||||
node_url, _, _ = load_endpoint_info(
|
node_url, _, _ = load_endpoint_info(
|
||||||
'user', node_url, None, None)
|
'user', node_url, None, None)
|
||||||
with open_cleos(node_url, key=key) as cleos:
|
with open_cleos(node_url, key=key) as cleos:
|
||||||
ec, out = cleos.push_action(
|
res = trio.run(cleos.a_push_action,
|
||||||
'telos.gpu', 'config', [token_contract, token_symbol], f'{account}@{permission}'
|
'telos.gpu',
|
||||||
|
'config',
|
||||||
|
{
|
||||||
|
'token_contract': token_contract,
|
||||||
|
'token_symbol': token_symbol,
|
||||||
|
},
|
||||||
|
account, key, permission,
|
||||||
)
|
)
|
||||||
|
print(res)
|
||||||
|
|
||||||
print(collect_stdout(out))
|
|
||||||
assert ec == 0
|
|
||||||
|
|
||||||
@skynet.command()
|
@skynet.command()
|
||||||
@click.option(
|
@click.option(
|
||||||
|
@ -298,11 +322,21 @@ def deposit(
|
||||||
|
|
||||||
node_url, _, _ = load_endpoint_info(
|
node_url, _, _ = load_endpoint_info(
|
||||||
'user', node_url, None, None)
|
'user', node_url, None, None)
|
||||||
with open_cleos(node_url, key=key) as cleos:
|
|
||||||
ec, out = cleos.transfer_token(account, 'telos.gpu', quantity)
|
|
||||||
|
|
||||||
print(collect_stdout(out))
|
with open_cleos(node_url, key=key) as cleos:
|
||||||
assert ec == 0
|
res = trio.run(cleos.a_push_action,
|
||||||
|
'eosio.token',
|
||||||
|
'transfer',
|
||||||
|
{
|
||||||
|
'sender': Name(account),
|
||||||
|
'recipient': Name('telos.gpu'),
|
||||||
|
'amount': asset_from_str(quantity),
|
||||||
|
'memo': f'{account} transferred {quantity} to telos.gpu'
|
||||||
|
},
|
||||||
|
account, key, permission,
|
||||||
|
)
|
||||||
|
print(res)
|
||||||
|
|
||||||
|
|
||||||
@skynet.group()
|
@skynet.group()
|
||||||
def run(*args, **kwargs):
|
def run(*args, **kwargs):
|
||||||
|
|
|
@ -71,8 +71,8 @@ def load_account_info(
|
||||||
if not key and 'key' in sub_config:
|
if not key and 'key' in sub_config:
|
||||||
key = sub_config['key']
|
key = sub_config['key']
|
||||||
|
|
||||||
if not account and 'name' in sub_config:
|
if not account and 'account' in sub_config:
|
||||||
account = sub_config['name']
|
account = sub_config['account']
|
||||||
|
|
||||||
if not permission and 'permission' in sub_config:
|
if not permission and 'permission' in sub_config:
|
||||||
permission = sub_config['permission']
|
permission = sub_config['permission']
|
||||||
|
|
Loading…
Reference in New Issue