Text-to-Image
Diffusers
Safetensors
English
image-generation
class-conditional
imagenet
pixelgen
flow-matching
pixel-space
jit
Instructions to use BiliSakura/PixelGen-diffusers with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use BiliSakura/PixelGen-diffusers with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("BiliSakura/PixelGen-diffusers", dtype=torch.bfloat16, device_map="cuda") prompt = "golden retriever" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
Upload folder using huggingface_hub
Browse files
.gitattributes
CHANGED
|
@@ -35,3 +35,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
PixelGen-XL-16-256/demo.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
PixelGen-XXL-16-512-t2i/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
PixelGen-XL-16-256/demo.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
PixelGen-XXL-16-512-t2i/tokenizer/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
PixelGen-XXL-16-512-t2i/demo.png filter=lfs diff=lfs merge=lfs -text
|
PixelGen-XXL-16-512-t2i/demo.png
ADDED
|
|
Git LFS Details
|
PixelGen-XXL-16-512-t2i/scheduler/__pycache__/scheduling_pixelgen.cpython-312.pyc
CHANGED
|
Binary files a/PixelGen-XXL-16-512-t2i/scheduler/__pycache__/scheduling_pixelgen.cpython-312.pyc and b/PixelGen-XXL-16-512-t2i/scheduler/__pycache__/scheduling_pixelgen.cpython-312.pyc differ
|
|
|
PixelGen-XXL-16-512-t2i/transformer/transformer_jit_t2i.py
CHANGED
|
@@ -107,19 +107,19 @@ class JiTT2ITimestepEmbedder(nn.Module):
|
|
| 107 |
self.frequency_embedding_size = frequency_embedding_size
|
| 108 |
|
| 109 |
@staticmethod
|
| 110 |
-
def timestep_embedding(t, dim, max_period=
|
| 111 |
half = dim // 2
|
| 112 |
-
freqs = torch.exp(
|
| 113 |
-
device=t.device
|
| 114 |
)
|
| 115 |
-
args = t[
|
| 116 |
embedding = torch.cat([torch.cos(args), torch.sin(args)], dim=-1)
|
| 117 |
if dim % 2:
|
| 118 |
embedding = torch.cat([embedding, torch.zeros_like(embedding[:, :1])], dim=-1)
|
| 119 |
-
return embedding
|
| 120 |
|
| 121 |
def forward(self, t, dtype=None):
|
| 122 |
-
t_freq = self.timestep_embedding(t, self.frequency_embedding_size)
|
| 123 |
if dtype is not None:
|
| 124 |
t_freq = t_freq.to(dtype=dtype)
|
| 125 |
return self.mlp(t_freq)
|
|
|
|
| 107 |
self.frequency_embedding_size = frequency_embedding_size
|
| 108 |
|
| 109 |
@staticmethod
|
| 110 |
+
def timestep_embedding(t, dim, max_period=10):
|
| 111 |
half = dim // 2
|
| 112 |
+
freqs = torch.exp(
|
| 113 |
+
-math.log(max_period) * torch.arange(start=0, end=half, dtype=torch.float32, device=t.device) / half
|
| 114 |
)
|
| 115 |
+
args = t[..., None].float() * freqs[None, ...]
|
| 116 |
embedding = torch.cat([torch.cos(args), torch.sin(args)], dim=-1)
|
| 117 |
if dim % 2:
|
| 118 |
embedding = torch.cat([embedding, torch.zeros_like(embedding[:, :1])], dim=-1)
|
| 119 |
+
return embedding.to(dtype=t.dtype)
|
| 120 |
|
| 121 |
def forward(self, t, dtype=None):
|
| 122 |
+
t_freq = self.timestep_embedding(t.reshape(-1), self.frequency_embedding_size)
|
| 123 |
if dtype is not None:
|
| 124 |
t_freq = t_freq.to(dtype=dtype)
|
| 125 |
return self.mlp(t_freq)
|