              key = "gblock" if "gblock" in mod.name else mod.name.split("_")[0]
              rate = dropouts[key]
              log_once = False
              for layer in mod.layers:
                  if not isinstance(layer, Dropout):
                      continue
                  if layer.rate != rate:
                      logger.debug("Updating dropout rate for %s from %s to %s",
                                   f"{mod.name} - {layer.name}", layer.rate, rate)
                      if not log_once:
 
</s> remove             new_model = clone_model(model)
 </s> add             new_model = keras.models.clone_model(model) </s> remove             var_x = Reshape(new_shape)(var_x)
 </s> add             var_x = kl.Reshape(new_shape)(var_x) </s> remove         self._inputs = [Input(shape=shape) for shape in input_shapes]
 </s> add         self._inputs = [kl.Input(shape=shape) for shape in input_shapes] </s> remove             var_x = LeakyReLU(alpha=0.2)(var_x)
 </s> add             var_x = kl.LeakyReLU(alpha=0.2)(var_x) </s> remove             var_x = GaussianNoise(1.0)(var_x)
 </s> add             var_x = kl.GaussianNoise(1.0)(var_x)
                if not isinstance(layer, kl.Dropout):
              key = "gblock" if "gblock" in mod.name else mod.name.split("_")[0]
              rate = dropouts[key]
              log_once = False
              for layer in mod.layers:
                if not isinstance(layer, kl.Dropout):
                      continue
                  if layer.rate != rate:
                      logger.debug("Updating dropout rate for %s from %s to %s",
                                   f"{mod.name} - {layer.name}", layer.rate, rate)
                      if not log_once:
keep keep keep keep replace keep keep keep keep keep
 Updates:
    - Remove clipfaker
    - Add clip to Phaze-A
    - streamline clip to vision only
    - update lib.model.networks
    - Docs and tests update
    - Phaze-A - add option to flatten bottleneck 
plugins/train/model/phaze_a.py