Commit Graph

8874 Commits

Author SHA1 Message Date
CalamitousFelicitousness bf7a72f12e fix(caption): remove dead min_length param, split Florence/PromptGen prompts, fix gaze detection
- Remove caption_openclip_min_length from settings, API models, endpoints, and UI
  (clip_interrogator library has no min_length support; parameter was never functional)
- Split vlm_prompts_florence into base Florence prompts and PromptGen-only prompts
  (GENERATE_TAGS, Analyze, Mixed Caption require MiaoshouAI PromptGen fine-tune)
- Add 'promptgen' category to /vqa/prompts API endpoint
- Fix gaze detection: move DETECT_GAZE check before generic 'detect ' prefix
  to prevent "Detect Gaze" matching as detect target="Gaze"
- Update test suite: remove min_length tests, fix min_flavors to use mode='best',
  add acceptance-only notes, fix thinking trace detection, improve bracket/OCR tests,
  split Florence/PromptGen test coverage
2026-02-11 02:48:11 +00:00
CalamitousFelicitousness fba942b25e feat(caption): add debug logging for Florence-2 handler 2026-02-11 02:48:11 +00:00
CalamitousFelicitousness f4b5abde68 refactor: update API for caption module
Update API endpoints and models for caption module rename:
- modules/api/api.py - update imports and endpoint handlers
- modules/api/endpoints.py - update endpoint definitions
- modules/api/models.py - update request/response models
2026-02-11 02:48:11 +00:00
CalamitousFelicitousness 61b031ada5 refactor: update imports for caption module rename
Update all imports from modules.interrogate to modules.caption across:
- modules/shared.py, modules/shared_legacy.py
- modules/ui_caption.py, modules/ui_common.py
- modules/ui_control.py, modules/ui_control_helpers.py
- modules/ui_img2img.py, modules/ui_sections.py
- modules/ui_symbols.py, modules/ui_video_vlm.py
2026-02-11 02:47:41 +00:00
CalamitousFelicitousness 5183ebec58 refactor: rename interrogate module to caption
Move all caption-related modules from modules/interrogate/ to modules/caption/
for better naming consistency:
- Rename deepbooru, deepseek, joycaption, joytag, moondream3, openclip, tagger,
  vqa, vqa_detection, waifudiffusion modules
- Add new caption.py dispatcher module
- Remove old interrogate.py (functionality moved to caption.py)
2026-02-11 02:47:41 +00:00
CalamitousFelicitousness 83fa8e39ba refactor(api): update cli tools for DeepBooru tagger migration
- Update cli/api-interrogate.py to use /sdapi/v1/tagger for DeepBooru
- Handle tagger response format (scores dict or tags string)
- Remove DeepBooru test from interrogate endpoint tests
- Update API model descriptions to reference tagger for anime tagging
2026-02-11 02:47:41 +00:00
CalamitousFelicitousness 7825f44581 refactor(api): remove DeepBooru from interrogate endpoint
DeepBooru/DeepDanbooru should only be accessed via the tagger endpoint.
The interrogate endpoint is now exclusively for OpenCLIP/BLIP.

- Remove DeepDanbooru handling from post_interrogate
- Update docstring to reference tagger endpoint for anime tagging
- Simplify code by removing if/else branching
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness 0559651b1b fix(vqa): fix infinite recursion and Florence-2 generation
- Fix get_keep_thinking() infinite recursion (was calling itself)
- Fix get_keep_prefill() infinite recursion (was calling itself)
- Fix Florence-2 to use beam search instead of sampling
  Sampling causes probability tensor errors with Florence-2
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness a04ba1e482 feat(api): add missing caption API parameters for UI parity
Add prompt field to VQA endpoint and advanced settings to OpenCLIP endpoint
to achieve full parity between UI and API capabilities.

VLM endpoint changes:
- Add prompt field for custom text input (required for 'Use Prompt' task)
- Pass prompt to vqa.interrogate instead of hardcoded empty string

OpenCLIP endpoint changes:
- Add 7 optional per-request override fields: min_length, max_length,
  chunk_size, min_flavors, max_flavors, flavor_count, num_beams
- Add get_clip_setting() helper for override support in openclip.py
- Apply overrides via update_interrogate_params() before interrogation

All new fields are optional with None defaults for backwards compatibility.
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness 5fc46c042e docs(api): synchronize API descriptions with UI hints
Update API model field descriptions to match the hints in locale_en.json
for consistency between UI and API documentation.

Updated models:
- ReqInterrogate: clip_model, blip_model, mode
- ReqVQA: model, question, system
- ReqTagger: model, threshold, character_threshold, max_tags,
  include_rating, sort_alpha, use_spaces, escape_brackets,
  exclude_tags, show_scores
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness f431141d2f feat(api): add LLM generation parameters to VQA endpoint
Add optional LLM generation parameters to the VQA API request model,
allowing per-request override of settings:

- max_tokens, temperature, top_k, top_p, num_beams, do_sample
- thinking_mode, prefill, keep_thinking, keep_prefill

Changes:
- Add 10 new optional fields to ReqVQA model with descriptive docs
- Update get_kwargs() to support per-request overrides via singleton
- Add helper functions get_keep_thinking(), get_keep_prefill()
- Update post_vqa endpoint to pass generation kwargs
- Add _generation_overrides instance variable to VQA class
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness ef797169a3 refactor(interrogate): use configurable clip_models_path
- Remove unused paths import from deepbooru.py and openclip.py
- Use shared.opts.clip_models_path instead of hardcoded paths
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness ec7934799e feat(api): add caption API endpoints and documentation
Add comprehensive caption/interrogate API with documentation:

- GET /sdapi/v1/interrogate: List available interrogation models
- POST /sdapi/v1/interrogate: Interrogate with OpenCLIP/BLIP/DeepDanbooru
- POST /sdapi/v1/vqa: Caption with Vision-Language Models (VLM)
- GET /sdapi/v1/vqa: List available VLM models
- POST /sdapi/v1/vqa/batch: Batch caption multiple images
- POST /sdapi/v1/tagger: Tag images with WaifuDiffusion/DeepBooru

Updates:
- Add detailed docstrings with usage examples
- Fix analyze_image response parsing for Gradio update dicts
- Add request/response models for all endpoints
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness 6b89cc8463 feat(ui): add tooltips/hints to Caption tab
Add comprehensive tooltips to Caption tab UI elements in locale_en.json:

- Add new "llm" section for shared LLM/VLM parameters:
  System prompt, Prefill, Top-K, Top-P, Temperature, Num Beams,
  Use Samplers, Thinking Mode, Keep Thinking Trace, Keep Prefill

- Add new "caption" section for caption-specific settings:
  VLM, OpenCLiP, Tagger tab labels and all their parameters
  including thresholds, tag formatting, batch options

- Consolidate accordion labels in ui_caption.py:
  "Caption: Advanced Options" and "Caption: Batch" shared across
  VLM, OpenCLiP, and Tagger tabs (localized to "Advanced Options"
  and "Batch" in UI)

- Remove duplicate entries from missing section
2026-02-11 02:47:40 +00:00
CalamitousFelicitousness 385532154f Merge remote-tracking branch 'origin/dev' into refactor/remove-face-restoration
# Conflicts:
#	.pylintrc
#	.ruff.toml
2026-02-10 14:38:14 +00:00
vladmandic 363cb175aa allow different lora in hires
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-09 22:31:00 +01:00
Vladimir Mandic e3ca883cbd Revert "Mark public re-exports" 2026-02-09 18:30:18 +01:00
vladmandic 0d2e9fbf62 cleanup and update changelog
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-09 18:20:10 +01:00
CalamitousFelicitousness 93f8f66305 refactor: remove GFPGAN install, CLI args, and model migration
- Remove GFPGAN pip install from installer.py optional requirements
- Remove 'gfpgan' from modules_to_remove cleanup list in launch.py
- Remove --codeformer-models-path and --gfpgan-models-path CLI args
- Remove GFPGAN model directory migration from modelloader.py
2026-02-08 23:00:22 +00:00
CalamitousFelicitousness 356505cab2 refactor: remove ONNX face upscaler support from detailer
- Remove codeformer, restoreformer, GFPGANv1.4, and GPEN-BFR ONNX
  model URLs from the predefined list
- Remove the .fp16 ONNX restorer code path that bypassed detailer
  processing to run face restoration directly
2026-02-08 22:59:45 +00:00
CalamitousFelicitousness 8d764951cf refactor(api): remove face restoration endpoints and parameters
- Remove /sdapi/v1/face-restorers route from api.py
- Remove get_restorers() function from endpoints.py
- Remove gfpgan_visibility, codeformer_visibility, codeformer_weight
  fields from ReqProcess model
- Remove GFPGAN and CodeFormer entries from run_extras() signature
  and create_args_for_run dict in postprocessing.py
2026-02-08 22:59:28 +00:00
CalamitousFelicitousness d01f45519f refactor: remove face restoration from processing pipeline
- Remove CodeFormer/GFPGAN import and setup from webui.py initialize()
- Remove face_restorers list, codeformer/gfpgan model path settings,
  and face restore UI settings section from shared.py
- Remove restore_faces parameter from StableDiffusionProcessing
- Remove face_restoration import and restore_faces processing block
  from processing.py
2026-02-08 22:59:00 +00:00
CalamitousFelicitousness 1e23495039 refactor: delete CodeFormer, GFPGAN, and face restoration modules
Remove all vendored face restoration code that is no longer maintained:

- modules/postprocess/codeformer_model.py, codeformer_arch.py, vqgan_arch.py
- modules/postprocess/gfpgan_model.py, restorer.py
- modules/face_restoration.py (base class and dispatcher)
- scripts/postprocessing_codeformer.py, postprocessing_gfpgan.py
- modules/facelib/ (vendored face detection/parsing library)

These were the only two backends registered in shared.face_restorers,
making the entire face restoration infrastructure dead code.
2026-02-08 22:58:33 +00:00
CalamitousFelicitousness 34a18c9098 fix: skip Nunchaku offloading for SDXL models
Nunchaku's SDXL UNet does not support offloading and raises
NotImplementedError when offload=True is passed. Skip the parameter
for SDXL and log a warning instead of crashing.
2026-02-07 22:27:05 +00:00
CalamitousFelicitousness c8597ca84e feat: hide Nunchaku reference models on non-CUDA backends
Filter out reference entries tagged "nunchaku" from Extra Networks
when the active backend is not CUDA, since Nunchaku requires NVIDIA
GPUs. Entries remain in shared.reference_models for programmatic
lookup but are not yielded to the UI.
2026-02-07 22:27:05 +00:00
CalamitousFelicitousness a2ee885e28 refactor: update nunchaku repo URLs and version handling
- Rename HuggingFace org from nunchaku-tech to nunchaku-ai across all
  nunchaku model repos (flux, sdxl, sana, z-image, qwen, t5)
- Add per-torch-version nunchaku version mapping instead of single global
  version, with robust torch version parsing
2026-02-07 22:27:05 +00:00
CalamitousFelicitousness 8ff7074da5 feat: add Nunchaku variants for Fill and Depth in Flux Tools
- Add 'Fill (Nunchaku)' and 'Depth (Nunchaku)' options to Flux Tools
  dropdown, loading models with +nunchaku suffix for SVDQuant quantization
- Mark Fill and Depth nunchaku reference entries as hidden so they remain
  available for check_nunchaku() lookup but don't appear in Extra Networks
- Filter hidden reference models in ui_extra_networks_checkpoints
2026-02-07 22:27:05 +00:00
CalamitousFelicitousness 935a4fcb03 feat: add Nunchaku group to reference
Replace manual Model/TE checkboxes in Quantization Settings with a
dedicated "Nunchaku" tab in the Extra Networks menu where users can
directly select nunchaku-quantized model variants. Detection is now
using a +nunchaku path marker for disambiguation.
2026-02-07 22:27:05 +00:00
Vladimir Mandic d8362182bc Merge pull request #4629 from awsr/public-re-export
Mark public re-exports
2026-02-07 13:10:02 +01:00
Vladimir Mandic a0f9447d04 add --remote cmd opt
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-02-07 10:17:32 +00:00
Vladimir Mandic e8ff09a2d2 fix lora unload and improve preview error handler
Signed-off-by: Vladimir Mandic <mandic00@live.com>
2026-02-07 09:07:34 +00:00
awsr e199f2d351 Update images.py exports 2026-02-06 14:29:46 -08:00
awsr c288f0de14 Explicitly mark additional items as re-exported 2026-02-06 14:16:46 -08:00
awsr 8e4aa8dbe1 Add comment 2026-02-06 13:42:37 -08:00
awsr 1e668fe86d Mark public re-exports
See: https://typing.python.org/en/latest/spec/distributing.html#import-conventions
2026-02-06 13:28:21 -08:00
Vladimir Mandic 4db4ff00ca Merge pull request #4625 from awsr/gallery-auto-refresh
Gallery: Add auto-update setting and functionality
2026-02-06 13:07:41 +01:00
awsr ade7c2e5f9 Add auto-update setting and functionality 2026-02-06 00:50:04 -08:00
awsr 8bfa612902 Fix typo 2026-02-05 16:43:37 -08:00
vladmandic 9df9b84752 fix anima
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-05 16:55:06 +01:00
vladmandic dd80e15cfd add RealPLKSR NomosWebPhoto and AnimeSharpV2 using spandrel engine
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-05 14:06:17 +01:00
vladmandic 59654d68ea add hqx and icb interpolations
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-05 11:21:17 +01:00
vladmandic 5009b70ed8 fix anima model detection
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-05 10:25:58 +01:00
vladmandic 2d6cc5addb metadata restore to always-on scrips
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-05 10:21:49 +01:00
Oliver Hertel a0c7df892c weighted wildcards: corrections after automated tests 2026-02-04 19:11:05 +01:00
vladmandic d3dff5df15 one-more-offload
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-04 15:05:22 +01:00
vladmandic b9f1acdbc2 add scheduler class to image metadata
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-04 13:20:26 +01:00
vladmandic d9a2a21c8c add sampler api endpoints
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-04 13:08:31 +01:00
vladmandic d7ca4f63a7 update schedulers and lint everything
Signed-off-by: vladmandic <mandic00@live.com>
2026-02-04 11:58:02 +01:00
Disty0 f439d51ea7 SDNQ update CosmosTransformer3DModel keys 2026-02-04 10:19:23 +03:00
Disty0 df30ba28ac SDNQ clamp weight_std and add CosmosTransformer3DModel keys 2026-02-04 00:31:00 +03:00