Anima LoRA Trainer for ComfyUI
Train Anima LoRAs (also LoKr and LoHa) directly from ComfyUI. No command line needed, and it now works on cards from 6GB up.
How it works
Load the wizard workflow, answer 5 questions (what you're training, dataset size, resolution, your VRAM, quality goal) and hit run. The pack installs sd-scripts, downloads the Anima model files and launches training in its own terminal window. If you want full control instead, there's a manual mode where you set every parameter yourself.
Features
One-click model download from HuggingFace. Pick base, aesthetic or turbo, the downloader always grabs the newest version. Base is the default since that's what you should train LoRAs on.
VRAM presets from 6GB to 24GB+. Small cards train slower, not worse. The presets are just starting points, everything they set can be changed.
VRAM Estimator node: shows the estimated memory usage live while you change settings, before you ever click run. Includes a bar chart of what eats the memory, a fits/too-tight/won't-fit verdict for your card, and suggestions that tell you exactly which setting to change and how much it saves.
Dataset check: the pack validates your training folder (structure, captions, repeats) and explains problems in plain language. The launcher refuses to start a run that would find 0 images, which is the most common way trainings used to die.
Wizard override fields for resolution, rank, learning rate, batch size and block swap, so you can deviate from the presets without switching to manual mode.
Annotated config preview: see the complete TOML with an explanation for every parameter.
Resolutions from 512 up to 1536 (Anima's max), resume from checkpoints, sample images during training.
Windows, Linux, macOS. No pip dependencies.
Requirements
ComfyUI, Python 3.10+, git
GPU with 6GB+ VRAM (12GB+ recommended, below that expect slower training and use 768px on 6GB)
Dataset setup
Images go in folders named <repeats>_<concept> (like 10_ohwx) with a matching .txt caption file per image. The dataset check will tell you if something's off.
Update v1.1
Fixed: the model downloader always grabbed the deprecated preview2 build. It now picks the actual latest release and never touches preview builds. New dropdown for base/aesthetic/turbo.
New presets for 6GB, 8GB and 10GB cards
New VRAM Estimator node with live estimates and a memory breakdown chart
Dataset folder validation with a launch gate
1536x1536 resolution preset
Wizard force_* overrides
Rewrote all tooltips and summaries in plain language
If you're updating: delete the old folder from custom_nodes, extract the new zip, restart ComfyUI fully and hard-refresh your browser (Ctrl+Shift+R), otherwise the new nodes won't show up.
Description
Added LoKR & LoHA parameters
FAQ
Comments (1)
I keep on getting this error:
Traceback (most recent call last): File "_mt19937.pyx", line 180, in numpy.random._mt19937.MT19937._legacy_seedingTypeError: 'str' object cannot be interpreted as an integerDuring handling of the above exception, another exception occurred:Traceback (most recent call last): File "my_training_directory\model\_train_wrapper.py", line 7, in <module> runpy.run_path(r"G:\SwarmUI\Models\sd-scripts\anima_train_network.py", run_name="__main__") File "<frozen runpy>", line 291, in run_path File "<frozen runpy>", line 98, in runmodule_code File "<frozen runpy>", line 88, in runcode File "G:\SwarmUI\Models\sd-scripts\anima_train_network.py", line 451, in <module> trainer.train(args) File "G:\SwarmUI\Models\sd-scripts\train_network.py", line 488, in train set_seed(args.seed) File "G:\SwarmUI\dlbackend\comfy\python_embeded\Lib\site-packages\accelerate\utils\random.py", line 54, in set_seed np.random.seed(seed) File "numpy\\random\\mtrand.pyx", line 4806, in numpy.random.mtrand.seed File "numpy\\random\\mtrand.pyx", line 250, in numpy.random.mtrand.RandomState.seed File "_mt19937.pyx", line 168, in numpy.random._mt19937.MT19937._legacy_seeding File "_mt19937.pyx", line 188, in numpy.random._mt19937.MT19937._legacy_seedingTypeError: Cannot cast scalar from dtype('<U4') to dtype('int64') according to the rule 'safe'




