Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion modules/dataLoader/ErnieBaseDataLoader.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
from mgds.pipelineModules.DecodeVAE import DecodeVAE
from mgds.pipelineModules.EncodeMistralText import EncodeMistralText
from mgds.pipelineModules.EncodeVAE import EncodeVAE
from mgds.pipelineModules.PadMaskedTokens import PadMaskedTokens
from mgds.pipelineModules.PruneMaskedTokens import PruneMaskedTokens
from mgds.pipelineModules.RescaleImageChannels import RescaleImageChannels
from mgds.pipelineModules.SampleVAEDistribution import SampleVAEDistribution
from mgds.pipelineModules.SaveImage import SaveImage
Expand All @@ -36,11 +38,16 @@ def _preparation_modules(self, config: TrainConfig, model: ErnieModel):
apply_thread_safe_forward(model.text_encoder) # workaround for transformers#42673, unclear if Mistral is affected
encode_prompt = EncodeMistralText(tokens_name='tokens', tokens_attention_mask_in_name='tokens_mask', hidden_state_out_name='text_encoder_hidden_state', tokens_attention_mask_out_name='tokens_mask',
text_encoder=model.text_encoder, hidden_state_output_index=HIDDEN_STATES_LAYER, autocast_contexts=[model.autocast_context], dtype=model.train_dtype.torch_dtype())
prune_masked_tokens = PruneMaskedTokens(tokens_name='tokens', tokens_mask_name='tokens_mask', hidden_state_name='text_encoder_hidden_state')

modules = [rescale_image, encode_image, image_sample]
if config.masked_training or config.model_type.has_mask_input():
modules.append(downscale_mask)
modules += [tokenize_prompt, encode_prompt]

if config.latent_caching:
modules.append(prune_masked_tokens)

return modules

def _cache_modules(self, config: TrainConfig, model: ErnieModel, model_setup: BaseErnieSetup):
Expand Down Expand Up @@ -71,6 +78,8 @@ def _cache_modules(self, config: TrainConfig, model: ErnieModel, model_setup: Ba
)

def _output_modules(self, config: TrainConfig, model: ErnieModel, model_setup: BaseErnieSetup):
pad_masked_tokens = PadMaskedTokens(tokens_name='tokens', tokens_mask_name='tokens_mask', hidden_state_name='text_encoder_hidden_state', max_length=PROMPT_MAX_LENGTH)

output_names = [
'image_path', 'latent_image',
'prompt',
Expand All @@ -84,7 +93,7 @@ def _output_modules(self, config: TrainConfig, model: ErnieModel, model_setup: B

output_names.append('text_encoder_hidden_state')

return self._output_modules_from_out_names(
output_module_list = self._output_modules_from_out_names(
model, model_setup,
output_names=output_names,
config=config,
Expand All @@ -94,6 +103,11 @@ def _output_modules(self, config: TrainConfig, model: ErnieModel, model_setup: B
train_dtype=model.train_dtype,
)

if config.latent_caching:
output_module_list = [pad_masked_tokens] + output_module_list

return output_module_list

def _debug_modules(self, config: TrainConfig, model: ErnieModel):
debug_dir = os.path.join(config.debug_dir, "dataloader")

Expand Down