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.
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/PKG-INFO +1 -1
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/simple_vit.py +36 -11
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/PKG-INFO +1 -1
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/setup.py +1 -1
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/README.md +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/data/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/data/online_loader.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/attention.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/autoencoder.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/diffusers.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/autoencoder/simple_autoenc.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/common.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/favor_fastattn.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/models/simple_unet.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/predictors/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/common.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/ddim.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/ddpm.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/euler.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/heun_sampler.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/multistep_dpm.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/samplers/rk4_sampler.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/common.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/continuous.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/cosine.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/discrete.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/exp.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/karras.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/linear.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/schedulers/sqrt.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/__init__.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/autoencoder_trainer.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/diffusion_trainer.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/trainer/simple_trainer.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff/utils.py +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/SOURCES.txt +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/dependency_links.txt +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/requires.txt +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/flaxdiff.egg-info/top_level.txt +0 -0
- {flaxdiff-0.1.26 → flaxdiff-0.1.28}/setup.cfg +0 -0
@@ -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
|
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
|
-
|
145
|
-
|
146
|
-
|
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
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
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
|
@@ -11,7 +11,7 @@ required_packages=[
|
|
11
11
|
setup(
|
12
12
|
name='flaxdiff',
|
13
13
|
packages=find_packages(),
|
14
|
-
version='0.1.
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|