feat: upload avatar avatar_main_output node

This commit is contained in:
Radionic
2023-12-29 15:38:28 +08:00
committed by EdwinWong
parent 9aaa894a2b
commit b3e21ac98e
3 changed files with 27 additions and 27 deletions
+13 -13
View File
@@ -56,7 +56,7 @@ class AvatarMainOutput(blender_node.ObjectOps):
OUTPUT_NODE = True
RETURN_TYPES = ()
def blender_process(self, bpy, BPY_OBJ=None, BPY_OBJS=None, open_in_blender=False, auto_save=False, blender_path_override='', filename='', model_type='', write_mode='', SHAPE_FLOW='', upload_to_cloud=False):
def blender_process(self, bpy, BPY_OBJ=None, BPY_OBJS=None, open_in_blender=False, auto_save=False, blender_path_override='', filename='', model_type='', write_mode='', upload_to_cloud=False, SHAPE_FLOW=''):
if open_in_blender:
p = blender_path_override if blender_path_override else global_blender_path
output_file = self.output_dir + '/tmp.blend'
@@ -75,22 +75,22 @@ class AvatarMainOutput(blender_node.ObjectOps):
global_bpy.set_should_reset_scene(True)
outputs = {
"ui": {
"gltfFilename": {filepath.replace(f"{self.output_dir}/", "")},
"files": [{
"filename": filepath.replace(f"{self.output_dir}/", ""),
"content_type": "model/gltf+json",
},],
"SHAPE_FLOW": {SHAPE_FLOW},
"auto_save": {'true' if auto_save else 'false'},
}
"gltfFilename": [filepath.replace(f"{self.output_dir}/", "")],
"files": [{
"filename": filepath.replace(f"{self.output_dir}/", ""),
"content_type": "model/gltf+json",
},],
"SHAPE_FLOW": {SHAPE_FLOW},
"auto_save": {'true' if auto_save else 'false'},
}
if upload_to_cloud:
avatarId = upload_avatar_file(outputs)
return {
"ui": {
**outputs["ui"],
"avatarId": {avatarId},
**outputs,
"avatarId": [avatarId],
},
}
return outputs
return {
"ui": outputs
}
+8 -10
View File
@@ -250,17 +250,15 @@ def export_gltf(output_dir, bpy_objects, filename, model_type, write_mode, metad
return filepath
def get_avatar_file(outputs):
for node_id, output in outputs.items():
if "gltfFilename" in output:
avatar_filename = output["gltfFilename"][0]
with open(
f"{folder_paths.get_output_directory()}/{avatar_filename}", "rb"
) as f:
return f.read()
def get_avatar_file(output):
avatar_filename = output["gltfFilename"][0]
with open(
f"{folder_paths.get_output_directory()}/{avatar_filename}", "rb"
) as f:
return f.read()
def upload_avatar_file(outputs):
file = get_avatar_file(outputs)
def upload_avatar_file(output):
file = get_avatar_file(output)
response = requests.get("https://labs.avatech.ai/api/share")
labData = response.json()
modelId = labData["modelId"]
+6 -4
View File
@@ -277,10 +277,12 @@ async def post_prompt_block(request):
if history:
# file = get_avatar_file(history[prompt_id]["outputs"])
# return web.Response(body=file)
modelId = upload_avatar_file(history[prompt_id]["outputs"])
print("model id", modelId)
return web.json_response({"id": modelId}, status=200)
outputs = history[prompt_id]["outputs"]
for node_id, output in outputs.items():
if "gltfFilename" in output:
modelId = upload_avatar_file(output)
print("model id", modelId)
return web.json_response({"id": modelId}, status=200)
time.sleep(0.5)