Update app.py
Browse files
app.py
CHANGED
|
@@ -32,7 +32,7 @@ from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
| 32 |
# =========================
|
| 33 |
WEIGHTS_REPO = "epfl-vita/flux2-klein-1step-rdm"
|
| 34 |
AE_REPO, AE_FILE = "black-forest-labs/FLUX.2-dev", "ae.safetensors"
|
| 35 |
-
RES =
|
| 36 |
# Change to 256 if OOM occurs.
|
| 37 |
BASE_CTX_LEN = 48
|
| 38 |
TOKEN = os.environ.get("HF_TOKEN")
|
|
@@ -54,7 +54,7 @@ class Qwen3_0_6B_Embedder:
|
|
| 54 |
def __init__(self, device="cpu", torch_dtype=torch.bfloat16):
|
| 55 |
self.device = device
|
| 56 |
self.torch_dtype = torch_dtype
|
| 57 |
-
self.max_length =
|
| 58 |
|
| 59 |
self.tokenizer = AutoTokenizer.from_pretrained(
|
| 60 |
"Qwen/Qwen3-0.6B",
|
|
@@ -147,7 +147,7 @@ def _encode(prompt: str) -> torch.Tensor:
|
|
| 147 |
|
| 148 |
real_len = len(tok(text)["input_ids"])
|
| 149 |
# Adaptive context length (interface compatibility)
|
| 150 |
-
emb.max_length = min(
|
| 151 |
|
| 152 |
with torch.no_grad():
|
| 153 |
return emb([prompt]) # (1, 1, 7680)
|
|
@@ -182,7 +182,7 @@ def generate(prompt: str, seed: int, randomize: bool):
|
|
| 182 |
)
|
| 183 |
|
| 184 |
with torch.no_grad(), torch.autocast("cpu", dtype=torch.bfloat16):
|
| 185 |
-
lat = _state["model"].sample_images_with_grad(noise, ctx, {"num_steps":
|
| 186 |
pix = _state["vae"].detokenize(lat)
|
| 187 |
|
| 188 |
arr = (pix[0].float().clamp(0, 1) * 255).round().byte()
|
|
@@ -220,7 +220,7 @@ HEADER = """
|
|
| 220 |
<span style="display:inline-block; background: rgba(236,72,153,.10); border: 1px solid rgba(236,72,153,.35);
|
| 221 |
border-radius: 999px; padding: 3px 12px; margin: 2px;">PickScore-COCO <b>22.76</b></span>
|
| 222 |
<span style="display:inline-block; background: rgba(245,158,11,.10); border: 1px solid rgba(245,158,11,.35);
|
| 223 |
-
border-radius: 999px; padding: 3px 12px; margin: 2px;">⚠️
|
| 224 |
<a href="https://huggingface.co/epfl-vita/flux2-klein-1step-rdm" target="_blank"
|
| 225 |
style="display:inline-block; border: 1px solid rgba(120,120,120,.4); border-radius: 999px;
|
| 226 |
padding: 3px 12px; margin: 2px; text-decoration: none;">🤗 model card</a>
|
|
|
|
| 32 |
# =========================
|
| 33 |
WEIGHTS_REPO = "epfl-vita/flux2-klein-1step-rdm"
|
| 34 |
AE_REPO, AE_FILE = "black-forest-labs/FLUX.2-dev", "ae.safetensors"
|
| 35 |
+
RES = 125 # WARNING: 512px is borderline on 16GB CPU.
|
| 36 |
# Change to 256 if OOM occurs.
|
| 37 |
BASE_CTX_LEN = 48
|
| 38 |
TOKEN = os.environ.get("HF_TOKEN")
|
|
|
|
| 54 |
def __init__(self, device="cpu", torch_dtype=torch.bfloat16):
|
| 55 |
self.device = device
|
| 56 |
self.torch_dtype = torch_dtype
|
| 57 |
+
self.max_length = 125
|
| 58 |
|
| 59 |
self.tokenizer = AutoTokenizer.from_pretrained(
|
| 60 |
"Qwen/Qwen3-0.6B",
|
|
|
|
| 147 |
|
| 148 |
real_len = len(tok(text)["input_ids"])
|
| 149 |
# Adaptive context length (interface compatibility)
|
| 150 |
+
emb.max_length = min(125, max(BASE_CTX_LEN, int(math.ceil((real_len + 4) / 8) * 8)))
|
| 151 |
|
| 152 |
with torch.no_grad():
|
| 153 |
return emb([prompt]) # (1, 1, 7680)
|
|
|
|
| 182 |
)
|
| 183 |
|
| 184 |
with torch.no_grad(), torch.autocast("cpu", dtype=torch.bfloat16):
|
| 185 |
+
lat = _state["model"].sample_images_with_grad(noise, ctx, {"num_steps": 3})
|
| 186 |
pix = _state["vae"].detokenize(lat)
|
| 187 |
|
| 188 |
arr = (pix[0].float().clamp(0, 1) * 255).round().byte()
|
|
|
|
| 220 |
<span style="display:inline-block; background: rgba(236,72,153,.10); border: 1px solid rgba(236,72,153,.35);
|
| 221 |
border-radius: 999px; padding: 3px 12px; margin: 2px;">PickScore-COCO <b>22.76</b></span>
|
| 222 |
<span style="display:inline-block; background: rgba(245,158,11,.10); border: 1px solid rgba(245,158,11,.35);
|
| 223 |
+
border-radius: 999px; padding: 3px 12px; margin: 2px;">⚠️ 125px Borderline</span>
|
| 224 |
<a href="https://huggingface.co/epfl-vita/flux2-klein-1step-rdm" target="_blank"
|
| 225 |
style="display:inline-block; border: 1px solid rgba(120,120,120,.4); border-radius: 999px;
|
| 226 |
padding: 3px 12px; margin: 2px; text-decoration: none;">🤗 model card</a>
|