| 136 | return self.cached_non_lora_output |
| 137 | |
| 138 | def get_dummy_components(self, scheduler_cls=None, use_dora=False, lora_alpha=None): |
| 139 | if self.unet_kwargs and self.transformer_kwargs: |
| 140 | raise ValueError("Both `unet_kwargs` and `transformer_kwargs` cannot be specified.") |
| 141 | if self.has_two_text_encoders and self.has_three_text_encoders: |
| 142 | raise ValueError("Both `has_two_text_encoders` and `has_three_text_encoders` cannot be True.") |
| 143 | |
| 144 | scheduler_cls = scheduler_cls if scheduler_cls is not None else self.scheduler_cls |
| 145 | rank = 4 |
| 146 | lora_alpha = rank if lora_alpha is None else lora_alpha |
| 147 | |
| 148 | torch.manual_seed(0) |
| 149 | if self.unet_kwargs is not None: |
| 150 | unet = UNet2DConditionModel(**self.unet_kwargs) |
| 151 | else: |
| 152 | transformer = self.transformer_cls(**self.transformer_kwargs) |
| 153 | |
| 154 | scheduler = scheduler_cls(**self.scheduler_kwargs) |
| 155 | |
| 156 | torch.manual_seed(0) |
| 157 | vae = self.vae_cls(**self.vae_kwargs) |
| 158 | |
| 159 | text_encoder = self.text_encoder_cls.from_pretrained( |
| 160 | self.text_encoder_id, subfolder=self.text_encoder_subfolder |
| 161 | ) |
| 162 | tokenizer = self.tokenizer_cls.from_pretrained(self.tokenizer_id, subfolder=self.tokenizer_subfolder) |
| 163 | |
| 164 | if self.text_encoder_2_cls is not None: |
| 165 | text_encoder_2 = self.text_encoder_2_cls.from_pretrained( |
| 166 | self.text_encoder_2_id, subfolder=self.text_encoder_2_subfolder |
| 167 | ) |
| 168 | tokenizer_2 = self.tokenizer_2_cls.from_pretrained( |
| 169 | self.tokenizer_2_id, subfolder=self.tokenizer_2_subfolder |
| 170 | ) |
| 171 | |
| 172 | if self.text_encoder_3_cls is not None: |
| 173 | text_encoder_3 = self.text_encoder_3_cls.from_pretrained( |
| 174 | self.text_encoder_3_id, subfolder=self.text_encoder_3_subfolder |
| 175 | ) |
| 176 | tokenizer_3 = self.tokenizer_3_cls.from_pretrained( |
| 177 | self.tokenizer_3_id, subfolder=self.tokenizer_3_subfolder |
| 178 | ) |
| 179 | |
| 180 | text_lora_config = LoraConfig( |
| 181 | r=rank, |
| 182 | lora_alpha=lora_alpha, |
| 183 | target_modules=self.text_encoder_target_modules, |
| 184 | init_lora_weights=False, |
| 185 | use_dora=use_dora, |
| 186 | ) |
| 187 | |
| 188 | denoiser_lora_config = LoraConfig( |
| 189 | r=rank, |
| 190 | lora_alpha=lora_alpha, |
| 191 | target_modules=self.denoiser_target_modules, |
| 192 | init_lora_weights=False, |
| 193 | use_dora=use_dora, |
| 194 | ) |
| 195 | |