At the stage of loading into the pipeline, single_file is in the same state as from_pretrained, so either is fine. However, since single_file performs conversion on the fly, from_pretrained is slightly faster to load.
If you want to save in the converted state, just do as follows.
path_diffusers = "./model_diffusers"
path = hf_hub_download("username/model-repo", "model.safetensors")
pipe = DiffusionPipeline.from_single_file(path)
pipe.save_pretrained(path_diffusers)
#new_pipe = DiffusionPipeline.from_pretrained(path_diffusers) # if load