Sample ControlNet-LLLite weights for the Anima image generation model, trained with anima_train_control_net_lllite.py from the sd-scripts repository.
ControlNet-LLLite is a lightweight, LoRA-like conditional control module ported to Anima's DiT (MiniTrainDIT) architecture. See the training & inference guide for full details on the v2 architecture, dataset format, and how to run inference.
Note on effect strength. The effect of these weights is intentionally moderate overall, and the pose model in particular has noticeably weaker control than the others. They are intended as community starting points / references rather than strong production-grade ControlNets.
Same as above — 2,000-step checkpoint (stronger effect)
anima-lllite-inpainting-v1.safetensors
inpainting
Generated images with dynamic masking
Sample / サンプル
Type
Cond image
Generated image
Lineart
lineart1
lineart_ComfyUI
Depth map
depth1
depth_ComfyUI
Pose
pose1
pose_ComfyUI
Fake scribble
scribble1
scribble_ComfyUI
any-test like (1,000 steps)
grayscale
1000
any-test like (2,000 steps)
grayscale
2000
inpainting
2000
inpainting
Common Setup / 共通設定
Base models
Anima DiT: anima-preview3-base
VAE: Qwen-Image VAE
Text encoder: Qwen3-0.6B (base)
Dataset (common to all four)
Target images: ~2,000 images generated by Anima from random prompts.
Image composition: ~3/4 contain people (varied gender, single-person to multi-person scenes); the remaining ~1/4 are animals, landscapes, or other no-person content.
Conditioning: DWPose standard output — colored body skeleton, white face keypoints, and hand keypoints.
Generation method: easy_dwpose (a convenience wrapper around DWPose).
Pairs: 1,544 (only images where DWPose successfully extracted a pose).
⚠ Caveat: this model's effect is noticeably weaker than the other three. It is best treated as a soft pose prior rather than a strict pose-locking ControlNet.
Two-stage training. The published weight is the result of resuming Stage 1 with a different discrete_flow_shift:
Stage 1 — 3 epochs were trained, and the epoch-3 checkpoint (*-000003.safetensors) is used as the resume point for Stage 2.
--learning_rate 1e-3
--discrete_flow_shift 1.0
--lllite_target_layers self_attn_q_pre,self_attn_kv_pre(K/V also injected)
--lllite_cond_resblocks 3
Stage 2 — additional 4 epochs, resumed from Stage 1 epoch-3 via --network_weights. Same settings as Stage 1 except:
Conditioning: scribble-style line drawings derived from HED / PiDiNet edge maps, with random hand-drawn-style augmentation, black background, white lines.
Generation method: HED and PiDiNet detectors via controlnet_aux. Four conditioning variants per target image — HED, HED + augmentation, PiDiNet, PiDiNet + augmentation — combined into one dataset.
About the name. This is not anytest itself. It is an experimental ControlNet developed independently from 月須和・那々's anytest (an SDXL ControlNet). Inspired by publicly shared notes about training with multiple grayscale conditioning patterns, this model attempts to reproduce that direction on Anima's DiT via ControlNet-LLLite.
Conditioning: a heterogeneous mix of lineart, scribble (HED / PiDiNet, augmented) and grayscale images, so that the same LLLite weight reacts to whichever cond modality is supplied at inference time.
Two published checkpoints from the same run, no two-stage training:
If the cond is too dominant, lower the inference-time strength (--lllite_multiplier / ComfyUI strength) or restrict the active range with start/end percent.
Dataset (14,000 pairs total):
Image set 1 (2,000 target images, reused from the other models in this repo) → 5 conditioning variants per image = 10,000 pairs:
Lineart (same generation as the lineart model).
HED scribble with augmentation (same as the scribble model).
PiDiNet scribble with augmentation (same as the scribble model).
Grayscale, augmentation pattern A.
Grayscale, augmentation pattern B.
Image set 2 (additional 2,000 target images) → 2 grayscale conditioning variants per image = 4,000 pairs.
Conditioning augmentation:
Lineart / scribble branches: in addition to each model's native augmentation, apply a light extra pass of brightness / contrast jitter and Gaussian blur (significantly weaker than the grayscale branch), plus random color inversion at 50% probability.
Grayscale branches: random HSV jitter, random brightness / contrast (with a small chance of a near-binarization extreme contrast), Gaussian blur, and random color inversion. Parameters:
See the inference section of the training guide for anima_minimal_inference_control_net_lllite.py. Architecture metadata is embedded in each .safetensors, so you normally only need to point --lllite_weights at the file and pass a --control_image.
Pose conditioning generated with easy_dwpose, a wrapper around DWPose.
Fake scribble conditioning generated with HED and PiDiNet detectors provided by controlnet_aux (originals: HED, PiDiNet).
any-test like is inspired by 月須和・那々 's anytest (an SDXL ControlNet), in particular the publicly shared idea of training with multiple grayscale conditioning patterns. This Anima LLLite model is an independent experimental reproduction attempt, not anytest itself.