programmersd commited on
Commit
966d466
ยท
verified ยท
1 Parent(s): a04da6e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -34
app.py CHANGED
@@ -7,7 +7,6 @@ import torch
7
  import gradio as gr
8
  from threading import Lock
9
  from contextlib import contextmanager
10
- from huggingface_hub import snapshot_download
11
 
12
  # --- LOGGING FOR UI ---
13
  LOG_BUFFER = []
@@ -21,10 +20,9 @@ def log(message):
21
  LOG_BUFFER.pop(0)
22
  return "\n".join(LOG_BUFFER)
23
 
24
- # ๐Ÿš€ Initialization
25
  _initial_logs = log("๐Ÿš€ Initializing Ultimate Z-Image Turbo CPU Edition...")
26
 
27
- # --- ENVIRONMENT SETUP ---
28
  CPU_THREADS = min(8, os.cpu_count() or 1)
29
  os.environ["OMP_NUM_THREADS"] = str(CPU_THREADS)
30
  os.environ["MKL_NUM_THREADS"] = str(CPU_THREADS)
@@ -36,9 +34,6 @@ os.environ["HF_HUB_DISABLE_TELEMETRY"] = "1"
36
  os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0"
37
  os.environ["TRANSFORMERS_CACHE"] = "./hf_cache"
38
  os.environ["HF_DATASETS_CACHE"] = "./hf_cache"
39
- os.environ["HF_HUB_OFFLINE"] = "1"
40
- os.environ["TRANSFORMERS_OFFLINE"] = "1"
41
- os.environ["HF_DATASETS_OFFLINE"] = "1"
42
 
43
  torch.set_num_threads(CPU_THREADS)
44
  torch.set_grad_enabled(False)
@@ -65,23 +60,6 @@ pipe = None
65
  _pipe_lock = Lock()
66
  _generation_lock = Lock()
67
 
68
- # --- Pre-download full snapshot once ---
69
- MODEL_ID = "Tongyi-MAI/Z-Image-Turbo"
70
- MODEL_LOCAL = os.path.join(CACHE_DIR, "Z-Image-Turbo-snapshot")
71
- os.makedirs(MODEL_LOCAL, exist_ok=True)
72
-
73
- if not os.listdir(MODEL_LOCAL):
74
- log("๐Ÿ“ฅ Downloading full model snapshot, please wait...")
75
- snapshot_download(
76
- repo_id=MODEL_ID,
77
- cache_dir=MODEL_LOCAL,
78
- local_dir=MODEL_LOCAL,
79
- local_dir_use_symlinks=False
80
- )
81
- log(f"๐Ÿ“ฆ Model snapshot cached at: {MODEL_LOCAL}")
82
- else:
83
- log(f"๐Ÿ“ฆ Model snapshot already exists at: {MODEL_LOCAL}")
84
-
85
  @contextmanager
86
  def managed_memory():
87
  try:
@@ -102,9 +80,9 @@ def load_pipeline():
102
  start_load = time.time()
103
 
104
  pipe = ZImagePipeline.from_pretrained(
105
- MODEL_LOCAL,
106
  torch_dtype=DTYPE,
107
- local_files_only=True,
108
  low_cpu_mem_usage=True
109
  )
110
 
@@ -153,14 +131,15 @@ def generate(prompt, quality_mode, seed, progress=gr.Progress()):
153
  generator = torch.Generator("cpu").manual_seed(seed)
154
  start_time = time.time()
155
 
156
- def progress_callback(step, *_):
157
  elapsed = time.time() - start_time
158
- avg = elapsed / (step + 1) if step >= 0 else 0
159
- remaining = avg * (steps - step - 1)
160
  progress(
161
- (step + 1) / steps,
162
- desc=f"Step {step+1}/{steps} | ETA {remaining:.1f}s"
163
  )
 
164
 
165
  result = pipe(
166
  prompt=prompt,
@@ -170,8 +149,8 @@ def generate(prompt, quality_mode, seed, progress=gr.Progress()):
170
  num_inference_steps=steps,
171
  guidance_scale=0.0,
172
  generator=generator,
173
- callback=progress_callback,
174
- callback_steps=1,
175
  output_type="pil"
176
  )
177
 
@@ -184,7 +163,6 @@ def generate(prompt, quality_mode, seed, progress=gr.Progress()):
184
 
185
  return image, seed
186
 
187
- # --- GRADIO UI ---
188
  with gr.Blocks(title="๐Ÿš€ Z-Image Turbo Pro Max + Live Logs") as demo:
189
  gr.Markdown("## GPUโ€‘FREE CPU Turbo โ€” Live Logs Below")
190
 
@@ -215,7 +193,7 @@ with gr.Blocks(title="๐Ÿš€ Z-Image Turbo Pro Max + Live Logs") as demo:
215
 
216
  def wrapped_generate(prompt, quality_mode, seed):
217
  image, used_seed = generate(prompt, quality_mode, seed)
218
- logs = log(f"๐Ÿง  Latest status: Finished generation.")
219
  return image, used_seed, logs
220
 
221
  generate_btn.click(
 
7
  import gradio as gr
8
  from threading import Lock
9
  from contextlib import contextmanager
 
10
 
11
  # --- LOGGING FOR UI ---
12
  LOG_BUFFER = []
 
20
  LOG_BUFFER.pop(0)
21
  return "\n".join(LOG_BUFFER)
22
 
 
23
  _initial_logs = log("๐Ÿš€ Initializing Ultimate Z-Image Turbo CPU Edition...")
24
 
25
+ # CPU THREAD OPTIMIZATION
26
  CPU_THREADS = min(8, os.cpu_count() or 1)
27
  os.environ["OMP_NUM_THREADS"] = str(CPU_THREADS)
28
  os.environ["MKL_NUM_THREADS"] = str(CPU_THREADS)
 
34
  os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "0"
35
  os.environ["TRANSFORMERS_CACHE"] = "./hf_cache"
36
  os.environ["HF_DATASETS_CACHE"] = "./hf_cache"
 
 
 
37
 
38
  torch.set_num_threads(CPU_THREADS)
39
  torch.set_grad_enabled(False)
 
60
  _pipe_lock = Lock()
61
  _generation_lock = Lock()
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  @contextmanager
64
  def managed_memory():
65
  try:
 
80
  start_load = time.time()
81
 
82
  pipe = ZImagePipeline.from_pretrained(
83
+ "Tongyi-MAI/Z-Image-Turbo",
84
  torch_dtype=DTYPE,
85
+ cache_dir=CACHE_DIR,
86
  low_cpu_mem_usage=True
87
  )
88
 
 
131
  generator = torch.Generator("cpu").manual_seed(seed)
132
  start_time = time.time()
133
 
134
+ def diffusers_progress_callback(pipeline, step_index, timestep, callback_kwargs):
135
  elapsed = time.time() - start_time
136
+ avg = elapsed / (step_index + 1) if step_index >= 0 else 0
137
+ remaining = avg * (steps - step_index - 1)
138
  progress(
139
+ (step_index + 1) / steps,
140
+ desc=f"Step {step_index+1}/{steps} | ETA {remaining:.1f}s"
141
  )
142
+ return callback_kwargs
143
 
144
  result = pipe(
145
  prompt=prompt,
 
149
  num_inference_steps=steps,
150
  guidance_scale=0.0,
151
  generator=generator,
152
+ callback_on_step_end=diffusers_progress_callback,
153
+ callback_on_step_end_tensor_inputs=["latents"],
154
  output_type="pil"
155
  )
156
 
 
163
 
164
  return image, seed
165
 
 
166
  with gr.Blocks(title="๐Ÿš€ Z-Image Turbo Pro Max + Live Logs") as demo:
167
  gr.Markdown("## GPUโ€‘FREE CPU Turbo โ€” Live Logs Below")
168
 
 
193
 
194
  def wrapped_generate(prompt, quality_mode, seed):
195
  image, used_seed = generate(prompt, quality_mode, seed)
196
+ logs = log("๐Ÿง  Latest status: Finished generation.")
197
  return image, used_seed, logs
198
 
199
  generate_btn.click(