| 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]) |
|
|