File size: 3,382 Bytes
09208f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9fadf37
 
99608d9
 
 
9fadf37
09208f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0e29250
09208f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
---
license: mit
base_model: black-forest-labs/FLUX.2-klein-9B
tags:
  - lora
  - flux
  - flux.2
  - flux.2-klein-9b
  - image-to-image
  - text-to-image
  - font
  - typography
  - atlas
  - comfyui
  - safetensors
---

# Ref2FontV1 — Contextual LoRA for FLUX.2 Klein 9B

**Ref2FontV1** is a **contextual LoRA** trained for **black-forest-labs/FLUX.2-klein-9B**. It generates **1024×1024 font atlases** from a single reference image, following the same layout as the provided examples.

> Disclaimer: it works **well**, but **not perfectly**. Expect occasional artifacts and minor alignment issues.

## Examples

![Example1_C](https://cdn-uploads.huggingface.co/production/uploads/658814fd586088fd274d8cc1/tV7JpfCWUOWOOwqAGY9WH.png)
![Example2_C](https://cdn-uploads.huggingface.co/production/uploads/658814fd586088fd274d8cc1/S7ae0GOFxIvaUiS9dD4YU.png)
![Example3_C](https://cdn-uploads.huggingface.co/production/uploads/658814fd586088fd274d8cc1/I0IKwF8iI4yJOGCEyzeUV.png)

## Guide
The full usage, installation guide and detailed workflow live in the [GitHub repo](https://github.com/SnJake/Ref2Font):
```
https://github.com/SnJake/Ref2Font
```

## What’s included
- `Ref2FontV1.safetensors` (LoRA weights)
- `Example Workflow/` (ComfyUI workflow with notes inside nodes)
- `Example/` (input images and their atlases)
- Post-processing scripts (`flux_pipeline.py`, `flux_grid_to_ttf.py`, `flux_upscale.py`)

## License
MIT

## ComfyUI setup
### Required models
1) Base model:
```
https://huggingface.co/black-forest-labs/FLUX.2-klein-9B/blob/main/flux-2-klein-9b.safetensors
```
Place in: `ComfyUI/models/diffusion_models`

2) Text encoder (Qwen):
```
https://huggingface.co/Comfy-Org/vae-text-encorder-for-flux-klein-9b/blob/main/split_files/text_encoders/qwen_3_8b.safetensors
```
Place in: `ComfyUI/models/text_encoders`

3) VAE:
```
https://huggingface.co/Comfy-Org/vae-text-encorder-for-flux-klein-9b/blob/main/split_files/vae/flux2-vae.safetensors
```
Place in: `ComfyUI/models/vae`

### LoRA
Download:
```
https://huggingface.co/SnJake/Ref2Font/blob/main/Ref2FontV1.safetensors
```

Place in: `ComfyUI/models/loras`

### Input image rules
- **Strict black & white only** (no gray, no shadows, no volume)
- **1024×1024** exactly
- Follow the examples in `Example/`

## Post-processing: Atlas → TTF
Use the included pipeline script to convert the atlas into a TTF.

### Example command (Windows)
```powershell
python "Flux 2 Klein 9B\flux_pipeline.py" ^
  --input "D:\ComfyUI_temp_nckhb_00003_.png" ^
  --output-dir "G:\Flux 2 Klein 9B\test" ^
  --no-upscale ^
  --use-grid ^
  --vectorize contours ^
  --simplify 0.5 ^
  --canvas 1024 ^
  --contour-level 0.5 ^
  --trace-scale 4 ^
  --trace-blur 1.0 ^
  --smooth-iters 2 ^
  --baseline-mode auto ^
  --baseline-quantile 0.9 ^
  --baseline-min-pixels 20 ^
  --cols 8 ^
  --rows 9 ^
  --no-auto-invert
```

**Upscaler is optional.** If you want to use `flux_upscale.py`, install PyTorch separately:
```
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
```

## Notes
- The upscaler is optional; you can skip it with `--no-upscale`.
- The optional upscaler is also hosted in this HF repo:
```
https://huggingface.co/SnJake/Ref2Font
```
- If the atlas looks inverted, try removing `--no-auto-invert` or add `--invert`.
- If letters look vertically misaligned, use `--baseline-mode auto`.