iamkaikai commited on
Commit
8a5decb
1 Parent(s): e601c6d

End of training

Browse files
Files changed (41) hide show
  1. .gitattributes +1 -0
  2. README.md +48 -0
  3. amazing-logo-v3.ckpt +3 -0
  4. checkpoint-550000/optimizer.bin +3 -0
  5. checkpoint-550000/random_states_0.pkl +3 -0
  6. checkpoint-550000/scaler.pt +3 -0
  7. checkpoint-550000/scheduler.bin +3 -0
  8. checkpoint-550000/unet/config.json +65 -0
  9. checkpoint-550000/unet/diffusion_pytorch_model.bin +3 -0
  10. checkpoint-600000/optimizer.bin +3 -0
  11. checkpoint-600000/random_states_0.pkl +3 -0
  12. checkpoint-600000/scaler.pt +3 -0
  13. checkpoint-600000/scheduler.bin +3 -0
  14. checkpoint-600000/unet/config.json +65 -0
  15. checkpoint-600000/unet/diffusion_pytorch_model.bin +3 -0
  16. checkpoint-650000/optimizer.bin +3 -0
  17. checkpoint-650000/random_states_0.pkl +3 -0
  18. checkpoint-650000/scaler.pt +3 -0
  19. checkpoint-650000/scheduler.bin +3 -0
  20. checkpoint-650000/unet/config.json +65 -0
  21. checkpoint-650000/unet/diffusion_pytorch_model.bin +3 -0
  22. convert_diffusers_to_original_stable_diffusion.py +333 -0
  23. feature_extractor/preprocessor_config.json +28 -0
  24. logs/text2image-fine-tune/1691289817.178886/events.out.tfevents.1691289817.cd3805884c99.29163.1 +3 -0
  25. logs/text2image-fine-tune/1691289817.180809/hparams.yml +51 -0
  26. logs/text2image-fine-tune/events.out.tfevents.1691289817.cd3805884c99.29163.0 +3 -0
  27. model_index.json +34 -0
  28. safety_checker/config.json +168 -0
  29. safety_checker/pytorch_model.bin +3 -0
  30. scheduler/scheduler_config.json +15 -0
  31. text_encoder/config.json +25 -0
  32. text_encoder/pytorch_model.bin +3 -0
  33. tokenizer/merges.txt +0 -0
  34. tokenizer/special_tokens_map.json +24 -0
  35. tokenizer/tokenizer_config.json +33 -0
  36. tokenizer/vocab.json +0 -0
  37. unet/config.json +65 -0
  38. unet/diffusion_pytorch_model.bin +3 -0
  39. vae/config.json +32 -0
  40. vae/diffusion_pytorch_model.bin +3 -0
  41. val_imgs_grid.png +3 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ val_imgs_grid.png filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ ---
3
+ license: creativeml-openrail-m
4
+ base_model: runwayml/stable-diffusion-v1-5
5
+ datasets:
6
+ - iamkaikai/amazing_logos_v3
7
+ tags:
8
+ - stable-diffusion
9
+ - stable-diffusion-diffusers
10
+ - text-to-image
11
+ - diffusers
12
+ inference: true
13
+ ---
14
+
15
+ # Text-to-image finetuning - iamkaikai/amazing-logos-v3
16
+
17
+ This pipeline was finetuned from **runwayml/stable-diffusion-v1-5** on the **iamkaikai/amazing_logos_v3** dataset. Below are some example images generated with the finetuned pipeline using the following prompts: ['Simple elegant logo for Digital Art, square rainbow terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for Digital Art, D A dots arrow terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable, black and white', 'Simple elegant logo for Digital Art, D A tree terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable, black and white', 'Simple elegant logo for Digital Art, D A binary portal terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for Digital Art, D A tech terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for Digital Art, D A programming terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for Digital Art, D A art terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for Digital Art, D A digital terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, > A terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, D A portal art, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, art tech school, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, art tech school, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, art tech school digital, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, art tech school digital, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, D A art tech, successful vibe, minimalist, thought-provoking, abstract, recognizable', 'Simple elegant logo for DA, D A digital art school, successful vibe, minimalist, thought-provoking, abstract, recognizable']:
18
+
19
+ ![val_imgs_grid](./val_imgs_grid.png)
20
+
21
+
22
+ ## Pipeline usage
23
+
24
+ You can use the pipeline like so:
25
+
26
+ ```python
27
+ from diffusers import DiffusionPipeline
28
+ import torch
29
+
30
+ pipeline = DiffusionPipeline.from_pretrained("iamkaikai/amazing-logos-v3", torch_dtype=torch.float16)
31
+ prompt = "Simple elegant logo for Digital Art, square rainbow terminal tech, successful vibe, minimalist, thought-provoking, abstract, recognizable"
32
+ image = pipeline(prompt).images[0]
33
+ image.save("my_image.png")
34
+ ```
35
+
36
+ ## Training info
37
+
38
+ These are the key hyperparameters used during training:
39
+
40
+ * Epochs: 7
41
+ * Learning rate: 1e-07
42
+ * Batch size: 1
43
+ * Gradient accumulation steps: 2
44
+ * Image resolution: 512
45
+ * Mixed-precision: fp16
46
+
47
+
48
+ More information on all the CLI arguments and the environment are available on your [`wandb` run page](https://wandb.ai/iam-kai-kai/text2image-fine-tune/runs/7l332frx).
amazing-logo-v3.ckpt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d147ceeb0e9eef1ee2b3feef2dc440321ca54906c4e5da91e7d0dbdb7bb0bacf
3
+ size 3851909974
checkpoint-550000/optimizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:41fa88122b3a951808fb5e8dea0e993bc69b253f0b928b3d97e71d29d2fbb264
3
+ size 6876749715
checkpoint-550000/random_states_0.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:47804152c975a42fa1c2ca1309321b0f3e7ccefae2143e1f8397ee1da5dd215f
3
+ size 14727
checkpoint-550000/scaler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8b24785bdb036132e003630881553b947533c150a24b898e436aa1887b3bfa15
3
+ size 557
checkpoint-550000/scheduler.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf760663052bbba8272ca061a8bcc4e458ef1e127838091eef521897357b2ada
3
+ size 563
checkpoint-550000/unet/config.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "UNet2DConditionModel",
3
+ "_diffusers_version": "0.20.0.dev0",
4
+ "_name_or_path": "/amazing-logos-v3/checkpoint-450000",
5
+ "act_fn": "silu",
6
+ "addition_embed_type": null,
7
+ "addition_embed_type_num_heads": 64,
8
+ "addition_time_embed_dim": null,
9
+ "attention_head_dim": 8,
10
+ "block_out_channels": [
11
+ 320,
12
+ 640,
13
+ 1280,
14
+ 1280
15
+ ],
16
+ "center_input_sample": false,
17
+ "class_embed_type": null,
18
+ "class_embeddings_concat": false,
19
+ "conv_in_kernel": 3,
20
+ "conv_out_kernel": 3,
21
+ "cross_attention_dim": 768,
22
+ "cross_attention_norm": null,
23
+ "down_block_types": [
24
+ "CrossAttnDownBlock2D",
25
+ "CrossAttnDownBlock2D",
26
+ "CrossAttnDownBlock2D",
27
+ "DownBlock2D"
28
+ ],
29
+ "downsample_padding": 1,
30
+ "dual_cross_attention": false,
31
+ "encoder_hid_dim": null,
32
+ "encoder_hid_dim_type": null,
33
+ "flip_sin_to_cos": true,
34
+ "freq_shift": 0,
35
+ "in_channels": 4,
36
+ "layers_per_block": 2,
37
+ "mid_block_only_cross_attention": null,
38
+ "mid_block_scale_factor": 1,
39
+ "mid_block_type": "UNetMidBlock2DCrossAttn",
40
+ "norm_eps": 1e-05,
41
+ "norm_num_groups": 32,
42
+ "num_attention_heads": null,
43
+ "num_class_embeds": null,
44
+ "only_cross_attention": false,
45
+ "out_channels": 4,
46
+ "projection_class_embeddings_input_dim": null,
47
+ "resnet_out_scale_factor": 1.0,
48
+ "resnet_skip_time_act": false,
49
+ "resnet_time_scale_shift": "default",
50
+ "sample_size": 64,
51
+ "time_cond_proj_dim": null,
52
+ "time_embedding_act_fn": null,
53
+ "time_embedding_dim": null,
54
+ "time_embedding_type": "positional",
55
+ "timestep_post_act": null,
56
+ "transformer_layers_per_block": 1,
57
+ "up_block_types": [
58
+ "UpBlock2D",
59
+ "CrossAttnUpBlock2D",
60
+ "CrossAttnUpBlock2D",
61
+ "CrossAttnUpBlock2D"
62
+ ],
63
+ "upcast_attention": false,
64
+ "use_linear_projection": false
65
+ }
checkpoint-550000/unet/diffusion_pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:927d45c59843b18af6c4430e747920edc58c4bdbcee54d46acc61e5def08b58c
3
+ size 3438375973
checkpoint-600000/optimizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:220ef182e239c8597b73152b21637c39f4974991df169d5cacc6c8c4c0102900
3
+ size 6876749715
checkpoint-600000/random_states_0.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:abe8e8934dee975b239d89af104eb8a531f41a0a90e4be12f17450239b00c6f5
3
+ size 14727
checkpoint-600000/scaler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9433ff6e169b34e0c1543e7a6b75c996782b9e5e7d13ceefc1c776d7fae65ddb
3
+ size 557
checkpoint-600000/scheduler.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:512b5058a7b8f544d6874dc8fd7ef57ab792d495a222428ba23838286b84eda4
3
+ size 563
checkpoint-600000/unet/config.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "UNet2DConditionModel",
3
+ "_diffusers_version": "0.20.0.dev0",
4
+ "_name_or_path": "/amazing-logos-v3/checkpoint-450000",
5
+ "act_fn": "silu",
6
+ "addition_embed_type": null,
7
+ "addition_embed_type_num_heads": 64,
8
+ "addition_time_embed_dim": null,
9
+ "attention_head_dim": 8,
10
+ "block_out_channels": [
11
+ 320,
12
+ 640,
13
+ 1280,
14
+ 1280
15
+ ],
16
+ "center_input_sample": false,
17
+ "class_embed_type": null,
18
+ "class_embeddings_concat": false,
19
+ "conv_in_kernel": 3,
20
+ "conv_out_kernel": 3,
21
+ "cross_attention_dim": 768,
22
+ "cross_attention_norm": null,
23
+ "down_block_types": [
24
+ "CrossAttnDownBlock2D",
25
+ "CrossAttnDownBlock2D",
26
+ "CrossAttnDownBlock2D",
27
+ "DownBlock2D"
28
+ ],
29
+ "downsample_padding": 1,
30
+ "dual_cross_attention": false,
31
+ "encoder_hid_dim": null,
32
+ "encoder_hid_dim_type": null,
33
+ "flip_sin_to_cos": true,
34
+ "freq_shift": 0,
35
+ "in_channels": 4,
36
+ "layers_per_block": 2,
37
+ "mid_block_only_cross_attention": null,
38
+ "mid_block_scale_factor": 1,
39
+ "mid_block_type": "UNetMidBlock2DCrossAttn",
40
+ "norm_eps": 1e-05,
41
+ "norm_num_groups": 32,
42
+ "num_attention_heads": null,
43
+ "num_class_embeds": null,
44
+ "only_cross_attention": false,
45
+ "out_channels": 4,
46
+ "projection_class_embeddings_input_dim": null,
47
+ "resnet_out_scale_factor": 1.0,
48
+ "resnet_skip_time_act": false,
49
+ "resnet_time_scale_shift": "default",
50
+ "sample_size": 64,
51
+ "time_cond_proj_dim": null,
52
+ "time_embedding_act_fn": null,
53
+ "time_embedding_dim": null,
54
+ "time_embedding_type": "positional",
55
+ "timestep_post_act": null,
56
+ "transformer_layers_per_block": 1,
57
+ "up_block_types": [
58
+ "UpBlock2D",
59
+ "CrossAttnUpBlock2D",
60
+ "CrossAttnUpBlock2D",
61
+ "CrossAttnUpBlock2D"
62
+ ],
63
+ "upcast_attention": false,
64
+ "use_linear_projection": false
65
+ }
checkpoint-600000/unet/diffusion_pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f203e4587a5a2e21f6c0fec43355f6e603ec5d02db20a3191900889caeb490ca
3
+ size 3438375973
checkpoint-650000/optimizer.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:138e0f559c8c8a6755556d269d0c805a81dc39235e32544e9f677094fd821cfe
3
+ size 6876749715
checkpoint-650000/random_states_0.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0727f64d2387bd9ae1eec1a137730404cbd913f15e226e90433596f871cb0e7d
3
+ size 14727
checkpoint-650000/scaler.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4b7dc2f0c1c09c988a5bb2104546aeafa1ea1b1ff606f0d4cafc2da2b8397973
3
+ size 557
checkpoint-650000/scheduler.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ad4c4e474e020ca54fc84b648901a66e1ffed10fba424c919367b3e8ad93d667
3
+ size 563
checkpoint-650000/unet/config.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "UNet2DConditionModel",
3
+ "_diffusers_version": "0.20.0.dev0",
4
+ "_name_or_path": "/amazing-logos-v3/checkpoint-450000",
5
+ "act_fn": "silu",
6
+ "addition_embed_type": null,
7
+ "addition_embed_type_num_heads": 64,
8
+ "addition_time_embed_dim": null,
9
+ "attention_head_dim": 8,
10
+ "block_out_channels": [
11
+ 320,
12
+ 640,
13
+ 1280,
14
+ 1280
15
+ ],
16
+ "center_input_sample": false,
17
+ "class_embed_type": null,
18
+ "class_embeddings_concat": false,
19
+ "conv_in_kernel": 3,
20
+ "conv_out_kernel": 3,
21
+ "cross_attention_dim": 768,
22
+ "cross_attention_norm": null,
23
+ "down_block_types": [
24
+ "CrossAttnDownBlock2D",
25
+ "CrossAttnDownBlock2D",
26
+ "CrossAttnDownBlock2D",
27
+ "DownBlock2D"
28
+ ],
29
+ "downsample_padding": 1,
30
+ "dual_cross_attention": false,
31
+ "encoder_hid_dim": null,
32
+ "encoder_hid_dim_type": null,
33
+ "flip_sin_to_cos": true,
34
+ "freq_shift": 0,
35
+ "in_channels": 4,
36
+ "layers_per_block": 2,
37
+ "mid_block_only_cross_attention": null,
38
+ "mid_block_scale_factor": 1,
39
+ "mid_block_type": "UNetMidBlock2DCrossAttn",
40
+ "norm_eps": 1e-05,
41
+ "norm_num_groups": 32,
42
+ "num_attention_heads": null,
43
+ "num_class_embeds": null,
44
+ "only_cross_attention": false,
45
+ "out_channels": 4,
46
+ "projection_class_embeddings_input_dim": null,
47
+ "resnet_out_scale_factor": 1.0,
48
+ "resnet_skip_time_act": false,
49
+ "resnet_time_scale_shift": "default",
50
+ "sample_size": 64,
51
+ "time_cond_proj_dim": null,
52
+ "time_embedding_act_fn": null,
53
+ "time_embedding_dim": null,
54
+ "time_embedding_type": "positional",
55
+ "timestep_post_act": null,
56
+ "transformer_layers_per_block": 1,
57
+ "up_block_types": [
58
+ "UpBlock2D",
59
+ "CrossAttnUpBlock2D",
60
+ "CrossAttnUpBlock2D",
61
+ "CrossAttnUpBlock2D"
62
+ ],
63
+ "upcast_attention": false,
64
+ "use_linear_projection": false
65
+ }
checkpoint-650000/unet/diffusion_pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5710826b1a6cb492eef47338e850199b0a9dd24267fa82813defd3443959e7e1
3
+ size 3438375973
convert_diffusers_to_original_stable_diffusion.py ADDED
@@ -0,0 +1,333 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Script for converting a HF Diffusers saved pipeline to a Stable Diffusion checkpoint.
2
+ # *Only* converts the UNet, VAE, and Text Encoder.
3
+ # Does not convert optimizer state or any other thing.
4
+
5
+ import argparse
6
+ import os.path as osp
7
+ import re
8
+
9
+ import torch
10
+ from safetensors.torch import load_file, save_file
11
+
12
+
13
+ # =================#
14
+ # UNet Conversion #
15
+ # =================#
16
+
17
+ unet_conversion_map = [
18
+ # (stable-diffusion, HF Diffusers)
19
+ ("time_embed.0.weight", "time_embedding.linear_1.weight"),
20
+ ("time_embed.0.bias", "time_embedding.linear_1.bias"),
21
+ ("time_embed.2.weight", "time_embedding.linear_2.weight"),
22
+ ("time_embed.2.bias", "time_embedding.linear_2.bias"),
23
+ ("input_blocks.0.0.weight", "conv_in.weight"),
24
+ ("input_blocks.0.0.bias", "conv_in.bias"),
25
+ ("out.0.weight", "conv_norm_out.weight"),
26
+ ("out.0.bias", "conv_norm_out.bias"),
27
+ ("out.2.weight", "conv_out.weight"),
28
+ ("out.2.bias", "conv_out.bias"),
29
+ ]
30
+
31
+ unet_conversion_map_resnet = [
32
+ # (stable-diffusion, HF Diffusers)
33
+ ("in_layers.0", "norm1"),
34
+ ("in_layers.2", "conv1"),
35
+ ("out_layers.0", "norm2"),
36
+ ("out_layers.3", "conv2"),
37
+ ("emb_layers.1", "time_emb_proj"),
38
+ ("skip_connection", "conv_shortcut"),
39
+ ]
40
+
41
+ unet_conversion_map_layer = []
42
+ # hardcoded number of downblocks and resnets/attentions...
43
+ # would need smarter logic for other networks.
44
+ for i in range(4):
45
+ # loop over downblocks/upblocks
46
+
47
+ for j in range(2):
48
+ # loop over resnets/attentions for downblocks
49
+ hf_down_res_prefix = f"down_blocks.{i}.resnets.{j}."
50
+ sd_down_res_prefix = f"input_blocks.{3*i + j + 1}.0."
51
+ unet_conversion_map_layer.append((sd_down_res_prefix, hf_down_res_prefix))
52
+
53
+ if i < 3:
54
+ # no attention layers in down_blocks.3
55
+ hf_down_atn_prefix = f"down_blocks.{i}.attentions.{j}."
56
+ sd_down_atn_prefix = f"input_blocks.{3*i + j + 1}.1."
57
+ unet_conversion_map_layer.append((sd_down_atn_prefix, hf_down_atn_prefix))
58
+
59
+ for j in range(3):
60
+ # loop over resnets/attentions for upblocks
61
+ hf_up_res_prefix = f"up_blocks.{i}.resnets.{j}."
62
+ sd_up_res_prefix = f"output_blocks.{3*i + j}.0."
63
+ unet_conversion_map_layer.append((sd_up_res_prefix, hf_up_res_prefix))
64
+
65
+ if i > 0:
66
+ # no attention layers in up_blocks.0
67
+ hf_up_atn_prefix = f"up_blocks.{i}.attentions.{j}."
68
+ sd_up_atn_prefix = f"output_blocks.{3*i + j}.1."
69
+ unet_conversion_map_layer.append((sd_up_atn_prefix, hf_up_atn_prefix))
70
+
71
+ if i < 3:
72
+ # no downsample in down_blocks.3
73
+ hf_downsample_prefix = f"down_blocks.{i}.downsamplers.0.conv."
74
+ sd_downsample_prefix = f"input_blocks.{3*(i+1)}.0.op."
75
+ unet_conversion_map_layer.append((sd_downsample_prefix, hf_downsample_prefix))
76
+
77
+ # no upsample in up_blocks.3
78
+ hf_upsample_prefix = f"up_blocks.{i}.upsamplers.0."
79
+ sd_upsample_prefix = f"output_blocks.{3*i + 2}.{1 if i == 0 else 2}."
80
+ unet_conversion_map_layer.append((sd_upsample_prefix, hf_upsample_prefix))
81
+
82
+ hf_mid_atn_prefix = "mid_block.attentions.0."
83
+ sd_mid_atn_prefix = "middle_block.1."
84
+ unet_conversion_map_layer.append((sd_mid_atn_prefix, hf_mid_atn_prefix))
85
+
86
+ for j in range(2):
87
+ hf_mid_res_prefix = f"mid_block.resnets.{j}."
88
+ sd_mid_res_prefix = f"middle_block.{2*j}."
89
+ unet_conversion_map_layer.append((sd_mid_res_prefix, hf_mid_res_prefix))
90
+
91
+
92
+ def convert_unet_state_dict(unet_state_dict):
93
+ # buyer beware: this is a *brittle* function,
94
+ # and correct output requires that all of these pieces interact in
95
+ # the exact order in which I have arranged them.
96
+ mapping = {k: k for k in unet_state_dict.keys()}
97
+ for sd_name, hf_name in unet_conversion_map:
98
+ mapping[hf_name] = sd_name
99
+ for k, v in mapping.items():
100
+ if "resnets" in k:
101
+ for sd_part, hf_part in unet_conversion_map_resnet:
102
+ v = v.replace(hf_part, sd_part)
103
+ mapping[k] = v
104
+ for k, v in mapping.items():
105
+ for sd_part, hf_part in unet_conversion_map_layer:
106
+ v = v.replace(hf_part, sd_part)
107
+ mapping[k] = v
108
+ new_state_dict = {v: unet_state_dict[k] for k, v in mapping.items()}
109
+ return new_state_dict
110
+
111
+
112
+ # ================#
113
+ # VAE Conversion #
114
+ # ================#
115
+
116
+ vae_conversion_map = [
117
+ # (stable-diffusion, HF Diffusers)
118
+ ("nin_shortcut", "conv_shortcut"),
119
+ ("norm_out", "conv_norm_out"),
120
+ ("mid.attn_1.", "mid_block.attentions.0."),
121
+ ]
122
+
123
+ for i in range(4):
124
+ # down_blocks have two resnets
125
+ for j in range(2):
126
+ hf_down_prefix = f"encoder.down_blocks.{i}.resnets.{j}."
127
+ sd_down_prefix = f"encoder.down.{i}.block.{j}."
128
+ vae_conversion_map.append((sd_down_prefix, hf_down_prefix))
129
+
130
+ if i < 3:
131
+ hf_downsample_prefix = f"down_blocks.{i}.downsamplers.0."
132
+ sd_downsample_prefix = f"down.{i}.downsample."
133
+ vae_conversion_map.append((sd_downsample_prefix, hf_downsample_prefix))
134
+
135
+ hf_upsample_prefix = f"up_blocks.{i}.upsamplers.0."
136
+ sd_upsample_prefix = f"up.{3-i}.upsample."
137
+ vae_conversion_map.append((sd_upsample_prefix, hf_upsample_prefix))
138
+
139
+ # up_blocks have three resnets
140
+ # also, up blocks in hf are numbered in reverse from sd
141
+ for j in range(3):
142
+ hf_up_prefix = f"decoder.up_blocks.{i}.resnets.{j}."
143
+ sd_up_prefix = f"decoder.up.{3-i}.block.{j}."
144
+ vae_conversion_map.append((sd_up_prefix, hf_up_prefix))
145
+
146
+ # this part accounts for mid blocks in both the encoder and the decoder
147
+ for i in range(2):
148
+ hf_mid_res_prefix = f"mid_block.resnets.{i}."
149
+ sd_mid_res_prefix = f"mid.block_{i+1}."
150
+ vae_conversion_map.append((sd_mid_res_prefix, hf_mid_res_prefix))
151
+
152
+
153
+ vae_conversion_map_attn = [
154
+ # (stable-diffusion, HF Diffusers)
155
+ ("norm.", "group_norm."),
156
+ ("q.", "query."),
157
+ ("k.", "key."),
158
+ ("v.", "value."),
159
+ ("proj_out.", "proj_attn."),
160
+ ]
161
+
162
+
163
+ def reshape_weight_for_sd(w):
164
+ # convert HF linear weights to SD conv2d weights
165
+ return w.reshape(*w.shape, 1, 1)
166
+
167
+
168
+ def convert_vae_state_dict(vae_state_dict):
169
+ mapping = {k: k for k in vae_state_dict.keys()}
170
+ for k, v in mapping.items():
171
+ for sd_part, hf_part in vae_conversion_map:
172
+ v = v.replace(hf_part, sd_part)
173
+ mapping[k] = v
174
+ for k, v in mapping.items():
175
+ if "attentions" in k:
176
+ for sd_part, hf_part in vae_conversion_map_attn:
177
+ v = v.replace(hf_part, sd_part)
178
+ mapping[k] = v
179
+ new_state_dict = {v: vae_state_dict[k] for k, v in mapping.items()}
180
+ weights_to_convert = ["q", "k", "v", "proj_out"]
181
+ for k, v in new_state_dict.items():
182
+ for weight_name in weights_to_convert:
183
+ if f"mid.attn_1.{weight_name}.weight" in k:
184
+ print(f"Reshaping {k} for SD format")
185
+ new_state_dict[k] = reshape_weight_for_sd(v)
186
+ return new_state_dict
187
+
188
+
189
+ # =========================#
190
+ # Text Encoder Conversion #
191
+ # =========================#
192
+
193
+
194
+ textenc_conversion_lst = [
195
+ # (stable-diffusion, HF Diffusers)
196
+ ("resblocks.", "text_model.encoder.layers."),
197
+ ("ln_1", "layer_norm1"),
198
+ ("ln_2", "layer_norm2"),
199
+ (".c_fc.", ".fc1."),
200
+ (".c_proj.", ".fc2."),
201
+ (".attn", ".self_attn"),
202
+ ("ln_final.", "transformer.text_model.final_layer_norm."),
203
+ ("token_embedding.weight", "transformer.text_model.embeddings.token_embedding.weight"),
204
+ ("positional_embedding", "transformer.text_model.embeddings.position_embedding.weight"),
205
+ ]
206
+ protected = {re.escape(x[1]): x[0] for x in textenc_conversion_lst}
207
+ textenc_pattern = re.compile("|".join(protected.keys()))
208
+
209
+ # Ordering is from https://github.com/pytorch/pytorch/blob/master/test/cpp/api/modules.cpp
210
+ code2idx = {"q": 0, "k": 1, "v": 2}
211
+
212
+
213
+ def convert_text_enc_state_dict_v20(text_enc_dict):
214
+ new_state_dict = {}
215
+ capture_qkv_weight = {}
216
+ capture_qkv_bias = {}
217
+ for k, v in text_enc_dict.items():
218
+ if (
219
+ k.endswith(".self_attn.q_proj.weight")
220
+ or k.endswith(".self_attn.k_proj.weight")
221
+ or k.endswith(".self_attn.v_proj.weight")
222
+ ):
223
+ k_pre = k[: -len(".q_proj.weight")]
224
+ k_code = k[-len("q_proj.weight")]
225
+ if k_pre not in capture_qkv_weight:
226
+ capture_qkv_weight[k_pre] = [None, None, None]
227
+ capture_qkv_weight[k_pre][code2idx[k_code]] = v
228
+ continue
229
+
230
+ if (
231
+ k.endswith(".self_attn.q_proj.bias")
232
+ or k.endswith(".self_attn.k_proj.bias")
233
+ or k.endswith(".self_attn.v_proj.bias")
234
+ ):
235
+ k_pre = k[: -len(".q_proj.bias")]
236
+ k_code = k[-len("q_proj.bias")]
237
+ if k_pre not in capture_qkv_bias:
238
+ capture_qkv_bias[k_pre] = [None, None, None]
239
+ capture_qkv_bias[k_pre][code2idx[k_code]] = v
240
+ continue
241
+
242
+ relabelled_key = textenc_pattern.sub(lambda m: protected[re.escape(m.group(0))], k)
243
+ new_state_dict[relabelled_key] = v
244
+
245
+ for k_pre, tensors in capture_qkv_weight.items():
246
+ if None in tensors:
247
+ raise Exception("CORRUPTED MODEL: one of the q-k-v values for the text encoder was missing")
248
+ relabelled_key = textenc_pattern.sub(lambda m: protected[re.escape(m.group(0))], k_pre)
249
+ new_state_dict[relabelled_key + ".in_proj_weight"] = torch.cat(tensors)
250
+
251
+ for k_pre, tensors in capture_qkv_bias.items():
252
+ if None in tensors:
253
+ raise Exception("CORRUPTED MODEL: one of the q-k-v values for the text encoder was missing")
254
+ relabelled_key = textenc_pattern.sub(lambda m: protected[re.escape(m.group(0))], k_pre)
255
+ new_state_dict[relabelled_key + ".in_proj_bias"] = torch.cat(tensors)
256
+
257
+ return new_state_dict
258
+
259
+
260
+ def convert_text_enc_state_dict(text_enc_dict):
261
+ return text_enc_dict
262
+
263
+
264
+ if __name__ == "__main__":
265
+ parser = argparse.ArgumentParser()
266
+
267
+ parser.add_argument("--model_path", default=None, type=str, required=True, help="Path to the model to convert.")
268
+ parser.add_argument("--checkpoint_path", default=None, type=str, required=True, help="Path to the output model.")
269
+ parser.add_argument("--half", action="store_true", help="Save weights in half precision.")
270
+ parser.add_argument(
271
+ "--use_safetensors", action="store_true", help="Save weights use safetensors, default is ckpt."
272
+ )
273
+
274
+ args = parser.parse_args()
275
+
276
+ assert args.model_path is not None, "Must provide a model path!"
277
+
278
+ assert args.checkpoint_path is not None, "Must provide a checkpoint path!"
279
+
280
+ # Path for safetensors
281
+ unet_path = osp.join(args.model_path, "unet", "diffusion_pytorch_model.safetensors")
282
+ vae_path = osp.join(args.model_path, "vae", "diffusion_pytorch_model.safetensors")
283
+ text_enc_path = osp.join(args.model_path, "text_encoder", "model.safetensors")
284
+
285
+ # Load models from safetensors if it exists, if it doesn't pytorch
286
+ if osp.exists(unet_path):
287
+ unet_state_dict = load_file(unet_path, device="cpu")
288
+ else:
289
+ unet_path = osp.join(args.model_path, "unet", "diffusion_pytorch_model.bin")
290
+ unet_state_dict = torch.load(unet_path, map_location="cpu")
291
+
292
+ if osp.exists(vae_path):
293
+ vae_state_dict = load_file(vae_path, device="cpu")
294
+ else:
295
+ vae_path = osp.join(args.model_path, "vae", "diffusion_pytorch_model.bin")
296
+ vae_state_dict = torch.load(vae_path, map_location="cpu")
297
+
298
+ if osp.exists(text_enc_path):
299
+ text_enc_dict = load_file(text_enc_path, device="cpu")
300
+ else:
301
+ text_enc_path = osp.join(args.model_path, "text_encoder", "pytorch_model.bin")
302
+ text_enc_dict = torch.load(text_enc_path, map_location="cpu")
303
+
304
+ # Convert the UNet model
305
+ unet_state_dict = convert_unet_state_dict(unet_state_dict)
306
+ unet_state_dict = {"model.diffusion_model." + k: v for k, v in unet_state_dict.items()}
307
+
308
+ # Convert the VAE model
309
+ vae_state_dict = convert_vae_state_dict(vae_state_dict)
310
+ vae_state_dict = {"first_stage_model." + k: v for k, v in vae_state_dict.items()}
311
+
312
+ # Easiest way to identify v2.0 model seems to be that the text encoder (OpenCLIP) is deeper
313
+ is_v20_model = "text_model.encoder.layers.22.layer_norm2.bias" in text_enc_dict
314
+
315
+ if is_v20_model:
316
+ # Need to add the tag 'transformer' in advance so we can knock it out from the final layer-norm
317
+ text_enc_dict = {"transformer." + k: v for k, v in text_enc_dict.items()}
318
+ text_enc_dict = convert_text_enc_state_dict_v20(text_enc_dict)
319
+ text_enc_dict = {"cond_stage_model.model." + k: v for k, v in text_enc_dict.items()}
320
+ else:
321
+ text_enc_dict = convert_text_enc_state_dict(text_enc_dict)
322
+ text_enc_dict = {"cond_stage_model.transformer." + k: v for k, v in text_enc_dict.items()}
323
+
324
+ # Put together new checkpoint
325
+ state_dict = {**unet_state_dict, **vae_state_dict, **text_enc_dict}
326
+ if args.half:
327
+ state_dict = {k: v.half() for k, v in state_dict.items()}
328
+
329
+ if args.use_safetensors:
330
+ save_file(state_dict, args.checkpoint_path)
331
+ else:
332
+ state_dict = {"state_dict": state_dict}
333
+ torch.save(state_dict, args.checkpoint_path)
feature_extractor/preprocessor_config.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "crop_size": {
3
+ "height": 224,
4
+ "width": 224
5
+ },
6
+ "do_center_crop": true,
7
+ "do_convert_rgb": true,
8
+ "do_normalize": true,
9
+ "do_rescale": true,
10
+ "do_resize": true,
11
+ "feature_extractor_type": "CLIPFeatureExtractor",
12
+ "image_mean": [
13
+ 0.48145466,
14
+ 0.4578275,
15
+ 0.40821073
16
+ ],
17
+ "image_processor_type": "CLIPImageProcessor",
18
+ "image_std": [
19
+ 0.26862954,
20
+ 0.26130258,
21
+ 0.27577711
22
+ ],
23
+ "resample": 3,
24
+ "rescale_factor": 0.00392156862745098,
25
+ "size": {
26
+ "shortest_edge": 224
27
+ }
28
+ }
logs/text2image-fine-tune/1691289817.178886/events.out.tfevents.1691289817.cd3805884c99.29163.1 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:41ee2d73ebb48e7b2349f88f826bcdf1d980e5de733bbb6706ba06dd5605d127
3
+ size 2493
logs/text2image-fine-tune/1691289817.180809/hparams.yml ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ adam_beta1: 0.9
2
+ adam_beta2: 0.999
3
+ adam_epsilon: 1.0e-08
4
+ adam_weight_decay: 0.01
5
+ allow_tf32: false
6
+ cache_dir: null
7
+ caption_column: text
8
+ center_crop: true
9
+ checkpointing_steps: 50000
10
+ checkpoints_total_limit: null
11
+ dataloader_num_workers: 8
12
+ dataset_config_name: null
13
+ dataset_name: iamkaikai/amazing_logos_v3
14
+ enable_xformers_memory_efficient_attention: false
15
+ gradient_accumulation_steps: 4
16
+ gradient_checkpointing: false
17
+ hub_model_id: amazing-logos-v3
18
+ hub_token: null
19
+ image_column: image
20
+ learning_rate: 1.0e-07
21
+ local_rank: -1
22
+ logging_dir: logs
23
+ lr_scheduler: cosine
24
+ lr_warmup_steps: 50000
25
+ max_grad_norm: 1.0
26
+ max_train_samples: null
27
+ max_train_steps: 250001
28
+ mixed_precision: null
29
+ noise_offset: 0
30
+ num_train_epochs: 9
31
+ num_validation_images: 24
32
+ output_dir: /amazing-logos-v3
33
+ prediction_type: null
34
+ pretrained_model_name_or_path: runwayml/stable-diffusion-v1-5
35
+ push_to_hub: true
36
+ random_flip: true
37
+ rank: 4
38
+ report_to: tensorboard
39
+ resolution: 512
40
+ resume_from_checkpoint: checkpoint-400000
41
+ revision: null
42
+ scale_lr: false
43
+ seed: 1337
44
+ snr_gamma: null
45
+ train_batch_size: 1
46
+ train_data_dir: null
47
+ use_8bit_adam: false
48
+ validation_epochs: 1
49
+ validation_prompt: Simple elegant logo for Digital Art, D A square terminal tech,
50
+ successful vibe, minimalist, thought-provoking, abstract, recognizable, black and
51
+ white
logs/text2image-fine-tune/events.out.tfevents.1691289817.cd3805884c99.29163.0 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f04454e9bdc99e1a54c57f3ef83b99e7769cdb2be1f1ced55ad8aa800dd97ade
3
+ size 88
model_index.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "StableDiffusionPipeline",
3
+ "_diffusers_version": "0.20.0.dev0",
4
+ "_name_or_path": "runwayml/stable-diffusion-v1-5",
5
+ "feature_extractor": [
6
+ "transformers",
7
+ "CLIPImageProcessor"
8
+ ],
9
+ "requires_safety_checker": true,
10
+ "safety_checker": [
11
+ "stable_diffusion",
12
+ "StableDiffusionSafetyChecker"
13
+ ],
14
+ "scheduler": [
15
+ "diffusers",
16
+ "PNDMScheduler"
17
+ ],
18
+ "text_encoder": [
19
+ "transformers",
20
+ "CLIPTextModel"
21
+ ],
22
+ "tokenizer": [
23
+ "transformers",
24
+ "CLIPTokenizer"
25
+ ],
26
+ "unet": [
27
+ "diffusers",
28
+ "UNet2DConditionModel"
29
+ ],
30
+ "vae": [
31
+ "diffusers",
32
+ "AutoencoderKL"
33
+ ]
34
+ }
safety_checker/config.json ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_commit_hash": "c9ab35ff5f2c362e9e22fbafe278077e196057f0",
3
+ "_name_or_path": "/root/.cache/huggingface/hub/models--runwayml--stable-diffusion-v1-5/snapshots/c9ab35ff5f2c362e9e22fbafe278077e196057f0/safety_checker",
4
+ "architectures": [
5
+ "StableDiffusionSafetyChecker"
6
+ ],
7
+ "initializer_factor": 1.0,
8
+ "logit_scale_init_value": 2.6592,
9
+ "model_type": "clip",
10
+ "projection_dim": 768,
11
+ "text_config": {
12
+ "_name_or_path": "",
13
+ "add_cross_attention": false,
14
+ "architectures": null,
15
+ "attention_dropout": 0.0,
16
+ "bad_words_ids": null,
17
+ "begin_suppress_tokens": null,
18
+ "bos_token_id": 0,
19
+ "chunk_size_feed_forward": 0,
20
+ "cross_attention_hidden_size": null,
21
+ "decoder_start_token_id": null,
22
+ "diversity_penalty": 0.0,
23
+ "do_sample": false,
24
+ "dropout": 0.0,
25
+ "early_stopping": false,
26
+ "encoder_no_repeat_ngram_size": 0,
27
+ "eos_token_id": 2,
28
+ "exponential_decay_length_penalty": null,
29
+ "finetuning_task": null,
30
+ "forced_bos_token_id": null,
31
+ "forced_eos_token_id": null,
32
+ "hidden_act": "quick_gelu",
33
+ "hidden_size": 768,
34
+ "id2label": {
35
+ "0": "LABEL_0",
36
+ "1": "LABEL_1"
37
+ },
38
+ "initializer_factor": 1.0,
39
+ "initializer_range": 0.02,
40
+ "intermediate_size": 3072,
41
+ "is_decoder": false,
42
+ "is_encoder_decoder": false,
43
+ "label2id": {
44
+ "LABEL_0": 0,
45
+ "LABEL_1": 1
46
+ },
47
+ "layer_norm_eps": 1e-05,
48
+ "length_penalty": 1.0,
49
+ "max_length": 20,
50
+ "max_position_embeddings": 77,
51
+ "min_length": 0,
52
+ "model_type": "clip_text_model",
53
+ "no_repeat_ngram_size": 0,
54
+ "num_attention_heads": 12,
55
+ "num_beam_groups": 1,
56
+ "num_beams": 1,
57
+ "num_hidden_layers": 12,
58
+ "num_return_sequences": 1,
59
+ "output_attentions": false,
60
+ "output_hidden_states": false,
61
+ "output_scores": false,
62
+ "pad_token_id": 1,
63
+ "prefix": null,
64
+ "problem_type": null,
65
+ "projection_dim": 512,
66
+ "pruned_heads": {},
67
+ "remove_invalid_values": false,
68
+ "repetition_penalty": 1.0,
69
+ "return_dict": true,
70
+ "return_dict_in_generate": false,
71
+ "sep_token_id": null,
72
+ "suppress_tokens": null,
73
+ "task_specific_params": null,
74
+ "temperature": 1.0,
75
+ "tf_legacy_loss": false,
76
+ "tie_encoder_decoder": false,
77
+ "tie_word_embeddings": true,
78
+ "tokenizer_class": null,
79
+ "top_k": 50,
80
+ "top_p": 1.0,
81
+ "torch_dtype": null,
82
+ "torchscript": false,
83
+ "transformers_version": "4.30.2",
84
+ "typical_p": 1.0,
85
+ "use_bfloat16": false,
86
+ "vocab_size": 49408
87
+ },
88
+ "torch_dtype": "float32",
89
+ "transformers_version": null,
90
+ "vision_config": {
91
+ "_name_or_path": "",
92
+ "add_cross_attention": false,
93
+ "architectures": null,
94
+ "attention_dropout": 0.0,
95
+ "bad_words_ids": null,
96
+ "begin_suppress_tokens": null,
97
+ "bos_token_id": null,
98
+ "chunk_size_feed_forward": 0,
99
+ "cross_attention_hidden_size": null,
100
+ "decoder_start_token_id": null,
101
+ "diversity_penalty": 0.0,
102
+ "do_sample": false,
103
+ "dropout": 0.0,
104
+ "early_stopping": false,
105
+ "encoder_no_repeat_ngram_size": 0,
106
+ "eos_token_id": null,
107
+ "exponential_decay_length_penalty": null,
108
+ "finetuning_task": null,
109
+ "forced_bos_token_id": null,
110
+ "forced_eos_token_id": null,
111
+ "hidden_act": "quick_gelu",
112
+ "hidden_size": 1024,
113
+ "id2label": {
114
+ "0": "LABEL_0",
115
+ "1": "LABEL_1"
116
+ },
117
+ "image_size": 224,
118
+ "initializer_factor": 1.0,
119
+ "initializer_range": 0.02,
120
+ "intermediate_size": 4096,
121
+ "is_decoder": false,
122
+ "is_encoder_decoder": false,
123
+ "label2id": {
124
+ "LABEL_0": 0,
125
+ "LABEL_1": 1
126
+ },
127
+ "layer_norm_eps": 1e-05,
128
+ "length_penalty": 1.0,
129
+ "max_length": 20,
130
+ "min_length": 0,
131
+ "model_type": "clip_vision_model",
132
+ "no_repeat_ngram_size": 0,
133
+ "num_attention_heads": 16,
134
+ "num_beam_groups": 1,
135
+ "num_beams": 1,
136
+ "num_channels": 3,
137
+ "num_hidden_layers": 24,
138
+ "num_return_sequences": 1,
139
+ "output_attentions": false,
140
+ "output_hidden_states": false,
141
+ "output_scores": false,
142
+ "pad_token_id": null,
143
+ "patch_size": 14,
144
+ "prefix": null,
145
+ "problem_type": null,
146
+ "projection_dim": 512,
147
+ "pruned_heads": {},
148
+ "remove_invalid_values": false,
149
+ "repetition_penalty": 1.0,
150
+ "return_dict": true,
151
+ "return_dict_in_generate": false,
152
+ "sep_token_id": null,
153
+ "suppress_tokens": null,
154
+ "task_specific_params": null,
155
+ "temperature": 1.0,
156
+ "tf_legacy_loss": false,
157
+ "tie_encoder_decoder": false,
158
+ "tie_word_embeddings": true,
159
+ "tokenizer_class": null,
160
+ "top_k": 50,
161
+ "top_p": 1.0,
162
+ "torch_dtype": null,
163
+ "torchscript": false,
164
+ "transformers_version": "4.30.2",
165
+ "typical_p": 1.0,
166
+ "use_bfloat16": false
167
+ }
168
+ }
safety_checker/pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:16d28f2b37109f222cdc33620fdd262102ac32112be0352a7f77e9614b35a394
3
+ size 1216064769
scheduler/scheduler_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "PNDMScheduler",
3
+ "_diffusers_version": "0.20.0.dev0",
4
+ "beta_end": 0.012,
5
+ "beta_schedule": "scaled_linear",
6
+ "beta_start": 0.00085,
7
+ "clip_sample": false,
8
+ "num_train_timesteps": 1000,
9
+ "prediction_type": "epsilon",
10
+ "set_alpha_to_one": false,
11
+ "skip_prk_steps": true,
12
+ "steps_offset": 1,
13
+ "timestep_spacing": "leading",
14
+ "trained_betas": null
15
+ }
text_encoder/config.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "runwayml/stable-diffusion-v1-5",
3
+ "architectures": [
4
+ "CLIPTextModel"
5
+ ],
6
+ "attention_dropout": 0.0,
7
+ "bos_token_id": 0,
8
+ "dropout": 0.0,
9
+ "eos_token_id": 2,
10
+ "hidden_act": "quick_gelu",
11
+ "hidden_size": 768,
12
+ "initializer_factor": 1.0,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 3072,
15
+ "layer_norm_eps": 1e-05,
16
+ "max_position_embeddings": 77,
17
+ "model_type": "clip_text_model",
18
+ "num_attention_heads": 12,
19
+ "num_hidden_layers": 12,
20
+ "pad_token_id": 1,
21
+ "projection_dim": 768,
22
+ "torch_dtype": "float16",
23
+ "transformers_version": "4.30.2",
24
+ "vocab_size": 49408
25
+ }
text_encoder/pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6a34f30098988d85dc0fb0fc272a842ebcf552e2ebc6ce4adbcf3695d08e8a90
3
+ size 246188833
tokenizer/merges.txt ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/special_tokens_map.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<|startoftext|>",
4
+ "lstrip": false,
5
+ "normalized": true,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "eos_token": {
10
+ "content": "<|endoftext|>",
11
+ "lstrip": false,
12
+ "normalized": true,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "pad_token": "<|endoftext|>",
17
+ "unk_token": {
18
+ "content": "<|endoftext|>",
19
+ "lstrip": false,
20
+ "normalized": true,
21
+ "rstrip": false,
22
+ "single_word": false
23
+ }
24
+ }
tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "bos_token": {
4
+ "__type": "AddedToken",
5
+ "content": "<|startoftext|>",
6
+ "lstrip": false,
7
+ "normalized": true,
8
+ "rstrip": false,
9
+ "single_word": false
10
+ },
11
+ "clean_up_tokenization_spaces": true,
12
+ "do_lower_case": true,
13
+ "eos_token": {
14
+ "__type": "AddedToken",
15
+ "content": "<|endoftext|>",
16
+ "lstrip": false,
17
+ "normalized": true,
18
+ "rstrip": false,
19
+ "single_word": false
20
+ },
21
+ "errors": "replace",
22
+ "model_max_length": 77,
23
+ "pad_token": "<|endoftext|>",
24
+ "tokenizer_class": "CLIPTokenizer",
25
+ "unk_token": {
26
+ "__type": "AddedToken",
27
+ "content": "<|endoftext|>",
28
+ "lstrip": false,
29
+ "normalized": true,
30
+ "rstrip": false,
31
+ "single_word": false
32
+ }
33
+ }
tokenizer/vocab.json ADDED
The diff for this file is too large to render. See raw diff
 
unet/config.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "UNet2DConditionModel",
3
+ "_diffusers_version": "0.20.0.dev0",
4
+ "_name_or_path": "/amazing-logos-v3/checkpoint-650000",
5
+ "act_fn": "silu",
6
+ "addition_embed_type": null,
7
+ "addition_embed_type_num_heads": 64,
8
+ "addition_time_embed_dim": null,
9
+ "attention_head_dim": 8,
10
+ "block_out_channels": [
11
+ 320,
12
+ 640,
13
+ 1280,
14
+ 1280
15
+ ],
16
+ "center_input_sample": false,
17
+ "class_embed_type": null,
18
+ "class_embeddings_concat": false,
19
+ "conv_in_kernel": 3,
20
+ "conv_out_kernel": 3,
21
+ "cross_attention_dim": 768,
22
+ "cross_attention_norm": null,
23
+ "down_block_types": [
24
+ "CrossAttnDownBlock2D",
25
+ "CrossAttnDownBlock2D",
26
+ "CrossAttnDownBlock2D",
27
+ "DownBlock2D"
28
+ ],
29
+ "downsample_padding": 1,
30
+ "dual_cross_attention": false,
31
+ "encoder_hid_dim": null,
32
+ "encoder_hid_dim_type": null,
33
+ "flip_sin_to_cos": true,
34
+ "freq_shift": 0,
35
+ "in_channels": 4,
36
+ "layers_per_block": 2,
37
+ "mid_block_only_cross_attention": null,
38
+ "mid_block_scale_factor": 1,
39
+ "mid_block_type": "UNetMidBlock2DCrossAttn",
40
+ "norm_eps": 1e-05,
41
+ "norm_num_groups": 32,
42
+ "num_attention_heads": null,
43
+ "num_class_embeds": null,
44
+ "only_cross_attention": false,
45
+ "out_channels": 4,
46
+ "projection_class_embeddings_input_dim": null,
47
+ "resnet_out_scale_factor": 1.0,
48
+ "resnet_skip_time_act": false,
49
+ "resnet_time_scale_shift": "default",
50
+ "sample_size": 64,
51
+ "time_cond_proj_dim": null,
52
+ "time_embedding_act_fn": null,
53
+ "time_embedding_dim": null,
54
+ "time_embedding_type": "positional",
55
+ "timestep_post_act": null,
56
+ "transformer_layers_per_block": 1,
57
+ "up_block_types": [
58
+ "UpBlock2D",
59
+ "CrossAttnUpBlock2D",
60
+ "CrossAttnUpBlock2D",
61
+ "CrossAttnUpBlock2D"
62
+ ],
63
+ "upcast_attention": false,
64
+ "use_linear_projection": false
65
+ }
unet/diffusion_pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8cf0bbe9c363e4271e7158121a0a4eaa2e9d0ec20cd385477434b3555c030dec
3
+ size 3438375973
vae/config.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "AutoencoderKL",
3
+ "_diffusers_version": "0.20.0.dev0",
4
+ "_name_or_path": "runwayml/stable-diffusion-v1-5",
5
+ "act_fn": "silu",
6
+ "block_out_channels": [
7
+ 128,
8
+ 256,
9
+ 512,
10
+ 512
11
+ ],
12
+ "down_block_types": [
13
+ "DownEncoderBlock2D",
14
+ "DownEncoderBlock2D",
15
+ "DownEncoderBlock2D",
16
+ "DownEncoderBlock2D"
17
+ ],
18
+ "force_upcast": true,
19
+ "in_channels": 3,
20
+ "latent_channels": 4,
21
+ "layers_per_block": 2,
22
+ "norm_num_groups": 32,
23
+ "out_channels": 3,
24
+ "sample_size": 512,
25
+ "scaling_factor": 0.18215,
26
+ "up_block_types": [
27
+ "UpDecoderBlock2D",
28
+ "UpDecoderBlock2D",
29
+ "UpDecoderBlock2D",
30
+ "UpDecoderBlock2D"
31
+ ]
32
+ }
vae/diffusion_pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa8c1b74b3e2781e4347b9b350203597674d8860a4338b46431de760c3a5dd22
3
+ size 167407857
val_imgs_grid.png ADDED

Git LFS Details

  • SHA256: 8d97cf9a568f811828722acdaf7d60d8f02d7fe3a42ac7d793202760410b7578
  • Pointer size: 132 Bytes
  • Size of remote file: 6.01 MB