optimum-rbln 0.8.1a0__tar.gz → 0.8.1a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- optimum_rbln-0.8.1a2/.github/version.yaml +1 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/PKG-INFO +2 -2
- optimum_rbln-0.8.1a2/examples/advanced/custom_class.py +159 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/pyproject.toml +1 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/__init__.py +2 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/__version__.py +2 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/configuration_utils.py +53 -33
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/models/configuration_autoencoder_kl.py +9 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/models/configuration_controlnet.py +4 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/models/configuration_prior_transformer.py +9 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/models/configuration_transformer_sd3.py +4 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/models/configuration_unet_2d_condition.py +9 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/models/configuration_vq_model.py +9 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_controlnet.py +33 -9
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_kandinsky2_2.py +30 -12
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion.py +22 -6
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_3.py +16 -6
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/pipelines/configuration_stable_diffusion_xl.py +16 -6
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/modeling_diffusers.py +16 -26
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/autoencoders/autoencoder_kl.py +11 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/autoencoders/vae.py +1 -8
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/autoencoders/vq_model.py +11 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/controlnet.py +13 -7
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/transformers/prior_transformer.py +10 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/transformers/transformer_sd3.py +2 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/unets/unet_2d_condition.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/controlnet/multicontrolnet.py +1 -4
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_img2img.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/controlnet/pipeline_controlnet_sd_xl_img2img.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_combined.py +48 -27
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_img2img.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_inpaint.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/pipeline_kandinsky2_2_prior.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_img2img.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/pipeline_stable_diffusion_inpaint.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_img2img.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/pipeline_stable_diffusion_3_inpaint.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_img2img.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/pipeline_stable_diffusion_xl_inpaint.py +7 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/modeling.py +33 -35
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/modeling_base.py +45 -107
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/__init__.py +39 -47
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/configuration_generic.py +16 -13
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/modeling_generic.py +18 -19
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/modeling_rope_utils.py +5 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/__init__.py +46 -4
- {optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/xlm_roberta → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/audio_spectrogram_transformer}/__init__.py +3 -2
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/configuration_audio_spectrogram_transformer.py +21 -0
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/phi/modeling_phi.py → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/audio_spectrogram_transformer/modeling_audio_spectrogram_transformer.py +8 -14
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/auto/auto_factory.py +35 -12
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/bart/bart_architecture.py +14 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/blip_2/modeling_blip_2.py +35 -4
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/clip/configuration_clip.py +3 -3
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/clip/modeling_clip.py +11 -12
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +223 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/decoderonly/decoderonly_architecture.py +102 -35
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/decoderonly/modeling_decoderonly.py +229 -175
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/distilbert/__init__.py +19 -0
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/distilbert/configuration_distilbert.py +19 -0
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/distilbert/modeling_distilbert.py +3 -3
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/exaone/configuration_exaone.py +42 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/exaone/exaone_architecture.py +5 -1
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +107 -0
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py +42 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gemma/gemma_architecture.py +5 -1
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +83 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gemma3/configuration_gemma3.py +3 -3
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +214 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gemma3/modeling_gemma3.py +106 -236
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gpt2/configuration_gpt2.py +4 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gpt2/gpt2_architecture.py +6 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/idefics3/configuration_idefics3.py +12 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/idefics3/modeling_idefics3.py +41 -4
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/llama/configuration_llama.py +24 -1
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/llama/modeling_llama.py +83 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/llava_next/configuration_llava_next.py +2 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/llava_next/modeling_llava_next.py +32 -4
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/midm/configuration_midm.py +24 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/midm/midm_architecture.py +6 -1
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/midm/modeling_midm.py +106 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/mistral/configuration_mistral.py +24 -1
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +92 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/opt/configuration_opt.py +4 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/opt/modeling_opt.py +10 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/opt/opt_architecture.py +7 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/phi/configuration_phi.py +24 -1
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/phi/modeling_phi.py +83 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/phi/phi_architecture.py +1 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/qwen2/configuration_qwen2.py +24 -1
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +97 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +15 -3
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +58 -27
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/qwen2_5_vl_architecture.py +47 -2
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/resnet/__init__.py +23 -0
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/resnet/configuration_resnet.py +3 -3
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/resnet/modeling_resnet.py +22 -0
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/roberta/__init__.py +24 -0
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/roberta/configuration_roberta.py +23 -0
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/roberta/modeling_roberta.py +23 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/seq2seq/__init__.py +1 -1
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq2.py → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/seq2seq/configuration_seq2seq.py +2 -2
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/seq2seq/modeling_seq2seq.py +1 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/seq2seq/seq2seq_architecture.py +41 -3
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/siglip/configuration_siglip.py +3 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/siglip/modeling_siglip.py +62 -21
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/t5/modeling_t5.py +46 -4
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/t5/t5_architecture.py +5 -1
- {optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/time_series_transformers → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/time_series_transformer}/__init__.py +1 -1
- {optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/time_series_transformers → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/time_series_transformer}/configuration_time_series_transformer.py +2 -2
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/time_series_transformers/modeling_time_series_transformers.py → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/time_series_transformer/modeling_time_series_transformer.py +14 -9
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/gemma/configuration_gemma.py → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/vit/__init__.py +3 -3
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/vit/configuration_vit.py +19 -0
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/vit/modeling_vit.py +19 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/wav2vec2/__init__.py +1 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/wav2vec2/modeling_wav2vec2.py +1 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/whisper/configuration_whisper.py +3 -1
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/whisper/modeling_whisper.py +35 -15
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/xlm_roberta/__init__.py +30 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/xlm_roberta/configuration_xlm_roberta.py +15 -2
- optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/xlm_roberta/modeling_xlm_roberta.py +29 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/model_utils.py +20 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/submodule.py +6 -8
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/test_config.py +84 -3
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/test_transformers.py +1 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/uv.lock +973 -960
- optimum_rbln-0.8.1a0/.github/version.yaml +0 -1
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/configuration_alias.py +0 -49
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/modeling_alias.py +0 -53
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/decoderonly/configuration_decoderonly.py +0 -126
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/exaone/modeling_exaone.py +0 -46
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/gemma/modeling_gemma.py +0 -34
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/gemma3/gemma3_architecture.py +0 -446
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/llama/modeling_llama.py +0 -34
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/midm/modeling_midm.py +0 -45
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/mistral/modeling_mistral.py +0 -34
- optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/qwen2/modeling_qwen2.py +0 -34
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/ISSUE_TEMPLATE/model_request.md +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/pull_request_template.md +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/scripts/auto_code_review.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/scripts/validate_pr_checklist.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/auto_code_review.yml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/check_code_quality.yml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/deploy-on-tag.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/deploy.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/pr-title-check.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/pr_checklist_validator.yml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/rbln_check_compiler.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/rbln_dispatch_pytest.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/rbln_optimum_inference_test.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/rbln_optimum_pytest.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/rbln_scheduled_test.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.github/workflows/rbln_trigger_on_pr.yaml +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/.gitignore +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/CODE_OF_CONDUCT.md +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/CONTRIBUTING.md +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/LICENSE +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/README.md +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/assets/rbln_logo.png +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/audio-classification/run_ast_audio_classification.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/depth-estimation/run_dpt.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/image-classification/run_image_classification.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/image-classification/run_vit_image_classification.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/image-to-text/run_idefics3.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/image-to-text/run_llava_next_image_to_text.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/kandinsky2_2/run_kandinsky2_2.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/kandinsky2_2/run_kandinsky2_2_combined.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/kandinsky2_2/run_kandinsky2_2_img2img.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/kandinsky2_2/run_kandinsky2_2_img2img_combined.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/kandinsky2_2/run_kandinsky2_2_inpaint.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/kandinsky2_2/run_kandinsky2_2_inpaint_combined.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/kandinsky2_2/run_kandinsky2_2_prior_interpolate.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/question-answering/run_question_answering.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/speech-recognition/run_wav2vec2.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/speech-recognition/run_whisper.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/stable-diffusion/run_stable_diffusion.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/stable-diffusion/run_stable_diffusion_controlnet.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/stable-diffusion/run_stable_diffusion_img2img.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/stable-diffusion/run_stable_diffusion_img2img_controlnet.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/stable-diffusion/run_stable_diffusion_inpaint.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/stable-diffusion/run_stable_diffusion_lora.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/stable-diffusion/run_stable_diffusion_multicontrolnet.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text-classification/run_bge_m3_text_classification.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text-classification/run_bge_reranker_v2_m3_text_classification.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text-classification/run_secureBERT.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text-classification/run_t5_classification.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text-classification/run_twitter_roberta_text_classification.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text2text-generation/run_bart_text2text_generation.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text2text-generation/run_llama_peft.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/text2text-generation/run_llama_text2text_generation.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/examples/time-series-forecasting/run_time_series_forecasting.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/scripts/uv-lock.sh +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/scripts/uv-sync.sh +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/models/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/configurations/pipelines/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/autoencoders/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/transformers/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/models/unets/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/controlnet/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/kandinsky2_2/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_3/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/diffusers/pipelines/stable_diffusion_xl/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/ops/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/ops/attn.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/ops/flash_attn.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/ops/kv_cache_update.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/ops/linear.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/ops/sliding_window_attn.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/auto/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/auto/modeling_auto.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/bart/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/bart/configuration_bart.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/bart/modeling_bart.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/bert/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/bert/configuration_bert.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/bert/modeling_bert.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/blip_2/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/blip_2/configuration_blip_2.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/clip/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/decoderonly/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/dpt/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/dpt/configuration_dpt.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/dpt/modeling_dpt.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/exaone/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gemma/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gemma3/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gpt2/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/gpt2/modeling_gpt2.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/idefics3/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/llama/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/llama/llama_architecture.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/llava_next/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/midm/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/mistral/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/mistral/mistral_architecture.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/opt/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/phi/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/qwen2/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/qwen2/qwen2_architecture.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/qwen2_5_vl/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/siglip/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/t5/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/t5/configuration_t5.py +0 -0
- {optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/time_series_transformers → optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/time_series_transformer}/time_series_transformers_architecture.py +0 -0
- /optimum_rbln-0.8.1a0/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec.py → /optimum_rbln-0.8.1a2/src/optimum/rbln/transformers/models/wav2vec2/configuration_wav2vec2.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/whisper/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/whisper/generation_whisper.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/models/whisper/whisper_architecture.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/utils/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/transformers/utils/rbln_quantization.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/decorator_utils.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/hub.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/import_utils.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/logging.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/runtime_utils.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/src/optimum/rbln/utils/save_utils.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/__init__.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/psnr.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/requirements_sdxl.txt +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/run_stable_diffusion_xl_base.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/test_base.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/test_diffusers.py +0 -0
- {optimum_rbln-0.8.1a0 → optimum_rbln-0.8.1a2}/tests/test_llm.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
rebel_compiler_version: 0.8.1.dev142+gab6ad3c7
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: optimum-rbln
|
3
|
-
Version: 0.8.
|
3
|
+
Version: 0.8.1a2
|
4
4
|
Summary: Optimum RBLN is the interface between the HuggingFace Transformers and Diffusers libraries and RBLN accelerators. It provides a set of tools enabling easy model loading and inference on single and multiple rbln device settings for different downstream tasks.
|
5
5
|
Project-URL: Homepage, https://rebellions.ai
|
6
6
|
Project-URL: Documentation, https://docs.rbln.ai
|
@@ -28,7 +28,7 @@ Requires-Dist: packaging>=24.1
|
|
28
28
|
Requires-Dist: torch==2.6.0
|
29
29
|
Requires-Dist: torchaudio<=2.6.0
|
30
30
|
Requires-Dist: torchvision<=0.21.0
|
31
|
-
Requires-Dist: transformers==4.
|
31
|
+
Requires-Dist: transformers==4.51.3
|
32
32
|
Description-Content-Type: text/markdown
|
33
33
|
|
34
34
|
|
@@ -0,0 +1,159 @@
|
|
1
|
+
"""
|
2
|
+
# Advanced Tutorial: Creating Custom RBLN Classes
|
3
|
+
|
4
|
+
This tutorial demonstrates how to create custom RBLN model classes for use with the optimum-rbln framework.
|
5
|
+
|
6
|
+
## Requirements for Custom Class Creation:
|
7
|
+
|
8
|
+
1. You must create two classes:
|
9
|
+
- A custom model class that inherits from RBLNModel
|
10
|
+
- A custom config class that inherits from RBLNModelConfig
|
11
|
+
|
12
|
+
2. The naming convention is critical:
|
13
|
+
- Model class: RBLN<OriginalModelName> (e.g., RBLNResNetModel)
|
14
|
+
- Config class: RBLN<OriginalModelName>Config (e.g., RBLNResNetModelConfig)
|
15
|
+
|
16
|
+
3. Your custom class MUST implement the _update_rbln_config method
|
17
|
+
- This method configures input shapes and compilation settings
|
18
|
+
|
19
|
+
4. You must register both classes with the auto registration system
|
20
|
+
- This enables the framework to discover and use your custom classes
|
21
|
+
|
22
|
+
Important: Custom RBLN classes can only be created for models that exist in
|
23
|
+
the transformers or diffusers libraries. You cannot create custom RBLN classes
|
24
|
+
for completely custom architectures without a corresponding HuggingFace implementation.
|
25
|
+
|
26
|
+
This example demonstrates creating a custom RBLN class for the ResNet model from transformers.
|
27
|
+
"""
|
28
|
+
|
29
|
+
from typing import TYPE_CHECKING, Optional, Tuple, Union
|
30
|
+
|
31
|
+
import torch
|
32
|
+
from transformers import ResNetModel # noqa: F401
|
33
|
+
from transformers.models.resnet.modeling_resnet import BaseModelOutputWithPoolingAndNoAttention
|
34
|
+
|
35
|
+
from optimum.rbln import RBLNAutoConfig, RBLNAutoModel, RBLNCompileConfig, RBLNModel, RBLNModelConfig
|
36
|
+
|
37
|
+
|
38
|
+
if TYPE_CHECKING:
|
39
|
+
from transformers import AutoFeatureExtractor, AutoProcessor, AutoTokenizer, PretrainedConfig, PreTrainedModel
|
40
|
+
|
41
|
+
|
42
|
+
# --------------------------------------------------------
|
43
|
+
# STEP 1: Create a custom model class that extends RBLNModel
|
44
|
+
# --------------------------------------------------------
|
45
|
+
# A custom RBLN model class must:
|
46
|
+
# - Follow the naming pattern: RBLN<OriginalModelName>
|
47
|
+
# - Implement the _update_rbln_config method (required)
|
48
|
+
# - Define a proper forward method matching the original model's inputs/outputs
|
49
|
+
#
|
50
|
+
# The _update_rbln_config method is critical - it sets up the input tensor
|
51
|
+
# specifications and other compilation parameters needed for the RBLN compiler.
|
52
|
+
#
|
53
|
+
# For our ResNet example, we need to:
|
54
|
+
# 1. Specify the input tensor shape for images (batch_size, channels, height, width)
|
55
|
+
# 2. Set the proper configuration options
|
56
|
+
# 3. Return the updated RBLN configuration
|
57
|
+
class RBLNResNetModel(RBLNModel):
|
58
|
+
@classmethod
|
59
|
+
def _update_rbln_config(
|
60
|
+
cls,
|
61
|
+
preprocessors: Optional[Union["AutoFeatureExtractor", "AutoProcessor", "AutoTokenizer"]] = None,
|
62
|
+
model: Optional["PreTrainedModel"] = None,
|
63
|
+
model_config: Optional["PretrainedConfig"] = None,
|
64
|
+
rbln_config: Optional["RBLNResNetModelConfig"] = None,
|
65
|
+
) -> "RBLNResNetModelConfig":
|
66
|
+
# Set image_size if not provided
|
67
|
+
if rbln_config.image_size is None:
|
68
|
+
if rbln_config.image_size is None:
|
69
|
+
rbln_config.image_size = model_config.image_size
|
70
|
+
|
71
|
+
if rbln_config.image_size is None:
|
72
|
+
raise ValueError("`image_size` should be specified!")
|
73
|
+
|
74
|
+
# Define input tensor specification for the compiler
|
75
|
+
# Format: (tensor_name, tensor_shape, dtype)
|
76
|
+
input_info = [
|
77
|
+
(
|
78
|
+
"pixel_values",
|
79
|
+
[rbln_config.batch_size, 3, rbln_config.image_size[0], rbln_config.image_size[1]],
|
80
|
+
"float32",
|
81
|
+
)
|
82
|
+
]
|
83
|
+
|
84
|
+
# Configure compilation settings
|
85
|
+
rbln_config.set_compile_cfgs([RBLNCompileConfig(input_info=input_info)])
|
86
|
+
return rbln_config
|
87
|
+
|
88
|
+
def forward(self, pixel_values, return_dict: Optional[bool] = None, **kwargs):
|
89
|
+
return_dict = return_dict if return_dict is not None else self.config.use_return_dict
|
90
|
+
|
91
|
+
# self.model is a list of rebel.Runtime objects
|
92
|
+
# See https://docs.rbln.ai/software/api/python/python_api.html#rebel.rebel_runtime.Runtime for more details
|
93
|
+
output = self.model[0](pixel_values)
|
94
|
+
|
95
|
+
if not return_dict:
|
96
|
+
return output
|
97
|
+
else:
|
98
|
+
return BaseModelOutputWithPoolingAndNoAttention(last_hidden_state=output[0], pooler_output=output[1])
|
99
|
+
|
100
|
+
|
101
|
+
# ----------------------------------------------------------------
|
102
|
+
# STEP 2: Create a custom configuration class that extends RBLNModelConfig
|
103
|
+
# ----------------------------------------------------------------
|
104
|
+
# The configuration class must:
|
105
|
+
# - Follow the naming pattern: RBLN<OriginalModelName>Config
|
106
|
+
# - Define model-specific parameters needed for compilation
|
107
|
+
#
|
108
|
+
# For ResNet, we need:
|
109
|
+
# - batch_size: Batch size for inference
|
110
|
+
# - image_size: Input image dimensions (height, width)
|
111
|
+
class RBLNResNetModelConfig(RBLNModelConfig):
|
112
|
+
def __init__(self, batch_size: int = None, image_size: Optional[Tuple[int, int]] = None, **kwargs):
|
113
|
+
super().__init__(**kwargs)
|
114
|
+
self.batch_size = batch_size or 1
|
115
|
+
self.image_size = image_size or (224, 224)
|
116
|
+
|
117
|
+
|
118
|
+
# ----------------------------------------------------------------
|
119
|
+
# STEP 3: Register both classes with the auto registration system
|
120
|
+
# ----------------------------------------------------------------
|
121
|
+
# Registration is essential for the RBLN framework to:
|
122
|
+
# 1. Discover your custom classes when needed
|
123
|
+
# 2. Enable using RBLNAutoModel.from_pretrained() with your model type
|
124
|
+
# 3. Connect your configuration class to the model class in the framework
|
125
|
+
RBLNAutoModel.register(RBLNResNetModel)
|
126
|
+
RBLNAutoConfig.register(RBLNResNetModelConfig)
|
127
|
+
|
128
|
+
|
129
|
+
# ----------------------------------------------------------------
|
130
|
+
# STEP 4: Usage Example - Creating and using the custom RBLN model
|
131
|
+
# ----------------------------------------------------------------
|
132
|
+
# Initialize the model from a pretrained HuggingFace model
|
133
|
+
# The 'export=True' parameter triggers the model compilation process
|
134
|
+
# rbln_image_size and rbln_batch_size are passed to the custom configuration
|
135
|
+
my_model = RBLNResNetModel.from_pretrained(
|
136
|
+
"microsoft/resnet-50", export=True, rbln_image_size=(224, 224), rbln_batch_size=1
|
137
|
+
)
|
138
|
+
|
139
|
+
# Save the compiled model for later use
|
140
|
+
my_model.save_pretrained("my_resnet_model_saved")
|
141
|
+
|
142
|
+
# Create a random input tensor for demonstration
|
143
|
+
# The shape must match what we defined in _update_rbln_config
|
144
|
+
random_image_input = torch.randn(1, 3, 224, 224)
|
145
|
+
|
146
|
+
# Run inference with the compiled model
|
147
|
+
output = my_model(random_image_input)
|
148
|
+
|
149
|
+
# Print each key-value pair in the output dictionary
|
150
|
+
for key, value in output.items():
|
151
|
+
print(key, value)
|
152
|
+
|
153
|
+
|
154
|
+
# ----------------------------------------------------------------
|
155
|
+
# STEP 5: Loading a saved RBLN model
|
156
|
+
# ----------------------------------------------------------------
|
157
|
+
# Load the model we just saved - no need to recompile
|
158
|
+
my_model_reloaded = RBLNResNetModel.from_pretrained("my_resnet_model_saved")
|
159
|
+
print(my_model_reloaded)
|
@@ -26,6 +26,7 @@ _import_structure = {
|
|
26
26
|
"RBLNModel",
|
27
27
|
],
|
28
28
|
"configuration_utils": [
|
29
|
+
"RBLNAutoConfig",
|
29
30
|
"RBLNCompileConfig",
|
30
31
|
"RBLNModelConfig",
|
31
32
|
],
|
@@ -192,6 +193,7 @@ _import_structure = {
|
|
192
193
|
|
193
194
|
if TYPE_CHECKING:
|
194
195
|
from .configuration_utils import (
|
196
|
+
RBLNAutoConfig,
|
195
197
|
RBLNCompileConfig,
|
196
198
|
RBLNModelConfig,
|
197
199
|
)
|
@@ -17,5 +17,5 @@ __version__: str
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
18
18
|
version_tuple: VERSION_TUPLE
|
19
19
|
|
20
|
-
__version__ = version = '0.8.
|
21
|
-
__version_tuple__ = version_tuple = (0, 8, 1, '
|
20
|
+
__version__ = version = '0.8.1a2'
|
21
|
+
__version_tuple__ = version_tuple = (0, 8, 1, 'a2')
|
@@ -19,6 +19,7 @@ from dataclasses import asdict, dataclass
|
|
19
19
|
from pathlib import Path
|
20
20
|
from typing import Any, Dict, List, Optional, Protocol, Tuple, Type, Union, runtime_checkable
|
21
21
|
|
22
|
+
import numpy as np
|
22
23
|
import torch
|
23
24
|
|
24
25
|
from .__version__ import __version__
|
@@ -61,7 +62,7 @@ class RBLNCompileConfig:
|
|
61
62
|
tensor_parallel_size: Optional[int] = None
|
62
63
|
|
63
64
|
@staticmethod
|
64
|
-
def normalize_dtype(dtype):
|
65
|
+
def normalize_dtype(dtype: Union[str, torch.dtype, np.dtype]) -> str:
|
65
66
|
"""
|
66
67
|
Convert framework-specific dtype to string representation.
|
67
68
|
i.e. torch.float32 -> "float32"
|
@@ -70,7 +71,7 @@ class RBLNCompileConfig:
|
|
70
71
|
dtype: The input dtype (can be string, torch dtype, or numpy dtype).
|
71
72
|
|
72
73
|
Returns:
|
73
|
-
|
74
|
+
The normalized string representation of the dtype.
|
74
75
|
"""
|
75
76
|
if isinstance(dtype, str):
|
76
77
|
return dtype
|
@@ -147,6 +148,17 @@ class RBLNCompileConfig:
|
|
147
148
|
|
148
149
|
|
149
150
|
RUNTIME_KEYWORDS = ["create_runtimes", "optimize_host_memory", "device", "device_map", "activate_profiler"]
|
151
|
+
CONFIG_MAPPING: Dict[str, Type["RBLNModelConfig"]] = {}
|
152
|
+
|
153
|
+
|
154
|
+
def get_rbln_config_class(rbln_config_class_name: str) -> Type["RBLNModelConfig"]:
|
155
|
+
cls = getattr(importlib.import_module("optimum.rbln"), rbln_config_class_name, None)
|
156
|
+
if cls is None:
|
157
|
+
if rbln_config_class_name in CONFIG_MAPPING:
|
158
|
+
cls = CONFIG_MAPPING[rbln_config_class_name]
|
159
|
+
else:
|
160
|
+
raise ValueError(f"Configuration for {rbln_config_class_name} not found.")
|
161
|
+
return cls
|
150
162
|
|
151
163
|
|
152
164
|
def load_config(path: str) -> Tuple[Type["RBLNModelConfig"], Dict[str, Any]]:
|
@@ -166,7 +178,7 @@ def load_config(path: str) -> Tuple[Type["RBLNModelConfig"], Dict[str, Any]]:
|
|
166
178
|
)
|
167
179
|
|
168
180
|
cls_name = config_file["cls_name"]
|
169
|
-
cls =
|
181
|
+
cls = get_rbln_config_class(cls_name)
|
170
182
|
return cls, config_file
|
171
183
|
|
172
184
|
|
@@ -175,7 +187,7 @@ class RBLNAutoConfig:
|
|
175
187
|
cls_name = kwargs.get("cls_name")
|
176
188
|
if cls_name is None:
|
177
189
|
raise ValueError("`cls_name` is required.")
|
178
|
-
cls =
|
190
|
+
cls = get_rbln_config_class(cls_name)
|
179
191
|
return cls(**kwargs)
|
180
192
|
|
181
193
|
@staticmethod
|
@@ -183,9 +195,27 @@ class RBLNAutoConfig:
|
|
183
195
|
cls_name = config_dict.get("cls_name")
|
184
196
|
if cls_name is None:
|
185
197
|
raise ValueError("`cls_name` is required.")
|
186
|
-
cls =
|
198
|
+
cls = get_rbln_config_class(cls_name)
|
187
199
|
return cls(**config_dict)
|
188
200
|
|
201
|
+
@staticmethod
|
202
|
+
def register(config: Type["RBLNModelConfig"], exist_ok=False):
|
203
|
+
"""
|
204
|
+
Register a new configuration for this class.
|
205
|
+
|
206
|
+
Args:
|
207
|
+
config ([`RBLNModelConfig`]): The config to register.
|
208
|
+
"""
|
209
|
+
if not issubclass(config, RBLNModelConfig):
|
210
|
+
raise ValueError("`config` must be a subclass of RBLNModelConfig.")
|
211
|
+
|
212
|
+
native_cls = getattr(importlib.import_module("optimum.rbln"), config.__name__, None)
|
213
|
+
if config.__name__ in CONFIG_MAPPING or native_cls is not None:
|
214
|
+
if not exist_ok:
|
215
|
+
raise ValueError(f"Configuration for {config.__name__} already registered.")
|
216
|
+
|
217
|
+
CONFIG_MAPPING[config.__name__] = config
|
218
|
+
|
189
219
|
@staticmethod
|
190
220
|
def load(
|
191
221
|
path: str,
|
@@ -307,9 +337,6 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
307
337
|
# Save to disk
|
308
338
|
config.save("/path/to/model")
|
309
339
|
|
310
|
-
# Load configuration from disk
|
311
|
-
loaded_config = RBLNModelConfig.load("/path/to/model")
|
312
|
-
|
313
340
|
# Using AutoConfig
|
314
341
|
loaded_config = RBLNAutoConfig.load("/path/to/model")
|
315
342
|
```
|
@@ -462,19 +489,25 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
462
489
|
self,
|
463
490
|
submodule_config_cls: Type["RBLNModelConfig"],
|
464
491
|
submodule_config: Optional[Union[Dict[str, Any], "RBLNModelConfig"]] = None,
|
465
|
-
**kwargs,
|
492
|
+
**kwargs: Dict[str, Any],
|
466
493
|
) -> "RBLNModelConfig":
|
467
|
-
|
468
|
-
|
494
|
+
# Initialize a submodule config from a dict or a RBLNModelConfig.
|
495
|
+
# kwargs is specified from the predecessor config.
|
469
496
|
|
470
|
-
kwargs is specified from the predecessor config.
|
471
|
-
"""
|
472
497
|
if submodule_config is None:
|
473
498
|
submodule_config = {}
|
474
499
|
|
475
500
|
if isinstance(submodule_config, dict):
|
476
501
|
from_predecessor = self._runtime_options.copy()
|
502
|
+
from_predecessor.update(
|
503
|
+
{
|
504
|
+
"npu": self.npu,
|
505
|
+
"tensor_parallel_size": self.tensor_parallel_size,
|
506
|
+
"optimum_rbln_version": self.optimum_rbln_version,
|
507
|
+
}
|
508
|
+
)
|
477
509
|
from_predecessor.update(kwargs)
|
510
|
+
|
478
511
|
init_kwargs = from_predecessor
|
479
512
|
init_kwargs.update(submodule_config)
|
480
513
|
submodule_config = submodule_config_cls(**init_kwargs)
|
@@ -530,7 +563,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
530
563
|
tensor_parallel_size: Optional[int] = None,
|
531
564
|
optimum_rbln_version: Optional[str] = None,
|
532
565
|
_compile_cfgs: List[RBLNCompileConfig] = [],
|
533
|
-
**kwargs,
|
566
|
+
**kwargs: Dict[str, Any],
|
534
567
|
):
|
535
568
|
"""
|
536
569
|
Initialize a RBLN model configuration with runtime options and compile configurations.
|
@@ -600,10 +633,8 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
600
633
|
return rbln_model_cls
|
601
634
|
|
602
635
|
def _prepare_for_serialization(self) -> Dict[str, Any]:
|
603
|
-
|
604
|
-
|
605
|
-
objects to their serializable form.
|
606
|
-
"""
|
636
|
+
# Prepare the attributes map for serialization by converting nested RBLNModelConfig
|
637
|
+
# objects to their serializable form.
|
607
638
|
serializable_map = {}
|
608
639
|
for key, value in self._attributes_map.items():
|
609
640
|
if isinstance(value, RBLNSerializableConfigProtocol):
|
@@ -678,7 +709,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
678
709
|
json.dump(serializable_data, jsonf, indent=2)
|
679
710
|
|
680
711
|
@classmethod
|
681
|
-
def load(cls, path: str, **kwargs) -> "RBLNModelConfig":
|
712
|
+
def load(cls, path: str, **kwargs: Dict[str, Any]) -> "RBLNModelConfig":
|
682
713
|
"""
|
683
714
|
Load a RBLNModelConfig from a path.
|
684
715
|
|
@@ -711,11 +742,9 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
711
742
|
def initialize_from_kwargs(
|
712
743
|
cls: Type["RBLNModelConfig"],
|
713
744
|
rbln_config: Optional[Union[Dict[str, Any], "RBLNModelConfig"]] = None,
|
714
|
-
**kwargs,
|
745
|
+
**kwargs: Dict[str, Any],
|
715
746
|
) -> Tuple["RBLNModelConfig", Dict[str, Any]]:
|
716
|
-
|
717
|
-
Initialize RBLNModelConfig from kwargs.
|
718
|
-
"""
|
747
|
+
# Initialize RBLNModelConfig from kwargs.
|
719
748
|
kwargs_keys = list(kwargs.keys())
|
720
749
|
rbln_kwargs = {key[5:]: kwargs.pop(key) for key in kwargs_keys if key.startswith("rbln_")}
|
721
750
|
|
@@ -733,16 +762,7 @@ class RBLNModelConfig(RBLNSerializableConfigProtocol):
|
|
733
762
|
return rbln_config, kwargs
|
734
763
|
|
735
764
|
def get_default_values_for_original_cls(self, func_name: str, keys: List[str]) -> Dict[str, Any]:
|
736
|
-
|
737
|
-
Get default values for original class attributes from RBLNModelConfig.
|
738
|
-
|
739
|
-
Args:
|
740
|
-
func_name (str): The name of the function to get the default values for.
|
741
|
-
keys (List[str]): The keys of the attributes to get.
|
742
|
-
|
743
|
-
Returns:
|
744
|
-
Dict[str, Any]: The default values for the attributes.
|
745
|
-
"""
|
765
|
+
# Get default values for original class attributes from RBLNModelConfig.
|
746
766
|
model_cls = self.rbln_model_cls.get_hf_class()
|
747
767
|
func = getattr(model_cls, func_name)
|
748
768
|
func_signature = inspect.signature(func)
|
@@ -12,12 +12,19 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Optional, Tuple
|
15
|
+
from typing import Any, Dict, Optional, Tuple
|
16
16
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
18
18
|
|
19
19
|
|
20
20
|
class RBLNAutoencoderKLConfig(RBLNModelConfig):
|
21
|
+
"""
|
22
|
+
Configuration class for RBLN Variational Autoencoder (VAE) models.
|
23
|
+
|
24
|
+
This class inherits from RBLNModelConfig and provides specific configuration options
|
25
|
+
for VAE models used in diffusion-based image generation.
|
26
|
+
"""
|
27
|
+
|
21
28
|
def __init__(
|
22
29
|
self,
|
23
30
|
batch_size: Optional[int] = None,
|
@@ -26,7 +33,7 @@ class RBLNAutoencoderKLConfig(RBLNModelConfig):
|
|
26
33
|
vae_scale_factor: Optional[float] = None, # TODO: rename to scaling_factor
|
27
34
|
in_channels: Optional[int] = None,
|
28
35
|
latent_channels: Optional[int] = None,
|
29
|
-
**kwargs,
|
36
|
+
**kwargs: Dict[str, Any],
|
30
37
|
):
|
31
38
|
"""
|
32
39
|
Args:
|
@@ -12,12 +12,14 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Optional, Tuple
|
15
|
+
from typing import Any, Dict, Optional, Tuple
|
16
16
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
18
18
|
|
19
19
|
|
20
20
|
class RBLNControlNetModelConfig(RBLNModelConfig):
|
21
|
+
"""Configuration class for RBLN ControlNet models."""
|
22
|
+
|
21
23
|
subclass_non_save_attributes = ["_batch_size_is_specified"]
|
22
24
|
|
23
25
|
def __init__(
|
@@ -27,7 +29,7 @@ class RBLNControlNetModelConfig(RBLNModelConfig):
|
|
27
29
|
unet_sample_size: Optional[Tuple[int, int]] = None,
|
28
30
|
vae_sample_size: Optional[Tuple[int, int]] = None,
|
29
31
|
text_model_hidden_size: Optional[int] = None,
|
30
|
-
**kwargs,
|
32
|
+
**kwargs: Dict[str, Any],
|
31
33
|
):
|
32
34
|
"""
|
33
35
|
Args:
|
@@ -12,12 +12,19 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Optional
|
15
|
+
from typing import Any, Dict, Optional
|
16
16
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
18
18
|
|
19
19
|
|
20
20
|
class RBLNPriorTransformerConfig(RBLNModelConfig):
|
21
|
+
"""
|
22
|
+
Configuration class for RBLN Prior Transformer models.
|
23
|
+
|
24
|
+
This class inherits from RBLNModelConfig and provides specific configuration options
|
25
|
+
for Prior Transformer models used in diffusion models like Kandinsky V2.2.
|
26
|
+
"""
|
27
|
+
|
21
28
|
subclass_non_save_attributes = ["_batch_size_is_specified"]
|
22
29
|
|
23
30
|
def __init__(
|
@@ -25,7 +32,7 @@ class RBLNPriorTransformerConfig(RBLNModelConfig):
|
|
25
32
|
batch_size: Optional[int] = None,
|
26
33
|
embedding_dim: Optional[int] = None,
|
27
34
|
num_embeddings: Optional[int] = None,
|
28
|
-
**kwargs,
|
35
|
+
**kwargs: Dict[str, Any],
|
29
36
|
):
|
30
37
|
"""
|
31
38
|
Args:
|
@@ -12,12 +12,14 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Optional, Tuple, Union
|
15
|
+
from typing import Any, Dict, Optional, Tuple, Union
|
16
16
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
18
18
|
|
19
19
|
|
20
20
|
class RBLNSD3Transformer2DModelConfig(RBLNModelConfig):
|
21
|
+
"""Configuration class for RBLN Stable Diffusion 3 Transformer models."""
|
22
|
+
|
21
23
|
subclass_non_save_attributes = ["_batch_size_is_specified"]
|
22
24
|
|
23
25
|
def __init__(
|
@@ -25,7 +27,7 @@ class RBLNSD3Transformer2DModelConfig(RBLNModelConfig):
|
|
25
27
|
batch_size: Optional[int] = None,
|
26
28
|
sample_size: Optional[Union[int, Tuple[int, int]]] = None,
|
27
29
|
prompt_embed_length: Optional[int] = None,
|
28
|
-
**kwargs,
|
30
|
+
**kwargs: Dict[str, Any],
|
29
31
|
):
|
30
32
|
"""
|
31
33
|
Args:
|
@@ -12,12 +12,19 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Optional, Tuple
|
15
|
+
from typing import Any, Dict, Optional, Tuple
|
16
16
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
18
18
|
|
19
19
|
|
20
20
|
class RBLNUNet2DConditionModelConfig(RBLNModelConfig):
|
21
|
+
"""
|
22
|
+
Configuration class for RBLN UNet2DCondition models.
|
23
|
+
|
24
|
+
This class inherits from RBLNModelConfig and provides specific configuration options
|
25
|
+
for UNet2DCondition models used in diffusion-based image generation.
|
26
|
+
"""
|
27
|
+
|
21
28
|
subclass_non_save_attributes = ["_batch_size_is_specified"]
|
22
29
|
|
23
30
|
def __init__(
|
@@ -31,7 +38,7 @@ class RBLNUNet2DConditionModelConfig(RBLNModelConfig):
|
|
31
38
|
in_features: Optional[int] = None,
|
32
39
|
text_model_hidden_size: Optional[int] = None,
|
33
40
|
image_model_hidden_size: Optional[int] = None,
|
34
|
-
**kwargs,
|
41
|
+
**kwargs: Dict[str, Any],
|
35
42
|
):
|
36
43
|
"""
|
37
44
|
Args:
|
@@ -12,12 +12,19 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Optional, Tuple
|
15
|
+
from typing import Any, Dict, Optional, Tuple
|
16
16
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
18
18
|
|
19
19
|
|
20
20
|
class RBLNVQModelConfig(RBLNModelConfig):
|
21
|
+
"""
|
22
|
+
Configuration class for RBLN VQModel models, used in Kandinsky.
|
23
|
+
|
24
|
+
This class inherits from RBLNModelConfig and provides specific configuration options
|
25
|
+
for VQModel, which acts similarly to a VAE but uses vector quantization.
|
26
|
+
"""
|
27
|
+
|
21
28
|
def __init__(
|
22
29
|
self,
|
23
30
|
batch_size: Optional[int] = None,
|
@@ -26,7 +33,7 @@ class RBLNVQModelConfig(RBLNModelConfig):
|
|
26
33
|
vqmodel_scale_factor: Optional[float] = None, # TODO: rename to scaling_factor
|
27
34
|
in_channels: Optional[int] = None,
|
28
35
|
latent_channels: Optional[int] = None,
|
29
|
-
**kwargs,
|
36
|
+
**kwargs: Dict[str, Any],
|
30
37
|
):
|
31
38
|
"""
|
32
39
|
Args:
|
@@ -12,14 +12,18 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import Optional, Tuple
|
15
|
+
from typing import Any, Dict, Optional, Tuple
|
16
16
|
|
17
17
|
from ....configuration_utils import RBLNModelConfig
|
18
18
|
from ....transformers import RBLNCLIPTextModelConfig, RBLNCLIPTextModelWithProjectionConfig
|
19
19
|
from ..models import RBLNAutoencoderKLConfig, RBLNControlNetModelConfig, RBLNUNet2DConditionModelConfig
|
20
20
|
|
21
21
|
|
22
|
-
class
|
22
|
+
class RBLNStableDiffusionControlNetPipelineBaseConfig(RBLNModelConfig):
|
23
|
+
"""
|
24
|
+
Base configuration for Stable Diffusion ControlNet pipelines.
|
25
|
+
"""
|
26
|
+
|
23
27
|
submodules = ["text_encoder", "unet", "vae", "controlnet"]
|
24
28
|
_vae_uses_encoder = False
|
25
29
|
|
@@ -38,7 +42,7 @@ class _RBLNStableDiffusionControlNetPipelineBaseConfig(RBLNModelConfig):
|
|
38
42
|
sample_size: Optional[Tuple[int, int]] = None,
|
39
43
|
image_size: Optional[Tuple[int, int]] = None,
|
40
44
|
guidance_scale: Optional[float] = None,
|
41
|
-
**kwargs,
|
45
|
+
**kwargs: Dict[str, Any],
|
42
46
|
):
|
43
47
|
"""
|
44
48
|
Args:
|
@@ -138,15 +142,27 @@ class _RBLNStableDiffusionControlNetPipelineBaseConfig(RBLNModelConfig):
|
|
138
142
|
return self.vae.sample_size
|
139
143
|
|
140
144
|
|
141
|
-
class RBLNStableDiffusionControlNetPipelineConfig(
|
145
|
+
class RBLNStableDiffusionControlNetPipelineConfig(RBLNStableDiffusionControlNetPipelineBaseConfig):
|
146
|
+
"""
|
147
|
+
Configuration for Stable Diffusion ControlNet pipeline.
|
148
|
+
"""
|
149
|
+
|
142
150
|
_vae_uses_encoder = False
|
143
151
|
|
144
152
|
|
145
|
-
class RBLNStableDiffusionControlNetImg2ImgPipelineConfig(
|
153
|
+
class RBLNStableDiffusionControlNetImg2ImgPipelineConfig(RBLNStableDiffusionControlNetPipelineBaseConfig):
|
154
|
+
"""
|
155
|
+
Configuration for Stable Diffusion ControlNet image-to-image pipeline.
|
156
|
+
"""
|
157
|
+
|
146
158
|
_vae_uses_encoder = True
|
147
159
|
|
148
160
|
|
149
|
-
class
|
161
|
+
class RBLNStableDiffusionXLControlNetPipelineBaseConfig(RBLNModelConfig):
|
162
|
+
"""
|
163
|
+
Base configuration for Stable Diffusion XL ControlNet pipelines.
|
164
|
+
"""
|
165
|
+
|
150
166
|
submodules = ["text_encoder", "text_encoder_2", "unet", "vae", "controlnet"]
|
151
167
|
_vae_uses_encoder = False
|
152
168
|
|
@@ -166,7 +182,7 @@ class _RBLNStableDiffusionXLControlNetPipelineBaseConfig(RBLNModelConfig):
|
|
166
182
|
sample_size: Optional[Tuple[int, int]] = None,
|
167
183
|
image_size: Optional[Tuple[int, int]] = None,
|
168
184
|
guidance_scale: Optional[float] = None,
|
169
|
-
**kwargs,
|
185
|
+
**kwargs: Dict[str, Any],
|
170
186
|
):
|
171
187
|
"""
|
172
188
|
Args:
|
@@ -272,9 +288,17 @@ class _RBLNStableDiffusionXLControlNetPipelineBaseConfig(RBLNModelConfig):
|
|
272
288
|
return self.vae.sample_size
|
273
289
|
|
274
290
|
|
275
|
-
class RBLNStableDiffusionXLControlNetPipelineConfig(
|
291
|
+
class RBLNStableDiffusionXLControlNetPipelineConfig(RBLNStableDiffusionXLControlNetPipelineBaseConfig):
|
292
|
+
"""
|
293
|
+
Configuration for Stable Diffusion XL ControlNet pipeline.
|
294
|
+
"""
|
295
|
+
|
276
296
|
_vae_uses_encoder = False
|
277
297
|
|
278
298
|
|
279
|
-
class RBLNStableDiffusionXLControlNetImg2ImgPipelineConfig(
|
299
|
+
class RBLNStableDiffusionXLControlNetImg2ImgPipelineConfig(RBLNStableDiffusionXLControlNetPipelineBaseConfig):
|
300
|
+
"""
|
301
|
+
Configuration for Stable Diffusion XL ControlNet image-to-image pipeline.
|
302
|
+
"""
|
303
|
+
|
280
304
|
_vae_uses_encoder = True
|