in optimum/exporters/neuron/convert.py [0:0]
def add_stable_diffusion_compiler_args(config, compiler_args):
# Combine the model name and its path to identify which is the subcomponent in Stable Diffusion pipeline
identifier = getattr(config._config, "_name_or_path", "") + " " + getattr(config._config, "_class_name", "")
identifier = identifier.lower()
sd_components = ["text_encoder", "vae", "vae_encoder", "vae_decoder", "controlnet"]
if any(component in identifier for component in sd_components):
compiler_args.append("--enable-fast-loading-neuron-binaries")
# unet or transformer or controlnet
if any(model_type in identifier for model_type in ["unet", "transformer", "controlnet"]):
# SDXL unet doesn't support fast loading neuron binaries(sdk 2.19.1)
if not getattr(config, "is_sdxl", False):
compiler_args.append("--enable-fast-loading-neuron-binaries")
if "unet" in identifier or "controlnet" in identifier:
compiler_args.append("--model-type=unet-inference")
return compiler_args