From 1ed40a3142a1d5fbe2a7fa5cdb28a1b94249173b Mon Sep 17 00:00:00 2001 From: Adam Ladachowski Date: Thu, 19 Feb 2026 04:30:32 +0100 Subject: [PATCH] Add LoRA support and model family quality defaults to comfy generate --- .coverage | Bin 180224 -> 159744 bytes tensors/cli.py | 80 ++++++++++++++++++++++++++++++++++++----- tensors/comfyui.py | 41 +++++++++++++++++++++ tensors/config.py | 87 +++++++++++++++++++++++++++++++++++++++++++++ tensors/db.py | 48 +++++++++++++++++++++++++ 5 files changed, 248 insertions(+), 8 deletions(-) diff --git a/.coverage b/.coverage index 448d21cd6209b4a80a4d47092b04e73d1064d673..2639881a84d47b3b8434fcecda28dfb5be1969ee 100644 GIT binary patch literal 159744 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%0A{7FQS^2&)Yd3|6TqspHHzR4hS(a#a01$s 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

*l7b6`bw~;>6x1OpxKK!kq~JmU9g>0z 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 literal 180224 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 diff --git a/tensors/cli.py b/tensors/cli.py index 5f390f4..ce03f8f 100644 --- a/tensors/cli.py +++ b/tensors/cli.py @@ -21,6 +21,7 @@ from tensors.api import ( ) from tensors.config import ( CONFIG_FILE, + MODEL_FAMILY_DEFAULTS, BaseModel, CommercialUse, ModelType, @@ -28,6 +29,7 @@ from tensors.config import ( Period, Provider, SortOrder, + detect_model_family, get_default_output_path, get_model_paths, load_api_key, @@ -1118,7 +1120,7 @@ def comfy_history( @comfy_app.command("generate") -def comfy_generate( +def comfy_generate( # noqa: PLR0915 prompt: Annotated[str, typer.Argument(help="Positive prompt text")], url: Annotated[str | None, typer.Option("--url", "-u", help="ComfyUI server URL")] = None, negative: Annotated[str, typer.Option("-n", "--negative", help="Negative prompt")] = "", @@ -1132,6 +1134,10 @@ def comfy_generate( scheduler: Annotated[str, typer.Option("--scheduler", help="Scheduler name")] = "normal", output: Annotated[Path | None, typer.Option("-o", "--output", help="Output file path")] = None, count: Annotated[int, typer.Option("-c", "--count", help="Number of images to generate")] = 1, + lora: Annotated[str | None, typer.Option("-l", "--lora", help="LoRA model name")] = None, + lora_strength: Annotated[float, typer.Option("--lora-strength", help="LoRA strength")] = 1.0, + no_quality: Annotated[bool, typer.Option("--no-quality", help="Disable auto quality tags")] = False, + no_negative: Annotated[bool, typer.Option("--no-negative", help="Disable auto negative prompt")] = False, json_output: Annotated[bool, typer.Option("--json", "-j", help="Output as JSON")] = False, ) -> None: """Generate an image with a simple text-to-image workflow. @@ -1141,6 +1147,8 @@ def comfy_generate( tsr comfy generate "portrait photo" -n "blurry, bad quality" --steps 30 tsr comfy generate "landscape" -m "flux1-dev-fp8.safetensors" -W 1024 -H 768 tsr comfy generate "cyberpunk city" --count 4 -o batch.png + tsr comfy generate "girl" --lora spumcostyle.safetensors --lora-strength 0.8 + tsr comfy generate "raw prompt" --no-quality --no-negative """ import random # noqa: PLC0415 @@ -1152,6 +1160,64 @@ def comfy_generate( # Determine base seed for batch base_seed = seed if seed >= 0 else random.randint(0, 2**32 - 1) + # Detect model family and apply defaults + family_defaults: dict[str, Any] = {} + model_family: str | None = None + if model: + # Try to get base_model from database + base_model_str: str | None = None + try: + with Database() as db: + db.init_schema() + base_model_str = db.get_base_model_by_filename(model) + except Exception: + pass + + model_family = detect_model_family(model, base_model_str) + if model_family: + family_defaults = MODEL_FAMILY_DEFAULTS.get(model_family, {}) + if not json_output: + console.print(f"[dim]Detected model family: {model_family}[/dim]") + + # Build enhanced prompt with quality prefix and LoRA trigger words + enhanced_prompt = prompt + prompt_parts: list[str] = [] + + # Add LoRA trigger words if using LoRA + if lora: + try: + with Database() as db: + db.init_schema() + trigger_words = db.get_trigger_words_by_filename(lora) + if trigger_words: + prompt_parts.extend(trigger_words) + if not json_output: + console.print(f"[dim]LoRA trigger words: {', '.join(trigger_words)}[/dim]") + except Exception: + pass + + # Add quality prefix based on model family + if not no_quality and family_defaults.get("quality_prefix"): + prompt_parts.append(family_defaults["quality_prefix"]) + + # Add user prompt + prompt_parts.append(prompt) + enhanced_prompt = ", ".join(prompt_parts) if len(prompt_parts) > 1 else prompt + + # Build enhanced negative prompt + enhanced_negative = negative + if not no_negative and family_defaults.get("negative_prompt"): + family_negative = family_defaults["negative_prompt"] + enhanced_negative = f"{negative}, {family_negative}" if negative else family_negative + + if not json_output and (enhanced_prompt != prompt or enhanced_negative != negative): + if enhanced_prompt != prompt: + truncated = enhanced_prompt[:100] + "..." if len(enhanced_prompt) > 100 else enhanced_prompt # noqa: PLR2004 + console.print(f"[dim]Enhanced prompt: {truncated}[/dim]") + if enhanced_negative != negative: + truncated = enhanced_negative[:80] + "..." if len(enhanced_negative) > 80 else enhanced_negative # noqa: PLR2004 + console.print(f"[dim]Enhanced negative: {truncated}[/dim]") + for i in range(count): current_seed = base_seed + i if seed >= 0 else -1 # Increment seed or use random each time @@ -1159,9 +1225,9 @@ def comfy_generate( console.print(f"\n[cyan]Generating image {i + 1}/{count}...[/cyan]") result = generate_image( - prompt=prompt, + prompt=enhanced_prompt, url=url, - negative_prompt=negative, + negative_prompt=enhanced_negative, model=model, width=width, height=height, @@ -1171,6 +1237,8 @@ def comfy_generate( sampler=sampler, scheduler=scheduler, console=console if not json_output else None, + lora_name=lora, + lora_strength=lora_strength, ) if not result: @@ -1195,11 +1263,7 @@ def comfy_generate( img_path = result.images[0] img_data = get_image(str(img_path), url=url) if img_data: - if count == 1: - save_path = output - else: - # Add index suffix for batch: output.png -> output_001.png - save_path = output.parent / f"{output.stem}_{i + 1:03d}{output.suffix}" + save_path = output if count == 1 else output.parent / f"{output.stem}_{i + 1:03d}{output.suffix}" save_path.write_bytes(img_data) saved_path = save_path all_saved.append(save_path) diff --git a/tensors/comfyui.py b/tensors/comfyui.py index 960f345..c51357b 100644 --- a/tensors/comfyui.py +++ b/tensors/comfyui.py @@ -526,6 +526,18 @@ def run_workflow( # Simple Text-to-Image Generation # ============================================================================ +# LoRA loader node template (inserted between checkpoint and sampler) +LORA_LOADER_NODE: dict[str, Any] = { + "class_type": "LoraLoader", + "inputs": { + "lora_name": "", + "strength_model": 1.0, + "strength_clip": 1.0, + "model": ["4", 0], # From checkpoint + "clip": ["4", 1], # From checkpoint + }, +} + # Default SDXL/Flux compatible workflow template # This is a minimal text-to-image workflow that works with most models DEFAULT_WORKFLOW_TEMPLATE: dict[str, Any] = { @@ -582,6 +594,8 @@ def _build_workflow( seed: int = -1, sampler: str = "euler", scheduler: str = "normal", + lora_name: str | None = None, + lora_strength: float = 1.0, ) -> dict[str, Any]: """Build a text-to-image workflow from parameters. @@ -596,6 +610,8 @@ def _build_workflow( seed: Random seed (-1 for random) sampler: Sampler name scheduler: Scheduler name + lora_name: LoRA model filename (optional) + lora_strength: LoRA strength (default 1.0) Returns: ComfyUI workflow dict @@ -624,6 +640,25 @@ def _build_workflow( workflow["6"]["inputs"]["text"] = prompt workflow["7"]["inputs"]["text"] = negative_prompt + # Inject LoRA loader if specified + if lora_name: + # Add LoRA loader node (node 10) + lora_node = copy.deepcopy(LORA_LOADER_NODE) + lora_node["inputs"]["lora_name"] = lora_name + lora_node["inputs"]["strength_model"] = lora_strength + lora_node["inputs"]["strength_clip"] = lora_strength + # LoRA takes model/clip from checkpoint (node 4) + lora_node["inputs"]["model"] = ["4", 0] + lora_node["inputs"]["clip"] = ["4", 1] + workflow["10"] = lora_node + + # Reroute KSampler model input from checkpoint (4) to LoRA (10) + workflow["3"]["inputs"]["model"] = ["10", 0] + + # Reroute CLIP text encoders from checkpoint (4) to LoRA (10) + workflow["6"]["inputs"]["clip"] = ["10", 1] + workflow["7"]["inputs"]["clip"] = ["10", 1] + return workflow @@ -642,6 +677,8 @@ def generate_image( console: Console | None = None, on_progress: ProgressCallback | None = None, timeout: float = 600.0, + lora_name: str | None = None, + lora_strength: float = 1.0, ) -> GenerationResult | None: """Generate an image using a simple text-to-image workflow. @@ -660,6 +697,8 @@ def generate_image( console: Rich console for progress output on_progress: Optional callback for progress updates timeout: Maximum wait time in seconds + lora_name: LoRA model filename (optional) + lora_strength: LoRA strength (default 1.0) Returns: GenerationResult with image paths, or None if generation failed @@ -690,6 +729,8 @@ def generate_image( seed=seed, sampler=sampler, scheduler=scheduler, + lora_name=lora_name, + lora_strength=lora_strength, ) # Run workflow diff --git a/tensors/config.py b/tensors/config.py index 2cf9fe9..14ed4d4 100644 --- a/tensors/config.py +++ b/tensors/config.py @@ -502,6 +502,93 @@ COMFYUI_DEFAULT_CFG = 7.0 COMFYUI_DEFAULT_SAMPLER = "euler" COMFYUI_DEFAULT_SCHEDULER = "normal" +# ============================================================================ +# Model Family Defaults (Quality Tags, Negative Prompts, etc.) +# ============================================================================ + +MODEL_FAMILY_DEFAULTS: dict[str, dict[str, Any]] = { + "pony": { + "quality_prefix": "score_9, score_8_up, score_7_up", + "negative_prompt": "score_5, score_4, ugly, deformed, blurry, bad anatomy, bad hands, missing fingers", + "width": 1024, + "height": 1024, + "cfg": 7.0, + "clip_skip": 2, + }, + "illustrious": { + "quality_prefix": "masterpiece, best quality, highres", + "negative_prompt": "worst quality, bad quality, low quality, lowres, bad anatomy, bad hands, jpeg artifacts, watermark", + "width": 1024, + "height": 1024, + "cfg": 6.0, + }, + "sdxl": { + "quality_prefix": "", + "negative_prompt": "ugly, deformed, bad anatomy, bad hands, extra fingers, missing fingers, blurry, watermark", + "width": 1024, + "height": 1024, + "cfg": 7.0, + }, + "sd15": { + "quality_prefix": "masterpiece, best quality", + "negative_prompt": ( + "(worst quality:2), (low quality:2), bad anatomy, bad hands, extra fingers, " + "missing fingers, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, watermark" + ), + "width": 512, + "height": 512, + "cfg": 7.0, + }, + "flux": { + "quality_prefix": "", + "negative_prompt": "", # Flux doesn't use negative prompts effectively + "width": 1024, + "height": 1024, + "cfg": 3.5, + }, +} + + +def detect_model_family(model_name: str, base_model: str | None = None) -> str | None: # noqa: PLR0911 + """Detect model family from filename or CivitAI base_model field. + + Args: + model_name: Filename of the model (e.g., "ponyDiffusionV6XL.safetensors") + base_model: Optional CivitAI base_model field (e.g., "Pony", "SDXL 1.0") + + Returns: + Model family key (pony, illustrious, sdxl, sd15, flux) or None if unknown + """ + name_lower = model_name.lower() + base_lower = (base_model or "").lower() + + # Check base_model field first (most reliable from CivitAI) + if base_lower: + if "pony" in base_lower: + return "pony" + if "illustrious" in base_lower: + return "illustrious" + if "flux" in base_lower: + return "flux" + if "sd 1.5" in base_lower or "sd 1.4" in base_lower: + return "sd15" + if "sdxl" in base_lower: + return "sdxl" + + # Fall back to filename heuristics + if "pony" in name_lower: + return "pony" + if "illustrious" in name_lower or "noob" in name_lower: + return "illustrious" + if "flux" in name_lower: + return "flux" + if any(x in name_lower for x in ["sd15", "sd1.5", "sd_1.5", "dreamshaper", "realistic", "deliberate", "anything"]): + return "sd15" + if any(x in name_lower for x in ["sdxl", "xl_"]): + return "sdxl" + + return None + def get_comfyui_url() -> str: """Get the ComfyUI server URL. diff --git a/tensors/db.py b/tensors/db.py index d2e5e56..3ac4cce 100644 --- a/tensors/db.py +++ b/tensors/db.py @@ -755,6 +755,54 @@ class Database: ).all() return [w.word for w in words] + def get_trigger_words_by_filename(self, filename: str) -> list[str]: + """Get trigger words for a LoRA by matching filename in version_files. + + Args: + filename: The filename to search for (e.g., "spumcostyle.safetensors") + + Returns: + List of trigger/trained words from CivitAI metadata + """ + with self.session() as session: + # Find version file by filename match + vf = session.exec(select(VersionFile).where(VersionFile.name == filename)).first() + if not vf: + # Try partial match (without extension) + base_name = filename.rsplit(".", 1)[0] if "." in filename else filename + vf = session.exec(select(VersionFile).where(col(VersionFile.name).contains(base_name))).first() + + if not vf or not vf.version_id: + return [] + + words = session.exec( + select(TrainedWord).where(TrainedWord.version_id == vf.version_id).order_by(col(TrainedWord.position)) + ).all() + return [w.word for w in words] + + def get_base_model_by_filename(self, filename: str) -> str | None: + """Get base_model for a checkpoint/LoRA by filename lookup. + + Args: + filename: The filename to search for + + Returns: + Base model string (e.g., "Pony", "SDXL 1.0") or None + """ + with self.session() as session: + # Find version file by filename match + vf = session.exec(select(VersionFile).where(VersionFile.name == filename)).first() + if not vf: + # Try partial match (without extension) + base_name = filename.rsplit(".", 1)[0] if "." in filename else filename + vf = session.exec(select(VersionFile).where(col(VersionFile.name).contains(base_name))).first() + + if not vf or not vf.version_id: + return None + + mv = session.get(ModelVersion, vf.version_id) + return mv.base_model if mv else None + # ========================================================================= # Statistics # =========================================================================