optimum/onnxruntime/__init__.py (178 lines of code) (raw):
# Copyright 2021 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING
from transformers.utils import OptionalDependencyNotAvailable, _LazyModule
from ..utils import is_diffusers_available
_import_structure = {
"configuration": [
"CalibrationConfig",
"AutoCalibrationConfig",
"QuantizationMode",
"AutoQuantizationConfig",
"OptimizationConfig",
"AutoOptimizationConfig",
"ORTConfig",
"QuantizationConfig",
],
"modeling_ort": [
"ORTModel",
"ORTModelForAudioClassification",
"ORTModelForAudioFrameClassification",
"ORTModelForAudioXVector",
"ORTModelForCustomTasks",
"ORTModelForCTC",
"ORTModelForFeatureExtraction",
"ORTModelForImageClassification",
"ORTModelForMaskedLM",
"ORTModelForMultipleChoice",
"ORTModelForQuestionAnswering",
"ORTModelForSemanticSegmentation",
"ORTModelForSequenceClassification",
"ORTModelForTokenClassification",
"ORTModelForImageToImage",
],
"modeling_seq2seq": [
"ORTModelForSeq2SeqLM",
"ORTModelForSpeechSeq2Seq",
"ORTModelForVision2Seq",
"ORTModelForPix2Struct",
],
"modeling_decoder": ["ORTModelForCausalLM"],
"optimization": ["ORTOptimizer"],
"quantization": ["ORTQuantizer"],
"trainer": ["ORTTrainer"],
"trainer_seq2seq": ["ORTSeq2SeqTrainer"],
"training_args": ["ORTTrainingArguments"],
"training_args_seq2seq": ["ORTSeq2SeqTrainingArguments"],
"utils": [
"ONNX_DECODER_NAME",
"ONNX_DECODER_MERGED_NAME",
"ONNX_DECODER_WITH_PAST_NAME",
"ONNX_ENCODER_NAME",
"ONNX_WEIGHTS_NAME",
"ORTQuantizableOperator",
],
}
try:
if not is_diffusers_available():
raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
_import_structure[".utils.dummy_diffusers_objects"] = [
"ORTDiffusionPipeline",
"ORTPipelineForText2Image",
"ORTPipelineForImage2Image",
"ORTPipelineForInpainting",
# flux
"ORTFluxPipeline",
# lcm
"ORTLatentConsistencyModelImg2ImgPipeline",
"ORTLatentConsistencyModelPipeline",
# sd3
"ORTStableDiffusion3Img2ImgPipeline",
"ORTStableDiffusion3InpaintPipeline",
"ORTStableDiffusion3Pipeline",
# sd
"ORTStableDiffusionImg2ImgPipeline",
"ORTStableDiffusionInpaintPipeline",
"ORTStableDiffusionPipeline",
# xl
"ORTStableDiffusionXLImg2ImgPipeline",
"ORTStableDiffusionXLInpaintPipeline",
"ORTStableDiffusionXLPipeline",
]
else:
_import_structure["modeling_diffusion"] = [
"ORTDiffusionPipeline",
"ORTPipelineForText2Image",
"ORTPipelineForImage2Image",
"ORTPipelineForInpainting",
# flux
"ORTFluxPipeline",
# lcm
"ORTLatentConsistencyModelImg2ImgPipeline",
"ORTLatentConsistencyModelPipeline",
# sd3
"ORTStableDiffusion3Img2ImgPipeline",
"ORTStableDiffusion3InpaintPipeline",
"ORTStableDiffusion3Pipeline",
# sd
"ORTStableDiffusionImg2ImgPipeline",
"ORTStableDiffusionInpaintPipeline",
"ORTStableDiffusionPipeline",
# xl
"ORTStableDiffusionXLImg2ImgPipeline",
"ORTStableDiffusionXLInpaintPipeline",
"ORTStableDiffusionXLPipeline",
]
# Direct imports for type-checking
if TYPE_CHECKING:
from .configuration import ORTConfig, QuantizationConfig
from .modeling_decoder import ORTModelForCausalLM
from .modeling_ort import (
ORTModel,
ORTModelForAudioClassification,
ORTModelForAudioFrameClassification,
ORTModelForAudioXVector,
ORTModelForCTC,
ORTModelForCustomTasks,
ORTModelForFeatureExtraction,
ORTModelForImageClassification,
ORTModelForImageToImage,
ORTModelForMaskedLM,
ORTModelForMultipleChoice,
ORTModelForQuestionAnswering,
ORTModelForSemanticSegmentation,
ORTModelForSequenceClassification,
ORTModelForTokenClassification,
)
from .modeling_seq2seq import (
ORTModelForPix2Struct,
ORTModelForSeq2SeqLM,
ORTModelForSpeechSeq2Seq,
ORTModelForVision2Seq,
)
from .optimization import ORTOptimizer
from .quantization import ORTQuantizer
from .trainer import ORTTrainer
from .trainer_seq2seq import ORTSeq2SeqTrainer
from .training_args import ORTTrainingArguments
from .training_args_seq2seq import ORTSeq2SeqTrainingArguments
from .utils import (
ONNX_DECODER_MERGED_NAME,
ONNX_DECODER_NAME,
ONNX_DECODER_WITH_PAST_NAME,
ONNX_ENCODER_NAME,
ONNX_WEIGHTS_NAME,
ORTQuantizableOperator,
)
try:
if not is_diffusers_available():
raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
from ..utils.dummy_diffusers_objects import (
# generic entrypoint
ORTDiffusionPipeline,
# flux
ORTFluxPipeline,
# lcm
ORTLatentConsistencyModelImg2ImgPipeline,
ORTLatentConsistencyModelPipeline,
# task-specific entrypoints
ORTPipelineForImage2Image,
ORTPipelineForInpainting,
ORTPipelineForText2Image,
# sd3
ORTStableDiffusion3Img2ImgPipeline,
ORTStableDiffusion3InpaintPipeline,
ORTStableDiffusion3Pipeline,
# sd
ORTStableDiffusionImg2ImgPipeline,
ORTStableDiffusionInpaintPipeline,
ORTStableDiffusionPipeline,
# xl
ORTStableDiffusionXLImg2ImgPipeline,
ORTStableDiffusionXLInpaintPipeline,
ORTStableDiffusionXLPipeline,
)
else:
from .modeling_diffusion import (
# generic entrypoint
ORTDiffusionPipeline,
# flux
ORTFluxPipeline,
# lcm
ORTLatentConsistencyModelImg2ImgPipeline,
ORTLatentConsistencyModelPipeline,
# task-specific entrypoints
ORTPipelineForImage2Image,
ORTPipelineForInpainting,
ORTPipelineForText2Image,
# sd3
ORTStableDiffusion3Img2ImgPipeline,
ORTStableDiffusion3InpaintPipeline,
ORTStableDiffusion3Pipeline,
# sd
ORTStableDiffusionImg2ImgPipeline,
ORTStableDiffusionInpaintPipeline,
ORTStableDiffusionPipeline,
# xl
ORTStableDiffusionXLImg2ImgPipeline,
ORTStableDiffusionXLInpaintPipeline,
ORTStableDiffusionXLPipeline,
)
else:
import sys
sys.modules[__name__] = _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)