File size: 5,288 Bytes
b448f48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4848245
 
 
b448f48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4848245
b448f48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4848245
b448f48
 
 
4848245
b448f48
 
 
 
 
 
 
 
 
 
 
4848245
 
 
 
 
 
 
 
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
117
118
119
120
121
122
123
124
125
---
license: apache-2.0
base_model: Tongyi-MAI/Z-Image-Turbo
base_model_relation: merge
tags:
  - text-to-image
  - redrob
  - redrob-image
  - z-image
  - diffusers
  - comfyui
  - diffusion
library_name: diffusers
pipeline_tag: text-to-image
---

# Redrob Image

[한국어](./README.ko.md)

**Redrob Image** is [Redrob](https://redrob.io)'s open-weight diffusion model, built by [Janghoon Lee (이장훈)](https://www.janghoonlee.com).

Redrob's vision is to democratize AI. Our models are free to use and free for commercial use, under [Apache License 2.0](./LICENSE).

## Why this model

- Tuned for a more realistic look than the bare base model: better skin, light, and texture, with less of the plastic, AI-skin tell.
- Strong on photo, portrait, and mood imagery.
- Fast Turbo-style sampling: about 8 DiT steps.
- Runs in plain Python via Diffusers, or as a single merged UNET in ComfyUI.
- Apache-2.0: free to use, free for commercial use, and redistributable.

## Limits

Weak at legible text, including Hangul, Devanagari, and most non-Latin script. Route text-bearing surfaces elsewhere. Also weaker on graphic, print, and typography-heavy work than on photo and portrait.

Turbo-style sampling runs without classifier-free guidance (`guidance_scale=0` / ComfyUI `cfg 1`), so **negative prompts are ignored**. Put avoidances in the positive prompt instead.

## Quick start (Diffusers / Python)

Enterprise and production default. After the Hugging Face upload includes `transformer/`, load that Diffusers transformer and keep the text encoder / VAE from the base pipeline.

```bash
pip install -U torch transformers accelerate safetensors
pip install -U diffusers
```

```python
import torch
from diffusers import ZImagePipeline, ZImageTransformer2DModel

transformer = ZImageTransformer2DModel.from_pretrained(
    "redrob-labs/redrob-image",
    subfolder="transformer",
    torch_dtype=torch.bfloat16,
)

pipe = ZImagePipeline.from_pretrained(
    "Tongyi-MAI/Z-Image-Turbo",
    transformer=transformer,
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")

prompt = "A documentary portrait in natural window light, shallow depth of field"
image = pipe(
    prompt=prompt,
    height=1024,
    width=1024,
    num_inference_steps=9,  # 8 DiT forwards
    guidance_scale=0.0,     # required for Turbo
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]
image.save("redrob-image.png")
```

Optional: `pipe.enable_model_cpu_offload()` on smaller GPUs.

## Quick start (ComfyUI)

| File                              | Put under                  | Source                                                                    |
| --------------------------------- | -------------------------- | ------------------------------------------------------------------------- |
| `redrob-image.safetensors`        | `models/diffusion_models/` | this repository                                                           |
| `qwen_3_4b_fp8_mixed.safetensors` | `models/text_encoders/`    | [Comfy-Org/z_image_turbo](https://huggingface.co/Comfy-Org/z_image_turbo) |
| `ae.safetensors`                  | `models/vae/`              | same Comfy-Org pack                                                       |

1. `UNETLoader` -> `redrob-image.safetensors`
2. `CLIPLoader` -> `qwen_3_4b_fp8_mixed.safetensors` (`type: lumina2`, ComfyUI loader type for this text encoder)
3. `VAELoader` -> `ae.safetensors`
4. Sampler: **8 steps**, **cfg 1**, `res_multistep` / `sgm_uniform`

Load `workflows/redrob-image-api.json` for a minimal working graph. The graph zeros out negative conditioning (`ConditioningZeroOut`); do not expect a negative text prompt to change the image.

## Files

| Path                              | Role                                  |
| --------------------------------- | ------------------------------------- |
| `redrob-image.safetensors`        | ComfyUI merged UNET (LFS, ~12 GiB)    |
| `transformer/`                    | Diffusers layout (built at HF upload) |
| `workflows/redrob-image-api.json` | Minimal ComfyUI API graph             |
| `README.md` / `README.ko.md`      | Model card (English / Korean)         |
| `LICENSE`                         | Apache License 2.0                    |
| `NOTICE`                          | Attribution                           |

`transformer/` is not in git. On Hugging Face upload, `scripts/push_hf.sh` converts the Comfy UNET into Diffusers format (or copies a prebuilt `TRANSFORMER_DIR`).

Convert a local Comfy UNET yourself:

```bash
python scripts/comfy_to_diffusers_zimage.py \
  --input redrob-image.safetensors \
  --output-dir transformer/
```

## License

[Apache License 2.0](./LICENSE). Copyright [Redrob](https://redrob.io). Built by [Janghoon Lee (이장훈)](https://www.janghoonlee.com). Upstream attribution is in [NOTICE](./NOTICE). Redistributors keep NOTICE with the weights.

## Attribution

- **Copyright:** Redrob ([redrob.io](https://redrob.io))
- **Built by:** [Janghoon Lee (이장훈)](https://www.janghoonlee.com) ([@savagemanage](https://github.com/savagemanage))
- **Repository:** [redrob-labs/redrob-image](https://huggingface.co/redrob-labs/redrob-image)
- **Base model:** [Tongyi-MAI/Z-Image-Turbo](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo) - Apache License 2.0