flux2-dev
Train a Flux 2 Dev LoRA without owning an RTX 6000
- model
- api_config
- moderation_status
- epochs
- sample_images_prompts
- sample_input_images
- stored_as_assets
- eta
- workflow_id
- raw_json
Here's the real pitch: Flux 2 Dev is a 32B rectified-flow transformer with a 24B vision-language text encoder - roughly 56B of weights end to end - and the community's standing explanation for why it never got a LoRA ecosystem is that "you need an RTX 6000 PRO to train them, and it takes many hours." This node removes that wall entirely. It's hosted LoRA training on Flux 2 Dev, run on Civitai's fleet, kicked off from inside ComfyUI. Your dataset goes up, a trained LoRA comes back, and the nearest thing you touched to a GPU is the node's training_data_images_count field.
If you've ever wanted Flux 2 Dev's editing quality but balked at the hardware, this is the node that answers "who actually trains on this model" - people who don't own an RTX 6000.
How it works
Like the other training nodes in this pack, it's a wrapper over Civitai's Orchestration training recipe. You supply the dataset as a URL (training_data), tell it how many images are embedded (training_data_images_count - used to calculate cost, so be honest), and pick a base model via model (a CIVITAI_AIR socket, filled from a Civitai Model Selector). The job runs remotely; the node polls until done and returns status strings rather than images.
The model input is required and carries the tooltip "The primary model to train upon" - that's where you wire the Flux 2 Dev checkpoint. Training kicks off only when that's set, so build the selector first.
Inputs that matter
training_data(required) - a URL to your dataset. This is the friction point: you need your images hosted somewhere reachable (and caption files next to them if you want captions).training_data_images_count(required) - image count; drives the cost estimate.steps- default 1000, must be in increments of 100. The KB's training doc is the reference here: for a small set, a few hundred steps per concept is the common range, but Flux 2 Dev is a big model that wants more.learning_rate- default 5e-05, a sane starting point.lora_name- defaultmy-lora; name it something you'll recognize when the artifact lands.sample_prompts_json/negative_prompt- sample images the trainer generates so you can judge progress.default_caption- used when caption files are missing from the training data; without it, uncaptioned images may under-train.
Outputs: moderation_status, epochs, sample_images_prompts, sample_input_images, stored_as_assets, eta, workflow_id, raw_json - the status dashboard for a long-running job. eta and stored_as_assets are the two to glance at first.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/civitai/civitai-comfy-nodes.git
pip install -r civitai-comfy-nodes/requirements.txt
Or ComfyUI Manager → "Civitai Comfy Nodes" → Install → restart. Authenticate; training is the most expensive thing in the pack, so expect a real Buzz charge.
Gotchas
Training jobs are long - you submit and wait, and eta is your friend. The pack is early preview, and training recipes are the newest territory, so the shape of outputs can change between releases. Two practical notes: the whole pipeline is hosted, so your training data lives on a URL Civitai can fetch - a local folder path won't work; and the training-data-cost model means training_data_images_count being wrong isn't just inaccurate, it's an inaccurate bill. Count your images.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | CIVITAI_AIR | The primary model to train upon. | |
| training_data | STRING | A url referring data to use in training. | |
| training_data_images_count | INT | 00–2147483647 | The number of images embedded in this training data. This is used to calculate the cost of training. |
| lora_nameopt | STRING | my-lora | The desired lora name. |
| sample_prompts_jsonopt | STRING | A selection of sample prompts. | |
| negative_promptopt | STRING | An optional negative prompt that will get applied when generating samples | |
| stepsopt | INT | 1000100–10000 | Number of training steps. Must be in increments of 100. |
| learning_rateopt | FLOAT | 0.000–2147483647 | Learning rate for training. |
| default_captionopt | STRING | Default caption to use if caption files are missing from training data. | |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| moderation_status | STRING | — |
| epochs | STRING | — |
| sample_images_prompts | STRING | — |
| sample_input_images | STRING | — |
| stored_as_assets | STRING | — |
| eta | STRING | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |