Error when converting from .onnx to .hef

I’ve gotten to the final step, but when I run the final command I get this output.

(hailodfc) sepu2002@SantiASUS:~$ hailomz compile yolov8s --ckpt=fire100e.onnx --hw-arch hailo8l --calib-path train/image
s/ --classes 1 --performance
<Hailo Model Zoo INFO> Start run for network yolov8s ...
<Hailo Model Zoo INFO> Initializing the hailo8l runner...
[info] Translation started on ONNX model yolov8s
[info] Restored ONNX model yolov8s (completion time: 00:00:00.17)
[info] Extracted ONNXRuntime meta-data for Hailo model (completion time: 00:00:00.53)
[info] Simplified ONNX model for a parsing retry attempt (completion time: 00:00:00.99)
[info] According to recommendations, retrying parsing with end node names: ['/model.22/Concat_3'].
[info] Translation started on ONNX model yolov8s
[info] Restored ONNX model yolov8s (completion time: 00:00:00.09)
[info] Extracted ONNXRuntime meta-data for Hailo model (completion time: 00:00:00.38)
[info] NMS structure of yolov8 (or equivalent architecture) was detected.
[info] In order to use HailoRT post-processing capabilities, these end node names should be used: /model.22/cv2.0/cv2.0.2/Conv /model.22/cv3.0/cv3.0.2/Conv /model.22/cv2.1/cv2.1.2/Conv /model.22/cv3.1/cv3.1.2/Conv /model.22/cv2.2/cv2.2.2/Conv /model.22/cv3.2/cv3.2.2/Conv.
[info] Start nodes mapped from original model: 'images': 'yolov8s/input_layer1'.
[info] End nodes mapped from original model: '/model.22/Concat_3'.
[info] Translation completed on ONNX model yolov8s (completion time: 00:00:00.69)
[info] Translation started on ONNX model yolov8s
[info] Restored ONNX model yolov8s (completion time: 00:00:00.08)
[info] Extracted ONNXRuntime meta-data for Hailo model (completion time: 00:00:00.35)
[info] NMS structure of yolov8 (or equivalent architecture) was detected.
[info] In order to use HailoRT post-processing capabilities, these end node names should be used: /model.22/cv2.0/cv2.0.2/Conv /model.22/cv3.0/cv3.0.2/Conv /model.22/cv2.1/cv2.1.2/Conv /model.22/cv3.1/cv3.1.2/Conv /model.22/cv2.2/cv2.2.2/Conv /model.22/cv3.2/cv3.2.2/Conv.
[info] Start nodes mapped from original model: 'images': 'yolov8s/input_layer1'.
[info] End nodes mapped from original model: '/model.22/cv2.0/cv2.0.2/Conv', '/model.22/cv3.0/cv3.0.2/Conv', '/model.22/cv2.1/cv2.1.2/Conv', '/model.22/cv3.1/cv3.1.2/Conv', '/model.22/cv2.2/cv2.2.2/Conv', '/model.22/cv3.2/cv3.2.2/Conv'.
[info] Translation completed on ONNX model yolov8s (completion time: 00:00:00.67)
[info] Appending model script commands to yolov8s from string
[info] Added nms postprocess command to model script.
Traceback (most recent call last):
  File "/home/sepu2002/hailodfc/bin/hailomz", line 33, in <module>
    sys.exit(load_entry_point('hailo-model-zoo', 'console_scripts', 'hailomz')())
  File "/home/sepu2002/hailo_model_zoo/hailo_model_zoo/main.py", line 122, in main
    run(args)
  File "/home/sepu2002/hailo_model_zoo/hailo_model_zoo/main.py", line 111, in run
    return handlers[args.command](args)
  File "/home/sepu2002/hailo_model_zoo/hailo_model_zoo/main_driver.py", line 250, in compile
    runner = _ensure_optimized(runner, logger, args, network_info)
  File "/home/sepu2002/hailo_model_zoo/hailo_model_zoo/main_driver.py", line 73, in _ensure_optimized
    runner = _ensure_parsed(runner, logger, network_info, args)
  File "/home/sepu2002/hailo_model_zoo/hailo_model_zoo/main_driver.py", line 110, in _ensure_parsed
    return parse_model(runner, network_info, ckpt_path=args.ckpt_path, results_dir=args.results_dir, logger=logger)
  File "/home/sepu2002/hailo_model_zoo/hailo_model_zoo/core/main_utils.py", line 146, in parse_model
    runner.save_har(results_dir / f"{network_info.network.network_name}.har")
AttributeError: 'NoneType' object has no attribute 'save_har'
``` Any idea on what could cause it?

Hey @Santiago_Sepulveda,

Welcome to the Hailo Community!

When you get AttributeError: 'NoneType' object has no attribute 'save_har', it means your runner object is None. This happens when the model parsing or optimization step fails silently.

From my experience this usually comes down to a few common issues:

  1. Check your --ckpt path
    • Is fire100e.onnx in the location you specified?
    • Try using an explicit path like --ckpt=./fire100e.onnx
  2. Validate your ONNX model
    • Even if it loads, it might contain layers Hailo doesn’t support
    • If you exported from YOLOv8, certain export flags can cause parsing issues
  3. Verify your calibration images
    • Your --calib-path is set to train/images/
    • Make sure this folder exists and contains actual JPG/PNG files
    • Images should match your expected input format and size

Try this solution:

hailomz parse yolov8s --ckpt=./fire100e.onnx

If this succeeds, then move on to the quantize and optimize commands before trying compile again.

And to validate your ONNX file:

python -c "import onnx; onnx.checker.check_model(onnx.load('fire100e.onnx'))"

Let me know if you run into more issues!