zr_jennifer โ€” FLUX.2 [klein] 9B LoRA

Personal character LoRA for the FLUX.2 [klein] base 9B model, trained with ai-toolkit.

Trigger word

zr_jennifer

Use the trigger anywhere in the prompt; it works alongside descriptive sentences (the LoRA was trained on natural-language captions, not Danbooru tags).

Training details

Setting Value
Base model black-forest-labs/FLUX.2-klein-base-9B
Trainer ai-toolkit (ostris)
LoRA rank / alpha 32 / 32
Steps 3000
Optimizer adamw8bit, lr 1e-4, weight_decay 1e-5
Precision bf16, gradient checkpointing on
Text encoder Qwen3-8B (quantized)
Resolution 1024
Dataset 204 images, 1024ร—1024, natural-language captions
GPU RunPod H100 80GB SXM5

Inference (wavespeed.ai)

curl -X POST https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-2-klein-9b/text-to-image-lora \
  -H "Authorization: Bearer $WAVESPEED_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "zr_jennifer, cinematic portrait, soft natural light",
    "size": "1024*1024",
    "loras": [{"path": "https://huggingface.co/zerubroberts/zr_jennifer_flux2_klein_9b/resolve/main/zr_jennifer_flux2_klein_9b.safetensors", "scale": 1.0}]
  }'

Inference (diffusers)

from diffusers import Flux2KleinPipeline
import torch

pipe = Flux2KleinPipeline.from_pretrained(
    "black-forest-labs/FLUX.2-klein-base-9B",
    torch_dtype=torch.bfloat16,
).to("cuda")
pipe.load_lora_weights("zerubroberts/zr_jennifer_flux2_klein_9b")

img = pipe(
    "zr_jennifer, cinematic portrait, soft natural light, 85mm lens",
    num_inference_steps=28, guidance_scale=4.0,
).images[0]
img.save("out.png")

License

Inherits the FLUX.2 Non-Commercial License from the base model.

Downloads last month
56
Inference Examples
Examples
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for zerubroberts/zr_jennifer_flux2_klein_9b

Adapter
(57)
this model