| | import os |
| | import random |
| | import requests |
| | import base64 |
| | import time |
| | from io import BytesIO |
| | import numpy as np |
| |
|
| | from PIL import Image |
| | import msgpack |
| | from laplace import Client |
| | from io import BytesIO |
| |
|
| |
|
| | def select_frames(input_frames, num_segments=10): |
| | indices = np.linspace(start=0, stop=len(input_frames) - 1, num=num_segments).astype(int) |
| | frames = [input_frames[ind] for ind in indices] |
| | return frames |
| |
|
| | client = Client("sd://data.tns.masp_inf2?cluster=default", timeout=100) |
| |
|
| | video_dir = './v12044gd0000cl5c6rfog65i2eoqcqig' |
| | frames = [(os.path.splitext(item)[0], os.path.join(video_dir, item)) for item in os.listdir(video_dir)] |
| | frames = [item[1] for item in sorted(frames, key=lambda x: int(x[0]))] |
| |
|
| | out_frames = select_frames(frames) |
| | request = {} |
| | byte_images = [] |
| | for image_path in out_frames: |
| | img = Image.open(image_path) |
| | byte_io = BytesIO() |
| | img.save(byte_io, format='PNG') |
| | byte_images.append(byte_io.getvalue()) |
| |
|
| | |
| | packed_data = msgpack.packb(byte_images) |
| | request['images'] = [packed_data] |
| |
|
| | |
| | temp = 0.01 |
| | |
| | request['temperature'] = [str(temp).encode()] |
| | |
| |
|
| | tic = time.time() |
| | results = client.matx_inference(model_name="data-tns-masp-inf2", input_lists=request) |
| | toc = time.time() |
| | print('time to do the inference') |
| | print(toc - tic) |
| | |
| | outputs = results.output_bytes_lists |
| | print(outputs['output'][0]) |
| |
|