Skip to content

Commit 2c15fe0

Browse files
committed
fix remote vae on distribution worker
1 parent ee4451f commit 2c15fe0

4 files changed

Lines changed: 34 additions & 11 deletions

File tree

Roadmap.md

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,38 @@ ProjectStructure.md has notes to assist AI in developing this project
4343

4444
### **ComfyUI Ultimate Sampler Grid – Development Roadmap**
4545

46+
## Batch Encoding
4647

47-
## Add on off switches in builder ui to text encoder selection and vae selection
48+
## Add HF-RemoteVae list to BuilderUI Remote Vae (when Remote URL is selected, add a Presets: selection to choose which one from the list)
4849

4950

50-
## Add more info to the lora and model civitai lookups in the builderUI, option to show full API response, show full JSON response, save full JSON resposne, if lookup data is cached, show a big warning on the very top that says READ FROM DISK CACHE, LAST LOOKED UP ON {lookup date}
51+
## bug fix, the Builder UI is very slow to update when first starting, adding models, adding loras, a few other things, we need to check it and optimize it to load and respond faster.
52+
53+
54+
## Add on off switches in builder ui to text encoder selection and vae selection (nearly complete but vae on off switches don't work, also I'd prefer for simple omition from node output confg_json instead of adding uncessary on-off switches to the output)
55+
56+
## In the Dashboard UI, I'd love to see a toggle option for view prompts without lora trigger-words. Currently it shows them all with them added and it causes a bit of a duplicate issue if we're just trying to see which prompts work best on variety of various loras.
57+
5158

59+
## Models from UI aren't getting hashed properly for some reason, maybe diffusion models, maybe builder UI path / \ normalization? console logs: Using fallback hash for model: 559ad07aae
60+
61+
## Add on off switches in builder ui to text encoder selection and vae selection that works exactly the same as the model on off switches
62+
63+
## Add more info to the lora and model civitai lookups in the builderUI, option to show full API response, show full JSON response, save full JSON resposne, if lookup data is cached, show a big warning on the very top that says READ FROM DISK CACHE, LAST LOOKED UP ON {lookup date}
5264

5365
## When you click a sampler or scheduler in the dropdown it should add it to the list right away.
5466

67+
## In the builder ui civit-ai lookup modal, when it alerts the user the data is cached and read from disk there needs to be a button for re-check/lookup now so they can get updated data when they want.
68+
69+
## Feature: Adding permanent/saving/editing custom lora trigger words to a lora, read from and edit the lora_triggers.json file, with nice ui to make it easy and convenient to edit, remove and add triggerwords.
70+
71+
72+
73+
#### **12. Arrays in LoRA Weights** Integrated but needs adding to the Builder UI
74+
75+
Builder UI could have a + button right next to model strength text input (on its right side) to make it easy to add a compare different lora strengths. If activated it should add an additonal slider, or two sliders if 🔒 Lock Model & CLIP Strength Together is deactivated, for each time they click +. If a lora has a multiple strength array, the preview json and py node json_output should duplicate the full config for that run for each entry with the only difference being each lora strength. If multiple loras have multiple arrays it needs to output a cartesian of an each for each of all lora strenth combos.
76+
77+
5578

5679

5780
## Save/Load/Import (Merge) Prompts. (With settable unique naming option) Load should offer a searchable dropdown menu for all past saved prompts. Let's store this data in a outputs/benchmarks/PromptsData folder. Each prompt/save should be its own file.
@@ -105,12 +128,6 @@ A button in the builder UI to pack short sha256 into config with an explanation
105128
* **Status:** Implemented as per-config `model_prompt_prefix` and `model_prompt_suffix` fields. These quality tags are prepended/appended to ALL prompts for a given config, wrapping around the entire prompt+triggers assembly. Added `_apply_model_prompt_affixes()` helper in `trigger_words.py`, integrated into both `build_prompt_with_triggers()` and `collect_unique_prompts_with_triggers()` for correct pre-encoding. Config Builder UI shows prefix/suffix text inputs in the Prompts section of each config. Fields persist through save/load and are passed through `expand_configs()` in `config_utils.py`.
106129
* **Target Files:** `trigger_words.py`, `config_utils.py`, `conf-builder-config-management.js`, `conf-builder-utilities.js`, `conf-builder-main.js`
107130

108-
#### **12. Arrays in LoRA Weights** COMPLETED
109-
110-
* **Problem:** Cannot grid search LoRA weights like `lora.safetensors:[0.5, 0.8]:1.0`.
111-
* **Status:** Implemented `_expand_lora_weight_arrays()` in `config_utils.py`. Supports `[0.5, 0.8]` syntax in both model_strength and clip_strength positions, with Cartesian product for multiple arrays.
112-
* **Target Files:** `config_utils.py`
113-
114131
#### **13. Real-Time ETA** COMPLETED
115132

116133
* **Problem:** ETA only prints to server console.

batch_encoding.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ def batch_encode_prompts(patched_clip, unique_positives, unique_negatives, cond_
366366
# Save and print cache stats (only saves if disk cache is enabled)
367367
if cond_cache is not None:
368368
cond_cache.save()
369-
cond_cache.print_stats()
369+
# cond_cache.print_stats() # for debugging
370370

371371
# Final cleanup after all encoding is complete
372372
gc.collect()

config_builder_node.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,7 @@ async def refresh_models_endpoint(request):
10141014
print(f"[ConfigBuilder] ❌ Error in refresh_models endpoint: {e}")
10151015
import traceback
10161016
traceback.print_exc()
1017-
return web.json_response({
1017+
return web.json_response({
10181018
"error": str(e)
10191019
}, status=500)
10201020

distribution_worker.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,9 +308,15 @@ def _process_job(self, job):
308308
print(f"[Worker {self.worker_id}] 📦 Loaded model: {config['model']}")
309309

310310
# --- Per-config VAE loading ---
311+
# Workers only support local VAE — remote VAE endpoints (remote:https://...)
312+
# are handled by the master's RemoteVAEDecodeWorker, so fall back to
313+
# the model's bundled VAE when a remote VAE is specified.
311314
config_vae = config.get("vae", "Default")
312-
if config_vae != "Default":
315+
if config_vae != "Default" and not config_vae.startswith("remote:"):
313316
vae = load_vae_by_name(config_vae)
317+
elif config_vae.startswith("remote:"):
318+
print(f"[Worker {self.worker_id}] ⚠️ Skipping remote VAE '{config_vae}' — using model's bundled VAE")
319+
vae = self._loaded_vae
314320
else:
315321
vae = self._loaded_vae
316322

0 commit comments

Comments
 (0)