VRGDG Krea 2 LoRA Train Chunk
Train a chunk of a Krea 2 LoRA and get a native safetensors path back
- latest_lora_path
- latest_state_path
- log_path
- output_name
- completed_steps
- total_target_steps
VRGDG Krea 2 LoRA Train Chunk is the workhorse: it runs one Krea 2 LoRA training chunk through musubi-tuner and hands you the path to the trained .safetensors - in native Krea 2 form, no Comfy conversion attempted. "One chunk" is the design: you train a slice of steps, get a LoRA and a state save, then decide whether to continue. It's the node the LoRA Studio UI drives under the hood, and you can also wire it directly into a graph.
This is the modern LoRA training reality in one node. The old SDXL-era rules don't port to a 12B Qwen3-VL-based model - you don't train the text encoder, you cache embeddings once, and the rank/alpha tables people memorized for SDXL are wrong here. Krea 2's own docs (which the node's defaults follow) recommend rank 32, alpha 32, fp8 base weights, and a shift timestep sampling at 2.5. The node's defaults are the author's reading of those docs, which is the right place to start.
The inputs that matter
dataset_images_dir- your training images (or a parent that gets organized into animagessubfolder). It's everything: curation beats every other knob.workspace_dir- working folder for caches, logs, configs, checkpoints, and training state.steps_per_run(250) andtotal_target_steps(3000) - one chunk's length and when training stops. Lowersteps_per_run= more frequent saves, easier iteration.resolution_width/height- 1024 default, matching Krea 2's native inference resolution.network_dim/network_alpha- rank and alpha, both 32 per Krea 2 docs.blocks_to_swap- how many Krea 2 main blocks to offload to CPU (default 4, max 26). This is your VRAM lever: on a tight GPU, raise it; it slows training but keeps you under the ceiling.fp8_base/fp8_scaled- both on. Krea 2 requiresfp8_scaledwheneverfp8_baseis enabled, so keep them in lockstep.learning_rate_preset- quick picks (1e-4default) orCustomto use the float below. 1e-4 is hot for a 12B; the KB's modern-model experience suggests going lower (5e-5, 3e-5) is often safer.cache_strategy-autobuilds the cache only when needed,forcealways rebuilds,skipjumps straight to training. First run usesautoand pays the cache cost once.create_captions/caption_text/add_trigger_word/trigger_text- caption handling. Caption what should vary; leave fixed things undescribed. A trigger word helps but isn't magic.musubi_root,krea2_raw_dit,vae,text_encoder- the environment paths. These are exactly whatVRGDG Krea 2 Musubi Installeroutputs, so wire them through rather than typing them.
The outputs
latest_lora_path- the trained native Krea 2 LoRA. This is the one you actually want.latest_state_path- training state, for continuing a chunked run.log_path,output_name,completed_steps,total_target_steps- run bookkeeping.
Installing it
Pack install (Manager → search vrgamedev, or git clone https://github.com/vrgamegirl19/comfyui-vrgamedevgirl.git), restart, hard-refresh. This node does not install the training stack - you need the Musubi installer to have run, with a Python 3.10–3.12 environment, or it will fail at first contact.
Common issues
- Errors before training starts. Almost always the environment: musubi not installed, wrong Python, or model paths that don't exist. Verify with the installer's
report_pathand the paths it output. - OOM mid-run. Raise
blocks_to_swap, or free VRAM first (theclear_memory_before_text_encodertoggle helps at the cache step). Drop resolution if it persists. - Loss looks weird / output is garbage. Krea 2 training is young. Sample what you train (
VRGDG LoRA From Path Model Onlyis made for this), compare chunks, and stop when the last saved chunk is worse, not the number of steps.
This is not a beginner's first training node - it assumes you have a stack stood up and a dataset worth the compute. If you do, it's the cleanest way to get a native Krea 2 LoRA out of ComfyUI.
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| dataset_images_dir | STRING | Folder containing your training images, or a parent folder that will be organized into an images subfolder. | |
| workspace_dir | STRING | A:/MUSUBI/Training/Krea2LoraTrain | Working folder for cache, logs, config files, checkpoints, and training state. |
| run_name | STRING | Krea2ChunkRun | Name prefix used for the log file. |
| output_name | STRING | Krea2ChunkRun | Name prefix used for saved LoRA files and state folders. |
| resolution_width | INT | 102464–8192 | Training bucket width written to the musubi dataset config. |
| resolution_height | INT | 102464–8192 | Training bucket height written to the musubi dataset config. |
| steps_per_run | INT | 2501–100000 | How many steps to train per run, and also when to save the LoRA/state at the end of that run. |
| total_target_steps | INT | 30001–1000000 | Training stops once the latest saved step reaches this total. |
| network_dim | INT | 321–2048 | LoRA rank. Krea 2 docs recommend 32 as the default. |
| network_alpha | INT | 321–2048 | LoRA alpha scaling value. Krea 2 docs recommend 32 as the default. |
| blocks_to_swap | INT | 40–26 | How many Krea 2 main blocks to offload to CPU. Krea 2 docs list 26 as the maximum. |
| clear_memory_before_text_encoder | BOOLEAN | true | Tries to unload ComfyUI models and clear VRAM/RAM before text encoder caching. |
| learning_rate_preset | COMBO | 1e-4 | Quick preset for the training learning rate. Choose Custom to use the float input below. |
| learning_rate | FLOAT | 0.00011e-8–1 | Custom learning rate used only when the preset is set to Custom. |
| num_repeats | INT | 11–1000 | How many times each image-caption pair is repeated in the dataset. |
| cache_strategy | COMBO | auto | Auto builds cache only when needed, Force always rebuilds it, Skip goes straight to training. |
| copy_latest_to_comfy_loras | BOOLEAN | false | Copies the latest native Krea 2 LoRA into the ComfyUI loras folder after training. |
| create_captions | BOOLEAN | false | If enabled, missing caption txt files are created automatically using the caption text input. |
| caption_text | STRING | Base caption text used when create_captions is enabled and an image has no caption file. | |
| add_trigger_word | BOOLEAN | false | If enabled, the trigger text is prepended to each caption. |
| trigger_text | STRING | Trigger word or phrase to prepend to captions when add_trigger_word is enabled. | |
| musubi_root | STRING | A:/MUSUBI/musubi-tuner-ltx2 | Root folder of a native Krea 2-capable musubi-tuner install. |
| krea2_raw_dit | STRING | A:/MUSUBI/models/krea2/raw.safetensors | Path to the Krea 2 RAW DiT checkpoint used for training. |
| vae | STRING | A:/MUSUBI/models/qwen_image/qwen_image_vae.safetensors | Path to the Qwen-Image VAE checkpoint. |
| text_encoder | STRING | A:/MUSUBI/models/qwen3vl/qwen3vl_4b_bf16.safetensors | Path to the Qwen3-VL-4B-Instruct single safetensors text encoder. |
| fp8_base | BOOLEAN | true | Enable fp8 base model weights during Krea 2 training. Krea 2 requires fp8_scaled with this. |
| fp8_scaled | BOOLEAN | true | Enable dynamic scaled fp8 weights during Krea 2 training. Required when fp8_base is enabled. |
| timestep_sampling | COMBO | shift | Krea 2 docs recommend shift with discrete_flow_shift=2.5 for 1024px. |
| discrete_flow_shift | FLOAT | 2.50–10 | Used when timestep_sampling is shift. 2.5 matches Krea 2's 1024x1024 inference time-shift. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| latest_lora_path | STRING | — |
| latest_state_path | STRING | — |
| log_path | STRING | — |
| output_name | STRING | — |
| completed_steps | INT | — |
| total_target_steps | INT | — |