File size: 7,758 Bytes
d15f25b 45bb4e4 d15f25b 45bb4e4 d15f25b c367e9b d15f25b e14d473 465bfb0 7e5f6d9 d15f25b 3d58a5e ac87e59 d15f25b 3d58a5e f42ac52 3d58a5e c367e9b 3d58a5e e14d473 ac87e59 e14d473 6966ab5 e14d473 3d58a5e c47ff14 3d58a5e 038322d 3d58a5e 038322d 3d58a5e 02b4ee6 c367e9b 3797ed7 3d58a5e 80b6452 3d58a5e 3797ed7 b0570d2 3d58a5e 3308c56 3d58a5e af5d283 dae2307 3d58a5e | 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 126 127 128 129 130 131 132 | ---
license: mit
tags:
- lora
- tool
- python
- gui
pipeline_tag: text-to-image
---
> **Note:** This repository hosts management scripts/tools only. No model weights are included.
---
### Tools for:
🖼️ <a href="https://huggingface.co/spaces/waveshaker/loras_gallery" target="_blank">**waveshaker/loras_gallery**</a>
🧊 <a href="https://huggingface.co/waveshaker/loras" target="_blank">**waveshaker/loras**</a>
📊 <a href="https://huggingface.co/datasets/waveshaker/dataset_collections" target="_blank">**waveshaker/dataset_collections**</a>
📦 <a href="https://huggingface.co/waveshaker/comfy_models" target="_blank">**waveshaker/comfy_models**</a>
🧠 <a href="https://huggingface.co/spaces/waveshaker/universal-lora-studio" target="_blank">**waveshaker/universal-lora-studio**</a>
---
- <details>
<summary><code>models_manager_v*.py</code> is used for centralized local management of <code>waveshaker/loras_gallery</code> | <code>waveshaker/loras</code> | <code>waveshaker/dataset_collection</code>: (Click to expand)</summary>
Features:
1. **JSON Management**: Pull/upload `waveshaker/loras_gallery/models.json`, maintain card metadata (Title, Trigger, Dataset URL, Showcase URL, Update Time in Unix timestamp), and globally manage custom KV fields. Supports both full-prefix JSON (for local editing) and clean relative-path JSON (for minimal cloud uploads).
2. **Model Upload**: Auto-clean local images and convert them to WebP, then upload the `.safetensors` and `.webp` files to the `waveshaker/loras` Model repo. Automatically appends new model entries with an `update_time` timestamp and updates the minimal cloud `waveshaker/loras_gallery/models.json`.
3. **Dataset Upload**: Automated pipeline (TXT cleanup, PNG to JPG, Parquet packaging) and push to the `waveshaker/dataset_collections` Dataset repo.
4. **Showcase Upload**: Process local PNGs (extract metadata, convert to WebP), generate/update `gallery.json`, and push to the `waveshaker/loras/comfyui_showcase` folder in the Models repo. Supports both local-only generation and incremental upload.

</details>
- <details>
<summary><code>base_model_uploader_gui.py</code> is a GUI tool for batch uploading base models and cloning remote repos to <code>waveshaker/comfy_models</code> (Click to expand)</summary>
Features:
- Streamlines batch uploading of large `.safetensors` files. It supports multi-threaded transfers, auto-resumption, and status tracking to skip completed files.
- Enables instant server-side duplication of remote HuggingFace models via URL without downloading.
</details>
- <details>
<summary><code>comfy_dataset_prep_wf_v**.json</code>: A ComfyUI workflow for LoRA dataset prep. (Click to expand)</summary>
Integrates Krea2, Qwen Image 2.1, Flux 2 Klein 9B, and [SQVLM](https://github.com/KLL535/ComfyUI_Simple_Qwen3-VL-gguf/tree/main) for high-res(1-1.56MP) upscaling and auto-captioning of faces and bodies.
my LLM settings in `system_prompts_user.json` in `ComfyUI\custom_nodes\ComfyUI_Simple_Qwen3-VL-gguf`(aka SQVLM):
```
"📄🖼️🎬Qwen3.8-27B-Uncensored-HauhauCS-Aggressive.IQ3_XS": {
"model_path": "G:\\StableDiffusion\\MODELS\\LLM\\GGUF\\Qwen3.8-27B-Uncensored-HauhauCS-Aggressive.IQ3_XS.gguf",
"mmproj_path": "G:\\StableDiffusion\\MODELS\\LLM\\GGUF\\Qwen3.8-27B-Uncensored-HauhauCS-Aggressive.mmproj-BF16.gguf",
"max_tokens": 4096,
"max_frames": 81,
"image_min_tokens": 128,
"image_max_tokens": 1024,
"n_ctx": 102400,
"n_batch": 2048,
"n_ubatch": 512,
"enable_thinking": false,
"n_keep": 512,
"n_gpu_layers": -1,
"n_threads": 8,
"use_mmap": true,
"split_mode": 0,
"temperature": 0.8,
"top_p": 0.95,
"min_p": 0.05,
"repeat_penalty": 1.1,
"presence_penalty": 0.0,
"top_k": 40,
"chat_handler": "qwen35",
"script": "qwen3vl_run.py",
"debug": true,
"verbose": false
},
```
</details>
- <details>
<summary><code>showcase_tempalte_v**.json</code>: A ComfyUI workflow designed to generate PNG images with embedded workflow metadata. (Click to expand)</summary>
The accompanying Python tool `models_manager_v*.py` parses these images to extract the exact Prompt, generation parameters, and LoRA stacks, automatically compiling them into a structured `gallery.json` for the web gallery's "ComfyUI Showcase" viewer.
Wildcards used in workflow:
- [SFW Wildcards 1 DL](https://civitai.com/models/2231696)
- [SFw Wildcards 2 DL](https://civitai.com/models/2765483/bunnys-sfw-wildcards-or-lora-friendly-or-16582-prompts-or-565m-tokens)
</details>
- `filter_nsfw.py`: A script for rough NSFW filtering(based on NudeNet). It provides a quick initial screen, but manual review is still necessary for accurate results.
- <details>
<summary><code>batch_preview_generator/</code>: A 5-steps batch pipeline for auto-generating and deploying showcase preview images. (Click to expand)</summary>
It follows a structured 5-step workflow:
1. Uses `0_batch_template_*.json` to batch generate random preview images.
2. Runs `1_batch_regroup.py` to automatically reorganize all output images into their respective subfolders.
3. Runs `2_batch_process_meta.py` to extract the `meta` data from the `png` files and convert the images into `webp` format.
4. Runs `3_batch_upload_showcase.py` to batch upload the processed showcase folders to Hugging Face.
5. Runs `4_batch_modify_json.py` to automatically update the `models.json` data by regex-matching the `showcase` items for each entry, leaving you ready for a final manual upload.
</details>
<p style="font-size: 0.85em;"><em>The <code style="font-size: 0.85em;">batch_preview_generator/</code> is primarily designed for adapting older models like <strong style="font-size: 0.85em;">Pony</strong> and <strong style="font-size: 0.85em;">FLUX.1 - Dev</strong>, with the main goal of rapid batch generation. For newer models, use <code style="font-size: 0.85em;">showcase_tempalte_v**.json</code> to generate images, and then upload them using <code style="font-size: 0.75em;">models_manager_v*.py</code>.</em></p>
- `hf_space_cap_checker.py`: Compares and calculates the total storage size of models defined in `waveshaker/comfy_models/studio_config.json` and `waveshaker/universal-lora-studio/model_config.py`. Filters duplicates via the HF API to ensure the total size does not exceed Hugging Face's 150 GB capacity limit.
- <details>
<summary><code>checkpoint_splitter/</code>: Utilities to split AIO checkpoints into VAE, TE, and UNET, including UNET int8 quantization and checkpoint re-merging. (Click to expand)</summary>
- `check_keys.py`: Inspects the keys of split safetensors files to verify and adjust split logic.
- `checkpoint_int8_convrot.py`: Uses Kijai's `quant_int8_convrot.py` to quantize the UNET of an AIO checkpoint to int8 convrot, without altering the Text Encoder (TE) or VAE.
- `split_checkpoint_Illustrious.py`: Extracts the VAE, TE, and UNET from Illustrious checkpoints.
- `split_checkpoint_pony.py`: Extracts the VAE, TE, and UNET from Pony checkpoints.
- `split_checkpoint_sd15.py`: Extracts the VAE, TE, and UNET from SD 1.5 checkpoints.
- `split_checkpoint_sdxl.py`: Extracts the VAE, TE, and UNET from SDXL checkpoints.
</details>
---
|