YunusTAS13 commited on
Commit
9d5c45f
·
verified ·
1 Parent(s): d88e593

Replace adapter-only release with complete standalone model

Browse files

Adds fused full Diffusers pipeline, standalone safetensors checkpoint, beginner launcher, bilingual documentation, prompts, examples, and independent tests.

.gitattributes CHANGED
@@ -56,3 +56,4 @@ examples/prompt_control/05_woman_base.png filter=lfs diff=lfs merge=lfs -text
56
  examples/prompt_control/06_dog_base.png filter=lfs diff=lfs merge=lfs -text
57
  examples/prompt_control/07_woman_trigger_03.png filter=lfs diff=lfs merge=lfs -text
58
  examples/prompt_control/08_woman_trigger_04.png filter=lfs diff=lfs merge=lfs -text
 
 
56
  examples/prompt_control/06_dog_base.png filter=lfs diff=lfs merge=lfs -text
57
  examples/prompt_control/07_woman_trigger_03.png filter=lfs diff=lfs merge=lfs -text
58
  examples/prompt_control/08_woman_trigger_04.png filter=lfs diff=lfs merge=lfs -text
59
+ examples/full_model_smoke_test.png filter=lfs diff=lfs merge=lfs -text
InkNoir_Core_Full.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b26172bac01af58119c5d229d6a03197e1e5a9de497d67613dafeea1ad8ff2d
3
+ size 2132625150
MODEL_LICENSE_NOTICE.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # InkNoir Core license notice
2
+
3
+ ## English
4
+
5
+ The full checkpoint is a fused derivative of [Lykon/DreamShaper 8](https://huggingface.co/Lykon/dreamshaper-8), whose model card identifies its license as **CreativeML Open RAIL-M** (`creativeml-openrail-m`). Users must comply with that license, including its use-based restrictions, attribution requirements and downstream-notice requirements. The original model card is the authoritative source for the current terms.
6
+
7
+ This repository does not grant permission to ignore the base model’s restrictions. The InkNoir additions are provided as-is. Training-image provenance and any rights needed for redistribution of derived weights remain the responsibility of the publisher.
8
+
9
+ License reference: https://github.com/CompVis/stable-diffusion/blob/main/LICENSE
10
+
11
+ ## Türkçe
12
+
13
+ Bu tam checkpoint, model kartında **CreativeML Open RAIL-M** (`creativeml-openrail-m`) lisansıyla belirtilen [Lykon/DreamShaper 8](https://huggingface.co/Lykon/dreamshaper-8) modelinden türetilmiştir. Kullanıcılar bu lisansın kullanım kısıtlarına, atıf şartlarına ve türetilmiş modeller için bildirim şartlarına uymalıdır. Güncel ve bağlayıcı şartlar için orijinal model kartı ve lisans metni esas alınmalıdır.
14
+
15
+ Bu repo taban modelin kısıtlarını kaldırmaz. InkNoir eklemeleri olduğu gibi sunulur. Eğitim görsellerinin kaynağı ve türetilmiş ağırlıkların dağıtımı için gerekli hakların doğrulanması yayıncının sorumluluğundadır.
PUBLISH_CHECKLIST.md CHANGED
@@ -1,18 +1,13 @@
1
- # InkNoir Core release checklist
2
 
3
- - [x] Adapter file is valid `safetensors` and contains model metadata.
4
- - [x] Base model is recorded as `Lykon/dreamshaper-8`.
5
- - [x] Trigger word and recommended inference settings are documented.
6
- - [x] Diffusers and Automatic1111/ComfyUI usage examples are documented.
7
- - [x] English and Turkish setup/use instructions are documented.
8
- - [x] Six generated example images are included.
9
- - [x] Each example has its English prompt, Turkish translation, seed and settings in `examples/prompts.md`.
10
- - [x] System requirements, memory guidance, img2img and troubleshooting sections are documented.
11
- - [x] Limitations are stated: this is a LoRA, not a standalone model or video model.
12
- - [x] A sample generated directly with the packaged adapter is included.
13
- - [x] Packaged adapter SHA-256: `f1c0d425b4a8950b2f212044a7e3b538b17618a5dccec026adb6e424b0463ef0`.
14
- - [ ] Confirm the Hugging Face account/repository owner name before pushing.
15
- - [ ] Confirm the redistribution rights and attribution for every locally curated training image.
16
- - [ ] Review the DreamShaper 8 license terms at publish time.
17
-
18
- The last three checks are intentionally left for the owner before public release. The package must not imply that local training-image provenance has been independently cleared when it has not.
 
1
+ # InkNoir Core full release checklist
2
 
3
+ - [x] Complete Diffusers pipeline included at repository root.
4
+ - [x] Standalone half-precision `InkNoir_Core_Full.safetensors` included.
5
+ - [x] Optional unfused adapter included under `adapters/`.
6
+ - [x] Full pipeline loaded locally without a LoRA and generated a smoke-test image.
7
+ - [x] No `lora_*` keys remain in the fused UNet or single-file checkpoint.
8
+ - [x] Beginner launcher `run_inknoir.py` included.
9
+ - [x] `requirements.txt` included.
10
+ - [x] English/Turkish setup and usage instructions included.
11
+ - [x] Main gallery, prompt catalog, independent benchmark and prompt-control tests included.
12
+ - [x] DreamShaper 8 is attributed as the base model and CreativeML Open RAIL-M is identified.
13
+ - [ ] Publisher must verify training-image redistribution rights before claiming a fully cleared dataset provenance.
 
 
 
 
 
InkNoir_Core.safetensors → adapters/InkNoir_Core.safetensors RENAMED
File without changes
examples/full_model_smoke_test.png ADDED

Git LFS Details

  • SHA256: 832b14f3e968897dd018ee896d578c243d0dea702d001b80edb1789b08ac913f
  • Pointer size: 131 Bytes
  • Size of remote file: 402 kB
model_index.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "StableDiffusionPipeline",
3
+ "_diffusers_version": "0.41.0.dev0",
4
+ "_name_or_path": "Lykon/dreamshaper-8",
5
+ "feature_extractor": [
6
+ null,
7
+ null
8
+ ],
9
+ "image_encoder": [
10
+ null,
11
+ null
12
+ ],
13
+ "requires_safety_checker": false,
14
+ "safety_checker": [
15
+ null,
16
+ null
17
+ ],
18
+ "scheduler": [
19
+ "diffusers",
20
+ "DEISMultistepScheduler"
21
+ ],
22
+ "text_encoder": [
23
+ "transformers",
24
+ "CLIPTextModel"
25
+ ],
26
+ "tokenizer": [
27
+ "transformers",
28
+ "CLIPTokenizer"
29
+ ],
30
+ "unet": [
31
+ "diffusers",
32
+ "UNet2DConditionModel"
33
+ ],
34
+ "vae": [
35
+ "diffusers",
36
+ "AutoencoderKL"
37
+ ]
38
+ }
requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ torch
2
+ torchvision
3
+ diffusers
4
+ transformers
5
+ accelerate
6
+ safetensors
7
+ pillow
8
+ sentencepiece
run_inknoir.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Beginner-friendly InkNoir Core full-model launcher."""
3
+
4
+ import argparse
5
+ from pathlib import Path
6
+
7
+ import torch
8
+ from diffusers import StableDiffusionPipeline
9
+
10
+
11
+ def main():
12
+ root = Path(__file__).resolve().parent
13
+ parser = argparse.ArgumentParser(description="Generate one image with the full InkNoir Core model.")
14
+ parser.add_argument("--prompt", default=None, help="English or translated prompt")
15
+ parser.add_argument("--negative", default="low quality, blurry, deformed, bad anatomy, text, watermark")
16
+ parser.add_argument("--output", default="inknoir_output.png")
17
+ parser.add_argument("--steps", type=int, default=28)
18
+ parser.add_argument("--cfg", type=float, default=7.0)
19
+ parser.add_argument("--seed", type=int, default=20260920)
20
+ parser.add_argument("--width", type=int, default=512)
21
+ parser.add_argument("--height", type=int, default=512)
22
+ parser.add_argument("--model", default=str(root), help="Local model directory or Hugging Face repo ID")
23
+ args = parser.parse_args()
24
+
25
+ prompt = args.prompt or input("Prompt / İstek: ").strip()
26
+ if not prompt:
27
+ raise SystemExit("A prompt is required / Prompt gerekli.")
28
+
29
+ if torch.cuda.is_available():
30
+ device, dtype = "cuda", torch.float16
31
+ elif getattr(torch.backends, "mps", None) and torch.backends.mps.is_available():
32
+ device, dtype = "mps", torch.float32
33
+ else:
34
+ device, dtype = "cpu", torch.float32
35
+
36
+ print(f"InkNoir Core yükleniyor: {args.model}")
37
+ print(f"Cihaz: {device} | Boyut: {args.width}x{args.height} | Adım: {args.steps}")
38
+ pipe = StableDiffusionPipeline.from_pretrained(
39
+ args.model,
40
+ torch_dtype=dtype,
41
+ safety_checker=None,
42
+ requires_safety_checker=False,
43
+ ).to(device)
44
+ pipe.enable_attention_slicing()
45
+ if hasattr(pipe, "enable_vae_slicing"):
46
+ pipe.enable_vae_slicing()
47
+
48
+ generator = torch.Generator(device=device).manual_seed(args.seed)
49
+ image = pipe(
50
+ prompt=prompt,
51
+ negative_prompt=args.negative,
52
+ width=args.width,
53
+ height=args.height,
54
+ num_inference_steps=args.steps,
55
+ guidance_scale=args.cfg,
56
+ generator=generator,
57
+ ).images[0]
58
+ image.save(args.output)
59
+ print(f"Kaydedildi / Saved: {args.output}")
60
+
61
+
62
+ if __name__ == "__main__":
63
+ main()
scheduler/scheduler_config.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "DEISMultistepScheduler",
3
+ "_diffusers_version": "0.41.0.dev0",
4
+ "algorithm_type": "deis",
5
+ "beta_end": 0.012,
6
+ "beta_schedule": "scaled_linear",
7
+ "beta_start": 0.00085,
8
+ "clip_sample": false,
9
+ "dynamic_thresholding_ratio": 0.995,
10
+ "flow_shift": 1.0,
11
+ "lower_order_final": true,
12
+ "num_train_timesteps": 1000,
13
+ "prediction_type": "epsilon",
14
+ "sample_max_value": 1.0,
15
+ "set_alpha_to_one": false,
16
+ "skip_prk_steps": true,
17
+ "solver_order": 2,
18
+ "solver_type": "logrho",
19
+ "steps_offset": 1,
20
+ "thresholding": false,
21
+ "time_shift_type": "exponential",
22
+ "timestep_spacing": "leading",
23
+ "trained_betas": null,
24
+ "use_beta_sigmas": false,
25
+ "use_dynamic_shifting": false,
26
+ "use_exponential_sigmas": false,
27
+ "use_flow_sigmas": false,
28
+ "use_karras_sigmas": false
29
+ }
text_encoder/config.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "CLIPTextModel"
4
+ ],
5
+ "attention_dropout": 0.0,
6
+ "bos_token_id": 0,
7
+ "dropout": 0.0,
8
+ "dtype": "float16",
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
+ "transformers_version": "5.17.0",
23
+ "vocab_size": 49408
24
+ }
text_encoder/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fda1f312e49f667179f53878e6ac717d8f37d6119cc5adb76fba88895b94d0a7
3
+ size 246144152
tokenizer/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer/tokenizer_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_prefix_space": false,
3
+ "backend": "tokenizers",
4
+ "bos_token": "<|startoftext|>",
5
+ "clean_up_tokenization_spaces": true,
6
+ "do_lower_case": true,
7
+ "eos_token": "<|endoftext|>",
8
+ "errors": "replace",
9
+ "is_local": true,
10
+ "local_files_only": true,
11
+ "model_max_length": 77,
12
+ "pad_token": "<|endoftext|>",
13
+ "tokenizer_class": "CLIPTokenizer",
14
+ "unk_token": "<|endoftext|>"
15
+ }
unet/config.json ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "UNet2DConditionModel",
3
+ "_diffusers_version": "0.41.0.dev0",
4
+ "_name_or_path": "/home/yunustas/InkNoir-Core/hf_cache/hub/models--Lykon--dreamshaper-8/snapshots/a7e52b98680b1ba8ff7bce97c7f9f2e2e5337917/unet",
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
+ "attention_type": "default",
11
+ "block_out_channels": [
12
+ 320,
13
+ 640,
14
+ 1280,
15
+ 1280
16
+ ],
17
+ "center_input_sample": false,
18
+ "class_embed_type": null,
19
+ "class_embeddings_concat": false,
20
+ "conv_in_kernel": 3,
21
+ "conv_out_kernel": 3,
22
+ "cross_attention_dim": 768,
23
+ "cross_attention_norm": null,
24
+ "down_block_types": [
25
+ "CrossAttnDownBlock2D",
26
+ "CrossAttnDownBlock2D",
27
+ "CrossAttnDownBlock2D",
28
+ "DownBlock2D"
29
+ ],
30
+ "downsample_padding": 1,
31
+ "dropout": 0.0,
32
+ "dual_cross_attention": false,
33
+ "encoder_hid_dim": null,
34
+ "encoder_hid_dim_type": null,
35
+ "flip_sin_to_cos": true,
36
+ "freq_shift": 0,
37
+ "in_channels": 4,
38
+ "layers_per_block": 2,
39
+ "mid_block_only_cross_attention": null,
40
+ "mid_block_scale_factor": 1,
41
+ "mid_block_type": "UNetMidBlock2DCrossAttn",
42
+ "norm_eps": 1e-05,
43
+ "norm_num_groups": 32,
44
+ "num_attention_heads": null,
45
+ "num_class_embeds": null,
46
+ "only_cross_attention": false,
47
+ "out_channels": 4,
48
+ "projection_class_embeddings_input_dim": null,
49
+ "resnet_out_scale_factor": 1.0,
50
+ "resnet_skip_time_act": false,
51
+ "resnet_time_scale_shift": "default",
52
+ "reverse_transformer_layers_per_block": null,
53
+ "sample_size": 64,
54
+ "time_cond_proj_dim": null,
55
+ "time_embedding_act_fn": null,
56
+ "time_embedding_dim": null,
57
+ "time_embedding_type": "positional",
58
+ "timestep_post_act": null,
59
+ "transformer_layers_per_block": 1,
60
+ "up_block_types": [
61
+ "UpBlock2D",
62
+ "CrossAttnUpBlock2D",
63
+ "CrossAttnUpBlock2D",
64
+ "CrossAttnUpBlock2D"
65
+ ],
66
+ "upcast_attention": null,
67
+ "use_linear_projection": false
68
+ }
unet/diffusion_pytorch_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f5e504080331f87d627213f5bde1f0ef8fc44571f884ee4ab9d67aabced37ff
3
+ size 1719125304
vae/config.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class_name": "AutoencoderKL",
3
+ "_diffusers_version": "0.41.0.dev0",
4
+ "_name_or_path": "/home/yunustas/InkNoir-Core/hf_cache/hub/models--Lykon--dreamshaper-8/snapshots/a7e52b98680b1ba8ff7bce97c7f9f2e2e5337917/vae",
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
+ "latents_mean": null,
22
+ "latents_std": null,
23
+ "layers_per_block": 2,
24
+ "mid_block_add_attention": true,
25
+ "norm_num_groups": 32,
26
+ "out_channels": 3,
27
+ "sample_size": 512,
28
+ "scaling_factor": 0.18215,
29
+ "shift_factor": null,
30
+ "up_block_types": [
31
+ "UpDecoderBlock2D",
32
+ "UpDecoderBlock2D",
33
+ "UpDecoderBlock2D",
34
+ "UpDecoderBlock2D"
35
+ ],
36
+ "use_post_quant_conv": true,
37
+ "use_quant_conv": true
38
+ }
vae/diffusion_pytorch_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ff38c7ec66a4ae76f466a3ade876522bff4fea8add1981cc433f518666cea33d
3
+ size 167335342