{
 "note": "Hand-curated. 'unknown' = no data yet.",
 "models": [
  {
   "id": "fibo2",
   "name": "Fibo 2.0 / Edit Turbo (Bria, 8B, CC BY-NC 4.0)",
   "status": "Released Oct 20, 2026. ai-toolkit trains Fibo 2.0 Dev since Oct 23 (LoRA, text-to-image and edit in one model). diffusers v0.42.0 (Oct 23) is the first release with BriaFibo2Pipeline and the DreamBooth LoRA scripts (text-to-image and edit), so a normal pip install works. DiffSynth-Studio trains it since Oct 21 (LoRA and full, text-to-image and edit). OneTrainer, musubi-tuner, kohya sd-scripts and SimpleTuner have no Fibo 2.0 support yet (checked Oct 24). Bria's own trainer and AcademiaSD LoRAlab also work. Non-commercial license: commercial use needs a paid agreement with Bria.",
   "trainers": {
    "ai-toolkit": "supported (Oct 23, commit 7cc9fef; Fibo 2.0 Dev LoRA, text-to-image and edit)",
    "OneTrainer": "unknown (no Fibo 2.0 support or PR yet, Oct 24)",
    "musubi-tuner": "unknown (no Fibo 2.0 support or PR yet, Oct 24)",
    "kohya sd-scripts": "unknown (no Fibo 2.0 support or PR yet, Oct 24)",
    "SimpleTuner": "unknown (no Fibo 2.0 support or PR yet, Oct 24)",
    "DiffSynth-Studio": "supported (Oct 21, PR #1774; LoRA and full training on Dev, text-to-image and edit)",
    "diffusers": "supported (v0.42.0, Oct 23; DreamBooth LoRA scripts for text-to-image and edit)"
   },
   "vram": "LoRA training: ~8.7 GB at 512px, rank 8 on an RTX 5080 with AcademiaSD LoRAlab's NF4 build. Weight sizes: transformer 16.45 GB bf16 or 8.41 GB int8 ConvRot; Qwen3-VL-4B text encoder 8.88 GB bf16 or 4.86 GB int8; FLUX.2 VAE 0.34 GB. Bria's self-hosted inference package asks for a 40 GB GPU. Forge edit plugin starting points: 12 GB at 512-768px, 16 GB at 768-1024px (estimated on an RTX 3090, not measured on 12/16 GB cards). Bf16 LoRA training at 1024px, rank 64, batch 1 with Bria's trainer: 23.0 GiB peak allocated (~26 GB in nvidia-smi), measured on an A100 40GB in our Oct 21 test run. 24 GB cards: not tested yet. DiffSynth-Studio and ai-toolkit training: unknown (no VRAM numbers published yet; ai-toolkit's Fibo defaults load int8 ConvRot weights with low VRAM mode on)",
   "settings": [
    "License: CC BY-NC 4.0, non-commercial use only. Commercial use (client work, paid gigs, products) needs a separate paid agreement with Bria; LoRAs trained on it are derivatives under the same terms",
    "Gated on Hugging Face: fill in Bria's access form (company, intended use) on the model page or downloads fail",
    "Train on Fibo 2.0 Dev. Edit Turbo is distilled for 4-step editing and is not meant for fine-tuning",
    "One set of weights does text-to-image and editing, so a single LoRA can learn a style or domain and how to edit within it",
    "Bria's own trainer: fine_tuning/train_lora.py in the Fibo-2.0-dev repo is a single-GPU LoRA trainer for both text-to-image and edit LoRAs; its README recommends JSON captions",
    "Bria's suggested LoRA start: rank 64 (alpha = rank), LR 1e-4 constant, 1024px, gradient accumulation 8, LoRA on every linear layer",
    "DiffSynth-Studio (ModelScope) trains Fibo 2.0 Dev: LoRA and full training for text-to-image and edit LoRAs, with mask and multi-reference edit datasets (examples/fibo/model_training: Fibo-2.0-dev-T2I.sh and Fibo-2.0-dev-Edit.sh). Edit Turbo is inference only. Support landed Oct 21 (PR #1774); update to Oct 22 or later for the dtype fix (PR #1781)",
    "DiffSynth-Studio example LoRA settings: rank 32, LR 1e-4, 5 epochs, max_pixels 1048576 (~1 MP), gradient checkpointing, LoRA targets to_q,to_k,to_v,to_out.0,w1,w2,w3",
    "Captions: Fibo 2.0 is trained on structured JSON (VGL) captions; caption your dataset in the form you will prompt with. Plain sentences work and are used as the short_description. bria-vgl writes the JSON from a short prompt (it calls Gemini, so it needs a GEMINI_API_KEY)",
    "In practice JSON captions and plain captions give the same result, so plain captions are fine for a first run",
    "Fibo LoRAs converge fast: about 300-500 steps is usually enough (our own test was best at step 300). Realistic subjects train well; anime results are mixed",
    "Warning: a text-to-image LoRA works for text-to-image, including on the edit model, but disfigures people when you give it an input image to edit. Train an edit LoRA (with control images) if you want to use it for edits",
    "On a complex dataset, ~2,000 steps still gave mixed results for a text-to-image LoRA; simpler datasets converge much sooner",
    "Our tested run (A100 40GB, Oct 21): Bria's train_lora.py, 15 images, 1024px, rank 64, alpha 64, LR 1e-4 constant, AdamW, batch 1, gradient accumulation 2, 400 steps, text dropout 0.1. Likeness from step 200, step 300 best, step 400 about the same",
    "Bria's README mentions bria-vgl captioning (needs a Gemini key). Plain captions wrapped as Fibo JSON work fine without it",
    "Edit with a LoRA: a plain edit instruction keeps untouched areas and other people's faces intact",
    "Edit with a reference photo as <image_2>: better costumes and likeness, but it often redraws the whole image",
    "Edit prompts: describe the exact pose and position for your subject or it gets buried in the scene, e.g. 'replace the man standing at the front of the boat with ...'. 'Add as a fifth person' prompts can replace a person instead",
    "Edit LoRAs train on (source image, target image, instruction) triplets; the diffusers edit trainer raises max_sequence_length to 1024 because the source image's vision tokens count toward it (~576 tokens at 768px)",
    "diffusers LoRA trainers, in the v0.42.0 release (Oct 23, PR #15084): examples/dreambooth/train_dreambooth_lora_bria_fibo2.py (text-to-image) and train_dreambooth_lora_bria_fibo2_img2img.py (edit). The README examples use briaai/fibo-2; set --pretrained_model_name_or_path=briaai/Fibo-2.0-dev (the gated Hugging Face repo) instead. Transformer-only LoRA on every linear layer by default, text encoder and VAE frozen; needs diffusers v0.42.0+ (Python 3.11+, huggingface_hub >=1.32.0,<3.0) and transformers>=5.20.1. Memory flags: --cache_latents, --gradient_checkpointing, --use_8bit_adam, --offload, bitsandbytes quantized training, --do_fp8_training. The default rank is small, so raise --rank/--lora_alpha toward Bria's 64",
    "ai-toolkit (Oct 23, commit 7cc9fef): pick \"Fibo 2.0 Dev\" in the UI. One model does both jobs: add control images to the dataset and it trains an edit LoRA, leave them out and it trains text-to-image. Several control images per sample work",
    "ai-toolkit Fibo defaults: weights from the Comfy-Org/Fibo-2.0 repack (the Bria repo is gated), transformer and text encoder quantized to convrot8, low VRAM on, flowmatch scheduler, timestep type weighted, match_target_res on (references are sized to the target), conv layers off. Samples: 1024x1024, CFG 5, 30 steps",
    "Keep ai-toolkit's convrot8 quantization for Fibo: qfloat8 on the transformer and text encoder gives black sample images",
    "Fibo trains slower than Qwen-Image 2.1. One test in ai-toolkit on the same pod with the same settings (cached latents and text embeddings, compile on): Fibo 2.0 ~5 s/it, Qwen-Image 2.1 ~1.2 s/it",
    "Keep ai-toolkit's weighted timestep default for Fibo: it's close to shift and suits the model well",
    "LoRA files from ai-toolkit use ComfyUI key names, so they load in ComfyUI directly",
    "diffusers v0.42.0 (Oct 23) is the first release with BriaFibo2Pipeline (Dev and Edit Turbo, up to 5 reference images), so pip install -U diffusers is enough; no source install needed. It needs Python 3.11+ and huggingface_hub >=1.32.0,<3.0",
    "AcademiaSD LoRAlab Trainer Studio trains Fibo 2.0 LoRAs from 8 GB using an NF4 build of Dev, and exports LoRAs in ComfyUI's format",
    "Resolution: ~1 MP, sides in multiples of 16 (1024x1024, 1424x800 for 16:9, 1248x832 for 3:2)",
    "Inference, Dev: 50 steps, CFG 5 (diffusers card); ComfyUI's native support uses Dev 30 steps, CFG 5 and Edit Turbo 4 steps, CFG 1, euler/simple",
    "Dev in ComfyUI that works: 50 steps, CFG 5, euler/simple, no negative prompt, 1 MP auto-resize",
    "Edits take a mask (white = regenerate) and up to 4 reference images, referred to as <image_1>, <image_2>...",
    "Edit mode is weak at small edits such as removing makeup and tends to redraw the whole head; describe the hair in the prompt to keep it",
    "Two-reference prompts work well: \"the woman in image 1 and image 2 is now ...\"",
    "ComfyUI native support (Dev and Edit Turbo) is on master (PR #17240, merged Oct 21), not in a stable release yet, so use the latest nightly/beta. Repackaged files: Comfy-Org/Fibo-2.0. ComfyUI-Fibo2 custom nodes run Edit Turbo on ComfyUI 0.42.0 (tested on an RTX 4090)",
    "Warning: ComfyUI v0.42.1 throws key errors when any LoRA is loaded on Fibo 2.0, even with the bf16 Dev model and Bria's test LoRA; without a LoRA it runs fine. No fix in a release yet",
    "ComfyUI master (Oct 22, PR #17290): Fibo now uses NTK-aware RoPE scaling, which fixes high resolutions like 2048x1536. Before, the subject landed in the top-left corner and the rest of the image repeated",
    "ComfyUI master (Oct 22, PR #17285): structured JSON negative prompts like the one on Bria's model card are no longer cleaned, and that negative is the new text-to-image default. Edit and Turbo defaults are unchanged",
    "ComfyUI master (Oct 23, PR #17196): the FLUX.2 VAE that Fibo uses now runs in fp16 with a fused kernel (needs the matching comfy-kitchen update), which is faster, uses less peak VRAM and decodes closer to fp32 than the old bf16 default. The tiled VAE node is no longer needed at high resolutions, and your existing VAE file works after updating; don't use bf16 FLUX.2 VAE files",
    "ComfyUI: the int8 ConvRot Qwen3-VL text encoder errors with vision inputs (issue #17248, no fix yet); use the bf16 or fp8 scaled text encoder",
    "Architecture: 8B flow-matching single-stream DiT (44 blocks), FLUX.2 VAE, Qwen3-VL-4B-Instruct text encoder with a Perceiver that compresses it to 256-512 gist tokens",
    "Artificial Analysis (Oct 20): #1 open-weights model for image editing (Elo 1087, just ahead of Qwen-Image-2.1 at 1083) and #2 open-weights for text-to-image behind Qwen-Image-2.1",
    "Trained only on licensed data (~1B-image Bria dataset)",
    "Community take: Edit Turbo is very fast at 4 steps and good with references and object removal, but struggles with complex prompts and several references at once, and outputs stay around 1 MP. Many people prefer MOSS Image or Krea 2 for text-to-image looks",
    "Output tends to a slight yellowish tint; correct it in post or in your prompt if colour matters",
    "Edits rotate characters well but don't move the camera; ask for a new pose of the subject, not a new camera angle",
    "8-step speed LoRA for Dev (akhaliq/Fibo-2.0-8step-smd, CC BY-NC 4.0, work in progress): rank 128, 8 steps, CFG 1, no negative prompt. Keep it in fp32; it loses its effect in bf16. Weaker than Edit Turbo on in-image text and colour",
    "Testing your own LoRA's likeness: skip speed LoRAs and use Dev at full steps and CFG"
   ],
   "sources": [
    "https://huggingface.co/briaai/Fibo-2.0-dev",
    "https://huggingface.co/briaai/Fibo-2.0-edit-turbo",
    "https://huggingface.co/briaai/Fibo-2.0-dev/blob/main/fine_tuning/train_lora.py",
    "https://huggingface.co/briaai/Fibo-2.0-dev/blob/main/fine_tuning/README.md",
    "https://platform.bria.ai/licensing/pricing?model=fibo-2",
    "https://creativecommons.org/licenses/by-nc/4.0/deed.en",
    "https://github.com/huggingface/diffusers/pull/14991",
    "https://github.com/huggingface/diffusers/pull/15084",
    "https://github.com/Bria-AI/vgl",
    "https://huggingface.co/AcademiaSD/Fibo-2.0-NF4-for-LoRA-Training",
    "https://github.com/AcademiaSD/AcademiaSD_LoRAlab-TrainerStudio",
    "https://github.com/Comfy-Org/ComfyUI/pull/17240",
    "https://huggingface.co/Comfy-Org/Fibo-2.0",
    "https://github.com/Comfy-Org/ComfyUI/issues/17248",
    "https://github.com/drphero/ComfyUI-Fibo2",
    "https://github.com/Bria-AI/BYOC",
    "https://github.com/tranquil222/forge-image-edit",
    "https://www.reddit.com/r/StableDiffusion/comments/1xbc8sl/image_edit_plugin_for_forge_neo_supports_qwen_21/",
    "https://www.reddit.com/r/StableDiffusion/comments/1xbfjik/thoughts_on_fibo_20_image_editing/",
    "https://artificialanalysis.ai/image/leaderboard/editing/open-weights",
    "https://artificialanalysis.ai/image/leaderboard/text-to-image/open-weights",
    "https://x.com/MishaFein/status/2112559463525961943",
    "https://github.com/modelscope/DiffSynth-Studio/pull/1774",
    "https://github.com/modelscope/DiffSynth-Studio/pull/1781",
    "https://github.com/modelscope/DiffSynth-Studio/blob/main/docs/en/Model_Details/Fibo.md",
    "https://github.com/modelscope/DiffSynth-Studio/tree/main/examples/fibo/model_training/lora",
    "https://huggingface.co/akhaliq/Fibo-2.0-8step-smd",
    "https://github.com/ostris/ai-toolkit/commit/7cc9fef",
    "https://github.com/ostris/ai-toolkit/blob/main/extensions_built_in/diffusion_models/fibo2/fibo2.py",
    "https://github.com/huggingface/diffusers/blob/main/examples/dreambooth/README_bria_fibo2.md",
    "https://github.com/huggingface/diffusers/commit/48cdbae",
    "https://github.com/Comfy-Org/ComfyUI/pull/17290",
    "https://github.com/Comfy-Org/ComfyUI/pull/17285",
    "https://github.com/Comfy-Org/ComfyUI/pull/17196",
    "https://github.com/huggingface/diffusers/releases/tag/v0.42.0"
   ],
   "tested": {
    "title": "Our test run (Oct 21, 2026)",
    "items": [
     "Trainer: Bria's fine_tuning/train_lora.py from the gated briaai/Fibo-2.0-dev repo. Accept the CC BY-NC 4.0 license on Hugging Face first",
     "Dataset: 15 images of a plush dragon character. Captions like 'A plush dragon ...', no trigger word, colours not described",
     "Captions: plain sentences wrapped as Fibo JSON. Bria's README mentions bria-vgl captioning, which needs a Gemini key; we skipped it and it worked fine",
     "Settings: 1024px, rank 64, alpha 64, LR 1e-4 constant, AdamW, batch 1, gradient accumulation 2, 400 steps, save every 100, text dropout 0.1",
     "Hardware (A100 40GB on Vast.ai): 23.0 GiB peak allocated (~26 GB in nvidia-smi), 6.2 s/step, 41.8 min training loop plus ~1 min encoding. We have not tested a 24 GB card",
     "Result: likeness from step 200, step 300 best, step 400 about the same",
     "Inference (A100): ~36-40 s per 1024px image at 30 steps. Edit mode ~80-90 s, ~130-145 s with a reference image",
     "Edits: the LoRA plus a plain edit instruction keeps untouched areas and other people's faces very well. Adding a reference photo as <image_2> improves costumes and likeness but often redraws the whole image. Describe the exact pose and position for the subject or it gets buried (e.g. 'replace the man standing at the front of the boat with ...'). 'Add as fifth person' prompts can replace a person instead",
     "Cost: about $2 of GPU time, including two failed machines"
    ]
   },
   "license": "CC BY-NC 4.0",
   "vram_short": "~8.7 GB min LoRA (NF4, 512px) · ~26 GB bf16 at 1024px",
   "flags": [
    "Non-commercial license: client work needs a paid Bria agreement",
    "Text-to-image LoRA disfigures people in edits; train an edit LoRA for edits",
    "Gated on Hugging Face",
    "ComfyUI v0.42.1 errors when loading any LoRA (no fix yet)"
   ],
   "guide": "how-to-train-fibo-2-lora"
  },
  {
   "id": "flux3-klein",
   "name": "FLUX.3 Image Klein (BFL)",
   "trainers": {
    "ai-toolkit": "supported (day-0, PR #1078 merged Oct 15; fixes Oct 15)",
    "OneTrainer": "unknown",
    "musubi-tuner": "unknown",
    "kohya sd-scripts": "unknown",
    "SimpleTuner": "supported (Base + distilled klein recipes, 24-144 GB)",
    "diffusers": "inference only (v0.42.0, Oct 23; Base and distilled via ModularPipeline, FP8 and NVFP4 checkpoints)"
   },
   "vram": "SimpleTuner recipes: Base from 24 GB (512px, batch 3) up to 144 GB; distilled klein at 24 GB (768px, batch 1) or 80 GB (1024px, batch 4)",
   "settings": [
    "Open weights, gated on Hugging Face: click 'Agree and access' on the model page or downloads fail with 403",
    "Mixed early reception; watch for anatomy issues",
    "Base model sampling: ~50 steps, CFG 3.5",
    "LoRA strength ~1.3 at inference",
    "Character LoRAs come out weak at the default rank 16/32; go higher",
    "SimpleTuner recipes: rank-32 LoRA, LR 1e-4, REPA; distilled klein auto-loads a published training-assistant LoRA (strength 1.0 in training, 0.0 at validation; disable_assistant_lora to turn off)",
    "ai-toolkit edit training with several control images used only one until a fix on Oct 17; update before training edit LoRAs",
    "A FLUX.2 dataset and recipe carried over unchanged doesn't work well; long upsampled prompts with JSON bounding boxes at ~2 MP sample better",
    "diffusers v0.42.0 (Oct 23) supports FLUX.3 Image Klein Base and distilled through ModularPipeline only (ModularPipeline.from_pretrained, then load_components), with the prompt upsampler and BFL FP8 and NVFP4 checkpoints. Needs Python 3.11+",
    "Train and generate at 1.5k resolution or higher rather than 1k; the VAE holds it back at 1k",
    "Fast previews of a klein base LoRA: the FLUX.3 klein turbo PDD LoRA runs base at 8 or 4 steps with CFG distilled in (text to image; image to image loses quality)"
   ],
   "sources": [
    "https://huggingface.co/black-forest-labs/flux-3-image-klein-base",
    "https://github.com/ostris/ai-toolkit/pull/1078",
    "https://github.com/ostris/ai-toolkit/commit/438595b",
    "https://github.com/ostris/ai-toolkit/commit/0947356",
    "https://github.com/bghira/SimpleTuner/blob/main/documentation/quickstart/FLUX3_IMAGE.md",
    "https://github.com/bghira/SimpleTuner/commit/1cc48ca",
    "https://huggingface.co/SimpleTuner/flux-3-klein-image-training-assistant",
    "https://github.com/ostris/ai-toolkit/commit/9d408eb",
    "https://github.com/huggingface/diffusers/releases/tag/v0.42.0",
    "https://huggingface.co/NoiseToNova/Flux-3-Klein-turbo-pdd-4_8-steps"
   ],
   "vram_short": "24 GB+ (SimpleTuner recipes)",
   "flags": [
    "Gated on Hugging Face"
   ],
   "guide": "how-to-train-flux-3-klein-lora"
  },
  {
   "id": "moss-image",
   "name": "MOSS Image (OpenMOSS, ~5B, Apache 2.0)",
   "trainers": {
    "ai-toolkit": "supported (SFT + Base, Oct 16; edit training Oct 17)",
    "OneTrainer": "unknown",
    "musubi-tuner": "unknown",
    "kohya sd-scripts": "supported (v0.12.3, Oct 26; LoRA incl. ConvRot INT8 with --compile, H2D-only block swap, truncated_logit_normal timesteps)",
    "SimpleTuner": "supported (v4.10.0, Oct 17; Base/SFT incl. edit LoRAs)",
    "DiffSynth-Studio": "supported (Oct 20; Base and SFT)",
    "KohakuMossTrainer": "supported (LoRA/LyCORIS + full finetune; from ~6-8 GB)"
   },
   "vram": "kohya sd-scripts guide (1024px, batch 1, LoRA dim 16, AdamW, gradient checkpointing, text encoder outputs cached): ~13 GB training with bf16 DiT, ~9 GB with ConvRot INT8 DiT + text encoder, ~5-7 GB adding block swap (needs ~15 GB system RAM). v0.12.2's H2D-only block swap on an RTX 3090 (bf16, 1024px, batch 1, --blocks_to_swap 36): ~7 GB at 9.4 s/step vs 11.7 s/step with classic block swap. Caching text encoder outputs needs ~8.3 GB even in INT8, so 8 GB GPUs are not supported yet. Training the text encoder LoRA too: ~17 GB INT8, ~32 GB bf16. SimpleTuner ships 24, 32, 48, 80 and 144 GB recipes at 512px. ai-toolkit: ~15 GB at batch 2, 1024px, AdamW. kohya sd-scripts v0.12.3: --compile with --convrot_int8 runs at 3.35-3.47 s/it vs 3.95 s/it bf16 (1024px, RTX PRO 6000 at 250 W) with the INT8 VRAM savings. ai-toolkit Base config: ~10.5 GB at ~1.8 s/it on an RTX 5090",
   "settings": [
    "Learns fast",
    "Tokenizer loading bug fixed same day (Oct 16) in ai-toolkit; update before training",
    "SFT variant: stripe artifacts, no fix yet",
    "sd-scripts: fp8_base is not supported for MOSS Image; use --convrot_int8 (and --convrot_int8_text_encoder) instead",
    "sd-scripts: --timestep_sampling sigma --weighting_scheme logit_normal --logit_mean -1.09 --logit_std 0.95 --discrete_flow_shift 1.0 approximates pre-training; simpler alternative: --timestep_sampling shift --discrete_flow_shift 3.0. Since v0.12.3, --timestep_sampling truncated_logit_normal --logit_mean -1.09 --logit_std 0.95 --discrete_flow_shift 1.0 reproduces MOSS Image's pre-training schedule exactly and is what the MOSS docs recommend (extra args --timestep_cutoff, default 0.95, and --timestep_uniform_ratio, default 0.01)",
    "sd-scripts example: LR 1e-4 constant at network_alpha 1 (lower LR if you raise alpha)",
    "SimpleTuner recipes: rank-32 LoRA, LR 1e-4, REPA, 4,000 steps, 512px-area training; validate at 50 steps, CFG 3, 1024px",
    "Edit/reference LoRAs: SimpleTuner model_flavour sft-edit or base-edit with matching target and reference folders; ai-toolkit also trains Base and SFT as edit models",
    "Base LoRA with ai-toolkit defaults (adamw8bit, shift timesteps, rank 32) gives a good style by ~1,500 steps; Base-trained LoRAs also work on SFT",
    "Try a higher LoRA rank than usual for plain LoRA (smaller hidden size than Krea 2); for likeness, LoKr rank 4 works well (see the recipe above)",
    "Full fine-tunes on small datasets collapse after a few epochs; use LoRA unless you have a very large dataset",
    "ComfyUI \"lora key not loaded\": ai-toolkit now saves unfused q/k/v LoRA keys (Oct 17); use the Comfy-Org MOSS files to fix it",
    "ai-toolkit low_vram + cache_text_embeddings could OOM at startup because the text encoder stayed on the GPU; fixed in ai-toolkit on Oct 17, so update first",
    "Inference: an SFT LoRA at ~0.6 strength with the Base model at 30 steps, CFG 3 works well; 8-step DMD LoRAs exist for SFT and Base but can weaken LoRA effect",
    "Base DMD2 speed LoRA is final (update 3000, Oct 20): stock Euler, 4-8 steps, CFG 1",
    "Testing your LoRA's likeness: skip Kromoss and turbo/DMD speed LoRAs, use 50 steps, CFG 2 and LoRA strength ~1.5, and generate at 1.5 MP or more (2-3 MP is best)",
    "OpenMOSS user guide: keep the text encoder frozen when training on MOSS Image Base",
    "OpenMOSS user guide, captioning: an LLM prompt that returns JSON with long, medium and short captions; recommended captioners are Gemma 4, Qwen 3.5 27B or Qwen 3.5 35B-A3B with thinking mode on",
    "OpenMOSS user guide, Base inference: 50+ steps, CFG 3 (3-6 for short prompts), shift 5, Euler sampler",
    "Using the whole JSON caption output as the caption works well; ai-toolkit accepts .json caption files",
    "Standard LoRA recipe that trains well on Base: LoRA on attention + MLP, rank 32, alpha 32, AdamW LR 1e-4 (betas 0.9/0.95, weight decay 0.01), grad clip 1.0, cosine schedule with 100 warmup steps and min multiplier 0.1, bf16, text encoder and VAE frozen, ~1 MP (1024²) with aspect ratio kept, no min-SNR",
    "Low-VRAM ai-toolkit LoKr on Base: rank 4 LoKr, 8-bit quantization, low VRAM on, text encoder fully offloaded, transformer 50% offloaded",
    "A Krea 2 config pasted straight into MOSS Image gives poor results; start from MOSS-specific settings",
    "sd-scripts v0.12.2: cache several caption variants per image (for example the long, medium and short captions) and pick one at random each step; before, only the first was kept",
    "sd-scripts v0.12.2 H2D-only block swap: add --block_swap_h2d_only to --blocks_to_swap (needs --gradient_checkpointing; optional --block_swap_ring_size, default 2, and --use_pinned_memory_for_block_swap). MOSS Image LoRA on an RTX 3090 at 1024px, batch 1, 36 blocks swapped: 9.4 s/step instead of 11.7 (~20% faster) at ~7 GB VRAM. LoRA only, not full fine-tuning",
    "sd-scripts v0.12.3: per-subset timestep offsets now work with logit_normal sampling (positive = more noise)",
    "sd-scripts v0.12.3: --compile now works with --convrot_int8. 1024px, batch 1, grad accumulation 4 on an RTX PRO 6000 at 250 W: 5.02 s/it INT8 without compile, 3.47 s/it with compile, 3.35 s/it with the faster INT8 backward, vs 3.95 s/it bf16, keeping the INT8 VRAM savings. Extra INT8 GEMM autotune configs roughly double kernel throughput on the RTX 3090 (~4% on Blackwell forward). Also fixes compile graph breaks on Python below 3.12. Not in a release yet",
    "sd-scripts: if you train the text encoder LoRA, don't cache text encoder outputs; older LoRA command examples in the docs did both (fixed in v0.12.2)",
    "Kromoss: Apache 2.0 full fine-tune of Base that fixes Base's blurriness; drop-in for SFT files and workflows (50 steps, CFG 3), with an 8-step turbo LoRA (8 steps, CFG 1, euler/simple) and, since Oct 20, an 8-steps DMD2 LoRA (8 steps, 4 also works, CFG 1, strength 1). Still being updated (update 11000 on Oct 20). v1.0 is also on Civitai (same file as on Hugging Face). Kromoss DMD LoRA v1 that works: strength 0.4, CFG 3, 32 steps",
    "Kromoss int8 ConvRot single file (~5.4 GB) runs in ComfyUI on smaller GPUs; its convert_to_comfy.py turns your own MOSS Image diffusers fine-tune into a ComfyUI single file",
    "ai-toolkit \"no module named fla\" (flash-linear-attention) in Docker: fixed Oct 19, so pull the latest version and update dependencies; prompt encoding at batch size above 1 also got faster the same day",
    "ComfyUI v0.42.1 fixes crashes in the MOSS Image template workflow; ComfyUI master adds MOSS RoPE scaling (ScaleRope node) for higher resolutions and a MOSS color/depth control node",
    "RoPE scaling for high-res MOSS works best at partial strength; an experimental hi-res reference LoRA using depth/color maps reaches ~8K without duplicated subjects",
    "If SFT feels stiff: extract SFT as a LoRA and apply it to Base at ~0.5 strength",
    "SimpleTuner: LoKr training with torch.compile needs LyCORIS 4.1.3, which SimpleTuner requires since Oct 20",
    "Character LoRAs reach near-photoreal likeness around 3,000 steps; smaller datasets ~2,000, very large datasets ~5,000",
    "Train character LoRAs on Base for good results",
    "Ostris-style edit training gives slightly better results but is about 3x slower to train and to run",
    "Multi-character LoRAs blend faces in close-ups with several characters",
    "ai-toolkit auto-caption downloads a 30+ GB captioner that runs out of memory on a 12 GB GPU; caption your dataset separately on small cards",
    "DiffSynth-Studio trains MOSS Image Base and SFT since Oct 20 and publishes an 8-step SFT TurboLoRA (DiffSynth-Studio/MOSS-Image-SFT-TurboLoRA) and a 3.5-bit EntroPack quant that runs in about 4 GB (DiffSynth-Studio/MOSS-Image-EntroPack)",
    "Likeness on Base in ai-toolkit: LoKr rank 4, sigmoid timesteps, high-noise bias. Most runs are done by 3,000 steps on 40-100 image datasets, and they come out better without differential guidance. EMA 0.99 at 3,000 steps on 30 images also works",
    "Character LoRA with progressive resolution in ai-toolkit: 768px for the first ~60% of steps, then 1024px, ~5,000 steps total, LR 5e-4 with automagic3 and min_lr at half the LR, sigmoid timesteps, 100-200 dataset images for strong likeness",
    "automagic3 drops the learning rate fast on MOSS Image (it hits the floor around step 600). Set min_lr to 2e-5-3e-5 and weight_decay to 1e-5, or use ai-toolkit's automagic4 (Automagic V4, experimental, Oct 23): its LR controller settles at a fixed point (step_target, default 0.1), so the LR doesn't drift to the floor",
    "Don't exclude block 22 when training for likeness",
    "Style LoRAs learn fast: the style shows by step 300-900",
    "Base renders weak faces and bodies for small, distant people in wide shots. It works best when the subject fills the frame, so plan your dataset and test prompts that way",
    "ComfyUI master (Oct 22, PR #17296) loads MOSS Image edit LoRAs: feed the reference images through the stock ReferenceLatent node and set reference_latents_method to match how the LoRA was trained: index_timestep_zero (default, ai-toolkit edit training with kv_cache), index_timestep_zero_joint (ai-toolkit with kv_cache: false), index_timestep_zero_frame0 (chinoll/Moss-Image-Edit) or index (references at the image's timestep). The experimental Text Encode MOSS-Image Edit node also passes references to the vision tower as in ai-toolkit training. References are cached once per run (826 to 457 ms/step at 1024px with a 1 MP reference) and work alongside the color/depth control node",
    "Moss-Image-Edit (chinoll): an instruction-edit LoRA for MOSS Image Base or SFT (colors, outfits, lighting, seasons, style), up to 4 reference images, with single- and multi-reference ComfyUI workflows",
    "ComfyUI-Moss-Image-Edit-Native runs chinoll's Moss-Image-Edit and akhaliq's MOSS-Image-Edit-HQ (armV3, weights/armV3/armV3.safetensors) on ComfyUI's native MOSS-Image (v0.42+). Use the converted chinoll file from PedroMarinhoDev/Moss-Image-Edit-ComfyUI. Defaults from 300+ test edits: LoRA strength 1.0 (lower redraws the scene instead of editing), CFG 5 for chinoll and 3 for HQ, skip layer guidance on layer 22, 30 steps euler/simple, empty negative, references and output in the same ~1 MP bucket, and SFT rather than Base (both LoRAs were trained on SFT). chinoll keeps faces closest; HQ is best at text but overpaints fine structures",
    "ComfyUI master (Oct 25, PR #17338) lowers peak MOSS memory a bit",
    "ai-toolkit MOSS Image Base config: ~10.5 GB VRAM at ~1.8 s/it on an RTX 5090",
    "Likeness comes out best with 100-200 dataset images",
    "MOSS is very dataset-sensitive: settings that work on one dataset often don't carry over to another, so test on yours",
    "Plain natural-language captions work for MOSS Image",
    "ComfyUI master (Oct 23, PR #17320): Text Encode MOSS-Image Edit has image_strength (0 ignores references, 1 unchanged, above 1 emphasizes them). Each reference adds ~150 vision tokens, which used to outweigh the prompt; lower it if the prompt gets ignored",
    "ai-toolkit (Oct 23, commit 7861f92): MOSS VAE decode is no longer forced to no_grad; update if you train through the VAE decode",
    "MOSS-Image-Alpha-LoRA (paralaif, proof of concept): text-to-image with a real alpha channel for MOSS SFT. End the prompt with ', isolated on a transparent background' and decode with the RGBA VAE from trmz/flux2-klein-alpha. Trained on 39 images in ~40 minutes on a 16 GB GPU",
    "Kaloscope style adapters (heathcliff01): separate style conditioning by artist name, weighted blends or a reference image for MOSS Image Base and Krea 2 Raw/Turbo; needs its own ComfyUI nodes",
    "In the ComfyUI MOSS Image template, raise CFG from 2.5 to 3-4 before judging a LoRA; at 2.5 a good LoRA can look broken",
    "Pose and action LoRAs: the high LR that suits character LoRAs makes them rigid and copies the dataset people; use a lower LR, or train one LoRA per pose",
    "Large datasets need only about 1 epoch: ~950 images at gradient accumulation 4 (~250 steps) trains well, and 2 epochs overtrains",
    "RTX 5090 at 512+768 buckets: batch 4 fits and trains better than batch 6, which hits the VRAM limit; with the transformer in nvfp4, a batch-4 run uses about 18 GB",
    "If automagic drives the LR too low, start from a higher LR or switch to Prodigy",
    "Validation images are expensive with the text encoder fully offloaded: 20 of them slow a run from 5 s/it to 30 s/it, so keep validation prompts few",
    "MOSS-Image-heal (KBlueLeaf): full finetune of OpenMOSS-Team/MOSS-Image-Base with a healed residual stream (largest stream value 3,083 vs base 58,411; stream RMS 7.5x lower; every weight within 64x its tensor RMS vs 349 base outliers). Probe metrics: flow loss 0.4289 vs 0.4280, velocity cosine 0.9983. Transformer only; text encoder, tokenizer, VAE and scheduler from official Base. Apache-2.0. ComfyUI: moss_image_heal_bf16/fp16/int8_convrot.safetensors",
    "KohakuMossTrainer trains MOSS-Image Base/SFT adapters with every LyCORIS algorithm plus full finetune, on Windows and Linux, from 6 GB cards to multi-GPU; a style LoRA at rank 8 on an RTX 4090 with aggressive offload uses about 12-13 GB at ~0.85 images/s (v0.1.0, Oct 18)"
   ],
   "sources": [
    "https://huggingface.co/OpenMOSS-Team/MOSS-Image-SFT",
    "https://huggingface.co/OpenMOSS-Team/MOSS-Image-Base",
    "https://github.com/ostris/ai-toolkit/commit/e05a3a4",
    "https://github.com/ostris/ai-toolkit/commit/c6a9b56",
    "https://github.com/ostris/ai-toolkit/commit/29f5ff4",
    "https://github.com/kohya-ss/sd-scripts/blob/main/docs/moss_image_train_network.md",
    "https://github.com/kohya-ss/sd-scripts/releases/tag/v0.12.1",
    "https://github.com/bghira/SimpleTuner/blob/main/documentation/quickstart/MOSS_IMAGE.md",
    "https://github.com/bghira/SimpleTuner/releases/tag/v4.10.0",
    "https://github.com/ostris/ai-toolkit/commit/b7cd8a1",
    "https://github.com/ostris/ai-toolkit/commit/82e6311",
    "https://github.com/ostris/ai-toolkit/commit/9a1828f",
    "https://github.com/ostris/ai-toolkit/commit/8cf43dd",
    "https://huggingface.co/Comfy-Org/MOSS-Image",
    "https://huggingface.co/lodestones/MOSS-Image-SFT-8-steps-dmd",
    "https://huggingface.co/lodestones/MOSS-Image-Base-8-steps-dmd",
    "https://github.com/OpenMOSS/MOSS-Image/blob/main/USERGUIDE.md",
    "https://huggingface.co/lodestones/Kromoss",
    "https://github.com/kohya-ss/sd-scripts/pull/2466",
    "https://github.com/ostris/ai-toolkit/commit/0473387",
    "https://github.com/ostris/ai-toolkit/commit/2d4c89d",
    "https://github.com/Comfy-Org/ComfyUI/releases/tag/v0.42.1",
    "https://github.com/Comfy-Org/ComfyUI/pull/17172",
    "https://github.com/Comfy-Org/ComfyUI/pull/17206",
    "https://github.com/kohya-ss/sd-scripts/releases/tag/v0.12.2",
    "https://github.com/kohya-ss/sd-scripts/pull/2467",
    "https://github.com/kohya-ss/sd-scripts/blob/main/docs/block_swap.md",
    "https://github.com/kohya-ss/sd-scripts/pull/2468",
    "https://github.com/bghira/SimpleTuner/pull/3290",
    "https://github.com/modelscope/DiffSynth-Studio#latest-news",
    "https://modelscope.cn/models/DiffSynth-Studio/MOSS-Image-SFT-TurboLoRA",
    "https://www.modelscope.cn/models/DiffSynth-Studio/MOSS-Image-EntroPack",
    "https://github.com/Comfy-Org/ComfyUI/pull/17296",
    "https://huggingface.co/chinoll/Moss-Image-Edit",
    "https://civitai.red/models/3015170/kromoss?modelVersionId=3422515",
    "https://github.com/kohya-ss/sd-scripts/pull/2471",
    "https://github.com/kohya-ss/sd-scripts/pull/2473",
    "https://github.com/kohya-ss/sd-scripts/pull/2474",
    "https://github.com/kohya-ss/sd-scripts/pull/2475",
    "https://github.com/Comfy-Org/ComfyUI/pull/17320",
    "https://github.com/ostris/ai-toolkit/commit/534d462ff622e334e1a65b42884d96d98315d75a",
    "https://github.com/ostris/ai-toolkit/commit/7861f92",
    "https://huggingface.co/paralaif/MOSS-Image-Alpha-LoRA",
    "https://huggingface.co/heathcliff01/Kaloscope-style-adapter",
    "https://github.com/PedroMarinhoDev/ComfyUI-Moss-Image-Edit-Native",
    "https://huggingface.co/PedroMarinhoDev/Moss-Image-Edit-ComfyUI",
    "https://huggingface.co/akhaliq/MOSS-Image-Edit-HQ",
    "https://github.com/Comfy-Org/ComfyUI/pull/17338",
    "https://github.com/KohakuBlueleaf/KohakuMossTrainer",
    "https://huggingface.co/KBlueLeaf/MOSS-Image-heal"
   ],
   "license": "Apache 2.0",
   "vram_short": "~9-13 GB LoRA at 1024px (kohya) · ~5-7 GB with block swap",
   "flags": [
    "SFT variant: stripe artifacts, no fix yet"
   ],
   "guide": "how-to-train-moss-image-lora"
  },
  {
   "id": "iris-3b",
   "name": "Iris 3B (pixel-space, Apache 2.0)",
   "trainers": {
    "ai-toolkit": "supported (Oct 9)",
    "OneTrainer": "unknown",
    "musubi-tuner": "unknown",
    "kohya sd-scripts": "unknown",
    "SimpleTuner": "unknown"
   },
   "vram": "~4 GB with a community int8 build",
   "settings": [
    "unknown"
   ],
   "sources": [
    "https://huggingface.co/speridlabs/iris-3b",
    "https://github.com/ostris/ai-toolkit/commit/2fa0bd8"
   ],
   "license": "Apache 2.0",
   "vram_short": "~4 GB (int8 build)"
  },
  {
   "id": "qwen-image-2.1",
   "name": "Qwen-Image-2.1 / 2.1 Turbo",
   "trainers": {
    "ai-toolkit": "supported (Sep 20; Turbo via training adapter Oct 10)",
    "OneTrainer": "unknown",
    "musubi-tuner": "unknown",
    "kohya sd-scripts": "unknown",
    "SimpleTuner": "Turbo alternative: assistant LoRA"
   },
   "vram": "unknown",
   "settings": [
    "Train Turbo with ai-toolkit's distillation/training adapter",
    "One model for generation and edit; it edits when the dataset has control images (ai-toolkit README)",
    "ai-toolkit default guidance for Qwen Image: 3",
    "LoRAs trained on the non-Turbo model transfer to Turbo, but adapter-trained Turbo LoRAs come out better",
    "Stronger than FLUX.3 for edit-style LoRAs on the same dataset",
    "diffusers main (Oct 22, PR #15016): Qwen-Image LoRAs with .alpha keys now load with alpha scaling applied; before, they loaded at the wrong strength in diffusers",
    "diffusers v0.42.0 (Oct 23, PR #14976) adds Qwen-Image 2.1 modular pipelines",
    "Qwen-Image edits shift and stretch the image slightly; the Qwen2.1 Align ComfyUI node aligns the edit back to the original (SIFT + RANSAC global affine, no model or GPU needed)",
    "The lightx2v 4-step Lightning LoRA shifts edits to the left; at strength 0.5 the shift goes away. Lightning-v2-RL shifts less at slightly lower quality"
   ],
   "sources": [
    "https://huggingface.co/Qwen/Qwen-Image-2.1",
    "https://huggingface.co/Qwen/Qwen-Image-2.1-Turbo",
    "https://github.com/ostris/ai-toolkit/commit/c2622ed",
    "https://github.com/ostris/ai-toolkit/commit/f370e74",
    "https://github.com/ostris/ai-toolkit/commit/474948a",
    "https://github.com/huggingface/diffusers/pull/15016",
    "https://github.com/huggingface/diffusers/pull/14976",
    "https://github.com/CoreyCorza/Qwen2.1-Align",
    "https://huggingface.co/lightx2v/Qwen-Image-2.1-Lightning-v2-RL"
   ],
   "vram_short": "unknown"
  },
  {
   "id": "ming-image",
   "name": "Ming-Image-0.1-Design (inclusionAI, MIT)",
   "trainers": {
    "ai-toolkit": "supported (fine-tune, Sep 23; training adapter by default)",
    "OneTrainer": "unknown",
    "musubi-tuner": "unknown",
    "kohya sd-scripts": "unknown",
    "SimpleTuner": "unknown"
   },
   "vram": "unknown",
   "settings": [
    "unknown"
   ],
   "sources": [
    "https://huggingface.co/inclusionAI/Ming-Image-0.1-Design",
    "https://github.com/ostris/ai-toolkit/commit/77847d7"
   ],
   "license": "MIT",
   "vram_short": "unknown"
  },
  {
   "id": "krea2",
   "name": "Krea 2 / Krea 2 Turbo",
   "trainers": {
    "ai-toolkit": "supported (Raw + Turbo, incl. edit training)",
    "OneTrainer": "supported (Krea 2 16 GB preset benchmarked in OneTrainer PR #1680; not in README list)",
    "musubi-tuner": "supported (fp8 / ConvRot int8 base)",
    "kohya sd-scripts": "not listed",
    "SimpleTuner": "supported"
   },
   "vram": "ai-toolkit: ~20 GB at batch 1 with qfloat8; also trains on 12 GB with Krea Raw, low VRAM on, 50% transformer offload, 100% text-encoder offload, convrot 8, compile off, LoKr factor 8, 512 resolution only, and cached latents plus text embeddings. musubi: 12GB+ recommended for image training (general guidance); fp8 or --convrot_int8 halves weight VRAM",
   "settings": [
    "Natural-language captions, ~70-500 words; shorter captions lock features harder",
    "Diverse dataset (varied expressions/angles)",
    "Train at 1024px or higher",
    "Batch size >= 2 if VRAM allows",
    "Training at 512px can work for output up to ~2MP; add higher-res buckets gradually",
    "ai-toolkit downscales images larger than 1536px",
    "Automagic3 can give weaker LoRAs than v1/v2; pair it with LoKr factor 8 or 4 and sigmoid timesteps (that's my recipe). ai-toolkit's experimental automagic4 (Oct 23) keeps the LR from drifting to the floor",
    "EMA in ai-toolkit makes no noticeable difference; Automagic v3 already behaves a lot like EMA",
    "OneTrainer preview-2 branch (not master yet): LoRA on 8-bit quantized Krea 2 trains ~1.2x faster (16 GB preset); FLUX.2 16 GB preset ~1.3x; faster 8-bit math on RTX 50-series; DoRA not sped up",
    "Character captions: name, expression, pose, clothing, then scene",
    "Kaloscope style adapters (heathcliff01) for Krea 2 Raw and Turbo: style by artist name, weighted blends or a reference image; needs its own ComfyUI nodes",
    "ai-toolkit: point to local or alternative Qwen3-VL text encoder and Qwen-Image VAE files with text_encoder_path and vae_path under model_kwargs in the YAML",
    "Very slow steps (hundreds of seconds per step) mean the GPU is out of VRAM and swapping; lower the batch size or turn on low VRAM / offloading",
    "Pose control for Krea 2 Turbo: the Krea-2-PoseControl LoRA (MIT, 17-keypoint skeleton) with the ComfyUI-Krea2-Pose node pack; use release/krea2-pose-control-mix025.safetensors",
    "12 GB ai-toolkit recipe (Krea Raw): low VRAM on, 50% transformer offload, 100% text-encoder offload, convrot 8 quantization, compile off, LoKr factor 8, 512 resolution only, cache latents and text embeddings. First steps can take many minutes; if the run hangs after the first step, try dropping the training adapter, a lower quant (Q6/Q4), or skipping text-encoder offload once embeddings are cached"
   ],
   "sources": [
    "https://blog.hinablue.me/krea2-lora-trainer/",
    "https://www.reddit.com/r/StableDiffusion/comments/1vrkd5x/which_platform_should_i_use_to_train_lora/",
    "https://sanj.dev/post/onetrainer-vs-kohya-ss-vs-ai-toolkit/",
    "https://github.com/ostris/ai-toolkit#readme",
    "https://github.com/kohya-ss/musubi-tuner#readme",
    "https://github.com/kohya-ss/musubi-tuner/blob/main/docs/krea2.md",
    "https://github.com/bghira/SimpleTuner#readme",
    "https://github.com/Nerogar/OneTrainer/pull/1680",
    "https://huggingface.co/heathcliff01/Kaloscope-style-adapter",
    "https://github.com/ostris/ai-toolkit/commit/534d462ff622e334e1a65b42884d96d98315d75a",
    "https://github.com/ostris/ai-toolkit/blob/main/extensions_built_in/diffusion_models/krea2/krea2.py",
    "https://huggingface.co/adhit-420/Krea-2-PoseControl-LoRA-checkpoints"
   ],
   "vram_short": "~20 GB ai-toolkit qfloat8 · 12 GB ai-toolkit (offload/convrot8/512) · 12 GB+ (musubi guidance)",
   "guide": "how-to-train-krea-2-lora"
  },
  {
   "id": "flux2-dev",
   "name": "FLUX.2 dev (32B)",
   "trainers": {
    "ai-toolkit": "supported (reference)",
    "OneTrainer": "supported",
    "musubi-tuner": "supported",
    "kohya sd-scripts": "experimental",
    "SimpleTuner": "supported"
   },
   "vram": "80 GB recommended; ai-toolkit ships train_lora_flux_24gb.yaml",
   "settings": [
    "Start from ai-toolkit train_lora_flux_24gb.yaml",
    "OneTrainer preview-2 branch (not master yet): LoRA on 8-bit quantized FLUX.2 trains ~1.3x faster with the 16 GB preset; DoRA not sped up",
    "diffusers v0.42.0 (Oct 23, PR #14163) loads LoKr adapters for FLUX.2 and FLUX.2 klein",
    "ComfyUI master (PR #17196) runs the FLUX.2 VAE in fp16: faster, closer to fp32, and no tiled VAE node needed at high resolutions. Your existing VAE file works after updating; don't use bf16 FLUX.2 VAE files"
   ],
   "sources": [
    "https://sanj.dev/post/onetrainer-vs-kohya-ss-vs-ai-toolkit/",
    "https://github.com/nerogar/OneTrainer",
    "https://github.com/ostris/ai-toolkit#readme",
    "https://github.com/kohya-ss/musubi-tuner#readme",
    "https://github.com/bghira/SimpleTuner#readme",
    "https://github.com/Nerogar/OneTrainer/pull/1680",
    "https://github.com/huggingface/diffusers/pull/14163",
    "https://github.com/Comfy-Org/ComfyUI/pull/17196"
   ],
   "vram_short": "80 GB recommended · 24 GB config (ai-toolkit)",
   "guide": "how-to-train-flux-2-lora"
  },
  {
   "id": "flux2-klein",
   "name": "FLUX.2 klein (4B)",
   "trainers": {
    "ai-toolkit": "supported (klein base 4B and 9B)",
    "OneTrainer": "supported",
    "musubi-tuner": "supported",
    "kohya sd-scripts": "unknown",
    "SimpleTuner": "unknown (Flux.2 listed; variant not stated)"
   },
   "vram": "12-16 GB",
   "settings": [
    "diffusers v0.42.0 (Oct 23, PR #14163) loads LoKr adapters for FLUX.2 and FLUX.2 klein",
    "ComfyUI master (PR #17196) runs the FLUX.2 VAE in fp16: faster, closer to fp32, and no tiled VAE node needed at high resolutions. Your existing VAE file works after updating; don't use bf16 FLUX.2 VAE files"
   ],
   "sources": [
    "https://sanj.dev/post/onetrainer-vs-kohya-ss-vs-ai-toolkit/",
    "https://github.com/nerogar/OneTrainer",
    "https://github.com/ostris/ai-toolkit#readme",
    "https://github.com/kohya-ss/musubi-tuner#readme",
    "https://github.com/huggingface/diffusers/pull/14163",
    "https://github.com/Comfy-Org/ComfyUI/pull/17196"
   ],
   "vram_short": "12-16 GB",
   "guide": "how-to-train-flux-2-klein-lora"
  },
  {
   "id": "zimage",
   "name": "Z-Image",
   "trainers": {
    "ai-toolkit": "supported (Z-Image, Turbo, De-Turbo)",
    "OneTrainer": "supported",
    "musubi-tuner": "supported",
    "kohya sd-scripts": "not listed",
    "SimpleTuner": "supported"
   },
   "vram": "Not published. musubi: 12GB+ recommended for image training (general); --fp8_llm saves VRAM",
   "settings": [
    "diffusers v0.42.0 (Oct 23, PR #14163) loads LoKr adapters for Z-Image"
   ],
   "sources": [
    "https://github.com/nerogar/OneTrainer",
    "https://www.reddit.com/r/StableDiffusion/comments/1vrkd5x/which_platform_should_i_use_to_train_lora/",
    "https://github.com/ostris/ai-toolkit#readme",
    "https://github.com/kohya-ss/musubi-tuner#readme",
    "https://github.com/kohya-ss/musubi-tuner/blob/main/docs/zimage.md",
    "https://github.com/bghira/SimpleTuner#readme",
    "https://github.com/huggingface/diffusers/pull/14163"
   ],
   "vram_short": "12 GB+ (musubi guidance)",
   "guide": "how-to-train-z-image-lora"
  },
  {
   "id": "sdxl",
   "name": "SDXL",
   "trainers": {
    "ai-toolkit": "supported",
    "OneTrainer": "supported",
    "musubi-tuner": "not listed",
    "kohya sd-scripts": "supported",
    "SimpleTuner": "supported"
   },
   "vram": "low-VRAM friendly with gradient checkpointing, 8-bit optimizer, cached latents (exact GB unknown)",
   "settings": [
    "Gradient checkpointing",
    "8-bit optimizer",
    "Cache latents",
    "OneTrainer: 'compile' + int8 quant on RTX 20xx+"
   ],
   "sources": [
    "https://www.reddit.com/r/StableDiffusion/comments/1vrkd5x/which_platform_should_i_use_to_train_lora/",
    "https://github.com/ostris/ai-toolkit#readme",
    "https://github.com/kohya-ss/sd-scripts#readme",
    "https://github.com/bghira/SimpleTuner#readme"
   ],
   "vram_short": "Low-VRAM friendly (exact GB unknown)",
   "guide": "how-to-train-sdxl-lora"
  },
  {
   "id": "flux1",
   "name": "FLUX.1",
   "trainers": {
    "ai-toolkit": "supported",
    "OneTrainer": "supported",
    "musubi-tuner": "FLUX.1 Kontext only",
    "kohya sd-scripts": "supported",
    "SimpleTuner": "supported"
   },
   "vram": "ai-toolkit ships a 24GB example config (train_lora_flux_24gb.yaml)",
   "settings": [
    "ai-toolkit is the easiest; SimpleTuner is more powerful (teacher-student regularization) but its data loader is harder to set up"
   ],
   "sources": [
    "https://www.reddit.com/r/FluxAI/comments/1ogw37j/best_flux_lora_trainer/",
    "https://github.com/nerogar/OneTrainer",
    "https://github.com/ostris/ai-toolkit#readme",
    "https://github.com/kohya-ss/sd-scripts#readme",
    "https://github.com/kohya-ss/musubi-tuner#readme"
   ],
   "vram_short": "24 GB config (ai-toolkit)"
  }
 ],
 "hosted": [
  {
   "name": "fal",
   "url": "https://fal.ai",
   "pricing": "unknown"
  },
  {
   "name": "Replicate",
   "url": "https://replicate.com",
   "pricing": "unknown"
  },
  {
   "name": "Civitai on-site trainer",
   "url": "https://civitai.com",
   "pricing": "unknown"
  }
 ],
 "recipes": [
  {
   "model": "krea2",
   "title": "My proven Krea 2 recipe",
   "source": "I trained this with ai-toolkit (generic hyperparameters only)",
   "rows": [
    [
     "Trainer",
     "ai-toolkit"
    ],
    [
     "Base model",
     "krea/Krea-2-Raw (arch krea2)"
    ],
    [
     "Network",
     "LoKr: linear 32, alpha 32, full rank on, factor 8"
    ],
    [
     "Optimizer / LR",
     "automagic3, 1e-4"
    ],
    [
     "Weight decay",
     "1e-5 (0.00001)"
    ],
    [
     "Schedule",
     "flowmatch scheduler, sigmoid timesteps, content_or_style balanced"
    ],
    [
     "Differential guidance",
     "On, scale 3"
    ],
    [
     "Batch",
     "1, grad accumulation 1"
    ],
    [
     "Memory",
     "gradient checkpointing, bf16, qfloat8 model + text encoder, low_vram, cached latents and text embeddings"
    ],
    [
     "Resolution",
     "1024"
    ],
    [
     "Captions",
     "dropout 0.05; text encoder not trained; trigger word optional"
    ],
    [
     "Epochs",
     "About 160 epochs (my best checkpoint: ~162 epochs on a 34-image dataset; batch 1, repeats 1, grad accumulation 1)"
    ],
    [
     "Samples",
     "guidance 4, 30 steps"
    ],
    [
     "Note",
     "The right epoch count depends on your dataset size and content."
    ]
   ],
   "yaml": "# Example ai-toolkit config (generic hyperparameters only)\nconfig:\n  process:\n    - type: sd_trainer\n      network:\n        type: lokr\n        linear: 32\n        linear_alpha: 32\n        lokr_full_rank: true\n        lokr_factor: 8\n      train:\n        batch_size: 1\n        gradient_accumulation_steps: 1\n        steps: 5500            # steps = epochs x images (e.g. 162 x 34 ≈ 5,500); ~160 epochs worked best for me\n        train_text_encoder: false\n        gradient_checkpointing: true\n        noise_scheduler: flowmatch\n        timestep_type: sigmoid\n        content_or_style: balanced\n        optimizer: automagic3\n        lr: 1e-4\n        optimizer_params:\n          weight_decay: 1e-5   # 0.00001\n        dtype: bf16\n        cache_text_embeddings: true\n        do_differential_guidance: true\n        differential_guidance_scale: 3\n      datasets:\n        - caption_dropout_rate: 0.05\n          cache_latents_to_disk: true\n          resolution: [1024]\n      model:\n        name_or_path: krea/Krea-2-Raw\n        arch: krea2\n        quantize: true\n        qtype: qfloat8\n        quantize_te: true\n        qtype_te: qfloat8\n        low_vram: true\n      sample:\n        guidance_scale: 4\n        sample_steps: 30\n      # trigger_word: optional / not needed"
  },
  {
   "model": "moss-image",
   "title": "MOSS Image likeness recipe (LoKr)",
   "source": "AI Toolkit Discord, Oct 23 2026",
   "rows": [
    [
     "Source",
     "AI Toolkit Discord, Oct 23 2026"
    ],
    [
     "Trainer",
     "ai-toolkit"
    ],
    [
     "Base model",
     "MOSS Image Base"
    ],
    [
     "Network",
     "LoKr, rank 4"
    ],
    [
     "Timesteps",
     "sigmoid, high-noise bias"
    ],
    [
     "VRAM",
     "~10.5 GB at ~1.8 s/it on an RTX 5090 (Base config)"
    ],
    [
     "Optimizer",
     "automagic3 with min_lr 2e-5-3e-5, weight_decay 1e-5 (LR reaches the floor around step 600); ai-toolkit's automagic4 (Oct 23) keeps the LR off the floor on its own"
    ],
    [
     "Differential guidance",
     "off (better likeness without it)"
    ],
    [
     "EMA",
     "0.99 works (3,000 steps on 30 images)"
    ],
    [
     "Steps",
     "about 3,000"
    ],
    [
     "Dataset",
     "40-100 images; 100-200 gives the best likeness"
    ],
    [
     "Blocks",
     "keep block 22 in training"
    ],
    [
     "Style LoRAs",
     "visible by step 300-900"
    ],
    [
     "Captions",
     "plain natural-language captions work"
    ]
   ],
   "yaml": ""
  },
  {
   "model": "moss-image",
   "title": "MOSS Image character recipe that works",
   "source": "AI Toolkit Discord, Oct 20 2026",
   "rows": [
    [
     "Source",
     "AI Toolkit Discord, Oct 20 2026"
    ],
    [
     "Trainer",
     "ai-toolkit"
    ],
    [
     "Base model",
     "MOSS Image Base"
    ],
    [
     "Quantization",
     "transformer and text encoder in 8-bit ConvRot"
    ],
    [
     "Network",
     "LoKr, factor 8"
    ],
    [
     "Optimizer / LR",
     "AdamW 8-bit, 1e-4"
    ],
    [
     "Weight decay",
     "5e-5"
    ],
    [
     "Schedule",
     "shift timesteps"
    ],
    [
     "EMA",
     "on, 0.99"
    ],
    [
     "Batch",
     "2, gradient accumulation 2"
    ],
    [
     "Differential guidance",
     "On, scale 3"
    ],
    [
     "Resolution",
     "512"
    ],
    [
     "Dataset",
     "100 images reached the same likeness as 25 images, with much more flexibility"
    ]
   ],
   "yaml": ""
  },
  {
   "model": "fibo2",
   "title": "Fibo 2.0 in ai-toolkit: defaults",
   "source": "ai-toolkit commit 7cc9fef (Oct 23 2026)",
   "rows": [
    [
     "Source",
     "ai-toolkit commit 7cc9fef (Oct 23 2026), model \"Fibo 2.0 Dev\""
    ],
    [
     "Base weights",
     "Comfy-Org/Fibo-2.0 (repack of Fibo 2.0 Dev, not gated)"
    ],
    [
     "Quantization",
     "transformer and text encoder: convrot8"
    ],
    [
     "Low VRAM",
     "on"
    ],
    [
     "Scheduler",
     "flowmatch"
    ],
    [
     "Timesteps",
     "weighted (close to shift; keep it)"
    ],
    [
     "Network",
     "LoRA (conv layers off)"
    ],
    [
     "Edit vs text-to-image",
     "control images in the dataset = edit LoRA; none = text-to-image LoRA"
    ],
    [
     "References",
     "match_target_res on (sized to the target)"
    ],
    [
     "Samples",
     "1024x1024, CFG 5, 30 steps"
    ],
    [
     "Steps",
     "about 300-500 for simple datasets; ~2,000 on a complex dataset still gave mixed results"
    ],
    [
     "VRAM",
     "unknown (no measured numbers yet)"
    ]
   ],
   "yaml": ""
  },
  {
   "model": "fibo2",
   "title": "Fibo 2.0 LoRA: what to input (Bria's starting point)",
   "source": "Bria fine_tuning guide, via the diffusers Fibo 2.0 LoRA README (PR #15084, merged)",
   "rows": [
    [
     "Source",
     "Bria's fine_tuning guide (huggingface.co/briaai/Fibo-2.0-dev), summarized in the diffusers Fibo 2.0 LoRA README"
    ],
    [
     "Trainer",
     "Bria fine_tuning/train_lora.py (single GPU, text-to-image and edit), DiffSynth-Studio (examples/fibo, LoRA and full), or diffusers train_dreambooth_lora_bria_fibo2.py (v0.42.0+, use --pretrained_model_name_or_path=briaai/Fibo-2.0-dev), ai-toolkit (Oct 23)"
    ],
    [
     "Base model",
     "Fibo 2.0 Dev (not Edit Turbo)"
    ],
    [
     "Network",
     "LoRA, rank 64, alpha 64, all linear layers"
    ],
    [
     "Learning rate",
     "1e-4, constant"
    ],
    [
     "Resolution",
     "1024 (~1 MP)"
    ],
    [
     "Batch",
     "1, gradient accumulation 8"
    ],
    [
     "Steps",
     "1,000 (diffusers t2i example) / 2,000 (edit example); LoRAs converge fast, about 300-500 steps is usually enough"
    ],
    [
     "DiffSynth-Studio example",
     "LoRA rank 32, LR 1e-4, 5 epochs, max_pixels 1048576, gradient checkpointing, targets to_q,to_k,to_v,to_out.0,w1,w2,w3"
    ],
    [
     "Our tested run (Oct 21)",
     "rank 64, alpha 64, LR 1e-4 constant, AdamW, 1024px, batch 1, grad accum 2, 400 steps, save every 100, text dropout 0.1; 15 images; best at step 300 (A100 40GB: 23 GiB peak, 6.2 s/step, 42 min)"
    ],
    [
     "Captions",
     "Structured JSON (VGL, recommended in Bria's README) or plain sentences; both give the same result in practice; plain captions wrapped as Fibo JSON work without bria-vgl or a Gemini key"
    ],
    [
     "Save VRAM",
     "cache latents, gradient checkpointing, 8-bit Adam, offload VAE and text encoder"
    ]
   ],
   "yaml": ""
  }
 ],
 "general_tips": [
  "Gated Hugging Face models: click 'Agree and access' on each model page, or you'll get 403 errors",
  "Steps scale with dataset size (steps = epochs x images at batch 1)",
  "A safe start: LoKr with auto rank (~64), batch/grad accumulation 4",
  "Leave out of your captions whatever you want burned into the LoRA; caption what should stay changeable",
  "ai-toolkit dataset folder weights let you train the same images with long, medium and short captions in separate folders",
  "ai-toolkit supports validation loss, which shows when a run stops improving",
  "In ai-toolkit, Cache text embeddings works for basically every model and frees the text encoder from VRAM and RAM",
  "Prefer int8 convrot over qfloat8 quantization in ai-toolkit: better quality at the same memory",
  "Gradient accumulation and batch size don't scale the learning rate in ai-toolkit; a bigger batch needs about 1.5-2.5x the steps"
 ]
}
