InvokeAI 2.2.4.5__py3-none-any.whl

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 (169) hide show
  1. backend/__init__.py +0 -0
  2. backend/invoke_ai_web_server.py +1724 -0
  3. backend/modules/__init__.py +0 -0
  4. backend/modules/create_cmd_parser.py +55 -0
  5. backend/modules/get_canvas_generation_mode.py +117 -0
  6. backend/modules/parameters.py +71 -0
  7. backend/modules/parse_seed_weights.py +47 -0
  8. configs/INITIAL_MODELS.yaml +80 -0
  9. configs/models.yaml.example +29 -0
  10. configs/sd-concepts.txt +803 -0
  11. configs/stable-diffusion/v1-finetune.yaml +110 -0
  12. configs/stable-diffusion/v1-finetune_style.yaml +103 -0
  13. configs/stable-diffusion/v1-inference.yaml +79 -0
  14. configs/stable-diffusion/v1-inpainting-inference.yaml +79 -0
  15. configs/stable-diffusion/v1-m1-finetune.yaml +110 -0
  16. docs/assets/invoke-web-server-1.png +0 -0
  17. docs/assets/invoke_ai_banner.png +0 -0
  18. invokeai-2.2.4.5.data/data/assets/caution.png +0 -0
  19. invokeai-2.2.4.5.data/data/configs/INITIAL_MODELS.yaml +80 -0
  20. invokeai-2.2.4.5.data/data/configs/models.yaml.example +29 -0
  21. invokeai-2.2.4.5.data/data/configs/sd-concepts.txt +803 -0
  22. invokeai-2.2.4.5.data/data/configs/stable-diffusion/v1-finetune.yaml +110 -0
  23. invokeai-2.2.4.5.data/data/configs/stable-diffusion/v1-finetune_style.yaml +103 -0
  24. invokeai-2.2.4.5.data/data/configs/stable-diffusion/v1-inference.yaml +79 -0
  25. invokeai-2.2.4.5.data/data/configs/stable-diffusion/v1-inpainting-inference.yaml +79 -0
  26. invokeai-2.2.4.5.data/data/configs/stable-diffusion/v1-m1-finetune.yaml +110 -0
  27. invokeai-2.2.4.5.data/data/frontend/dist/assets/Inter-Bold.790c108b.ttf +0 -0
  28. invokeai-2.2.4.5.data/data/frontend/dist/assets/Inter.b9a8e5e2.ttf +0 -0
  29. invokeai-2.2.4.5.data/data/frontend/dist/assets/favicon.0d253ced.ico +0 -0
  30. invokeai-2.2.4.5.data/data/frontend/dist/assets/index-legacy-b741077f.js +48 -0
  31. invokeai-2.2.4.5.data/data/frontend/dist/assets/index.0dadf5d0.css +1 -0
  32. invokeai-2.2.4.5.data/data/frontend/dist/assets/index.21ff81eb.js +625 -0
  33. invokeai-2.2.4.5.data/data/frontend/dist/assets/logo.13003d72.png +0 -0
  34. invokeai-2.2.4.5.data/data/frontend/dist/assets/polyfills-legacy-dde3a68a.js +4 -0
  35. invokeai-2.2.4.5.data/data/frontend/dist/assets/polyfills.1ff60148.js +1 -0
  36. invokeai-2.2.4.5.data/data/frontend/dist/index.html +23 -0
  37. invokeai-2.2.4.5.data/data/scripts/configure_invokeai.py +797 -0
  38. invokeai-2.2.4.5.data/data/scripts/create_root.py +43 -0
  39. invokeai-2.2.4.5.data/data/scripts/dream.py +10 -0
  40. invokeai-2.2.4.5.data/data/scripts/images2prompt.py +30 -0
  41. invokeai-2.2.4.5.data/data/scripts/invoke.py +5 -0
  42. invokeai-2.2.4.5.data/data/scripts/legacy_api.py +681 -0
  43. invokeai-2.2.4.5.data/data/scripts/load_models.py +12 -0
  44. invokeai-2.2.4.5.data/data/scripts/merge_embeddings.py +124 -0
  45. invokeai-2.2.4.5.data/data/scripts/preload_models.py +12 -0
  46. invokeai-2.2.4.5.data/data/scripts/sd-metadata.py +22 -0
  47. invokeai-2.2.4.5.dist-info/LICENSE +21 -0
  48. invokeai-2.2.4.5.dist-info/LICENSE-ModelWeights.txt +294 -0
  49. invokeai-2.2.4.5.dist-info/METADATA +288 -0
  50. invokeai-2.2.4.5.dist-info/RECORD +169 -0
  51. invokeai-2.2.4.5.dist-info/WHEEL +5 -0
  52. invokeai-2.2.4.5.dist-info/entry_points.txt +4 -0
  53. invokeai-2.2.4.5.dist-info/top_level.txt +6 -0
  54. invokeai-2.2.4.5.dist-info/zip-safe +1 -0
  55. ldm/__init__.py +0 -0
  56. ldm/data/__init__.py +0 -0
  57. ldm/data/base.py +31 -0
  58. ldm/data/imagenet.py +466 -0
  59. ldm/data/lsun.py +126 -0
  60. ldm/data/personalized.py +202 -0
  61. ldm/data/personalized_style.py +169 -0
  62. ldm/generate.py +1159 -0
  63. ldm/invoke/CLI.py +960 -0
  64. ldm/invoke/__init__.py +3 -0
  65. ldm/invoke/args.py +1257 -0
  66. ldm/invoke/concepts_lib.py +169 -0
  67. ldm/invoke/conditioning.py +289 -0
  68. ldm/invoke/devices.py +27 -0
  69. ldm/invoke/generator/__init__.py +4 -0
  70. ldm/invoke/generator/base.py +335 -0
  71. ldm/invoke/generator/embiggen.py +501 -0
  72. ldm/invoke/generator/img2img.py +97 -0
  73. ldm/invoke/generator/inpaint.py +358 -0
  74. ldm/invoke/generator/omnibus.py +175 -0
  75. ldm/invoke/generator/txt2img.py +88 -0
  76. ldm/invoke/generator/txt2img2img.py +182 -0
  77. ldm/invoke/globals.py +31 -0
  78. ldm/invoke/image_util.py +70 -0
  79. ldm/invoke/log.py +66 -0
  80. ldm/invoke/model_cache.py +449 -0
  81. ldm/invoke/patchmatch.py +44 -0
  82. ldm/invoke/pngwriter.py +113 -0
  83. ldm/invoke/prompt_parser.py +655 -0
  84. ldm/invoke/readline.py +442 -0
  85. ldm/invoke/restoration/__init__.py +4 -0
  86. ldm/invoke/restoration/base.py +38 -0
  87. ldm/invoke/restoration/codeformer.py +103 -0
  88. ldm/invoke/restoration/codeformer_arch.py +276 -0
  89. ldm/invoke/restoration/gfpgan.py +84 -0
  90. ldm/invoke/restoration/outcrop.py +108 -0
  91. ldm/invoke/restoration/outpaint.py +92 -0
  92. ldm/invoke/restoration/realesrgan.py +90 -0
  93. ldm/invoke/restoration/vqgan_arch.py +435 -0
  94. ldm/invoke/seamless.py +30 -0
  95. ldm/invoke/server.py +282 -0
  96. ldm/invoke/server_legacy.py +246 -0
  97. ldm/invoke/txt2mask.py +136 -0
  98. ldm/lr_scheduler.py +143 -0
  99. ldm/models/__init__.py +0 -0
  100. ldm/models/autoencoder.py +596 -0
  101. ldm/models/diffusion/__init__.py +0 -0
  102. ldm/models/diffusion/classifier.py +355 -0
  103. ldm/models/diffusion/cross_attention_control.py +443 -0
  104. ldm/models/diffusion/cross_attention_map_saving.py +95 -0
  105. ldm/models/diffusion/ddim.py +111 -0
  106. ldm/models/diffusion/ddpm.py +2263 -0
  107. ldm/models/diffusion/ksampler.py +312 -0
  108. ldm/models/diffusion/plms.py +146 -0
  109. ldm/models/diffusion/sampler.py +450 -0
  110. ldm/models/diffusion/shared_invokeai_diffusion.py +244 -0
  111. ldm/modules/__init__.py +0 -0
  112. ldm/modules/attention.py +274 -0
  113. ldm/modules/diffusionmodules/__init__.py +0 -0
  114. ldm/modules/diffusionmodules/model.py +894 -0
  115. ldm/modules/diffusionmodules/openaimodel.py +1036 -0
  116. ldm/modules/diffusionmodules/util.py +314 -0
  117. ldm/modules/distributions/__init__.py +0 -0
  118. ldm/modules/distributions/distributions.py +104 -0
  119. ldm/modules/ema.py +88 -0
  120. ldm/modules/embedding_manager.py +413 -0
  121. ldm/modules/encoders/__init__.py +0 -0
  122. ldm/modules/encoders/modules.py +772 -0
  123. ldm/modules/image_degradation/__init__.py +6 -0
  124. ldm/modules/image_degradation/bsrgan.py +846 -0
  125. ldm/modules/image_degradation/bsrgan_light.py +751 -0
  126. ldm/modules/image_degradation/utils_image.py +1024 -0
  127. ldm/modules/losses/__init__.py +1 -0
  128. ldm/modules/losses/contperceptual.py +175 -0
  129. ldm/modules/losses/vqperceptual.py +240 -0
  130. ldm/modules/x_transformer.py +752 -0
  131. ldm/simplet2i.py +13 -0
  132. ldm/util.py +264 -0
  133. scripts/configure_invokeai.py +797 -0
  134. scripts/create_root.py +43 -0
  135. scripts/dream.py +10 -0
  136. scripts/images2prompt.py +30 -0
  137. scripts/invoke.py +5 -0
  138. scripts/legacy_api.py +681 -0
  139. scripts/load_models.py +12 -0
  140. scripts/merge_embeddings.py +124 -0
  141. scripts/orig_scripts/img2img.py +296 -0
  142. scripts/orig_scripts/inpaint.py +98 -0
  143. scripts/orig_scripts/knn2img.py +397 -0
  144. scripts/orig_scripts/sample_diffusion.py +313 -0
  145. scripts/orig_scripts/train_searcher.py +147 -0
  146. scripts/orig_scripts/txt2img.py +324 -0
  147. scripts/preload_models.py +12 -0
  148. scripts/sd-metadata.py +22 -0
  149. vendored/clip/clip/__init__.py +1 -0
  150. vendored/clip/clip/bpe_simple_vocab_16e6.txt.gz +0 -0
  151. vendored/clip/clip/clip.py +237 -0
  152. vendored/clip/clip/model.py +436 -0
  153. vendored/clip/clip/simple_tokenizer.py +132 -0
  154. vendored/clip/hubconf.py +42 -0
  155. vendored/clip/setup.py +21 -0
  156. vendored/clip/tests/test_consistency.py +25 -0
  157. vendored/clipseg/datasets/coco_wrapper.py +99 -0
  158. vendored/clipseg/datasets/pascal_zeroshot.py +60 -0
  159. vendored/clipseg/datasets/pfe_dataset.py +129 -0
  160. vendored/clipseg/datasets/phrasecut.py +380 -0
  161. vendored/clipseg/datasets/utils.py +68 -0
  162. vendored/clipseg/evaluation_utils.py +292 -0
  163. vendored/clipseg/general_utils.py +272 -0
  164. vendored/clipseg/metrics.py +271 -0
  165. vendored/clipseg/models/clipseg.py +538 -0
  166. vendored/clipseg/models/vitseg.py +286 -0
  167. vendored/clipseg/score.py +453 -0
  168. vendored/clipseg/setup.py +30 -0
  169. vendored/clipseg/training.py +266 -0
File without changes
@@ -0,0 +1,55 @@
1
+ import argparse
2
+ import os
3
+ from ldm.invoke.args import PRECISION_CHOICES
4
+
5
+
6
+ def create_cmd_parser():
7
+ parser = argparse.ArgumentParser(description="InvokeAI web UI")
8
+ parser.add_argument(
9
+ "--host",
10
+ type=str,
11
+ help="The host to serve on",
12
+ default="localhost",
13
+ )
14
+ parser.add_argument("--port", type=int, help="The port to serve on", default=9090)
15
+ parser.add_argument(
16
+ "--cors",
17
+ nargs="*",
18
+ type=str,
19
+ help="Additional allowed origins, comma-separated",
20
+ )
21
+ parser.add_argument(
22
+ "--embedding_path",
23
+ type=str,
24
+ help="Path to a pre-trained embedding manager checkpoint - can only be set on command line",
25
+ )
26
+ # TODO: Can't get flask to serve images from any dir (saving to the dir does work when specified)
27
+ # parser.add_argument(
28
+ # "--output_dir",
29
+ # default="outputs/",
30
+ # type=str,
31
+ # help="Directory for output images",
32
+ # )
33
+ parser.add_argument(
34
+ "-v",
35
+ "--verbose",
36
+ action="store_true",
37
+ help="Enables verbose logging",
38
+ )
39
+ parser.add_argument(
40
+ "--precision",
41
+ dest="precision",
42
+ type=str,
43
+ choices=PRECISION_CHOICES,
44
+ metavar="PRECISION",
45
+ help=f'Set model precision. Defaults to auto selected based on device. Options: {", ".join(PRECISION_CHOICES)}',
46
+ default="auto",
47
+ )
48
+ parser.add_argument(
49
+ '--free_gpu_mem',
50
+ dest='free_gpu_mem',
51
+ action='store_true',
52
+ help='Force free gpu memory before final decoding',
53
+ )
54
+
55
+ return parser
@@ -0,0 +1,117 @@
1
+ from PIL import Image, ImageChops
2
+ from PIL.Image import Image as ImageType
3
+ from typing import Union, Literal
4
+
5
+ # https://stackoverflow.com/questions/43864101/python-pil-check-if-image-is-transparent
6
+ def check_for_any_transparency(img: Union[ImageType, str]) -> bool:
7
+ if type(img) is str:
8
+ img = Image.open(str)
9
+
10
+ if img.info.get("transparency", None) is not None:
11
+ return True
12
+ if img.mode == "P":
13
+ transparent = img.info.get("transparency", -1)
14
+ for _, index in img.getcolors():
15
+ if index == transparent:
16
+ return True
17
+ elif img.mode == "RGBA":
18
+ extrema = img.getextrema()
19
+ if extrema[3][0] < 255:
20
+ return True
21
+ return False
22
+
23
+
24
+ def get_canvas_generation_mode(
25
+ init_img: Union[ImageType, str], init_mask: Union[ImageType, str]
26
+ ) -> Literal["txt2img", "outpainting", "inpainting", "img2img",]:
27
+ if type(init_img) is str:
28
+ init_img = Image.open(init_img)
29
+
30
+ if type(init_mask) is str:
31
+ init_mask = Image.open(init_mask)
32
+
33
+ init_img = init_img.convert("RGBA")
34
+
35
+ # Get alpha from init_img
36
+ init_img_alpha = init_img.split()[-1]
37
+ init_img_alpha_mask = init_img_alpha.convert("L")
38
+ init_img_has_transparency = check_for_any_transparency(init_img)
39
+
40
+ if init_img_has_transparency:
41
+ init_img_is_fully_transparent = (
42
+ True if init_img_alpha_mask.getbbox() is None else False
43
+ )
44
+
45
+ """
46
+ Mask images are white in areas where no change should be made, black where changes
47
+ should be made.
48
+ """
49
+
50
+ # Fit the mask to init_img's size and convert it to greyscale
51
+ init_mask = init_mask.resize(init_img.size).convert("L")
52
+
53
+ """
54
+ PIL.Image.getbbox() returns the bounding box of non-zero areas of the image, so we first
55
+ invert the mask image so that masked areas are white and other areas black == zero.
56
+ getbbox() now tells us if the are any masked areas.
57
+ """
58
+ init_mask_bbox = ImageChops.invert(init_mask).getbbox()
59
+ init_mask_exists = False if init_mask_bbox is None else True
60
+
61
+ if init_img_has_transparency:
62
+ if init_img_is_fully_transparent:
63
+ return "txt2img"
64
+ else:
65
+ return "outpainting"
66
+ else:
67
+ if init_mask_exists:
68
+ return "inpainting"
69
+ else:
70
+ return "img2img"
71
+
72
+
73
+ def main():
74
+ # Testing
75
+ init_img_opaque = "test_images/init-img_opaque.png"
76
+ init_img_partial_transparency = "test_images/init-img_partial_transparency.png"
77
+ init_img_full_transparency = "test_images/init-img_full_transparency.png"
78
+ init_mask_no_mask = "test_images/init-mask_no_mask.png"
79
+ init_mask_has_mask = "test_images/init-mask_has_mask.png"
80
+
81
+ print(
82
+ "OPAQUE IMAGE, NO MASK, expect img2img, got ",
83
+ get_canvas_generation_mode(init_img_opaque, init_mask_no_mask),
84
+ )
85
+
86
+ print(
87
+ "IMAGE WITH TRANSPARENCY, NO MASK, expect outpainting, got ",
88
+ get_canvas_generation_mode(
89
+ init_img_partial_transparency, init_mask_no_mask
90
+ ),
91
+ )
92
+
93
+ print(
94
+ "FULLY TRANSPARENT IMAGE NO MASK, expect txt2img, got ",
95
+ get_canvas_generation_mode(init_img_full_transparency, init_mask_no_mask),
96
+ )
97
+
98
+ print(
99
+ "OPAQUE IMAGE, WITH MASK, expect inpainting, got ",
100
+ get_canvas_generation_mode(init_img_opaque, init_mask_has_mask),
101
+ )
102
+
103
+ print(
104
+ "IMAGE WITH TRANSPARENCY, WITH MASK, expect outpainting, got ",
105
+ get_canvas_generation_mode(
106
+ init_img_partial_transparency, init_mask_has_mask
107
+ ),
108
+ )
109
+
110
+ print(
111
+ "FULLY TRANSPARENT IMAGE WITH MASK, expect txt2img, got ",
112
+ get_canvas_generation_mode(init_img_full_transparency, init_mask_has_mask),
113
+ )
114
+
115
+
116
+ if __name__ == "__main__":
117
+ main()
@@ -0,0 +1,71 @@
1
+ from backend.modules.parse_seed_weights import parse_seed_weights
2
+ import argparse
3
+
4
+ SAMPLER_CHOICES = [
5
+ "ddim",
6
+ "k_dpm_2_a",
7
+ "k_dpm_2",
8
+ "k_dpmpp_2_a",
9
+ "k_dpmpp_2",
10
+ "k_euler_a",
11
+ "k_euler",
12
+ "k_heun",
13
+ "k_lms",
14
+ "plms",
15
+ ]
16
+
17
+
18
+ def parameters_to_command(params):
19
+ """
20
+ Converts dict of parameters into a `invoke.py` REPL command.
21
+ """
22
+
23
+ switches = list()
24
+
25
+ if "prompt" in params:
26
+ switches.append(f'"{params["prompt"]}"')
27
+ if "steps" in params:
28
+ switches.append(f'-s {params["steps"]}')
29
+ if "seed" in params:
30
+ switches.append(f'-S {params["seed"]}')
31
+ if "width" in params:
32
+ switches.append(f'-W {params["width"]}')
33
+ if "height" in params:
34
+ switches.append(f'-H {params["height"]}')
35
+ if "cfg_scale" in params:
36
+ switches.append(f'-C {params["cfg_scale"]}')
37
+ if "sampler_name" in params:
38
+ switches.append(f'-A {params["sampler_name"]}')
39
+ if "seamless" in params and params["seamless"] == True:
40
+ switches.append(f"--seamless")
41
+ if "hires_fix" in params and params["hires_fix"] == True:
42
+ switches.append(f"--hires")
43
+ if "init_img" in params and len(params["init_img"]) > 0:
44
+ switches.append(f'-I {params["init_img"]}')
45
+ if "init_mask" in params and len(params["init_mask"]) > 0:
46
+ switches.append(f'-M {params["init_mask"]}')
47
+ if "init_color" in params and len(params["init_color"]) > 0:
48
+ switches.append(f'--init_color {params["init_color"]}')
49
+ if "strength" in params and "init_img" in params:
50
+ switches.append(f'-f {params["strength"]}')
51
+ if "fit" in params and params["fit"] == True:
52
+ switches.append(f"--fit")
53
+ if "facetool" in params:
54
+ switches.append(f'-ft {params["facetool"]}')
55
+ if "facetool_strength" in params and params["facetool_strength"]:
56
+ switches.append(f'-G {params["facetool_strength"]}')
57
+ elif "gfpgan_strength" in params and params["gfpgan_strength"]:
58
+ switches.append(f'-G {params["gfpgan_strength"]}')
59
+ if "codeformer_fidelity" in params:
60
+ switches.append(f'-cf {params["codeformer_fidelity"]}')
61
+ if "upscale" in params and params["upscale"]:
62
+ switches.append(f'-U {params["upscale"][0]} {params["upscale"][1]}')
63
+ if "variation_amount" in params and params["variation_amount"] > 0:
64
+ switches.append(f'-v {params["variation_amount"]}')
65
+ if "with_variations" in params:
66
+ seed_weight_pairs = ",".join(
67
+ f"{seed}:{weight}" for seed, weight in params["with_variations"]
68
+ )
69
+ switches.append(f"-V {seed_weight_pairs}")
70
+
71
+ return " ".join(switches)
@@ -0,0 +1,47 @@
1
+ def parse_seed_weights(seed_weights):
2
+ """
3
+ Accepts seed weights as string in "12345:0.1,23456:0.2,3456:0.3" format
4
+ Validates them
5
+ If valid: returns as [[12345, 0.1], [23456, 0.2], [3456, 0.3]]
6
+ If invalid: returns False
7
+ """
8
+
9
+ # Must be a string
10
+ if not isinstance(seed_weights, str):
11
+ return False
12
+ # String must not be empty
13
+ if len(seed_weights) == 0:
14
+ return False
15
+
16
+ pairs = []
17
+
18
+ for pair in seed_weights.split(","):
19
+ split_values = pair.split(":")
20
+
21
+ # Seed and weight are required
22
+ if len(split_values) != 2:
23
+ return False
24
+
25
+ if len(split_values[0]) == 0 or len(split_values[1]) == 1:
26
+ return False
27
+
28
+ # Try casting the seed to int and weight to float
29
+ try:
30
+ seed = int(split_values[0])
31
+ weight = float(split_values[1])
32
+ except ValueError:
33
+ return False
34
+
35
+ # Seed must be 0 or above
36
+ if not seed >= 0:
37
+ return False
38
+
39
+ # Weight must be between 0 and 1
40
+ if not (weight >= 0 and weight <= 1):
41
+ return False
42
+
43
+ # This pair is valid
44
+ pairs.append([seed, weight])
45
+
46
+ # All pairs are valid
47
+ return pairs
@@ -0,0 +1,80 @@
1
+ stable-diffusion-1.5:
2
+ description: The newest Stable Diffusion version 1.5 weight file (4.27 GB)
3
+ repo_id: runwayml/stable-diffusion-v1-5
4
+ config: v1-inference.yaml
5
+ file: v1-5-pruned-emaonly.ckpt
6
+ recommended: true
7
+ width: 512
8
+ height: 512
9
+ inpainting-1.5:
10
+ description: RunwayML SD 1.5 model optimized for inpainting (4.27 GB)
11
+ repo_id: runwayml/stable-diffusion-inpainting
12
+ config: v1-inpainting-inference.yaml
13
+ file: sd-v1-5-inpainting.ckpt
14
+ recommended: True
15
+ width: 512
16
+ height: 512
17
+ ft-mse-improved-autoencoder-840000:
18
+ description: StabilityAI improved autoencoder fine-tuned for human faces (recommended; 335 MB)
19
+ repo_id: stabilityai/sd-vae-ft-mse-original
20
+ config: VAE/default
21
+ file: vae-ft-mse-840000-ema-pruned.ckpt
22
+ recommended: True
23
+ width: 512
24
+ height: 512
25
+ stable-diffusion-1.4:
26
+ description: The original Stable Diffusion version 1.4 weight file (4.27 GB)
27
+ repo_id: CompVis/stable-diffusion-v-1-4-original
28
+ config: v1-inference.yaml
29
+ file: sd-v1-4.ckpt
30
+ recommended: False
31
+ width: 512
32
+ height: 512
33
+ waifu-diffusion-1.3:
34
+ description: Stable Diffusion 1.4 fine tuned on anime-styled images (4.27 GB)
35
+ repo_id: hakurei/waifu-diffusion-v1-3
36
+ config: v1-inference.yaml
37
+ file: model-epoch09-float32.ckpt
38
+ recommended: False
39
+ width: 512
40
+ height: 512
41
+ trinart-2.0:
42
+ description: An SD model finetuned with ~40,000 assorted high resolution manga/anime-style pictures (2.13 GB)
43
+ repo_id: naclbit/trinart_stable_diffusion_v2
44
+ config: v1-inference.yaml
45
+ file: trinart2_step95000.ckpt
46
+ recommended: False
47
+ width: 512
48
+ height: 512
49
+ trinart_characters-1.0:
50
+ description: An SD model finetuned with 19.2M anime/manga style images (2.13 GB)
51
+ repo_id: naclbit/trinart_characters_19.2m_stable_diffusion_v1
52
+ config: v1-inference.yaml
53
+ file: trinart_characters_it4_v1.ckpt
54
+ recommended: False
55
+ width: 512
56
+ height: 512
57
+ trinart_vae:
58
+ description: Custom autoencoder for trinart_characters
59
+ repo_id: naclbit/trinart_characters_19.2m_stable_diffusion_v1
60
+ config: VAE/trinart
61
+ file: autoencoder_fix_kl-f8-trinart_characters.ckpt
62
+ recommended: False
63
+ width: 512
64
+ height: 512
65
+ papercut-1.0:
66
+ description: SD 1.5 fine-tuned for papercut art (use "PaperCut" in your prompts) (2.13 GB)
67
+ repo_id: Fictiverse/Stable_Diffusion_PaperCut_Model
68
+ config: v1-inference.yaml
69
+ file: PaperCut_v1.ckpt
70
+ recommended: False
71
+ width: 512
72
+ height: 512
73
+ voxel_art-1.0:
74
+ description: Stable Diffusion trained on voxel art (use "VoxelArt" in your prompts) (4.27 GB)
75
+ repo_id: Fictiverse/Stable_Diffusion_VoxelArt_Model
76
+ config: v1-inference.yaml
77
+ file: VoxelArt_v1.ckpt
78
+ recommended: False
79
+ width: 512
80
+ height: 512
@@ -0,0 +1,29 @@
1
+ # This file describes the alternative machine learning models
2
+ # available to InvokeAI script.
3
+ #
4
+ # To add a new model, follow the examples below. Each
5
+ # model requires a model config file, a weights file,
6
+ # and the width and height of the images it
7
+ # was trained on.
8
+ stable-diffusion-1.5:
9
+ description: The newest Stable Diffusion version 1.5 weight file (4.27 GB)
10
+ weights: models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
11
+ config: configs/stable-diffusion/v1-inference.yaml
12
+ width: 512
13
+ height: 512
14
+ vae: ./models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
15
+ default: true
16
+ stable-diffusion-1.4:
17
+ description: Stable Diffusion inference model version 1.4
18
+ config: configs/stable-diffusion/v1-inference.yaml
19
+ weights: models/ldm/stable-diffusion-v1/sd-v1-4.ckpt
20
+ vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
21
+ width: 512
22
+ height: 512
23
+ inpainting-1.5:
24
+ weights: models/ldm/stable-diffusion-v1/sd-v1-5-inpainting.ckpt
25
+ config: configs/stable-diffusion/v1-inpainting-inference.yaml
26
+ vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
27
+ description: RunwayML SD 1.5 model optimized for inpainting
28
+ width: 512
29
+ height: 512