toyxyz commited on
Commit
e126fbb
·
0 Parent(s):

Anima Regional LLLite public release

Browse files
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz 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
README.md ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: other
5
+ license_name: upstream-anima-and-source-data-terms
6
+ license_link: https://huggingface.co/circlestone-labs/Anima/blob/main/LICENSE.md
7
+ base_model:
8
+ - circlestone-labs/Anima
9
+ datasets:
10
+ - toyxyz/booruregion_10k
11
+ pipeline_tag: image-to-image
12
+ tags:
13
+ - anima
14
+ - controlnet
15
+ - lllite
16
+ - comfyui
17
+ - region-control
18
+ - instance-segmentation
19
+ - safetensors
20
+ ---
21
+
22
+ # Anima ControlNet-LLLite
23
+
24
+ Lightweight ControlNet adapters for **Anima**. Choose a model by its control type; each model has a separate document with its training and evaluation details.
25
+
26
+ ## Models and control types
27
+
28
+ | Model | Control type | Detailed documentation |
29
+ | --- | --- | --- |
30
+ | [anima_regional_4335.safetensors](anima_regional_4335.safetensors) | **RGB region control** for subject layout, silhouettes, poses, and object placement | [Model details and training parameters](docs/anima_regional_4335.md) |
31
+
32
+ `anima_regional_4335` uses a **3-channel RGB instance-color map**: distinct solid colors identify regions, and black marks unassigned pixels. Colors are not fixed semantic labels. This is a region-conditioning adapter, not a black/white-mask inpainting model.
33
+
34
+ ## How to use
35
+
36
+ 1. Use an Anima-compatible ComfyUI setup with [ComfyUI-Anima-LLLite](https://github.com/kohya-ss/ComfyUI-Anima-LLLite).
37
+ 2. Download the adapter and place it in the `controlnet` model search path (`ComfyUI/models/controlnet/`, or an external directory configured for `controlnet`).
38
+ 3. Load your Anima model, compatible text encoder and VAE. In **Apply Anima ControlNet-LLLite (sd-scripts)** (`AnimaLLLiteApply_sdscripts`), select the adapter and connect the model and RGB control image.
39
+ 4. Connect the patched model to the sampler and use your usual positive/negative prompts. Keep the control image's aspect ratio aligned with the output canvas.
40
+
41
+ For `anima_regional_4335`, start with **strength 1.0**, **start/end 0.0/1.0**, **30 sampling steps**, and **CFG 4**. Use the same seed when comparing results.
42
+
43
+ ## Dataset
44
+
45
+ `anima_regional_4335` was trained on [toyxyz/booruregion_10k](https://huggingface.co/datasets/toyxyz/booruregion_10k): paired target images, RGB region maps, and captions. The training split contains **10,000 pairs** (3,834 Danbooru originals and 6,166 Anima-generated images), with **120 validation** and **120 test** pairs.
46
+
47
+ Full dataset provenance, measured training time, steps, batch size, architecture, parameters, file hashes, evaluation limits, and source terms are recorded in the [model-specific document](docs/anima_regional_4335.md) and its [training JSON](docs/anima_regional_4335.training.json).
anima_regional_4335.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e907ea9259b324a11c94e5767420a6a46c6a9d86597df5ccf9b1ad5eeb817618
3
+ size 51133584
docs/anima_regional_4335.md ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # anima_regional_4335 — Detailed Model Documentation
2
+
3
+ **`anima_regional_4335.safetensors` is a lightweight spatial-conditioning adapter for Anima, trained to use RGB instance-color region maps to guide subject layout, silhouettes, poses, and object placement.** It is the final checkpoint from a completed 4,335-step training run on Anima-Base v1.0.
4
+
5
+ This repository contains the adapter weights, a concise repository card, this model-specific document, and [anima_regional_4335.training.json](anima_regional_4335.training.json). The Anima diffusion model, text encoder, and VAE must be obtained separately. The weight file uses the self-describing **sd-scripts Anima LLLite v2** format; it contains 25,517,504 adapter parameters across 828 tensors, saved in BF16, and is approximately 51.13 MB.
6
+
7
+ ## What the control input means
8
+
9
+ - Use an **RGB region map** with separate, solid colors for visible instances or object regions and an exactly black background for unassigned pixels.
10
+ - Colors vary across training images and instances. They are **not fixed class labels**: red does not always mean a person, and blue does not always mean background.
11
+ - Captions describe the scene but do not bind named objects to particular colors. A phrase such as "the red region is a girl" is not a trained region-to-text binding interface.
12
+ - The model learns spatial guidance. It does not guarantee pixel-exact reconstruction, exact identity, or assignment of specific prompt phrases to specific colored regions.
13
+
14
+ This is a **3-channel region-control model**, with `lllite_inpaint_masked_input=false`. Feed the colored control map to the node's **IMAGE** input. It is not a 4-channel inpainting adapter; a conventional black/white edit mask does not provide the instance-region information used during training. Black control pixels represent unassigned space, not an instruction to preserve source pixels.
15
+
16
+ ## How to use it in ComfyUI
17
+
18
+ The tested integration is [kohya-ss/ComfyUI-Anima-LLLite](https://github.com/kohya-ss/ComfyUI-Anima-LLLite).
19
+
20
+ 1. Use a ComfyUI setup that supports Anima and install the linked custom node according to its instructions.
21
+ 2. Download **[anima_regional_4335.safetensors](../anima_regional_4335.safetensors)** and make it available in the `controlnet` model search path. The node's default location is `ComfyUI/models/controlnet/`; an external model directory configured for `controlnet` can also be used.
22
+ 3. Load an Anima diffusion model, its compatible Qwen3 text encoder, and Qwen Image VAE. Training used **Anima-Base v1.0**, **Qwen3 0.6B**, and **Qwen Image VAE**. Subsequent local comparisons also used the Anima-family `miaomiaoHarem_anima16.safetensors` checkpoint; this does not establish compatibility with every Anima derivative.
23
+ 4. Load your RGB region-map PNG as an **IMAGE**. Use **Apply Anima ControlNet-LLLite (sd-scripts)**, node ID **`AnimaLLLiteApply_sdscripts`**, select `anima_regional_4335.safetensors`, and connect both the Anima **MODEL** and control **IMAGE**.
24
+ 5. Send the node's output **MODEL** to your sampler, supply normal positive/negative text conditioning, and decode the sampled latent with the VAE.
25
+
26
+ The model path is:
27
+
28
+ ```text
29
+ Anima MODEL + RGB region-map IMAGE
30
+ -> AnimaLLLiteApply_sdscripts
31
+ -> sampler with positive/negative prompt conditioning
32
+ -> VAE Decode
33
+ -> generated image
34
+ ```
35
+
36
+ ### Starting settings from the completed comparisons
37
+
38
+ | Setting | Value used |
39
+ | --- | --- |
40
+ | LLLite strength | `1.0` |
41
+ | Active window | `start_percent=0.0`, `end_percent=1.0` |
42
+ | Preserve wrapper | `true` |
43
+ | Sampling steps | `30` |
44
+ | CFG | `4.0` |
45
+ | Sampler / scheduler | `er_sde` / `simple` |
46
+ | Denoise | `1.0` |
47
+
48
+ These are tested example settings, not a universal optimum. Use the same seed when comparing strength `0` with strength `1`, or when comparing checkpoints. Keep the control map's aspect ratio consistent with the output canvas: the node resizes the control image to the generated resolution. Start around the approximately one-megapixel resolutions represented in training.
49
+
50
+ For example, draw distinct colored silhouettes of two standing people and prompt:
51
+
52
+ ```text
53
+ two adult women, full body, standing side by side, colorful winter coats,
54
+ trousers, boots, city street, evening lights
55
+ ```
56
+
57
+ The prompt determines appearance and scene content; the RGB map supplies spatial guidance. No special trigger word is required by the documented training setup.
58
+
59
+ Use the explicitly named `AnimaLLLiteApply_sdscripts` node for this tested route. The similarly named ComfyUI core `AnimaLLLiteApply` has a different loading interface; replacing the custom node with the core node without rewiring is not equivalent. This release was not tested through a stock Diffusers `ControlNetModel` pipeline.
60
+
61
+ ### Download
62
+
63
+ ```bash
64
+ hf download toyxyz/Anima_ControlNet-LLLite anima_regional_4335.safetensors --local-dir ./anima-region
65
+ ```
66
+
67
+ ## Training dataset
68
+
69
+ Dataset: **[toyxyz/booruregion_10k](https://huggingface.co/datasets/toyxyz/booruregion_10k)**, pinned to revision **`7f3418e46677688b846364ce6f7de170027d424d`**.
70
+
71
+ Each pair contains an RGB target image, an aligned RGB instance-color conditioning map, and a preserved text caption.
72
+
73
+ | Split | Danbooru originals | Anima-generated images | Total pairs |
74
+ | --- | ---: | ---: | ---: |
75
+ | Train | 3,834 | 6,166 | **10,000** |
76
+ | Validation | 32 | 88 | **120** |
77
+ | Test | 39 | 81 | **120** |
78
+ | All splits | 3,905 | 6,335 | **10,240** |
79
+
80
+ The original-image portion was sampled using the exact `highres` tag from [aipracticecafe/curated-danbooru-2026](https://huggingface.co/datasets/aipracticecafe/curated-danbooru-2026), revision `47be3c0a1fca0d4d198e4fa28ab7758473a104b1`. The generated portion consists of Anima images produced from sampled source-tag prompts. Captions were retained without newly generated descriptions or color-binding labels. Some generated-image captions contain tags plus an existing natural-language description; others contain tags only.
81
+
82
+ Visible object-region annotations used 6-pixel expansion, categorical edge refinement, and filling of small enclosed holes. Unassigned pixels are black. Original images retain their aspect ratio, with an approximately one-megapixel maximum canvas, a longest edge up to 1,536 pixels, no forced upscaling, and minimal centered padding for 16-pixel alignment; the earlier generated portion retains its recommended-size canvases.
83
+
84
+ Related source IDs, identical targets, and full matching captions were kept within one split. A user-provided error checklist removed 95 marked pairs from the original-image addition; this is not an exhaustive semantic quality review of every remaining pair. The source collection includes varied content ratings and may include adult imagery, panel comics, and images without people.
85
+
86
+ Dataset manifest SHA256:
87
+
88
+ ```text
89
+ 5bdfb489e19b746922255742e18e5d67114645fbae11847ba16c894f6f85a38c
90
+ ```
91
+
92
+ ## Actual training parameters
93
+
94
+ These are the **settings actually used for the completed main run**, not the earlier planning values or benchmark settings. A machine-readable record is included in **[anima_regional_4335.training.json](anima_regional_4335.training.json)**.
95
+
96
+ | Parameter | Actual value |
97
+ | --- | --- |
98
+ | Base diffusion model | Anima-Base v1.0 |
99
+ | Text encoder / VAE | Qwen3 0.6B / Qwen Image VAE |
100
+ | Trainer | `kohya-ss/sd-scripts`, `anima_train_control_net_lllite.py` |
101
+ | Trainer commit | `690ea7f96c23182352ec63def76d431c6120bd2f` |
102
+ | Completed training steps | **4,335 / 4,335**; successful exit |
103
+ | Batch size setting | **32** |
104
+ | Gradient accumulation | `1` |
105
+ | Main-stage wall time | **44,083.328 seconds = 12.245 hours, approximately 12 h 14 min 43 s** |
106
+ | Native final progress elapsed time | `12:12:06` |
107
+ | GPU | 1 x NVIDIA RTX PRO 6000 Blackwell Server Edition, 96 GB |
108
+ | Learning rate | `1e-4` |
109
+ | Optimizer | `AdamW8bit` |
110
+ | Optimizer arguments | `weight_decay=0.01`, `betas=0.9,0.999`, `eps=1e-8` |
111
+ | LR scheduler / warmup | `constant_with_warmup` / **58 steps** |
112
+ | Loss | `l2` |
113
+ | Mixed precision / saved weights | `bf16` / `bf16` |
114
+ | Gradient checkpointing | Enabled |
115
+ | Timestep sampling / flow shift | `shift` / `3.0` |
116
+ | Maximum gradient norm | `1.0` |
117
+ | Training seed | `20261010` |
118
+ | Model and complete-state save interval | **144 steps**, plus the final save |
119
+ | Fixed-case image validation interval | At the start and every **289 steps**, including step 4,335 |
120
+ | Resolution handling | **109 exact-size groups**; original aligned canvas sizes retained |
121
+ | Native bucketing | `enable_bucket=false`; groups were prepared at exact resolutions |
122
+ | Caption dropout / tag dropout | `0.15` / `0.0` |
123
+ | Caption shuffling, flip/color augmentation, random cropping | Disabled |
124
+ | Latent cache / text-encoder-output cache | Both enabled, including disk caching |
125
+ | VAE batch / text-encoder batch | `4` / `8` |
126
+ | Qwen Image VAE options | 2D mode enabled, chunk size `64`, VAE internal cache disabled |
127
+ | Attention mode | PyTorch (`torch`) |
128
+ | Data loader workers | `4`, persistent workers enabled |
129
+ | Qwen3 / T5 maximum token length | `512` / `512` |
130
+ | TF32 / cuDNN benchmark | Enabled / disabled |
131
+
132
+ The main-stage timer includes model initialization and the final save. Earlier installation, initial caching, smoke/resume tests, and batch benchmarks are **excluded** from this 12.245-hour figure. The native progress timer has a different scope, so it is reported separately.
133
+
134
+ The batch-size setting is 32, but **not every batch contains 32 images**. The 10,000 training pairs form 378 batches per epoch across the 109 size groups, with partial batches retained. The epoch-average batch size is approximately **26.455**. Therefore, `4,335 x 32 = 138,720` is only the nominal count. The epoch-average estimate is **114,682.54 image exposures**; it is not a measured per-image exposure count. The 4,335-step target was chosen to approximately match the effective throughput of the earlier batch-8, 15,000-step plan.
135
+
136
+ ### Adapter architecture
137
+
138
+ | Parameter | Value |
139
+ | --- | --- |
140
+ | Weight format | Anima LLLite v2 |
141
+ | Trainable adapter parameters | `25,517,504` |
142
+ | Conditioning channels | `3` (RGB) |
143
+ | `cond_emb_dim` | `64` |
144
+ | `lllite_cond_dim` | `128` |
145
+ | `lllite_mlp_dim` | `64` |
146
+ | Conditioning residual blocks | `4` |
147
+ | ASPP / dilations | Enabled / `1,2,4,8` |
148
+ | Target layers | `self_attn_q_pre,self_attn_kv_pre` |
149
+ | Training multiplier / dropout | `1.0` / `0.0` |
150
+ | Masked inpainting input | `false` |
151
+
152
+ LoRA rank/alpha settings do not describe this adapter's configuration. Its conditioning encoder and LLLite module dimensions are recorded above and embedded in the weight metadata.
153
+
154
+ Training software included PyTorch `2.8.0+cu128`, CUDA `12.8`, Accelerate `1.15.0`, bitsandbytes `0.50.2`, Diffusers `0.40.0`, Transformers `5.17.0`, and safetensors `0.8.0`. The trainer's tracked source was recorded as clean at the main-run start; no custom runtime function replacements were used for training.
155
+
156
+ Training base-file SHA256:
157
+
158
+ ```text
159
+ bd43b7cffe1ed1153d9c41e7beb2f18cb1273eafbaa3af3edd6a173dc90a006e
160
+ ```
161
+
162
+ ## Evaluation and limitations
163
+
164
+ Training-time visual checks used six fixed cases with matched captions, seeds, and resolutions; 30 sampling steps, CFG 4, flow shift 3, and LLLite multipliers 0 and 1. The completed run retained 192 validation PNGs. Subsequent local ComfyUI comparisons used five prompt/mask groups across 31 checkpoints, with the same seed and paired normal/overlay views (310 images).
165
+
166
+ Manual observations found closer subject layout and pose in the inspected cases, while hands, object shapes, clothing details, identities, and backgrounds could still differ. There is no reported quantitative evaluation over all 120 validation or 120 held-out test pairs, no generalization guarantee, and no claim that the final checkpoint is better than every intermediate checkpoint. The final checkpoint was selected because it completed the requested training target. The final native average loss was **0.0786**; loss alone does not establish generation quality. Photorealistic domains, precise named-color semantic assignment, and inpainting behavior are not established by these checks.
167
+
168
+ ## File integrity and naming
169
+
170
+ | File | Size | SHA256 |
171
+ | --- | ---: | --- |
172
+ | `anima_regional_4335.safetensors` | `51,133,584` bytes | `e907ea9259b324a11c94e5767420a6a46c6a9d86597df5ccf9b1ad5eeb817618` |
173
+
174
+ The published model title is `anima_regional_4335`. The numeric tensor payload is unchanged from the completed training output. Optimizer/scheduler/RNG states are not required for inference and are not part of this release.
175
+
176
+ ## Licensing and provenance
177
+
178
+ The upstream [Anima repository](https://huggingface.co/circlestone-labs/Anima) currently identifies its license as the [Circlestone Labs Non-Commercial License](https://huggingface.co/circlestone-labs/Anima/blob/main/LICENSE.md). Consult those terms for the base model. The original-image portion of the dataset retains the rights and terms of its upstream sources and respective artists, as described in the [dataset card](https://huggingface.co/datasets/toyxyz/booruregion_10k). This document does not grant a separate commercial-use permission or relicense the underlying images. The training and inference code repositories have their own licenses; those code licenses are not a blanket license for the model or training artwork.
179
+
180
+ ## References
181
+
182
+ - [Anima](https://huggingface.co/circlestone-labs/Anima)
183
+ - [Training dataset and export instructions](https://huggingface.co/datasets/toyxyz/booruregion_10k/tree/7f3418e46677688b846364ce6f7de170027d424d)
184
+ - [Anima LLLite training guide at the recorded trainer commit](https://github.com/kohya-ss/sd-scripts/blob/690ea7f96c23182352ec63def76d431c6120bd2f/docs/anima_train_control_net_lllite.md)
185
+ - [ComfyUI Anima LLLite integration](https://github.com/kohya-ss/ComfyUI-Anima-LLLite)
186
+
187
+ Released by **toyxyz** on **2026-10-11**.
188
+
189
+
190
+ [Back to the model collection](../README.md)
docs/anima_regional_4335.training.json ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_name": "Anima Regional ControlNet-LLLite",
3
+ "filename": "anima_regional_4335.safetensors",
4
+ "sha256": "e907ea9259b324a11c94e5767420a6a46c6a9d86597df5ccf9b1ad5eeb817618",
5
+ "file_size_bytes": 51133584,
6
+ "training_base": {
7
+ "name": "Anima-Base v1.0",
8
+ "repository": "circlestone-labs/Anima",
9
+ "file_sha256": "bd43b7cffe1ed1153d9c41e7beb2f18cb1273eafbaa3af3edd6a173dc90a006e"
10
+ },
11
+ "conditioning": {
12
+ "input_channels": 3,
13
+ "type": "RGB instance-color region map",
14
+ "background_rgb": [
15
+ 0,
16
+ 0,
17
+ 0
18
+ ],
19
+ "colors": "random per image and instance; no fixed semantic color IDs",
20
+ "inpaint_masked_input": false
21
+ },
22
+ "architecture_metadata": {
23
+ "lllite.target_layers": "self_attn_q_pre,self_attn_kv_pre",
24
+ "lllite.target_atomics": "self_attn_q_pre,self_attn_kv_pre",
25
+ "lllite.cond_dim": "128",
26
+ "lllite.version": "2",
27
+ "modelspec.resolution": "1024x1024",
28
+ "lllite.cond_resblocks": "4",
29
+ "lllite.cond_in_channels": "3",
30
+ "lllite.use_aspp": "true",
31
+ "modelspec.architecture": "anima-preview/control-net-lllite",
32
+ "modelspec.implementation": "https://huggingface.co/circlestone-labs/Anima",
33
+ "modelspec.prediction_type": "epsilon",
34
+ "lllite.cond_emb_dim": "64",
35
+ "modelspec.sai_model_spec": "1.0.1",
36
+ "lllite.mlp_dim": "64",
37
+ "modelspec.title": "anima_regional_4335",
38
+ "modelspec.implementation_version": "sd-scripts/690ea7f96c23182352ec63def76d431c6120bd2f",
39
+ "lllite.aspp_dilations": "1,2,4,8",
40
+ "lllite.inpaint_masked_input": "false",
41
+ "modelspec.date": "2026-10-11T03:29:17"
42
+ },
43
+ "trainable_parameters": 25517504,
44
+ "tensor_count": 828,
45
+ "trainer": {
46
+ "repository": "https://github.com/kohya-ss/sd-scripts",
47
+ "commit": "690ea7f96c23182352ec63def76d431c6120bd2f",
48
+ "entrypoint": "anima_train_control_net_lllite.py"
49
+ },
50
+ "hardware": "1 NVIDIA RTX PRO 6000 Blackwell Server Edition (96 GB)",
51
+ "software": {
52
+ "python": "3.12",
53
+ "pytorch": "2.8.0+cu128",
54
+ "cuda": "12.8",
55
+ "accelerate": "1.15.0",
56
+ "bitsandbytes": "0.50.2",
57
+ "diffusers": "0.40.0",
58
+ "transformers": "5.17.0",
59
+ "safetensors": "0.8.0"
60
+ },
61
+ "completed_steps": 4335,
62
+ "main_stage_elapsed_seconds": 44083.32825228525,
63
+ "main_stage_elapsed_hours": 12.245368958968125,
64
+ "native_progress_elapsed": "12:12:06",
65
+ "timing_scope": "Main stage includes initialization and final save; excludes earlier installation, initial caching, smoke/resume tests and batch benchmarks.",
66
+ "native_final_average_loss": 0.0786,
67
+ "loss_does_not_establish_generation_quality": true,
68
+ "actual_training_parameters": {
69
+ "save_model_as": "safetensors",
70
+ "save_precision": "bf16",
71
+ "cond_emb_dim": 64,
72
+ "lllite_cond_dim": 128,
73
+ "lllite_mlp_dim": 64,
74
+ "lllite_cond_resblocks": 4,
75
+ "lllite_use_aspp": true,
76
+ "lllite_cond_in_channels": 3,
77
+ "lllite_inpaint_masked_input": false,
78
+ "lllite_target_layers": "self_attn_q_pre,self_attn_kv_pre",
79
+ "lllite_multiplier": 1.0,
80
+ "learning_rate": 0.0001,
81
+ "optimizer_type": "AdamW8bit",
82
+ "lr_scheduler": "constant_with_warmup",
83
+ "timestep_sampling": "shift",
84
+ "discrete_flow_shift": 3.0,
85
+ "save_state": true,
86
+ "mixed_precision": "bf16",
87
+ "gradient_checkpointing": true,
88
+ "cache_latents": true,
89
+ "cache_latents_to_disk": true,
90
+ "cache_text_encoder_outputs": true,
91
+ "cache_text_encoder_outputs_to_disk": true,
92
+ "vae_batch_size": 4,
93
+ "text_encoder_batch_size": 8,
94
+ "vae_chunk_size": 64,
95
+ "vae_disable_cache": true,
96
+ "qwen_image_vae_2d": true,
97
+ "attn_mode": "torch",
98
+ "max_data_loader_n_workers": 4,
99
+ "gradient_accumulation_steps": 1,
100
+ "max_grad_norm": 1.0,
101
+ "seed": 20261010,
102
+ "qwen3_max_token_length": 512,
103
+ "t5_max_token_length": 512,
104
+ "log_with": "tensorboard",
105
+ "save_state_on_train_end": true,
106
+ "lr_warmup_steps": 58,
107
+ "lllite_dropout": 0.0,
108
+ "optimizer_args": [
109
+ "weight_decay=0.01",
110
+ "betas=0.9,0.999",
111
+ "eps=1e-8"
112
+ ],
113
+ "loss_type": "l2",
114
+ "cuda_allow_tf32": true,
115
+ "cuda_cudnn_benchmark": false,
116
+ "max_train_steps": 4335,
117
+ "save_every_n_steps": 144,
118
+ "sample_every_n_steps": 289,
119
+ "sample_at_first": true,
120
+ "persistent_data_loader_workers": true,
121
+ "published_filename": "anima_regional_4335.safetensors"
122
+ },
123
+ "dataset": {
124
+ "repo_id": "toyxyz/booruregion_10k",
125
+ "revision": "7f3418e46677688b846364ce6f7de170027d424d",
126
+ "manifest_sha256": "5bdfb489e19b746922255742e18e5d67114645fbae11847ba16c894f6f85a38c",
127
+ "split_source_counts": {
128
+ "test": {
129
+ "danbooru_original": 39,
130
+ "anima_generated": 81
131
+ },
132
+ "train": {
133
+ "danbooru_original": 3834,
134
+ "anima_generated": 6166
135
+ },
136
+ "validation": {
137
+ "danbooru_original": 32,
138
+ "anima_generated": 88
139
+ }
140
+ },
141
+ "total_pairs": 10240,
142
+ "train_pairs": 10000,
143
+ "resolution_groups": 109,
144
+ "enable_bucket": false,
145
+ "caption_dropout_rate": 0.15,
146
+ "shuffle_caption": false,
147
+ "flip_aug": false,
148
+ "color_aug": false,
149
+ "random_crop": false,
150
+ "tag_dropout_rate": 0.0
151
+ },
152
+ "batch_accounting": {
153
+ "batch_size_setting": 32,
154
+ "batches_per_epoch": 378,
155
+ "mean_images_per_batch": 26.455026455026456,
156
+ "nominal_step_times_batch": 138720,
157
+ "estimated_effective_image_exposures": 114682.53968253969,
158
+ "exposure_estimate_method": "steps multiplied by epoch-average images per batch; not an observed per-image count"
159
+ },
160
+ "validation": {
161
+ "fixed_cases": 6,
162
+ "sample_steps": 30,
163
+ "cfg": 4,
164
+ "flow_shift": 3,
165
+ "same_seed_multiplier_comparison": [
166
+ 0,
167
+ 1
168
+ ],
169
+ "sample_every_n_steps": 289,
170
+ "held_out_test_set_quantitative_evaluation": false
171
+ },
172
+ "inference_settings_used_in_comfyui_comparison": {
173
+ "node": "AnimaLLLiteApply_sdscripts",
174
+ "strength": 1.0,
175
+ "start_percent": 0.0,
176
+ "end_percent": 1.0,
177
+ "preserve_wrapper": true,
178
+ "steps": 30,
179
+ "cfg": 4,
180
+ "sampler": "er_sde",
181
+ "scheduler": "simple",
182
+ "denoise": 1.0,
183
+ "seed": 12321312312313
184
+ },
185
+ "release_date": "2026-10-11"
186
+ }
training_info.json ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_name": "Anima Regional ControlNet-LLLite",
3
+ "filename": "anima_regional_4335.safetensors",
4
+ "sha256": "e907ea9259b324a11c94e5767420a6a46c6a9d86597df5ccf9b1ad5eeb817618",
5
+ "file_size_bytes": 51133584,
6
+ "training_base": {
7
+ "name": "Anima-Base v1.0",
8
+ "repository": "circlestone-labs/Anima",
9
+ "file_sha256": "bd43b7cffe1ed1153d9c41e7beb2f18cb1273eafbaa3af3edd6a173dc90a006e"
10
+ },
11
+ "conditioning": {
12
+ "input_channels": 3,
13
+ "type": "RGB instance-color region map",
14
+ "background_rgb": [
15
+ 0,
16
+ 0,
17
+ 0
18
+ ],
19
+ "colors": "random per image and instance; no fixed semantic color IDs",
20
+ "inpaint_masked_input": false
21
+ },
22
+ "architecture_metadata": {
23
+ "lllite.target_layers": "self_attn_q_pre,self_attn_kv_pre",
24
+ "lllite.target_atomics": "self_attn_q_pre,self_attn_kv_pre",
25
+ "lllite.cond_dim": "128",
26
+ "lllite.version": "2",
27
+ "modelspec.resolution": "1024x1024",
28
+ "lllite.cond_resblocks": "4",
29
+ "lllite.cond_in_channels": "3",
30
+ "lllite.use_aspp": "true",
31
+ "modelspec.architecture": "anima-preview/control-net-lllite",
32
+ "modelspec.implementation": "https://huggingface.co/circlestone-labs/Anima",
33
+ "modelspec.prediction_type": "epsilon",
34
+ "lllite.cond_emb_dim": "64",
35
+ "modelspec.sai_model_spec": "1.0.1",
36
+ "lllite.mlp_dim": "64",
37
+ "modelspec.title": "anima_regional_4335",
38
+ "modelspec.implementation_version": "sd-scripts/690ea7f96c23182352ec63def76d431c6120bd2f",
39
+ "lllite.aspp_dilations": "1,2,4,8",
40
+ "lllite.inpaint_masked_input": "false",
41
+ "modelspec.date": "2026-10-11T03:29:17"
42
+ },
43
+ "trainable_parameters": 25517504,
44
+ "tensor_count": 828,
45
+ "trainer": {
46
+ "repository": "https://github.com/kohya-ss/sd-scripts",
47
+ "commit": "690ea7f96c23182352ec63def76d431c6120bd2f",
48
+ "entrypoint": "anima_train_control_net_lllite.py"
49
+ },
50
+ "hardware": "1 NVIDIA RTX PRO 6000 Blackwell Server Edition (96 GB)",
51
+ "software": {
52
+ "python": "3.12",
53
+ "pytorch": "2.8.0+cu128",
54
+ "cuda": "12.8",
55
+ "accelerate": "1.15.0",
56
+ "bitsandbytes": "0.50.2",
57
+ "diffusers": "0.40.0",
58
+ "transformers": "5.17.0",
59
+ "safetensors": "0.8.0"
60
+ },
61
+ "completed_steps": 4335,
62
+ "main_stage_elapsed_seconds": 44083.32825228525,
63
+ "main_stage_elapsed_hours": 12.245368958968125,
64
+ "native_progress_elapsed": "12:12:06",
65
+ "timing_scope": "Main stage includes initialization and final save; excludes earlier installation, initial caching, smoke/resume tests and batch benchmarks.",
66
+ "native_final_average_loss": 0.0786,
67
+ "loss_does_not_establish_generation_quality": true,
68
+ "actual_training_parameters": {
69
+ "save_model_as": "safetensors",
70
+ "save_precision": "bf16",
71
+ "cond_emb_dim": 64,
72
+ "lllite_cond_dim": 128,
73
+ "lllite_mlp_dim": 64,
74
+ "lllite_cond_resblocks": 4,
75
+ "lllite_use_aspp": true,
76
+ "lllite_cond_in_channels": 3,
77
+ "lllite_inpaint_masked_input": false,
78
+ "lllite_target_layers": "self_attn_q_pre,self_attn_kv_pre",
79
+ "lllite_multiplier": 1.0,
80
+ "learning_rate": 0.0001,
81
+ "optimizer_type": "AdamW8bit",
82
+ "lr_scheduler": "constant_with_warmup",
83
+ "timestep_sampling": "shift",
84
+ "discrete_flow_shift": 3.0,
85
+ "save_state": true,
86
+ "mixed_precision": "bf16",
87
+ "gradient_checkpointing": true,
88
+ "cache_latents": true,
89
+ "cache_latents_to_disk": true,
90
+ "cache_text_encoder_outputs": true,
91
+ "cache_text_encoder_outputs_to_disk": true,
92
+ "vae_batch_size": 4,
93
+ "text_encoder_batch_size": 8,
94
+ "vae_chunk_size": 64,
95
+ "vae_disable_cache": true,
96
+ "qwen_image_vae_2d": true,
97
+ "attn_mode": "torch",
98
+ "max_data_loader_n_workers": 4,
99
+ "gradient_accumulation_steps": 1,
100
+ "max_grad_norm": 1.0,
101
+ "seed": 20261010,
102
+ "qwen3_max_token_length": 512,
103
+ "t5_max_token_length": 512,
104
+ "log_with": "tensorboard",
105
+ "save_state_on_train_end": true,
106
+ "lr_warmup_steps": 58,
107
+ "lllite_dropout": 0.0,
108
+ "optimizer_args": [
109
+ "weight_decay=0.01",
110
+ "betas=0.9,0.999",
111
+ "eps=1e-8"
112
+ ],
113
+ "loss_type": "l2",
114
+ "cuda_allow_tf32": true,
115
+ "cuda_cudnn_benchmark": false,
116
+ "max_train_steps": 4335,
117
+ "save_every_n_steps": 144,
118
+ "sample_every_n_steps": 289,
119
+ "sample_at_first": true,
120
+ "persistent_data_loader_workers": true,
121
+ "published_filename": "anima_regional_4335.safetensors"
122
+ },
123
+ "dataset": {
124
+ "repo_id": "toyxyz/booruregion_10k",
125
+ "revision": "7f3418e46677688b846364ce6f7de170027d424d",
126
+ "manifest_sha256": "5bdfb489e19b746922255742e18e5d67114645fbae11847ba16c894f6f85a38c",
127
+ "split_source_counts": {
128
+ "test": {
129
+ "danbooru_original": 39,
130
+ "anima_generated": 81
131
+ },
132
+ "train": {
133
+ "danbooru_original": 3834,
134
+ "anima_generated": 6166
135
+ },
136
+ "validation": {
137
+ "danbooru_original": 32,
138
+ "anima_generated": 88
139
+ }
140
+ },
141
+ "total_pairs": 10240,
142
+ "train_pairs": 10000,
143
+ "resolution_groups": 109,
144
+ "enable_bucket": false,
145
+ "caption_dropout_rate": 0.15,
146
+ "shuffle_caption": false,
147
+ "flip_aug": false,
148
+ "color_aug": false,
149
+ "random_crop": false,
150
+ "tag_dropout_rate": 0.0
151
+ },
152
+ "batch_accounting": {
153
+ "batch_size_setting": 32,
154
+ "batches_per_epoch": 378,
155
+ "mean_images_per_batch": 26.455026455026456,
156
+ "nominal_step_times_batch": 138720,
157
+ "estimated_effective_image_exposures": 114682.53968253969,
158
+ "exposure_estimate_method": "steps multiplied by epoch-average images per batch; not an observed per-image count"
159
+ },
160
+ "validation": {
161
+ "fixed_cases": 6,
162
+ "sample_steps": 30,
163
+ "cfg": 4,
164
+ "flow_shift": 3,
165
+ "same_seed_multiplier_comparison": [
166
+ 0,
167
+ 1
168
+ ],
169
+ "sample_every_n_steps": 289,
170
+ "held_out_test_set_quantitative_evaluation": false
171
+ },
172
+ "inference_settings_used_in_comfyui_comparison": {
173
+ "node": "AnimaLLLiteApply_sdscripts",
174
+ "strength": 1.0,
175
+ "start_percent": 0.0,
176
+ "end_percent": 1.0,
177
+ "preserve_wrapper": true,
178
+ "steps": 30,
179
+ "cfg": 4,
180
+ "sampler": "er_sde",
181
+ "scheduler": "simple",
182
+ "denoise": 1.0,
183
+ "seed": 12321312312313
184
+ },
185
+ "release_date": "2026-10-11"
186
+ }