Spaces:
Running
on
Zero
Running
on
Zero
Update app.py
Browse files
app.py
CHANGED
@@ -5,21 +5,19 @@ import numpy as np
|
|
5 |
import gradio as gr
|
6 |
import spaces
|
7 |
import torch
|
8 |
-
from diffusers import FluxPipeline, FluxTransformer2DModel
|
9 |
-
from transformers import AutoModelForCausalLM, AutoTokenizer
|
10 |
from huggingface_hub import login, whoami
|
11 |
|
12 |
# ------------------------------------------------------------------
|
13 |
# 1. Authentication and Global Configuration
|
14 |
# ------------------------------------------------------------------
|
15 |
# Authenticate with HF token
|
16 |
-
|
17 |
auth_status = "🔴 Not Authenticated"
|
18 |
|
19 |
-
if
|
20 |
try:
|
21 |
-
login(token=
|
22 |
-
user_info = whoami(
|
23 |
auth_status = f"✅ Authenticated as {user_info['name']}"
|
24 |
logging.info(f"Successfully authenticated with Hugging Face as {user_info['name']}")
|
25 |
except Exception as e:
|
@@ -64,8 +62,8 @@ def download_model_weights(target_dir, repo_id, subdir=None):
|
|
64 |
"local_dir_use_symlinks": False,
|
65 |
}
|
66 |
|
67 |
-
if
|
68 |
-
download_kwargs["token"] =
|
69 |
|
70 |
if subdir:
|
71 |
download_kwargs["allow_patterns"] = os.path.join(subdir, "**")
|
@@ -129,7 +127,7 @@ class QwenRecapAgent:
|
|
129 |
try:
|
130 |
self.tokenizer = AutoTokenizer.from_pretrained(
|
131 |
model_path,
|
132 |
-
token=
|
133 |
use_fast=True, # 强制使用 fast tokenizer
|
134 |
trust_remote_code=True
|
135 |
)
|
@@ -138,7 +136,7 @@ class QwenRecapAgent:
|
|
138 |
logging.warning(f"Fast tokenizer failed, falling back to slow: {e}")
|
139 |
self.tokenizer = AutoTokenizer.from_pretrained(
|
140 |
model_path,
|
141 |
-
token=
|
142 |
use_fast=False,
|
143 |
trust_remote_code=True
|
144 |
)
|
@@ -148,8 +146,8 @@ class QwenRecapAgent:
|
|
148 |
"device_map": device_map if device_map == "auto" else None,
|
149 |
"trust_remote_code": True
|
150 |
}
|
151 |
-
if
|
152 |
-
model_kwargs["token"] =
|
153 |
|
154 |
self.model = AutoModelForCausalLM.from_pretrained(model_path, **model_kwargs)
|
155 |
if device_map != "auto":
|
@@ -257,7 +255,7 @@ class PosterGenerator:
|
|
257 |
self.pipeline = FluxPipeline.from_pretrained(
|
258 |
self.pipeline_path,
|
259 |
torch_dtype=torch.bfloat16,
|
260 |
-
token=
|
261 |
)
|
262 |
|
263 |
# 加载自定义权重
|
@@ -267,7 +265,7 @@ class PosterGenerator:
|
|
267 |
transformer = FluxTransformer2DModel.from_pretrained(
|
268 |
custom_weights_local,
|
269 |
torch_dtype=torch.bfloat16,
|
270 |
-
token=
|
271 |
)
|
272 |
self.pipeline.transformer = transformer
|
273 |
elif self.custom_weights_path and os.path.exists(self.custom_weights_path):
|
@@ -275,7 +273,7 @@ class PosterGenerator:
|
|
275 |
transformer = FluxTransformer2DModel.from_pretrained(
|
276 |
self.custom_weights_path,
|
277 |
torch_dtype=torch.bfloat16,
|
278 |
-
token=
|
279 |
)
|
280 |
self.pipeline.transformer = transformer
|
281 |
|
@@ -319,7 +317,7 @@ def generate_image_interface(
|
|
319 |
return None, "❌ Prompt cannot be empty!", ""
|
320 |
|
321 |
try:
|
322 |
-
if not
|
323 |
return None, "❌ Error: HF_TOKEN not found. Please configure authentication.", ""
|
324 |
|
325 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
|
|
5 |
import gradio as gr
|
6 |
import spaces
|
7 |
import torch
|
|
|
|
|
8 |
from huggingface_hub import login, whoami
|
9 |
|
10 |
# ------------------------------------------------------------------
|
11 |
# 1. Authentication and Global Configuration
|
12 |
# ------------------------------------------------------------------
|
13 |
# Authenticate with HF token
|
14 |
+
HF_TOKEN = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACEHUB_API_TOKEN")
|
15 |
auth_status = "🔴 Not Authenticated"
|
16 |
|
17 |
+
if HF_TOKEN:
|
18 |
try:
|
19 |
+
login(token=HF_TOKEN, add_to_git_credential=True)
|
20 |
+
user_info = whoami(HF_TOKEN)
|
21 |
auth_status = f"✅ Authenticated as {user_info['name']}"
|
22 |
logging.info(f"Successfully authenticated with Hugging Face as {user_info['name']}")
|
23 |
except Exception as e:
|
|
|
62 |
"local_dir_use_symlinks": False,
|
63 |
}
|
64 |
|
65 |
+
if HF_TOKEN:
|
66 |
+
download_kwargs["token"] = HF_TOKEN
|
67 |
|
68 |
if subdir:
|
69 |
download_kwargs["allow_patterns"] = os.path.join(subdir, "**")
|
|
|
127 |
try:
|
128 |
self.tokenizer = AutoTokenizer.from_pretrained(
|
129 |
model_path,
|
130 |
+
token=HF_TOKEN,
|
131 |
use_fast=True, # 强制使用 fast tokenizer
|
132 |
trust_remote_code=True
|
133 |
)
|
|
|
136 |
logging.warning(f"Fast tokenizer failed, falling back to slow: {e}")
|
137 |
self.tokenizer = AutoTokenizer.from_pretrained(
|
138 |
model_path,
|
139 |
+
token=HF_TOKEN,
|
140 |
use_fast=False,
|
141 |
trust_remote_code=True
|
142 |
)
|
|
|
146 |
"device_map": device_map if device_map == "auto" else None,
|
147 |
"trust_remote_code": True
|
148 |
}
|
149 |
+
if HF_TOKEN:
|
150 |
+
model_kwargs["token"] = HF_TOKEN
|
151 |
|
152 |
self.model = AutoModelForCausalLM.from_pretrained(model_path, **model_kwargs)
|
153 |
if device_map != "auto":
|
|
|
255 |
self.pipeline = FluxPipeline.from_pretrained(
|
256 |
self.pipeline_path,
|
257 |
torch_dtype=torch.bfloat16,
|
258 |
+
token=HF_TOKEN
|
259 |
)
|
260 |
|
261 |
# 加载自定义权重
|
|
|
265 |
transformer = FluxTransformer2DModel.from_pretrained(
|
266 |
custom_weights_local,
|
267 |
torch_dtype=torch.bfloat16,
|
268 |
+
token=HF_TOKEN
|
269 |
)
|
270 |
self.pipeline.transformer = transformer
|
271 |
elif self.custom_weights_path and os.path.exists(self.custom_weights_path):
|
|
|
273 |
transformer = FluxTransformer2DModel.from_pretrained(
|
274 |
self.custom_weights_path,
|
275 |
torch_dtype=torch.bfloat16,
|
276 |
+
token=HF_TOKEN
|
277 |
)
|
278 |
self.pipeline.transformer = transformer
|
279 |
|
|
|
317 |
return None, "❌ Prompt cannot be empty!", ""
|
318 |
|
319 |
try:
|
320 |
+
if not HF_TOKEN:
|
321 |
return None, "❌ Error: HF_TOKEN not found. Please configure authentication.", ""
|
322 |
|
323 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|