Spaces:
Runtime error
Runtime error
fix
Browse files- .gitignore +3 -0
- app.py +31 -12
.gitignore
CHANGED
|
@@ -4,3 +4,6 @@
|
|
| 4 |
*.onnx
|
| 5 |
*.param
|
| 6 |
*.zip
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
*.onnx
|
| 5 |
*.param
|
| 6 |
*.zip
|
| 7 |
+
*.mnn
|
| 8 |
+
*.onnx
|
| 9 |
+
|
app.py
CHANGED
|
@@ -162,20 +162,35 @@ def start_process(input_file, input_url, input2, shape0_str, shape1_str, output_
|
|
| 162 |
yield [], log
|
| 163 |
output_base = output_folder + "/" + input2
|
| 164 |
pt_path = output_base + ".pt"
|
|
|
|
| 165 |
input_tensor0 = torch.rand(shape0) if any(shape0) else None
|
| 166 |
input_tensor1 = torch.rand(shape1) if any(shape1) else None
|
| 167 |
-
if
|
| 168 |
example_input = (input_tensor0, input_tensor1)
|
| 169 |
# 修改此处,去除 shape 字符串中的空格
|
| 170 |
-
|
| 171 |
-
|
|
|
|
| 172 |
example_input = input_tensor0
|
| 173 |
-
|
|
|
|
| 174 |
else:
|
| 175 |
example_input = input_tensor1
|
| 176 |
command = f"pnnx {pt_path}"
|
| 177 |
-
print_log(task_id, input2, "生成输入张量", "完成")
|
| 178 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 179 |
|
| 180 |
# 确保 output_folder 存在
|
| 181 |
if not os.path.exists(output_folder):
|
|
@@ -283,11 +298,13 @@ def start_process(input_file, input_url, input2, shape0_str, shape1_str, output_
|
|
| 283 |
yield [], log
|
| 284 |
returncode = process.poll()
|
| 285 |
if returncode != 0:
|
|
|
|
| 286 |
log += f"执行mnn命令失败,返回码: {returncode},命令: {mnn_command} \n"
|
| 287 |
else:
|
| 288 |
log += f"执行命令成功: {mnn_command} \n"
|
| 289 |
except Exception as e:
|
| 290 |
log += f"执行命令: {mnn_command} 失败,错误信息: {str(e)}\n"
|
|
|
|
| 291 |
|
| 292 |
if "NCNN" in output_type:
|
| 293 |
print_log(task_id, input2, "执行命令" + command, "开始")
|
|
@@ -310,10 +327,12 @@ def start_process(input_file, input_url, input2, shape0_str, shape1_str, output_
|
|
| 310 |
returncode = process.poll()
|
| 311 |
if returncode != 0:
|
| 312 |
log += f"执行命令失败,返回码: {returncode},命令: {command} \n"
|
|
|
|
| 313 |
else:
|
| 314 |
log += f"执行命令成功: {command} \n"
|
| 315 |
except Exception as e:
|
| 316 |
log += f"执行命令: {command} 失败,错误信息: {str(e)}\n"
|
|
|
|
| 317 |
|
| 318 |
# 查找 output_folder 目录下以 .ncnn.bin 和 .ncnn.param 结尾的文件
|
| 319 |
bin_files = [f for f in os.listdir(output_folder) if f.endswith('.ncnn.bin')]
|
|
@@ -387,7 +406,7 @@ with gr.Blocks() as demo:
|
|
| 387 |
# 绑定事件,修改输入参数
|
| 388 |
process = start_button.click(
|
| 389 |
fn=start_process,
|
| 390 |
-
inputs=[input1_file, input1, input2,
|
| 391 |
outputs=[output, log_textbox]
|
| 392 |
)
|
| 393 |
# 为取消按钮添加点击事件绑定,使用 cancels 属性取消 start_process 任务
|
|
@@ -405,11 +424,11 @@ with gr.Blocks() as demo:
|
|
| 405 |
["","https://github.com/Phhofm/models/releases/download/1xDeJPG/1xDeJPG_SRFormer_light.pth", "", "1,3,128,128", "0,0,0,0"],
|
| 406 |
["","https://objectstorage.us-phoenix-1.oraclecloud.com/n/ax6ygfvpvzka/b/open-modeldb-files/o/4x-WTP-ColorDS.pth", "", "1,3,128,128", "0,0,0,0"],
|
| 407 |
]
|
| 408 |
-
gr.Examples(
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
)
|
| 414 |
|
| 415 |
demo.launch()
|
|
|
|
| 162 |
yield [], log
|
| 163 |
output_base = output_folder + "/" + input2
|
| 164 |
pt_path = output_base + ".pt"
|
| 165 |
+
command = f"pnnx {pt_path}"
|
| 166 |
input_tensor0 = torch.rand(shape0) if any(shape0) else None
|
| 167 |
input_tensor1 = torch.rand(shape1) if any(shape1) else None
|
| 168 |
+
if input_tensor0 is not None and input_tensor1 is not None:
|
| 169 |
example_input = (input_tensor0, input_tensor1)
|
| 170 |
# 修改此处,去除 shape 字符串中的空格
|
| 171 |
+
if "Fixed" in output_type:
|
| 172 |
+
command = f"pnnx {pt_path} inputshape={str(shape0).replace(' ', '')} inputshape2={str(shape1).replace(' ', '')}"
|
| 173 |
+
elif input_tensor0 is not None:
|
| 174 |
example_input = input_tensor0
|
| 175 |
+
if "Fixed" in output_type:
|
| 176 |
+
command = f"pnnx {pt_path} inputshape={str(shape0).replace(' ', '')}"
|
| 177 |
else:
|
| 178 |
example_input = input_tensor1
|
| 179 |
command = f"pnnx {pt_path}"
|
|
|
|
| 180 |
|
| 181 |
+
input_tensor_str = ""
|
| 182 |
+
if input_tensor0 is not None:
|
| 183 |
+
input_tensor_str += str(input_tensor0.shape)
|
| 184 |
+
else:
|
| 185 |
+
input_tensor_str += "None"
|
| 186 |
+
|
| 187 |
+
if input_tensor1 is not None:
|
| 188 |
+
input_tensor_str += ", " + str(input_tensor1.shape)
|
| 189 |
+
else:
|
| 190 |
+
input_tensor_str += ", None"
|
| 191 |
+
print_log(task_id, input2, "生成输入张量"+input_tensor_str, "完成")
|
| 192 |
+
log +=input_tensor_str+ "\n"
|
| 193 |
+
yield [], log
|
| 194 |
|
| 195 |
# 确保 output_folder 存在
|
| 196 |
if not os.path.exists(output_folder):
|
|
|
|
| 298 |
yield [], log
|
| 299 |
returncode = process.poll()
|
| 300 |
if returncode != 0:
|
| 301 |
+
print_log(task_id, input2, f"转换为MNN模型,返回码: {returncode},命令: {mnn_command} ", "失败")
|
| 302 |
log += f"执行mnn命令失败,返回码: {returncode},命令: {mnn_command} \n"
|
| 303 |
else:
|
| 304 |
log += f"执行命令成功: {mnn_command} \n"
|
| 305 |
except Exception as e:
|
| 306 |
log += f"执行命令: {mnn_command} 失败,错误信息: {str(e)}\n"
|
| 307 |
+
print_log(task_id, input2, f"转换为MNN模型,错误信息: {str(e)}", "错误")
|
| 308 |
|
| 309 |
if "NCNN" in output_type:
|
| 310 |
print_log(task_id, input2, "执行命令" + command, "开始")
|
|
|
|
| 327 |
returncode = process.poll()
|
| 328 |
if returncode != 0:
|
| 329 |
log += f"执行命令失败,返回码: {returncode},命令: {command} \n"
|
| 330 |
+
print_log(task_id, input2, f"返回码: {returncode},命令: {command} ", "失败")
|
| 331 |
else:
|
| 332 |
log += f"执行命令成功: {command} \n"
|
| 333 |
except Exception as e:
|
| 334 |
log += f"执行命令: {command} 失败,错误信息: {str(e)}\n"
|
| 335 |
+
print_log(task_id, input2, f"错误信息: {str(e)}", "错误")
|
| 336 |
|
| 337 |
# 查找 output_folder 目录下以 .ncnn.bin 和 .ncnn.param 结尾的文件
|
| 338 |
bin_files = [f for f in os.listdir(output_folder) if f.endswith('.ncnn.bin')]
|
|
|
|
| 406 |
# 绑定事件,修改输入参数
|
| 407 |
process = start_button.click(
|
| 408 |
fn=start_process,
|
| 409 |
+
inputs=[input1_file, input1, input2, shape0_str, shape1_str, output_type],
|
| 410 |
outputs=[output, log_textbox]
|
| 411 |
)
|
| 412 |
# 为取消按钮添加点击事件绑定,使用 cancels 属性取消 start_process 任务
|
|
|
|
| 424 |
["","https://github.com/Phhofm/models/releases/download/1xDeJPG/1xDeJPG_SRFormer_light.pth", "", "1,3,128,128", "0,0,0,0"],
|
| 425 |
["","https://objectstorage.us-phoenix-1.oraclecloud.com/n/ax6ygfvpvzka/b/open-modeldb-files/o/4x-WTP-ColorDS.pth", "", "1,3,128,128", "0,0,0,0"],
|
| 426 |
]
|
| 427 |
+
# gr.Examples(
|
| 428 |
+
# examples=examples,
|
| 429 |
+
# inputs=[input1_file, input1, input2, shape0_str, shape1_str],
|
| 430 |
+
# outputs=[output, log_textbox],
|
| 431 |
+
# fn=start_process
|
| 432 |
+
# )
|
| 433 |
|
| 434 |
demo.launch()
|