flaxdiff 0.1.26__tar.gz → 0.1.28__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.
Files changed (45) hide show
  1. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/PKG-INFO +1 -1
  2. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/simple_vit.py +36 -11
  3. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/PKG-INFO +1 -1
  4. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/setup.py +1 -1
  5. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/README.md +0 -0
  6. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/__init__.py +0 -0
  7. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/data/__init__.py +0 -0
  8. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/data/online_loader.py +0 -0
  9. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/__init__.py +0 -0
  10. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/attention.py +0 -0
  11. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/__init__.py +0 -0
  12. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/autoencoder.py +0 -0
  13. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/diffusers.py +0 -0
  14. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/simple_autoenc.py +0 -0
  15. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/common.py +0 -0
  16. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/favor_fastattn.py +0 -0
  17. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/simple_unet.py +0 -0
  18. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/predictors/__init__.py +0 -0
  19. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/__init__.py +0 -0
  20. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/common.py +0 -0
  21. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/ddim.py +0 -0
  22. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/ddpm.py +0 -0
  23. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/euler.py +0 -0
  24. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/heun_sampler.py +0 -0
  25. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/multistep_dpm.py +0 -0
  26. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/rk4_sampler.py +0 -0
  27. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/__init__.py +0 -0
  28. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/common.py +0 -0
  29. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/continuous.py +0 -0
  30. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/cosine.py +0 -0
  31. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/discrete.py +0 -0
  32. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/exp.py +0 -0
  33. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/karras.py +0 -0
  34. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/linear.py +0 -0
  35. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/sqrt.py +0 -0
  36. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/__init__.py +0 -0
  37. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/autoencoder_trainer.py +0 -0
  38. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/diffusion_trainer.py +0 -0
  39. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/simple_trainer.py +0 -0
  40. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/utils.py +0 -0
  41. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/SOURCES.txt +0 -0
  42. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/dependency_links.txt +0 -0
  43. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/requires.txt +0 -0
  44. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/top_level.txt +0 -0
  45. {flaxdiff-0.1.26 → flaxdiff-0.1.28}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flaxdiff
3
- Version: 0.1.26
3
+ Version: 0.1.28
4
4
  Summary: A versatile and easy to understand Diffusion library
5
5
  Author: Ashish Kumar Singh
6
6
  Author-email: ashishkmr472@gmail.com
@@ -6,7 +6,7 @@ from flax import linen as nn
6
6
  from typing import Callable, Any, Optional, Tuple
7
7
  from .simple_unet import FourierEmbedding, TimeProjection, ConvLayer, kernel_init
8
8
  from .attention import TransformerBlock
9
- from flaxdiff.models.simple_unet import FourierEmbedding, TimeProjection, ConvLayer, kernel_init
9
+ from flaxdiff.models.simple_unet import FourierEmbedding, TimeProjection, ConvLayer, kernel_init, ResidualBlock
10
10
  import einops
11
11
  from flax.typing import Dtype, PrecisionLike
12
12
  from functools import partial
@@ -68,6 +68,7 @@ class UViT(nn.Module):
68
68
  dtype: Optional[Dtype] = None
69
69
  precision: PrecisionLike = None
70
70
  kernel_init: Callable = partial(kernel_init, 1.0)
71
+ add_residualblock_output: bool = False
71
72
 
72
73
  def setup(self):
73
74
  if self.norm_groups > 0:
@@ -80,10 +81,12 @@ class UViT(nn.Module):
80
81
  # Time embedding
81
82
  temb = FourierEmbedding(features=self.emb_features)(temb)
82
83
  temb = TimeProjection(features=self.emb_features)(temb)
84
+
85
+ original_img = x
83
86
 
84
87
  # Patch embedding
85
88
  x = PatchEmbedding(patch_size=self.patch_size, embedding_dim=self.emb_features,
86
- dtype=self.dtype, precision=self.precision)(x)
89
+ dtype=self.dtype, precision=self.precision, kernel_init=self.kernel_init)(x)
87
90
  num_patches = x.shape[1]
88
91
 
89
92
  context_emb = nn.DenseGeneral(features=self.emb_features, kernel_init=self.kernel_init(),
@@ -98,7 +101,7 @@ class UViT(nn.Module):
98
101
  # print(f'Shape of x after time embedding: {x.shape}')
99
102
 
100
103
  # Add positional encoding
101
- x = PositionalEncoding(max_len=x.shape[1], embedding_dim=self.emb_features, kernel_init=self.kernel_init)(x)
104
+ x = PositionalEncoding(max_len=x.shape[1], embedding_dim=self.emb_features)(x)
102
105
 
103
106
  # print(f'Shape of x after positional encoding: {x.shape}')
104
107
 
@@ -141,14 +144,36 @@ class UViT(nn.Module):
141
144
  x = x[:, 1 + num_text_tokens:, :]
142
145
  x = unpatchify(x, channels=self.output_channels)
143
146
  # print(f'Shape of x after final dense layer: {x.shape}')
144
- x = nn.Conv(
145
- features=self.output_channels,
146
- kernel_size=(3, 3),
147
+
148
+ if self.add_residualblock_output:
149
+ # Concatenate the original image
150
+ x = jnp.concatenate([original_img, x], axis=-1)
151
+
152
+ x = ResidualBlock(
153
+ "conv",
154
+ name="final_residual",
155
+ features=64,
156
+ kernel_init=self.kernel_init(1.0),
157
+ kernel_size=(3,3),
158
+ strides=(1, 1),
159
+ activation=self.activation,
160
+ norm_groups=self.norm_groups,
161
+ dtype=self.dtype,
162
+ precision=self.precision,
163
+ named_norms=False
164
+ )(x, temb)
165
+
166
+ x = self.norm()(x)
167
+ x = self.activation(x)
168
+
169
+ x = ConvLayer(
170
+ "conv",
171
+ features=self.output_channels,
172
+ kernel_size=(3, 3),
147
173
  strides=(1, 1),
148
- padding='SAME',
149
- dtype=self.dtype,
150
- precision=self.precision,
151
- kernel_init=kernel_init(0.0),
174
+ # activation=jax.nn.mish
175
+ kernel_init=self.kernel_init(0.0),
176
+ dtype=self.dtype,
177
+ precision=self.precision
152
178
  )(x)
153
-
154
179
  return x
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flaxdiff
3
- Version: 0.1.26
3
+ Version: 0.1.28
4
4
  Summary: A versatile and easy to understand Diffusion library
5
5
  Author: Ashish Kumar Singh
6
6
  Author-email: ashishkmr472@gmail.com
@@ -11,7 +11,7 @@ required_packages=[
11
11
  setup(
12
12
  name='flaxdiff',
13
13
  packages=find_packages(),
14
- version='0.1.26',
14
+ version='0.1.28',
15
15
  description='A versatile and easy to understand Diffusion library',
16
16
  long_description=open('README.md').read(),
17
17
  long_description_content_type='text/markdown',
File without changes
File without changes
File without changes