diff --git a/__init__.py b/__init__.py index 177db98..467b068 100644 --- a/__init__.py +++ b/__init__.py @@ -2,8 +2,8 @@ @author: Model Linker Team @title: ComfyUI Model Linker @nickname: Model Linker -@version: 1.0.0 -@description: Extension for relinking missing models in ComfyUI workflows using fuzzy matching +@version: 1.1.0 +@description: Extension for relinking missing models and downloading from HuggingFace/CivitAI """ import logging @@ -53,7 +53,7 @@ class ModelLinkerExtension: self.logger.debug(f"Model Linker: Could not access PromptServer: {e}") return False - # Import linker modules - use relative imports which should work for packages + # Import linker modules try: from .core.linker import analyze_and_find_matches, apply_resolution from .core.scanner import get_model_files @@ -61,6 +61,23 @@ class ModelLinkerExtension: self.logger.error(f"Model Linker: Could not import core modules: {e}") return False + # Import download modules + try: + from .core.downloader import ( + start_background_download, get_progress, get_all_progress, + cancel_download, get_download_directory + ) + from .core.sources.popular import get_popular_model_url, search_popular_models + from .core.sources.model_list import search_model_list, search_model_list_multiple + from .core.sources.huggingface import search_huggingface_for_file + from .core.sources.civitai import search_civitai_for_file + download_available = True + except ImportError as e: + self.logger.warning(f"Model Linker: Download features not available: {e}") + download_available = False + + # ==================== ANALYZE ROUTES ==================== + @routes.post("/model_linker/analyze") async def analyze_workflow(request): """Analyze workflow and return missing models with matches.""" @@ -77,6 +94,67 @@ class ModelLinkerExtension: # Analyze and find matches result = analyze_and_find_matches(workflow_json) + # If download available, auto-search for download sources when no 100% local match + if download_available: + for missing in result.get('missing_models', []): + # Check if there's a 100% local match + matches = missing.get('matches', []) + has_perfect_match = any(m.get('confidence', 0) == 100 for m in matches) + + if not has_perfect_match: + filename = missing.get('original_path', '').split('/')[-1].split('\\')[-1] + + # 1. Check popular models + popular_info = get_popular_model_url(filename) + if popular_info: + missing['download_source'] = { + 'source': 'popular', + 'url': popular_info.get('url'), + 'filename': filename, + 'type': popular_info.get('type'), + 'directory': popular_info.get('directory') + } + continue + + # 2. Check model list (ComfyUI Manager database) + model_list_result = search_model_list(filename) + if model_list_result: + missing['download_source'] = { + 'source': 'model_list', + 'url': model_list_result.get('url'), + 'filename': model_list_result.get('filename'), + 'name': model_list_result.get('name'), + 'type': model_list_result.get('type'), + 'directory': model_list_result.get('directory'), + 'size': model_list_result.get('size'), + 'match_type': model_list_result.get('match_type'), + 'confidence': model_list_result.get('confidence') + } + continue + + # 3. Search HuggingFace + hf_result = search_huggingface_for_file(filename) + if hf_result: + missing['download_source'] = { + 'source': 'huggingface', + 'url': hf_result.get('url'), + 'filename': hf_result.get('filename'), + 'name': hf_result.get('repo_id', ''), + 'size': hf_result.get('size', '') + } + continue + + # 4. Search CivitAI + civitai_result = search_civitai_for_file(filename) + if civitai_result: + missing['download_source'] = { + 'source': 'civitai', + 'url': civitai_result.get('url'), + 'filename': civitai_result.get('filename'), + 'name': civitai_result.get('model_name', ''), + 'size': civitai_result.get('size', '') + } + return web.json_response(result) except Exception as e: self.logger.error(f"Model Linker analyze error: {e}", exc_info=True) @@ -121,7 +199,7 @@ class ModelLinkerExtension: @routes.get("/model_linker/models") async def get_models(request): - """Get list of all available models (for debugging/UI display).""" + """Get list of all available models.""" try: models = get_model_files() return web.json_response(models) @@ -132,6 +210,206 @@ class ModelLinkerExtension: status=500 ) + # ==================== DOWNLOAD ROUTES ==================== + + if download_available: + + @routes.post("/model_linker/search") + async def search_sources(request): + """Search for model download sources.""" + try: + data = await request.json() + filename = data.get('filename', '') + category = data.get('category', '') + + if not filename: + return web.json_response( + {'error': 'Filename is required'}, + status=400 + ) + + results = { + 'popular': None, + 'model_list': None, + 'huggingface': None, + 'civitai': None, + 'found': False + } + + # 1. Check popular models first (curated database) + popular_info = get_popular_model_url(filename) + if popular_info: + results['popular'] = { + 'source': 'popular', + 'filename': filename, + **popular_info + } + results['found'] = True + + # 2. Search model-list.json (ComfyUI Manager database with fuzzy matching) + if not results['found']: + model_list_result = search_model_list(filename) + if model_list_result: + results['model_list'] = model_list_result + results['found'] = True + + # 3. Search HuggingFace for exact file match + if not results['found']: + hf_result = search_huggingface_for_file(filename) + if hf_result: + results['huggingface'] = hf_result + results['found'] = True + + # 4. Search CivitAI for exact file match + if not results['found']: + civitai_result = search_civitai_for_file(filename) + if civitai_result: + results['civitai'] = civitai_result + results['found'] = True + + return web.json_response(results) + + except Exception as e: + self.logger.error(f"Model Linker search error: {e}", exc_info=True) + return web.json_response( + {'error': str(e)}, + status=500 + ) + + @routes.post("/model_linker/download") + async def download_model(request): + """Start downloading a model.""" + try: + data = await request.json() + url = data.get('url', '') + filename = data.get('filename', '') + category = data.get('category', 'checkpoints') + subfolder = data.get('subfolder', '') + + if not url: + return web.json_response( + {'error': 'URL is required'}, + status=400 + ) + + if not filename: + # Extract filename from URL + from urllib.parse import urlparse, unquote + parsed = urlparse(url) + filename = unquote(parsed.path.split('/')[-1]) + + if not filename: + return web.json_response( + {'error': 'Could not determine filename'}, + status=400 + ) + + # Build headers if needed + headers = {} + if 'huggingface.co' in url: + hf_token = data.get('hf_token', '') + if hf_token: + headers['Authorization'] = f'Bearer {hf_token}' + elif 'civitai.com' in url: + civitai_key = data.get('civitai_key', '') + if civitai_key and 'token=' not in url: + url += f"{'&' if '?' in url else '?'}token={civitai_key}" + + # Start background download + download_id = start_background_download( + url=url, + filename=filename, + category=category, + headers=headers if headers else None, + subfolder=subfolder + ) + + return web.json_response({ + 'success': True, + 'download_id': download_id, + 'filename': filename, + 'category': category + }) + + except Exception as e: + self.logger.error(f"Model Linker download error: {e}", exc_info=True) + return web.json_response( + {'error': str(e), 'success': False}, + status=500 + ) + + @routes.get("/model_linker/progress/{download_id}") + async def get_download_progress(request): + """Get progress for a specific download.""" + try: + download_id = request.match_info['download_id'] + progress = get_progress(download_id) + + if progress: + return web.json_response(progress) + else: + return web.json_response( + {'error': 'Download not found'}, + status=404 + ) + except Exception as e: + self.logger.error(f"Model Linker progress error: {e}", exc_info=True) + return web.json_response( + {'error': str(e)}, + status=500 + ) + + @routes.get("/model_linker/progress") + async def get_all_downloads_progress(request): + """Get progress for all downloads.""" + try: + progress = get_all_progress() + return web.json_response(progress) + except Exception as e: + self.logger.error(f"Model Linker progress error: {e}", exc_info=True) + return web.json_response( + {'error': str(e)}, + status=500 + ) + + @routes.post("/model_linker/cancel/{download_id}") + async def cancel_download_route(request): + """Cancel a download in progress.""" + try: + download_id = request.match_info['download_id'] + cancel_download(download_id) + return web.json_response({'success': True}) + except Exception as e: + self.logger.error(f"Model Linker cancel error: {e}", exc_info=True) + return web.json_response( + {'error': str(e), 'success': False}, + status=500 + ) + + @routes.get("/model_linker/directories") + async def get_directories(request): + """Get available model directories.""" + try: + categories = [ + 'checkpoints', 'loras', 'vae', 'controlnet', + 'clip', 'clip_vision', 'embeddings', 'upscale_models', + 'diffusion_models', 'text_encoders', 'ipadapter', 'sams' + ] + + directories = {} + for cat in categories: + path = get_download_directory(cat) + if path: + directories[cat] = path + + return web.json_response(directories) + except Exception as e: + self.logger.error(f"Model Linker directories error: {e}", exc_info=True) + return web.json_response( + {'error': str(e)}, + status=500 + ) + self.routes_setup = True self.logger.info("Model Linker: API routes registered successfully") return True diff --git a/core/__init__.py b/core/__init__.py index 995e30b..cf38d89 100644 --- a/core/__init__.py +++ b/core/__init__.py @@ -1,4 +1,23 @@ """ Core modules for Model Linker extension. + +Modules: +- linker: Main API for analyzing and resolving missing models +- scanner: Directory scanning for available models +- matcher: Fuzzy matching for finding similar models +- workflow_analyzer: Workflow JSON parsing +- workflow_updater: Workflow modification +- downloader: Model downloading with progress tracking +- sources: Search integrations (HuggingFace, CivitAI, popular models) """ +from .linker import analyze_and_find_matches, apply_resolution +from .scanner import get_model_files +from .matcher import find_matches + +__all__ = [ + 'analyze_and_find_matches', + 'apply_resolution', + 'get_model_files', + 'find_matches' +] diff --git a/core/downloader.py b/core/downloader.py new file mode 100644 index 0000000..6235cbe --- /dev/null +++ b/core/downloader.py @@ -0,0 +1,312 @@ +""" +Model Downloader Module + +Handles downloading models from various sources with progress tracking. +""" + +import os +import logging +import threading +import time +import requests +from typing import Dict, Any, Optional, Callable +from pathlib import Path + +try: + import folder_paths +except ImportError: + folder_paths = None + +# Download state tracking +download_progress: Dict[str, Dict[str, Any]] = {} +download_lock = threading.Lock() +cancelled_downloads: set = set() + +logger = logging.getLogger(__name__) + + +def get_download_directory(category: str) -> Optional[str]: + """ + Get the appropriate download directory for a model category. + + Args: + category: Model category (e.g., 'checkpoints', 'loras', 'vae') + + Returns: + Absolute path to the download directory, or None if not found + """ + if folder_paths is None: + return None + + # Map common category names to folder_paths keys + category_map = { + 'checkpoint': 'checkpoints', + 'checkpoints': 'checkpoints', + 'lora': 'loras', + 'loras': 'loras', + 'vae': 'vae', + 'controlnet': 'controlnet', + 'clip': 'clip', + 'clip_vision': 'clip_vision', + 'upscaler': 'upscale_models', + 'upscale_models': 'upscale_models', + 'embeddings': 'embeddings', + 'embedding': 'embeddings', + 'diffusion_models': 'diffusion_models', + 'unet': 'diffusion_models', + 'text_encoders': 'text_encoders', + 'text_encoder': 'text_encoders', + 'ipadapter': 'ipadapter', + 'ip-adapter': 'ipadapter', + } + + folder_key = category_map.get(category.lower(), category.lower()) + + try: + paths = folder_paths.get_folder_paths(folder_key) + if paths: + # Return the first path (usually the main models directory) + return paths[0] + except Exception as e: + logger.debug(f"Could not get folder path for {folder_key}: {e}") + + return None + + +def generate_download_id() -> str: + """Generate a unique download ID.""" + import uuid + return str(uuid.uuid4())[:8] + + +def download_file( + url: str, + dest_path: str, + download_id: str, + headers: Optional[Dict[str, str]] = None, + chunk_size: int = 8192, + progress_callback: Optional[Callable[[int, int], None]] = None +) -> Dict[str, Any]: + """ + Download a file from URL with progress tracking. + + Args: + url: URL to download from + dest_path: Destination file path + download_id: Unique ID for tracking this download + headers: Optional HTTP headers (for auth tokens) + chunk_size: Download chunk size in bytes + progress_callback: Optional callback(downloaded_bytes, total_bytes) + + Returns: + Result dictionary with status and info + """ + global download_progress, cancelled_downloads + + result = { + 'success': False, + 'download_id': download_id, + 'path': dest_path, + 'error': None, + 'size': 0 + } + + # Initialize progress tracking + with download_lock: + download_progress[download_id] = { + 'status': 'starting', + 'progress': 0, + 'total_size': 0, + 'downloaded': 0, + 'filename': os.path.basename(dest_path), + 'url': url, + 'error': None + } + + try: + # Ensure destination directory exists + os.makedirs(os.path.dirname(dest_path), exist_ok=True) + + # Start download + response = requests.get( + url, + headers=headers, + stream=True, + timeout=30 + ) + response.raise_for_status() + + # Get total size + total_size = int(response.headers.get('content-length', 0)) + + with download_lock: + download_progress[download_id]['total_size'] = total_size + download_progress[download_id]['status'] = 'downloading' + + downloaded = 0 + + # Download with progress + with open(dest_path, 'wb') as f: + for chunk in response.iter_content(chunk_size=chunk_size): + # Check for cancellation + if download_id in cancelled_downloads: + with download_lock: + download_progress[download_id]['status'] = 'cancelled' + # Clean up partial file + try: + os.remove(dest_path) + except: + pass + result['error'] = 'Download cancelled' + return result + + if chunk: + f.write(chunk) + downloaded += len(chunk) + + # Update progress + with download_lock: + download_progress[download_id]['downloaded'] = downloaded + if total_size > 0: + download_progress[download_id]['progress'] = int((downloaded / total_size) * 100) + + if progress_callback: + progress_callback(downloaded, total_size) + + # Success + with download_lock: + download_progress[download_id]['status'] = 'completed' + download_progress[download_id]['progress'] = 100 + + result['success'] = True + result['size'] = downloaded + + except requests.exceptions.RequestException as e: + error_msg = str(e) + with download_lock: + download_progress[download_id]['status'] = 'error' + download_progress[download_id]['error'] = error_msg + result['error'] = error_msg + + # Clean up partial file + try: + if os.path.exists(dest_path): + os.remove(dest_path) + except: + pass + + except Exception as e: + error_msg = str(e) + with download_lock: + download_progress[download_id]['status'] = 'error' + download_progress[download_id]['error'] = error_msg + result['error'] = error_msg + logger.error(f"Download error: {e}", exc_info=True) + + return result + + +def download_model( + url: str, + filename: str, + category: str, + download_id: Optional[str] = None, + headers: Optional[Dict[str, str]] = None, + subfolder: str = "" +) -> Dict[str, Any]: + """ + Download a model to the appropriate directory. + + Args: + url: URL to download from + filename: Filename to save as + category: Model category for directory selection + download_id: Optional download ID (generated if not provided) + headers: Optional HTTP headers + subfolder: Optional subfolder within category directory + + Returns: + Result dictionary + """ + if download_id is None: + download_id = generate_download_id() + + # Get destination directory + dest_dir = get_download_directory(category) + if not dest_dir: + return { + 'success': False, + 'download_id': download_id, + 'error': f'Could not find directory for category: {category}' + } + + # Add subfolder if specified + if subfolder: + dest_dir = os.path.join(dest_dir, subfolder) + + dest_path = os.path.join(dest_dir, filename) + + # Check if file already exists + if os.path.exists(dest_path): + return { + 'success': False, + 'download_id': download_id, + 'error': f'File already exists: {dest_path}', + 'path': dest_path + } + + return download_file(url, dest_path, download_id, headers) + + +def get_progress(download_id: str) -> Optional[Dict[str, Any]]: + """Get progress for a specific download.""" + with download_lock: + return download_progress.get(download_id, {}).copy() + + +def get_all_progress() -> Dict[str, Dict[str, Any]]: + """Get progress for all downloads.""" + with download_lock: + return {k: v.copy() for k, v in download_progress.items()} + + +def cancel_download(download_id: str) -> bool: + """Cancel a download in progress.""" + cancelled_downloads.add(download_id) + return True + + +def clear_completed_downloads(): + """Clear completed/failed downloads from progress tracking.""" + with download_lock: + to_remove = [ + did for did, info in download_progress.items() + if info.get('status') in ('completed', 'error', 'cancelled') + ] + for did in to_remove: + del download_progress[did] + cancelled_downloads.discard(did) + + +def start_background_download( + url: str, + filename: str, + category: str, + headers: Optional[Dict[str, str]] = None, + subfolder: str = "" +) -> str: + """ + Start a download in a background thread. + + Returns: + download_id for tracking progress + """ + download_id = generate_download_id() + + def run_download(): + download_model(url, filename, category, download_id, headers, subfolder) + + thread = threading.Thread(target=run_download, daemon=True) + thread.start() + + return download_id diff --git a/core/sources/__init__.py b/core/sources/__init__.py new file mode 100644 index 0000000..f772fed --- /dev/null +++ b/core/sources/__init__.py @@ -0,0 +1,23 @@ +""" +Model Sources Module + +Provides search functionality for finding models from various sources. +""" + +from .popular import search_popular_models, get_popular_model_url +from .model_list import search_model_list, search_model_list_multiple +from .huggingface import search_huggingface, search_huggingface_for_file, get_huggingface_download_url +from .civitai import search_civitai, search_civitai_for_file, get_civitai_download_url + +__all__ = [ + 'search_popular_models', + 'get_popular_model_url', + 'search_model_list', + 'search_model_list_multiple', + 'search_huggingface', + 'search_huggingface_for_file', + 'get_huggingface_download_url', + 'search_civitai', + 'search_civitai_for_file', + 'get_civitai_download_url' +] diff --git a/core/sources/civitai.py b/core/sources/civitai.py new file mode 100644 index 0000000..65a9be7 --- /dev/null +++ b/core/sources/civitai.py @@ -0,0 +1,278 @@ +""" +CivitAI Source Module + +Search and download models from CivitAI. +""" + +import os +import re +import logging +import requests +from typing import Dict, Any, Optional, List +from urllib.parse import urlparse, parse_qs, quote + +logger = logging.getLogger(__name__) + +CIVITAI_API_URL = "https://civitai.com/api/v1" + +# Cache for search results +_search_cache: Dict[str, Any] = {} + + +def parse_civitai_url(url: str) -> Optional[Dict[str, Any]]: + """ + Parse a CivitAI URL to extract model/version info. + """ + parsed = urlparse(url) + if 'civitai.com' not in parsed.netloc: + return None + + if '/api/download/models/' in parsed.path: + match = re.search(r'/api/download/models/(\d+)', parsed.path) + if match: + return {'version_id': int(match.group(1))} + + match = re.search(r'/models/(\d+)', parsed.path) + if match: + result = {'model_id': int(match.group(1))} + query = parse_qs(parsed.query) + if 'modelVersionId' in query: + result['version_id'] = int(query['modelVersionId'][0]) + return result + + return None + + +def get_civitai_download_url(version_id: int, api_key: Optional[str] = None) -> str: + """Get download URL for a CivitAI model version.""" + url = f"https://civitai.com/api/download/models/{version_id}" + if api_key: + url += f"?token={api_key}" + return url + + +def clean_filename_for_search(filename: str) -> str: + """ + Clean up filename for better CivitAI search results. + Remove common suffixes that might prevent matches. + """ + base = os.path.splitext(filename)[0] + # Remove common precision/format suffixes + base = re.sub(r'[-_]?(fp16|fp32|fp8|bf16|e4m3fn|scaled|pruned|emaonly|q4|q8).*$', '', base, flags=re.IGNORECASE) + # Remove version numbers at end + base = re.sub(r'[-_]?v?\d+(\.\d+)*$', '', base, flags=re.IGNORECASE) + return base + + +def search_civitai_for_file( + filename: str, + api_key: Optional[str] = None +) -> Optional[Dict[str, Any]]: + """ + Search CivitAI for a specific model file. + Returns the first model that actually has this exact filename. + + Args: + filename: Exact filename to search for + api_key: Optional API key + + Returns: + Dict with download info if found, None otherwise + """ + global _search_cache + + cache_key = f"civit_{filename}" + if cache_key in _search_cache: + return _search_cache[cache_key] + + try: + # Clean filename for search + search_term = clean_filename_for_search(filename) + + headers = {} + if api_key: + headers['Authorization'] = f'Bearer {api_key}' + + search_url = f"{CIVITAI_API_URL}/models?query={quote(search_term)}&limit=10" + + response = requests.get(search_url, headers=headers, timeout=15) + if response.status_code != 200: + logger.debug(f"CivitAI search returned {response.status_code}") + return None + + data = response.json() + items = data.get('items', []) + + for item in items: + model_id = item.get('id') + model_name = item.get('name', '') + model_type = item.get('type', '') + + model_versions = item.get('modelVersions', []) + for version in model_versions: + version_id = version.get('id') + files = version.get('files', []) + + for file_info in files: + file_name = file_info.get('name', '') + # Check for exact filename match (case-insensitive) + if file_name.lower() == filename.lower(): + download_url = file_info.get('downloadUrl', '') + if download_url: + result = { + 'source': 'civitai', + 'model_id': model_id, + 'version_id': version_id, + 'name': model_name, + 'type': model_type, + 'filename': file_name, + 'url': f"https://civitai.com/models/{model_id}", + 'download_url': download_url, + 'size': file_info.get('sizeKB', 0) * 1024 + } + _search_cache[cache_key] = result + logger.info(f"Found {filename} on CivitAI: {model_name}") + return result + + # Not found + _search_cache[cache_key] = None + return None + + except Exception as e: + logger.error(f"CivitAI search error: {e}") + return None + + +def search_civitai( + query: str, + model_type: Optional[str] = None, + limit: int = 10, + api_key: Optional[str] = None +) -> List[Dict[str, Any]]: + """ + Search CivitAI for models (general search). + Returns models that might be relevant. + """ + results = [] + + type_map = { + 'checkpoint': 'Checkpoint', + 'checkpoints': 'Checkpoint', + 'lora': 'LORA', + 'loras': 'LORA', + 'vae': 'VAE', + 'controlnet': 'Controlnet', + 'embedding': 'TextualInversion', + 'embeddings': 'TextualInversion', + 'upscaler': 'Upscaler', + 'upscale_models': 'Upscaler', + } + + try: + params = { + 'query': query, + 'limit': limit, + 'nsfw': 'false' + } + + if model_type: + civitai_type = type_map.get(model_type.lower()) + if civitai_type: + params['types'] = civitai_type + + headers = {} + if api_key: + headers['Authorization'] = f'Bearer {api_key}' + + response = requests.get( + f"{CIVITAI_API_URL}/models", + params=params, + headers=headers, + timeout=15 + ) + + if response.status_code == 200: + data = response.json() + + for model in data.get('items', []): + model_id = model.get('id') + model_name = model.get('name', '') + model_type = model.get('type', '') + + versions = model.get('modelVersions', []) + if versions: + latest = versions[0] + version_id = latest.get('id') + + files = latest.get('files', []) + primary_file = None + for f in files: + if f.get('primary', False) or f.get('type') == 'Model': + primary_file = f + break + + if not primary_file and files: + primary_file = files[0] + + result = { + 'source': 'civitai', + 'model_id': model_id, + 'version_id': version_id, + 'name': model_name, + 'type': model_type, + 'url': f"https://civitai.com/models/{model_id}", + 'download_url': get_civitai_download_url(version_id, api_key), + 'downloads': model.get('stats', {}).get('downloadCount', 0), + } + + if primary_file: + result['filename'] = primary_file.get('name', '') + result['size'] = primary_file.get('sizeKB', 0) * 1024 + + results.append(result) + + except Exception as e: + logger.error(f"CivitAI search error: {e}") + + return results + + +def search_civitai_by_hash( + hash_value: str, + api_key: Optional[str] = None +) -> Optional[Dict[str, Any]]: + """Look up a model by file hash on CivitAI.""" + try: + headers = {} + if api_key: + headers['Authorization'] = f'Bearer {api_key}' + + response = requests.get( + f"{CIVITAI_API_URL}/model-versions/by-hash/{hash_value}", + headers=headers, + timeout=15 + ) + + if response.status_code == 200: + data = response.json() + + model_id = data.get('modelId') + version_id = data.get('id') + files = data.get('files', []) + primary_file = files[0] if files else {} + + return { + 'source': 'civitai', + 'model_id': model_id, + 'version_id': version_id, + 'name': data.get('model', {}).get('name', ''), + 'url': f"https://civitai.com/models/{model_id}", + 'download_url': get_civitai_download_url(version_id, api_key), + 'filename': primary_file.get('name', ''), + 'size': primary_file.get('sizeKB', 0) * 1024 + } + + except Exception as e: + logger.error(f"CivitAI hash lookup error: {e}") + + return None diff --git a/core/sources/huggingface.py b/core/sources/huggingface.py new file mode 100644 index 0000000..1ab1c98 --- /dev/null +++ b/core/sources/huggingface.py @@ -0,0 +1,240 @@ +""" +HuggingFace Source Module + +Search and download models from HuggingFace Hub. +""" + +import os +import re +import logging +import requests +from typing import Dict, Any, Optional, List +from urllib.parse import urlparse, quote + +logger = logging.getLogger(__name__) + +HF_API_URL = "https://huggingface.co/api" + +# Cache for search results +_search_cache: Dict[str, Any] = {} + + +def parse_huggingface_url(url: str) -> Optional[Dict[str, str]]: + """ + Parse a HuggingFace URL to extract repo and filename. + + Handles formats: + - https://huggingface.co/user/repo/resolve/main/file.safetensors + - https://huggingface.co/user/repo/blob/main/file.safetensors + - hf://user/repo/file.safetensors + + Returns: + Dictionary with 'repo' and 'filename' keys, or None if not HF URL + """ + if url.startswith('hf://'): + parts = url[5:].split('/', 2) + if len(parts) >= 3: + return { + 'repo': f"{parts[0]}/{parts[1]}", + 'filename': parts[2] + } + return None + + parsed = urlparse(url) + if 'huggingface.co' not in parsed.netloc: + return None + + match = re.match(r'^/([^/]+/[^/]+)/(resolve|blob)/([^/]+)/(.+)$', parsed.path) + if match: + return { + 'repo': match.group(1), + 'branch': match.group(3), + 'filename': match.group(4) + } + + return None + + +def get_huggingface_download_url(repo: str, filename: str, branch: str = "main") -> str: + """Generate a direct download URL for a HuggingFace file.""" + return f"https://huggingface.co/{repo}/resolve/{branch}/{quote(filename)}" + + +def clean_filename_for_search(filename: str) -> str: + """ + Clean up filename for better search results. + Remove common suffixes that might prevent matches. + """ + base = os.path.splitext(filename)[0] + # Remove common precision/format suffixes + base = re.sub(r'[-_]?(fp16|fp32|fp8|bf16|e4m3fn|scaled|pruned|emaonly|q4|q8).*$', '', base, flags=re.IGNORECASE) + return base + + +def search_huggingface_for_file( + filename: str, + token: Optional[str] = None +) -> Optional[Dict[str, Any]]: + """ + Search HuggingFace for a specific model file. + Returns the first repo that actually contains this exact file. + + Args: + filename: Exact filename to search for + token: Optional HF token + + Returns: + Dict with url, repo, filename if found, None otherwise + """ + global _search_cache + + cache_key = f"hf_{filename}" + if cache_key in _search_cache: + return _search_cache[cache_key] + + try: + # Clean filename for search + search_term = clean_filename_for_search(filename) + + headers = {} + if token: + headers['Authorization'] = f'Bearer {token}' + + # Search for repos containing this filename + search_url = f"{HF_API_URL}/models?search={quote(search_term)}&limit=10" + + response = requests.get(search_url, headers=headers, timeout=15) + if response.status_code != 200: + logger.debug(f"HuggingFace search returned {response.status_code}") + return None + + repos = response.json() + + for repo in repos: + repo_id = repo.get('id', '') + if not repo_id: + continue + + # Check if this repo actually has the exact file + files_url = f"{HF_API_URL}/models/{repo_id}/tree/main" + + try: + files_response = requests.get(files_url, headers=headers, timeout=10) + if files_response.status_code == 200: + files = files_response.json() + + for file_info in files: + file_path = file_info.get('path', '') + # Check for exact filename match (case-insensitive) + if file_path.lower().endswith(filename.lower()): + result = { + 'source': 'huggingface', + 'repo': repo_id, + 'filename': os.path.basename(file_path), + 'path': file_path, + 'url': get_huggingface_download_url(repo_id, file_path), + 'size': file_info.get('size') + } + _search_cache[cache_key] = result + logger.info(f"Found {filename} on HuggingFace: {repo_id}") + return result + + except Exception as e: + logger.debug(f"Error checking repo {repo_id}: {e}") + continue + + # Not found + _search_cache[cache_key] = None + return None + + except Exception as e: + logger.error(f"HuggingFace search error: {e}") + return None + + +def search_huggingface( + query: str, + model_type: Optional[str] = None, + limit: int = 10, + token: Optional[str] = None +) -> List[Dict[str, Any]]: + """ + Search HuggingFace Hub for models (general search). + Returns repos that might be relevant, not guaranteed to have exact file. + """ + results = [] + + try: + headers = {} + if token: + headers['Authorization'] = f'Bearer {token}' + + params = { + 'search': query, + 'limit': limit, + 'full': 'true' + } + + response = requests.get( + f"{HF_API_URL}/models", + params=params, + headers=headers, + timeout=15 + ) + + if response.status_code == 200: + models = response.json() + + for model in models: + repo_id = model.get('id', '') + + results.append({ + 'source': 'huggingface', + 'repo': repo_id, + 'name': model.get('modelId', repo_id), + 'downloads': model.get('downloads', 0), + 'likes': model.get('likes', 0), + 'url': f"https://huggingface.co/{repo_id}" + }) + + except Exception as e: + logger.error(f"HuggingFace search error: {e}") + + return results + + +def get_repo_files( + repo: str, + token: Optional[str] = None +) -> List[Dict[str, Any]]: + """Get list of model files in a HuggingFace repo.""" + files = [] + + try: + headers = {} + if token: + headers['Authorization'] = f'Bearer {token}' + + response = requests.get( + f"{HF_API_URL}/models/{repo}/tree/main", + headers=headers, + timeout=15 + ) + + if response.status_code == 200: + items = response.json() + + for item in items: + path = item.get('path', '') + if path.endswith(('.safetensors', '.ckpt', '.pt', '.bin', '.pth', '.onnx')): + files.append({ + 'filename': os.path.basename(path), + 'path': path, + 'url': get_huggingface_download_url(repo, path), + 'size': item.get('size') + }) + + except Exception as e: + logger.error(f"Error getting repo files: {e}") + + return files diff --git a/core/sources/model_list.py b/core/sources/model_list.py new file mode 100644 index 0000000..70ac3fc --- /dev/null +++ b/core/sources/model_list.py @@ -0,0 +1,208 @@ +""" +Model List Database Module + +Search the ComfyUI Manager model-list.json database with fuzzy matching. +""" + +import os +import json +import logging +from typing import Dict, Any, Optional, List +from difflib import SequenceMatcher + +logger = logging.getLogger(__name__) + +# Path to metadata directory +METADATA_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'metadata') +MODEL_LIST_FILE = os.path.join(METADATA_DIR, 'model-list.json') + +# Cache for loaded data +_model_list_cache: Optional[List[Dict]] = None + + +def _load_model_list() -> List[Dict]: + """Load model list database.""" + global _model_list_cache + + if _model_list_cache is not None: + return _model_list_cache + + try: + if os.path.exists(MODEL_LIST_FILE): + with open(MODEL_LIST_FILE, 'r', encoding='utf-8') as f: + data = json.load(f) + _model_list_cache = data.get('models', []) + logger.info(f"Loaded {len(_model_list_cache)} models from model-list.json") + return _model_list_cache + except Exception as e: + logger.error(f"Error loading model list: {e}") + + _model_list_cache = [] + return _model_list_cache + + +def _normalize_filename(filename: str) -> str: + """Normalize filename for comparison.""" + # Remove extension + base = os.path.splitext(filename)[0].lower() + # Replace separators with spaces + base = base.replace('-', ' ').replace('_', ' ').replace('.', ' ') + return base + + +def _similarity(a: str, b: str) -> float: + """Calculate similarity between two strings.""" + return SequenceMatcher(None, a, b).ratio() + + +def search_model_list(filename: str) -> Optional[Dict[str, Any]]: + """ + Search model-list.json for a model by filename. + Uses exact match first, then fuzzy matching. + + Args: + filename: Model filename to search for + + Returns: + Dict with url, filename, type, etc. if found, None otherwise + """ + models = _load_model_list() + if not models: + return None + + filename_lower = filename.lower() + filename_base = os.path.splitext(filename_lower)[0] + filename_norm = _normalize_filename(filename) + + # 1. Exact match first + for model in models: + model_filename = model.get('filename', '') + if model_filename.lower() == filename_lower: + url = model.get('url', '') + if url: + return { + 'source': 'model_list', + 'filename': model_filename, + 'url': url, + 'name': model.get('name', ''), + 'type': model.get('type', ''), + 'directory': model.get('save_path', 'checkpoints'), + 'size': model.get('size', ''), + 'match_type': 'exact' + } + + # 2. Fuzzy substring match - check if filename contains or is contained by model name + best_match = None + best_score = 0.0 + + for model in models: + model_filename = model.get('filename', '') + if not model_filename: + continue + + model_base = os.path.splitext(model_filename.lower())[0] + model_norm = _normalize_filename(model_filename) + + # Check substring matches (like WMD does) + if filename_base in model_base or model_base in filename_base: + url = model.get('url', '') + if url: + # Calculate similarity score + score = _similarity(filename_norm, model_norm) + if score > best_score: + best_score = score + best_match = { + 'source': 'model_list', + 'filename': model_filename, + 'url': url, + 'name': model.get('name', ''), + 'type': model.get('type', ''), + 'directory': model.get('save_path', 'checkpoints'), + 'size': model.get('size', ''), + 'match_type': 'fuzzy', + 'confidence': round(score * 100, 1) + } + + # Return best fuzzy match if score is good enough (>50%) + if best_match and best_score > 0.5: + return best_match + + # 3. Try normalized similarity matching on all models + for model in models: + model_filename = model.get('filename', '') + if not model_filename: + continue + + model_norm = _normalize_filename(model_filename) + score = _similarity(filename_norm, model_norm) + + if score > best_score and score > 0.6: # Require 60% similarity + url = model.get('url', '') + if url: + best_score = score + best_match = { + 'source': 'model_list', + 'filename': model_filename, + 'url': url, + 'name': model.get('name', ''), + 'type': model.get('type', ''), + 'directory': model.get('save_path', 'checkpoints'), + 'size': model.get('size', ''), + 'match_type': 'similar', + 'confidence': round(score * 100, 1) + } + + return best_match + + +def search_model_list_multiple(filename: str, limit: int = 5) -> List[Dict[str, Any]]: + """ + Search model-list.json and return multiple fuzzy matches. + + Args: + filename: Model filename to search for + limit: Maximum results to return + + Returns: + List of matching models sorted by relevance + """ + models = _load_model_list() + if not models: + return [] + + filename_norm = _normalize_filename(filename) + results = [] + + for model in models: + model_filename = model.get('filename', '') + if not model_filename: + continue + + model_norm = _normalize_filename(model_filename) + score = _similarity(filename_norm, model_norm) + + if score > 0.4: # Minimum 40% similarity + url = model.get('url', '') + if url: + results.append({ + 'source': 'model_list', + 'filename': model_filename, + 'url': url, + 'name': model.get('name', ''), + 'type': model.get('type', ''), + 'directory': model.get('save_path', 'checkpoints'), + 'size': model.get('size', ''), + 'confidence': round(score * 100, 1) + }) + + # Sort by confidence descending + results.sort(key=lambda x: x['confidence'], reverse=True) + + return results[:limit] + + +def reload_model_list(): + """Force reload of model list.""" + global _model_list_cache + _model_list_cache = None + _load_model_list() diff --git a/core/sources/popular.py b/core/sources/popular.py new file mode 100644 index 0000000..5f72d07 --- /dev/null +++ b/core/sources/popular.py @@ -0,0 +1,136 @@ +""" +Popular Models Database + +Curated list of common models with known download URLs. +""" + +import os +import json +import logging +from typing import Dict, Any, Optional, List + +logger = logging.getLogger(__name__) + +# Path to metadata directory +METADATA_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'metadata') +POPULAR_MODELS_FILE = os.path.join(METADATA_DIR, 'popular-models.json') +MODEL_ALIASES_FILE = os.path.join(METADATA_DIR, 'model-aliases.json') + +# Cache for loaded data +_popular_models_cache: Optional[Dict] = None +_model_aliases_cache: Optional[Dict] = None + + +def _load_popular_models() -> Dict[str, Any]: + """Load popular models database.""" + global _popular_models_cache + + if _popular_models_cache is not None: + return _popular_models_cache + + try: + if os.path.exists(POPULAR_MODELS_FILE): + with open(POPULAR_MODELS_FILE, 'r', encoding='utf-8') as f: + data = json.load(f) + _popular_models_cache = data.get('models', {}) + return _popular_models_cache + except Exception as e: + logger.error(f"Error loading popular models: {e}") + + _popular_models_cache = {} + return _popular_models_cache + + +def _load_model_aliases() -> Dict[str, List[str]]: + """Load model aliases database.""" + global _model_aliases_cache + + if _model_aliases_cache is not None: + return _model_aliases_cache + + try: + if os.path.exists(MODEL_ALIASES_FILE): + with open(MODEL_ALIASES_FILE, 'r', encoding='utf-8') as f: + data = json.load(f) + _model_aliases_cache = data.get('aliases', {}) + return _model_aliases_cache + except Exception as e: + logger.error(f"Error loading model aliases: {e}") + + _model_aliases_cache = {} + return _model_aliases_cache + + +def get_popular_model_url(filename: str) -> Optional[Dict[str, Any]]: + """ + Look up a model filename in the popular models database. + + Args: + filename: Model filename to look up + + Returns: + Dictionary with url, type, directory if found, None otherwise + """ + models = _load_popular_models() + + # Direct lookup + if filename in models: + return models[filename].copy() + + # Try lowercase + filename_lower = filename.lower() + for name, info in models.items(): + if name.lower() == filename_lower: + return info.copy() + + # Try aliases + aliases = _load_model_aliases() + for canonical, alias_list in aliases.items(): + if filename in alias_list or filename_lower in [a.lower() for a in alias_list]: + if canonical in models: + result = models[canonical].copy() + result['canonical_name'] = canonical + return result + + return None + + +def search_popular_models(query: str, limit: int = 10) -> List[Dict[str, Any]]: + """ + Search popular models database by filename pattern. + + Args: + query: Search query (partial filename) + limit: Maximum results to return + + Returns: + List of matching models with url info + """ + models = _load_popular_models() + query_lower = query.lower() + + results = [] + for name, info in models.items(): + if query_lower in name.lower(): + result = info.copy() + result['filename'] = name + results.append(result) + + if len(results) >= limit: + break + + return results + + +def get_all_popular_models() -> Dict[str, Any]: + """Get all popular models.""" + return _load_popular_models().copy() + + +def reload_databases(): + """Force reload of all databases.""" + global _popular_models_cache, _model_aliases_cache + _popular_models_cache = None + _model_aliases_cache = None + _load_popular_models() + _load_model_aliases() diff --git a/metadata/model-aliases.json b/metadata/model-aliases.json new file mode 100644 index 0000000..994f63f --- /dev/null +++ b/metadata/model-aliases.json @@ -0,0 +1,83 @@ +{ + "version": "1.0", + "description": "Model filename aliases for fuzzy matching. Canonical names map to variant aliases.", + "aliases": { + "sd_xl_base_1.0.safetensors": [ + "sdxl_base.safetensors", + "sdxl-base-1.0.safetensors", + "sd-xl-base.safetensors", + "sdxl_1.0_base.safetensors" + ], + "sd_xl_refiner_1.0.safetensors": [ + "sdxl_refiner.safetensors", + "sdxl-refiner-1.0.safetensors", + "sd-xl-refiner.safetensors" + ], + "flux1-dev.safetensors": [ + "flux-dev.safetensors", + "FLUX.1-dev.safetensors", + "flux1_dev.safetensors", + "flux-1-dev.safetensors" + ], + "flux1-schnell.safetensors": [ + "flux-schnell.safetensors", + "FLUX.1-schnell.safetensors", + "flux1_schnell.safetensors", + "flux-1-schnell.safetensors" + ], + "v1-5-pruned-emaonly.safetensors": [ + "sd15.safetensors", + "sd-1-5.safetensors", + "stable-diffusion-1-5.safetensors", + "v1-5-pruned.safetensors", + "sd_v1.5.safetensors" + ], + "v2-1_768-ema-pruned.safetensors": [ + "sd21.safetensors", + "sd-2-1.safetensors", + "stable-diffusion-2-1.safetensors", + "v2-1.safetensors" + ], + "sd3_medium.safetensors": [ + "sd3-medium.safetensors", + "sd3.safetensors", + "stable-diffusion-3-medium.safetensors" + ], + "RealESRGAN_x4plus.pth": [ + "realesrgan_x4plus.pth", + "real-esrgan-x4.pth", + "4x_realesrgan.pth" + ], + "t5xxl_fp16.safetensors": [ + "t5-xxl-fp16.safetensors", + "t5xxl.safetensors", + "t5_xxl_fp16.safetensors" + ], + "t5xxl_fp8_e4m3fn.safetensors": [ + "t5-xxl-fp8.safetensors", + "t5xxl_fp8.safetensors", + "t5_xxl_fp8.safetensors" + ], + "clip_l.safetensors": [ + "clip-l.safetensors", + "clip_large.safetensors", + "openai-clip-l.safetensors" + ], + "ae.safetensors": [ + "flux_ae.safetensors", + "flux-ae.safetensors", + "flux_vae.safetensors" + ] + }, + "patterns": { + "fp16_variants": { + "description": "FP16/FP32 variants of the same model", + "pattern": "(.+?)[-_]?(fp16|fp32|fp8)?\\.safetensors$", + "note": "Models with fp16/fp32/fp8 suffix are often interchangeable" + }, + "quantized_variants": { + "description": "Quantized variants (Q4, Q8, GGUF)", + "pattern": "(.+?)[-_]?(q4|q8|gguf)?\\.safetensors$" + } + } +} diff --git a/metadata/model-list.json b/metadata/model-list.json new file mode 100644 index 0000000..108bf0f --- /dev/null +++ b/metadata/model-list.json @@ -0,0 +1,5671 @@ +{ + "models": [ + { + "name": "TAEF1 Decoder", + "type": "TAESD", + "base": "FLUX.1", + "save_path": "vae_approx", + "description": "(FLUX.1 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taef1_decoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taef1_decoder.pth", + "size": "4.71MB" + }, + { + "name": "TAEF1 Encoder", + "type": "TAESD", + "base": "FLUX.1", + "save_path": "vae_approx", + "description": "(FLUX.1 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taef1_encoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taef1_encoder.pth", + "size": "4.71MB" + }, + { + "name": "TAESD3 Decoder", + "type": "TAESD", + "base": "SD3", + "save_path": "vae_approx", + "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesd3_decoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_decoder.pth", + "size": "4.94MB" + }, + { + "name": "TAESD3 Encoder", + "type": "TAESD", + "base": "SD3", + "save_path": "vae_approx", + "description": "(SD3 Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesd3_encoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesd3_encoder.pth", + "size": "4.94MB" + }, + { + "name": "TAESDXL Decoder", + "type": "TAESD", + "base": "SDXL", + "save_path": "vae_approx", + "description": "(SDXL Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesdxl_decoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_decoder.pth", + "size": "4.91MB" + }, + { + "name": "TAESDXL Encoder", + "type": "TAESD", + "base": "SDXL", + "save_path": "vae_approx", + "description": "(SDXL Verison) To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesdxl_encoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesdxl_encoder.pth", + "size": "4.91MB" + }, + { + "name": "TAESD Decoder", + "type": "TAESD", + "base": "SD1.x", + "save_path": "vae_approx", + "description": "To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesd_decoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesd_decoder.pth", + "size": "4.91MB" + }, + { + "name": "TAESD Encoder", + "type": "TAESD", + "base": "SD1.x", + "save_path": "vae_approx", + "description": "To view the preview in high quality while running samples in ComfyUI, you will need this model.", + "reference": "https://github.com/madebyollin/taesd", + "filename": "taesd_encoder.pth", + "url": "https://github.com/madebyollin/taesd/raw/main/taesd_encoder.pth", + "size": "4.91MB" + }, + { + "name": "RealESRGAN x2", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "RealESRGAN x2 upscaler model", + "reference": "https://huggingface.co/ai-forever/Real-ESRGAN", + "filename": "RealESRGAN_x2.pth", + "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x2.pth", + "size": "67.1MB" + }, + { + "name": "RealESRGAN x4", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "RealESRGAN x4 upscaler model", + "reference": "https://huggingface.co/ai-forever/Real-ESRGAN", + "filename": "RealESRGAN_x4.pth", + "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x4.pth", + "size": "67.0MB" + }, + { + "name": "ESRGAN x4", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "ESRGAN x4 upscaler model", + "reference": "https://huggingface.co/Afizi/ESRGAN_4x.pth", + "filename": "ESRGAN_4x.pth", + "url": "https://huggingface.co/Afizi/ESRGAN_4x.pth/resolve/main/ESRGAN_4x.pth", + "size": "66.9MB" + }, + { + "name": "4x_foolhardy_Remacri", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "4x_foolhardy_Remacri upscaler model", + "reference": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri", + "filename": "4x_foolhardy_Remacri.pth", + "url": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth", + "size": "67.0MB" + }, + { + "name": "4x-AnimeSharp", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "4x-AnimeSharp upscaler model", + "reference": "https://huggingface.co/Kim2091/AnimeSharp/", + "filename": "4x-AnimeSharp.pth", + "url": "https://huggingface.co/Kim2091/AnimeSharp/resolve/main/4x-AnimeSharp.pth", + "size": "67.0MB" + }, + { + "name": "4x-UltraSharp", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "4x-UltraSharp upscaler model", + "reference": "https://huggingface.co/Kim2091/UltraSharp/", + "filename": "4x-UltraSharp.pth", + "url": "https://huggingface.co/Kim2091/UltraSharp/resolve/main/4x-UltraSharp.pth", + "size": "67.0MB" + }, + { + "name": "4x_NMKD-Siax_200k", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "4x_NMKD-Siax_200k upscaler model", + "reference": "https://huggingface.co/gemasai/4x_NMKD-Siax_200k", + "filename": "4x_NMKD-Siax_200k.pth", + "url": "https://huggingface.co/gemasai/4x_NMKD-Siax_200k/resolve/main/4x_NMKD-Siax_200k.pth", + "size": "67.0MB" + }, + { + "name": "8x_NMKD-Superscale_150000_G", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "8x_NMKD-Superscale_150000_G upscaler model", + "reference": "https://huggingface.co/uwg/upscaler", + "filename": "8x_NMKD-Superscale_150000_G.pth", + "url": "https://huggingface.co/uwg/upscaler/resolve/main/ESRGAN/8x_NMKD-Superscale_150000_G.pth", + "size": "67.1MB" + }, + { + "name": "8x_NMKD-Faces_160000_G", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "8x_NMKD-Faces_160000_G upscaler model", + "reference": "https://huggingface.co/gemasai/8x_NMKD-Faces_160000_G/tree/main", + "filename": "8x_NMKD-Faces_160000_G.pth", + "url": "https://huggingface.co/gemasai/8x_NMKD-Faces_160000_G/resolve/main/8x_NMKD-Faces_160000_G.pth", + "size": "67.2MB" + }, + { + "name": "LDSR(Latent Diffusion Super Resolution)", + "type": "upscale", + "base": "upscale", + "save_path": "upscale_models/ldsr", + "description": "LDSR upscale model. Through the [a/ComfyUI-Flowty-LDSR](https://github.com/flowtyone/ComfyUI-Flowty-LDSR) extension, the upscale model can be utilized.", + "reference": "https://github.com/CompVis/latent-diffusion", + "filename": "last.ckpt", + "url": "https://heibox.uni-heidelberg.de/f/578df07c8fc04ffbadf3/?dl=1", + "size": "2.04GB" + }, + { + "name": "stabilityai/stable-diffusion-x4-upscaler", + "type": "checkpoint", + "base": "upscale", + "save_path": "checkpoints/upscale", + "description": "This upscaling model is a latent text-guided diffusion model and should be used with SD_4XUpscale_Conditioning and KSampler.", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler", + "filename": "x4-upscaler-ema.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-x4-upscaler/resolve/main/x4-upscaler-ema.safetensors", + "size": "3.53GB" + }, + { + "name": "Deepbump", + "type": "deepbump", + "base": "deepbump", + "save_path": "deepbump", + "description": "Checkpoint of the deepbump model to generate height and normal maps textures from an image (requires comfy_mtb)", + "reference": "https://github.com/HugoTini/DeepBump", + "filename": "deepbump256.onnx", + "url": "https://github.com/HugoTini/DeepBump/raw/master/deepbump256.onnx", + "size": "26.7MB" + }, + { + "name": "GFPGAN 1.3", + "type": "face_restore", + "base": "face_restore", + "save_path": "face_restore", + "description": "Face restoration", + "reference": "https://github.com/TencentARC/GFPGAN", + "filename": "GFPGANv1.3.pth", + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth", + "size": "348.6MB" + }, + { + "name": "GFPGAN 1.4", + "type": "face_restore", + "base": "face_restore", + "save_path": "face_restore", + "description": "Face restoration", + "reference": "https://github.com/TencentARC/GFPGAN", + "filename": "GFPGANv1.4.pth", + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth", + "size": "348.6MB" + }, + { + "name": "RestoreFormer", + "type": "face_restore", + "base": "face_restore", + "save_path": "face_restore", + "description": "Face restoration", + "reference": "https://github.com/TencentARC/GFPGAN", + "filename": "RestoreFormer.pth", + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/RestoreFormer.pth", + "size": "290.8MB" + }, + { + "name": "Stable Video Diffusion Image-to-Video", + "type": "checkpoint", + "base": "SVD", + "save_path": "checkpoints/SVD", + "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 14 frames @ 576x1024", + "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid", + "filename": "svd.safetensors", + "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid/resolve/main/svd.safetensors", + "size": "9.56GB" + }, + { + "name": "stabilityai/Stable Zero123", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).", + "reference": "https://huggingface.co/stabilityai/stable-zero123", + "filename": "stable_zero123.ckpt", + "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt", + "size": "8.58GB" + }, + { + "name": "Stable Video Diffusion Image-to-Video (XT)", + "type": "checkpoint", + "base": "SVD", + "save_path": "checkpoints/SVD", + "description": "Stable Video Diffusion (SVD) Image-to-Video is a diffusion model that takes in a still image as a conditioning frame, and generates a video from it.\nNOTE: 25 frames @ 576x1024 ", + "reference": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt", + "filename": "svd_xt.safetensors", + "url": "https://huggingface.co/stabilityai/stable-video-diffusion-img2vid-xt/resolve/main/svd_xt.safetensors", + "size": "9.56GB" + }, + { + "name": "negative_hand Negative Embedding", + "type": "embedding", + "base": "SD1.5", + "save_path": "embeddings/SD1.5", + "description": "If you use this embedding with negatives, you can solve the issue of damaging your hands.", + "reference": "https://civitai.com/models/56519/negativehand-negative-embedding", + "filename": "negative_hand-neg.pt", + "url": "https://civitai.com/api/download/models/60938", + "size": "25KB" + }, + { + "name": "bad_prompt Negative Embedding", + "type": "embedding", + "base": "SD1.5", + "save_path": "embeddings/SD1.5", + "description": "The idea behind this embedding was to somehow train the negative prompt as an embedding, thus unifying the basis of the negative prompt into one word or embedding.", + "reference": "https://civitai.com/models/55700/badprompt-negative-embedding", + "filename": "bad_prompt_version2-neg.pt", + "url": "https://civitai.com/api/download/models/60095", + "size": "25KB" + }, + { + "name": "Deep Negative V1.75", + "type": "embedding", + "base": "SD1.5", + "save_path": "embeddings/SD1.5", + "description": "These embedding learn what disgusting compositions and color patterns are, including faulty human anatomy, offensive color schemes, upside-down spatial structures, and more. Placing it in the negative can go a long way to avoiding these things.", + "reference": "https://civitai.com/models/4629/deep-negative-v1x", + "filename": "ng_deepnegative_v1_75t.pt", + "url": "https://civitai.com/api/download/models/5637", + "size": "226KB" + }, + { + "name": "EasyNegative", + "type": "embedding", + "base": "SD1.5", + "save_path": "embeddings/SD1.5", + "description": "This embedding should be used in your NEGATIVE prompt. Adjust the strength as desired (seems to scale well without any distortions), the strength required may vary based on positive and negative prompts.", + "reference": "https://civitai.com/models/7808/easynegative", + "filename": "easynegative.safetensors", + "url": "https://civitai.com/api/download/models/9208", + "size": "25KB" + }, + { + "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_b.safetensors", + "type": "checkpoint", + "base": "Stable Cascade", + "save_path": "checkpoints/Stable-Cascade", + "description": "Stable Cascade stage_b checkpoints", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stable_cascade_stage_b.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_b.safetensors", + "size": "4.55GB" + }, + { + "name": "stabilityai/comfyui_checkpoints/stable_cascade_stage_c.safetensors", + "type": "checkpoint", + "base": "Stable Cascade", + "save_path": "checkpoints/Stable-Cascade", + "description": "Stable Cascade stage_c checkpoints", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stable_cascade_stage_c.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/comfyui_checkpoints/stable_cascade_stage_c.safetensors", + "size": "9.22GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_a.safetensors (VAE)", + "type": "VAE", + "base": "Stable Cascade", + "save_path": "vae/Stable-Cascade", + "description": "Stable Cascade: stage_a", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_a.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_a.safetensors", + "size": "73.7MB" + }, + { + "name": "stabilityai/Stable Cascade: effnet_encoder.safetensors (VAE)", + "type": "VAE", + "base": "Stable Cascade", + "save_path": "vae/Stable-Cascade", + "description": "Stable Cascade: effnet_encoder.\nVAE encoder for stage_c latent.", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "effnet_encoder.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/effnet_encoder.safetensors", + "size": "81.5MB" + }, + { + "name": "stabilityai/Stable Cascade: stage_b.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_b.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b.safetensors", + "size": "6.25GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_b_bf16.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b/bf16", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_b_bf16.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_bf16.safetensors", + "size": "3.13GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b/lite", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_b_lite.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite.safetensors", + "size": "2.80GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_b_lite.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_b/bf16,lite", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_b_lite_bf16.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_b_lite_bf16.safetensors", + "size": "1.40GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_c.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_c.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c.safetensors", + "size": "14.4GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_c_bf16.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c/bf16", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_c_bf16.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors", + "size": "7.18GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c/lite", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_c_lite.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite.safetensors", + "size": "4.12GB" + }, + { + "name": "stabilityai/Stable Cascade: stage_c_lite.safetensors (UNET)", + "type": "diffusion_model", + "base": "Stable Cascade", + "save_path": "diffusion_models/Stable-Cascade", + "description": "Stable Cascade: stage_c/bf16,lite", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "stage_c_lite_bf16.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_lite_bf16.safetensors", + "size": "2.06GB" + }, + { + "name": "stabilityai/Stable Cascade: text_encoder (CLIP)", + "type": "clip", + "base": "Stable Cascade", + "save_path": "text_encoders/Stable-Cascade", + "description": "Stable Cascade: text_encoder", + "reference": "https://huggingface.co/stabilityai/stable-cascade", + "filename": "model.safetensors", + "url": "https://huggingface.co/stabilityai/stable-cascade/resolve/main/text_encoder/model.safetensors", + "size": "1.39GB" + }, + { + "name": "SDXL-Turbo 1.0 (fp16)", + "type": "checkpoint", + "base": "SDXL", + "save_path": "checkpoints/SDXL-TURBO", + "description": "SDXL-Turbo 1.0 fp16", + "reference": "https://huggingface.co/stabilityai/sdxl-turbo", + "filename": "sd_xl_turbo_1.0_fp16.safetensors", + "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0_fp16.safetensors", + "size": "6.94GB" + }, + { + "name": "SDXL-Turbo 1.0", + "type": "checkpoint", + "base": "SDXL", + "save_path": "checkpoints/SDXL-TURBO", + "description": "SDXL-Turbo 1.0", + "reference": "https://huggingface.co/stabilityai/sdxl-turbo", + "filename": "sd_xl_turbo_1.0.safetensors", + "url": "https://huggingface.co/stabilityai/sdxl-turbo/resolve/main/sd_xl_turbo_1.0.safetensors", + "size": "13.9GB" + }, + { + "name": "sd_xl_base_1.0_0.9vae.safetensors", + "type": "checkpoint", + "base": "SDXL", + "save_path": "checkpoints/SDXL", + "description": "Stable Diffusion XL base model (VAE 0.9)", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0", + "filename": "sd_xl_base_1.0_0.9vae.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0_0.9vae.safetensors", + "size": "6.94GB" + }, + { + "name": "sd_xl_base_1.0.safetensors", + "type": "checkpoint", + "base": "SDXL", + "save_path": "checkpoints/SDXL", + "description": "Stable Diffusion XL base model", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0", + "filename": "sd_xl_base_1.0.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors", + "size": "6.94GB" + }, + { + "name": "sd_xl_refiner_1.0_0.9vae.safetensors", + "type": "checkpoint", + "base": "SDXL", + "save_path": "checkpoints/SDXL", + "description": "Stable Diffusion XL refiner model (VAE 0.9)", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0", + "filename": "sd_xl_refiner_1.0_0.9vae.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0_0.9vae.safetensors", + "size": "6.08GB" + }, + { + "name": "stable-diffusion-xl-refiner-1.0", + "type": "checkpoint", + "base": "SDXL", + "save_path": "checkpoints/SDXL", + "description": "Stable Diffusion XL refiner model", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0", + "filename": "sd_xl_refiner_1.0.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors", + "size": "6.08GB" + }, + { + "name": "diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (diffusion_models/fp16)", + "type": "diffusion_model", + "base": "SDXL", + "save_path": "diffusion_models/xl-inpaint-0.1", + "description": "Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.", + "reference": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1", + "filename": "diffusion_pytorch_model.fp16.safetensors", + "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.fp16.safetensors", + "size": "5.14GB" + }, + { + "name": "diffusers/stable-diffusion-xl-1.0-inpainting-0.1 (UNET)", + "type": "diffusion_model", + "base": "SDXL", + "save_path": "diffusion_models/xl-inpaint-0.1", + "description": "Stable Diffusion XL inpainting model 0.1. You need UNETLoader instead of CheckpointLoader.", + "reference": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/diffusers/stable-diffusion-xl-1.0-inpainting-0.1/resolve/main/unet/diffusion_pytorch_model.safetensors", + "size": "10.3GB" + }, + { + "name": "sd_xl_offset_example-lora_1.0.safetensors", + "type": "lora", + "base": "SDXL", + "save_path": "loras/SDXL", + "description": "Stable Diffusion XL offset LoRA", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0", + "filename": "sd_xl_offset_example-lora_1.0.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_offset_example-lora_1.0.safetensors", + "size": "49.6MB" + }, + + { + "name": "SDXL Lightning LoRA (2steps)", + "type": "lora", + "base": "SDXL", + "save_path": "loras/SDXL-Lightning", + "description": "SDXL Lightning LoRA (2steps)", + "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", + "filename": "sdxl_lightning_2step_lora.safetensors", + "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_2step_lora.safetensors", + "size": "393.9MB" + }, + { + "name": "SDXL Lightning LoRA (4steps)", + "type": "lora", + "base": "SDXL", + "save_path": "loras/SDXL-Lightning", + "description": "SDXL Lightning LoRA (4steps)", + "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", + "filename": "sdxl_lightning_4step_lora.safetensors", + "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_4step_lora.safetensors", + "size": "393.9MB" + }, + { + "name": "SDXL Lightning LoRA (8steps)", + "type": "lora", + "base": "SDXL", + "save_path": "loras/SDXL-Lightning", + "description": "SDXL Lightning LoRA (8steps)", + "reference": "https://huggingface.co/ByteDance/SDXL-Lightning", + "filename": "sdxl_lightning_8step_lora.safetensors", + "url": "https://huggingface.co/ByteDance/SDXL-Lightning/resolve/main/sdxl_lightning_8step_lora.safetensors", + "size": "393.9MB" + }, + + { + "name": "DMD2 LoRA (4steps)", + "type": "lora", + "base": "SDXL", + "save_path": "loras/DMD2", + "description": "DMD2 LoRA (4steps)", + "reference": "https://huggingface.co/tianweiy/DMD2", + "filename": "dmd2_sdxl_4step_lora.safetensors", + "url": "https://huggingface.co/tianweiy/DMD2/resolve/main/dmd2_sdxl_4step_lora.safetensors", + "size": "787MB" + }, + { + "name": "DMD2 LoRA (4steps/fp16)", + "type": "lora", + "base": "SDXL", + "save_path": "loras/DMD2", + "description": "DMD2 LoRA (4steps/fp16)", + "reference": "https://huggingface.co/tianweiy/DMD2", + "filename": "dmd2_sdxl_4step_lora_fp16.safetensors", + "url": "https://huggingface.co/tianweiy/DMD2/resolve/main/dmd2_sdxl_4step_lora_fp16.safetensors", + "size": "394MB" + }, + + { + "name": "Hyper-SD LoRA (8steps) - FLUX.1 [Dev]", + "type": "lora", + "base": "FLUX.1", + "save_path": "loras/HyperSD/FLUX.1", + "description": "Hyper-SD LoRA (8steps) - FLUX.1 [Dev]", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-FLUX.1-dev-8steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-FLUX.1-dev-8steps-lora.safetensors", + "size": "1.39GB" + }, + { + "name": "Hyper-SD LoRA (16steps) - FLUX.1 [Dev]", + "type": "lora", + "base": "FLUX.1", + "save_path": "loras/HyperSD/FLUX.1", + "description": "Hyper-SD LoRA (16steps) - FLUX.1 [Dev]", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-FLUX.1-dev-16steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-FLUX.1-dev-16steps-lora.safetensors", + "size": "1.39GB" + }, + + { + "name": "Hyper-SD LoRA (1step) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (1step) - SD1.5", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-1step-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-1step-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD LoRA (2steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (2steps) - SD1.5", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-2steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-2steps-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD LoRA (4steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (4steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-4steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-4steps-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD LoRA (8steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD LoRA (8steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-8steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-8steps-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD CFG LoRA (8steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD CFG LoRA (8steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-8steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-8steps-CFG-lora.safetensors", + "size": "269MB" + }, + { + "name": "Hyper-SD CFG LoRA (12steps) - SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/HyperSD/SD15", + "description": "Hyper-SD CFG LoRA (12steps)", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD15-12steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD15-12steps-CFG-lora.safetensors", + "size": "269MB" + }, + + { + "name": "Hyper-SD LoRA (1step) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (1step) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-1step-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-1step-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD LoRA (2steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (2steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-2steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-2steps-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD LoRA (4steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (4steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-4steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-4steps-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD LoRA (8steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD LoRA (8steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-8steps-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-8steps-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD CFG LoRA (8steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD CFG LoRA (8steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-8steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-8steps-CFG-lora.safetensors", + "size": "787MB" + }, + { + "name": "Hyper-SD CFG LoRA (12steps) - SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/HyperSD/SDXL", + "description": "Hyper-SD CFG LoRA (12steps) - SDXL", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SDXL-12steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SDXL-12steps-CFG-lora.safetensors", + "size": "787MB" + }, + + { + "name": "Hyper-SD CFG LoRA (4steps) - SD3", + "type": "lora", + "base": "SD3", + "save_path": "loras/HyperSD/SD3", + "description": "Hyper-SD CFG LoRA (4steps) - SD3", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD3-4steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD3-4steps-CFG-lora.safetensors", + "size": "472MB" + }, + { + "name": "Hyper-SD CFG LoRA (8steps) - SD3", + "type": "lora", + "base": "SD3", + "save_path": "loras/HyperSD/SD3", + "description": "Hyper-SD CFG LoRA (8steps) - SD3", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD3-8steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD3-8steps-CFG-lora.safetensors", + "size": "472MB" + }, + { + "name": "Hyper-SD CFG LoRA (16steps) - SD3", + "type": "lora", + "base": "SD3", + "save_path": "loras/HyperSD/SD3", + "description": "Hyper-SD CFG LoRA (16steps) - SD3", + "reference": "https://huggingface.co/ByteDance/Hyper-SD", + "filename": "Hyper-SD3-16steps-CFG-lora.safetensors", + "url": "https://huggingface.co/ByteDance/Hyper-SD/resolve/main/Hyper-SD3-16steps-CFG-lora.safetensors", + "size": "472MB" + }, + + { + "name": "comfyanonymous/flux_text_encoders - t5xxl (fp16)", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "Text Encoders for FLUX (fp16)", + "reference": "https://huggingface.co/comfyanonymous/flux_text_encoders", + "filename": "t5xxl_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors", + "size": "9.79GB" + }, + { + "name": "comfyanonymous/flux_text_encoders - t5xxl (fp8_e4m3fn)", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "Text Encoders for FLUX (fp8_e4m3fn)", + "reference": "https://huggingface.co/comfyanonymous/flux_text_encoders", + "filename": "t5xxl_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors", + "size": "4.89GB" + }, + { + "name": "comfyanonymous/flux_text_encoders - t5xxl (fp8_e4m3fn_scaled)", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "Text Encoders for FLUX (fp16)", + "reference": "https://huggingface.co/comfyanonymous/flux_text_encoders", + "filename": "t5xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn_scaled.safetensors", + "size": "5.16GB" + }, + + { + "name": "comfyanonymous/cosmos_cv8x8x8_1.0.safetensors", + "type": "VAE", + "base": "Cosmos-1.0", + "save_path": "default", + "description": "VAE model for Cosmos 1.0", + "reference": "https://huggingface.co/comfyanonymous/cosmos_1.0_text_encoder_and_VAE_ComfyUI/tree/main", + "filename": "cosmos_cv8x8x8_1.0.safetensors", + "url": "https://huggingface.co/comfyanonymous/cosmos_1.0_text_encoder_and_VAE_ComfyUI/resolve/main/vae/cosmos_cv8x8x8_1.0.safetensors", + "size": "211MB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Text2World Diffusion Model (7B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-7B-Text2World.safetensors", + "size": "14.5GB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Video2World Diffusion Model (7B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-7B-Video2World.safetensors", + "size": "14.5GB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Text2World Diffusion Model (14B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-14B-Text2World.safetensors", + "size": "28.5GB" + }, + { + "name": "mcmonkey/Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "type": "diffusion_model", + "base": "Cosmos-1.0", + "save_path": "diffusion_models/cosmos-1.0", + "description": "Cosmos 1.0 Video2World Diffusion Model (14B)", + "reference": "https://huggingface.co/mcmonkey/cosmos-1.0", + "filename": "Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "url": "https://huggingface.co/mcmonkey/cosmos-1.0/resolve/main/Cosmos-1_0-Diffusion-14B-Video2World.safetensors", + "size": "28.5GB" + }, + + { + "name": "google-t5/t5-base", + "type": "clip", + "base": "t5-base", + "save_path": "text_encoders/t5-base", + "description": "T5 Base: Text-To-Text Transfer Transformer. This model can be loaded via CLIPLoader for Stable Audio workflow.", + "reference": "https://huggingface.co/google-t5/t5-base", + "filename": "model.safetensors", + "url": "https://huggingface.co/google-t5/t5-base/resolve/main/model.safetensors", + "size": "892MB" + }, + { + "name": "google-t5/t5-v1_1-xxl_encoderonly-fp16", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "The encoder part of https://huggingface.co/google/t5-v1_1-xxl, used with SD3 and Flux1", + "reference": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly", + "filename": "google_t5-v1_1-xxl_encoderonly-fp16.safetensors", + "url": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly/resolve/main/model.safetensors", + "size": "10.1GB" + }, + { + "name": "google-t5/t5-v1_1-xxl_encoderonly-fp8_e4m3fn", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "The encoder part of https://huggingface.co/google/t5-v1_1-xxl, used with SD3 and Flux1", + "reference": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly", + "filename": "google_t5-v1_1-xxl_encoderonly-fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/mcmonkey/google_t5-v1_1-xxl_encoderonly/resolve/main/t5xxl_fp8_e4m3fn.safetensors", + "size": "4.89GB" + }, + + + { + "name": "city96/t5-v1_1-xxl-encoder-Q3_K_L.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q3_K_L quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q3_K_L.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q3_K_L.gguf", + "size": "2.46GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q3_K_M.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q3_K_M quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q3_K_M.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q3_K_M.gguf", + "size": "2.3GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q3_K_S.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q3_K_S quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q3_K_S.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q3_K_S.gguf", + "size": "2.1GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q4_K_M.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q4_K_M quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q4_K_M.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q4_K_M.gguf", + "size": "2.9GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q4_K_S.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q4_K_S quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q4_K_S.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q4_K_S.gguf", + "size": "2.74GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q5_K_M.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q5_K_M quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q5_K_M.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q5_K_M.gguf", + "size": "3.39GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q5_K_S.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q5_K_S quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q5_K_S.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q5_K_S.gguf", + "size": "3.29GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q6_K.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q6_K quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q6_K.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q6_K.gguf", + "size": "3.91GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-Q8_0.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (Q8_0 quantized)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-Q8_0.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-Q8_0.gguf", + "size": "5.06GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-f16.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (float 16)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-f16.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-f16.gguf", + "size": "9.53GB" + }, + { + "name": "city96/t5-v1_1-xxl-encoder-f32.gguf", + "type": "clip", + "base": "t5", + "save_path": "text_encoders/t5", + "description": "t5xxl Text Encoder GGUF model. (float 32)", + "reference": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf", + "filename": "t5-v1_1-xxl-encoder-f32.gguf", + "url": "https://huggingface.co/city96/t5-v1_1-xxl-encoder-gguf/resolve/main/t5-v1_1-xxl-encoder-f32.gguf", + "size": "19.1GB" + }, + + { + "name": "Comfy-Org/clip_l", + "type": "clip", + "base": "clip", + "save_path": "default", + "description": "clip_l model (for SD1.x, SD2.x, SDXL, SD3.5, FLUX.1, HunyuanVideo, ...) ", + "reference": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8", + "filename": "clip_l.safetensors", + "url": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8/resolve/main/text_encoders/clip_l.safetensors", + "size": "246MB" + }, + { + "name": "Comfy-Org/clip_g", + "type": "clip", + "base": "clip", + "save_path": "default", + "description": "clip_g model (for SDXL, SD3.5)", + "reference": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8", + "filename": "clip_g.safetensors", + "url": "https://huggingface.co/Comfy-Org/stable-diffusion-3.5-fp8/resolve/main/text_encoders/clip_g.safetensors", + "size": "1.39GB" + }, + + { + "name": "v1-5-pruned-emaonly.ckpt", + "type": "checkpoint", + "base": "SD1.5", + "save_path": "checkpoints/SD1.5", + "description": "Stable Diffusion 1.5 base model", + "reference": "https://huggingface.co/runwayml/stable-diffusion-v1-5", + "filename": "v1-5-pruned-emaonly.ckpt", + "url": "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt", + "size": "4.27GB" + }, + { + "name": "v2-1_512-ema-pruned.safetensors", + "type": "checkpoint", + "base": "SD2", + "save_path": "checkpoints/SD2.1", + "description": "Stable Diffusion 2 base model (512)", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-2-1-base", + "filename": "v2-1_512-ema-pruned.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.safetensors", + "size": "5.21GB" + }, + { + "name": "v2-1_768-ema-pruned.safetensors", + "type": "checkpoint", + "base": "SD2", + "save_path": "checkpoints/SD2.1", + "description": "Stable Diffusion 2 base model (768)", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-2-1", + "filename": "v2-1_768-ema-pruned.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors", + "size": "5.21GB" + }, + { + "name": "AbyssOrangeMix2 (hard)", + "type": "checkpoint", + "base": "SD1.5", + "save_path": "checkpoints/SD1.5", + "description": "AbyssOrangeMix2 - hard version (anime style)", + "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", + "filename": "AbyssOrangeMix2_hard.safetensors", + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix2/AbyssOrangeMix2_hard.safetensors", + "size": "5.57GB" + }, + { + "name": "AbyssOrangeMix3 A1", + "type": "checkpoint", + "base": "SD1.5", + "save_path": "checkpoints/SD1.5", + "description": "AbyssOrangeMix3 - A1 (anime style)", + "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", + "filename": "AOM3A1_orangemixs.safetensors", + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A1_orangemixs.safetensors", + "size": "2.13GB" + }, + { + "name": "AbyssOrangeMix3 A3", + "type": "checkpoint", + "base": "SD1.5", + "save_path": "checkpoints/SD1.5", + "description": "AbyssOrangeMix - A3 (anime style)", + "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", + "filename": "AOM3A3_orangemixs.safetensors", + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/Models/AbyssOrangeMix3/AOM3A3_orangemixs.safetensors", + "size": "2.13GB" + }, + { + "name": "Waifu Diffusion 1.5 Beta3 (fp16)", + "type": "checkpoint", + "base": "SD2.1", + "save_path": "checkpoints/SD2.1", + "description": "Waifu Diffusion 1.5 Beta3", + "reference": "https://huggingface.co/waifu-diffusion/wd-1-5-beta3", + "filename": "wd-illusion-fp16.safetensors", + "url": "https://huggingface.co/waifu-diffusion/wd-1-5-beta3/resolve/main/wd-illusion-fp16.safetensors", + "size": "2.58GB" + }, + { + "name": "illuminatiDiffusionV1_v11 unCLIP model", + "type": "unclip", + "base": "SD2.1", + "save_path": "checkpoints/SD2.1", + "description": "Mix model (SD2.1 unCLIP + illuminatiDiffusionV1_v11)", + "reference": "https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP", + "filename": "illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/illuminatiDiffusionV1_v11_unCLIP/resolve/main/illuminatiDiffusionV1_v11-unclip-h-fp16.safetensors", + "size": "3.98GB" + }, + { + "name": "Waifu Diffusion 1.5 unCLIP model", + "type": "unclip", + "base": "SD2.1", + "save_path": "checkpoints/SD2.1", + "description": "Mix model (SD2.1 unCLIP + Waifu Diffusion 1.5)", + "reference": "https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP", + "filename": "wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/wd-1.5-beta2_unCLIP/resolve/main/wd-1-5-beta2-aesthetic-unclip-h-fp16.safetensors", + "size": "3.98GB" + }, + { + "name": "sdxl_vae.safetensors", + "type": "VAE", + "base": "SDXL", + "save_path": "vae/SDXL", + "description": "SDXL-VAE", + "reference": "https://huggingface.co/stabilityai/sdxl-vae", + "filename": "sdxl_vae.safetensors", + "url": "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors", + "size": "334.6MB" + }, + { + "name": "vae-ft-mse-840000-ema-pruned", + "type": "VAE", + "base": "SD1.5", + "save_path": "vae/SD1.5", + "description": "vae-ft-mse-840000-ema-pruned", + "reference": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original", + "filename": "vae-ft-mse-840000-ema-pruned.safetensors", + "url": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors", + "size": "334.6MB" + }, + { + "name": "orangemix.vae", + "type": "VAE", + "base": "SD1.5", + "save_path": "vae/SD1.5", + "description": "orangemix vae model", + "reference": "https://huggingface.co/WarriorMama777/OrangeMixs", + "filename": "orangemix.vae.pt", + "url": "https://huggingface.co/WarriorMama777/OrangeMixs/resolve/main/VAEs/orangemix.vae.pt", + "size": "822.8MB" + }, + { + "name": "kl-f8-anime2", + "type": "VAE", + "base": "SD2.1", + "save_path": "vae/SD2.1", + "description": "kl-f8-anime2 vae model", + "reference": "https://huggingface.co/hakurei/waifu-diffusion-v1-4", + "filename": "kl-f8-anime2.ckpt", + "url": "https://huggingface.co/hakurei/waifu-diffusion-v1-4/resolve/main/vae/kl-f8-anime2.ckpt", + "size": "404.7MB" + }, + { + "name": "OpenAI Consistency Decoder", + "type": "VAE", + "base": "SD1.5", + "save_path": "vae/SD1.5/openai_consistency_decoder", + "description": "OpenAI Consistency Decoder. Improved decoding for stable diffusion vaes.", + "reference": "https://github.com/openai/consistencydecoder", + "filename": "decoder.pt", + "url": "https://openaipublic.azureedge.net/diff-vae/c9cebd3132dd9c42936d803e33424145a748843c8f716c0814838bdc8a2fe7cb/decoder.pt", + "size": "2.49GB" + }, + { + "name": "LCM LoRA SD1.5", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/SD1.5/lcm", + "description": "Latent Consistency LoRA for SD1.5", + "reference": "https://huggingface.co/latent-consistency/lcm-lora-sdv1-5", + "filename": "pytorch_lora_weights.safetensors", + "url": "https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/resolve/main/pytorch_lora_weights.safetensors", + "size": "134.6MB" + }, + { + "name": "LCM LoRA SSD-1B", + "type": "lora", + "base": "SSD-1B", + "save_path": "loras/SSD-1B/lcm", + "description": "Latent Consistency LoRA for SSD-1B", + "reference": "https://huggingface.co/latent-consistency/lcm-lora-ssd-1b", + "filename": "pytorch_lora_weights.safetensors", + "url": "https://huggingface.co/latent-consistency/lcm-lora-ssd-1b/resolve/main/pytorch_lora_weights.safetensors", + "size": "210.0MB" + }, + { + "name": "LCM LoRA SDXL", + "type": "lora", + "base": "SDXL", + "save_path": "loras/SDXL/lcm", + "description": "Latent Consistency LoRA for SDXL", + "reference": "https://huggingface.co/latent-consistency/lcm-lora-sdxl", + "filename": "pytorch_lora_weights.safetensors", + "url": "https://huggingface.co/latent-consistency/lcm-lora-sdxl/resolve/main/pytorch_lora_weights.safetensors", + "size": "393.9MB" + }, + { + "name": "Segmind-Vega", + "type": "checkpoint", + "base": "segmind-vega", + "save_path": "checkpoints/segmind-vega", + "description": "The Segmind-Vega Model is a distilled version of the Stable Diffusion XL (SDXL), offering a remarkable 70% reduction in size and an impressive 100% speedup while retaining high-quality text-to-image generation capabilities.", + "reference": "https://huggingface.co/segmind/Segmind-Vega", + "filename": "segmind-vega.safetensors", + "url": "https://huggingface.co/segmind/Segmind-Vega/resolve/main/segmind-vega.safetensors", + "size": "3.29GB" + }, + { + "name": "Segmind-VegaRT - Latent Consistency Model (LCM) LoRA of Segmind-Vega", + "type": "lora", + "base": "segmind-vega", + "save_path": "loras/segmind-vega", + "description": "Segmind-VegaRT a distilled consistency adapter for Segmind-Vega that allows to reduce the number of inference steps to only between 2 - 8 steps.", + "reference": "https://huggingface.co/segmind/Segmind-VegaRT", + "filename": "pytorch_lora_weights.safetensors", + "url": "https://huggingface.co/segmind/Segmind-VegaRT/resolve/main/pytorch_lora_weights.safetensors", + "size": "239.2MB" + }, + { + "name": "Theovercomer8's Contrast Fix (SD2.1)", + "type": "lora", + "base": "SD2.1", + "save_path": "loras/SD2.1", + "description": "LORA: Theovercomer8's Contrast Fix (SD2.1)", + "reference": "https://civitai.com/models/8765/theovercomer8s-contrast-fix-sd15sd21-768", + "filename": "theovercomer8sContrastFix_sd21768.safetensors", + "url": "https://civitai.com/api/download/models/10350", + "size": "163MB" + }, + { + "name": "Theovercomer8's Contrast Fix (SD1.5)", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/SD1.5", + "description": "LORA: Theovercomer8's Contrast Fix (SD1.5)", + "reference": "https://civitai.com/models/8765/theovercomer8s-contrast-fix-sd15sd21-768", + "filename": "theovercomer8sContrastFix_sd15.safetensors", + "url": "https://civitai.com/api/download/models/10638", + "size": "113MB" + }, + { + "name": "T2I-Adapter (depth)", + "type": "T2I-Adapter", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter for depth", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_depth_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_depth_sd14v1.pth", + "size": "309.5MB" + }, + { + "name": "T2I-Adapter (seg)", + "type": "T2I-Adapter", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter for seg", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_seg_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_seg_sd14v1.pth", + "size": "309.5MB" + }, + { + "name": "T2I-Adapter (sketch)", + "type": "T2I-Adapter", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter for sketch", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_sketch_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_sketch_sd14v1.pth", + "size": "308.0MB" + }, + { + "name": "T2I-Adapter (keypose)", + "type": "T2I-Adapter", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter for keypose", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_keypose_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_keypose_sd14v1.pth", + "size": "309.5MB" + }, + { + "name": "T2I-Adapter (openpose)", + "type": "T2I-Adapter", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter for openpose", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_openpose_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_openpose_sd14v1.pth", + "size": "309.5MB" + }, + { + "name": "T2I-Adapter (color)", + "type": "T2I-Adapter", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter for color", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_color_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_color_sd14v1.pth", + "size": "74.8MB" + }, + { + "name": "T2I-Adapter (canny)", + "type": "T2I-Adapter", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter for canny", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_canny_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_canny_sd14v1.pth", + "size": "308.0MB" + }, + { + "name": "T2I-Style model", + "type": "T2I-Style", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "ControlNet T2I-Adapter style model. Need to download CLIPVision model.", + "reference": "https://huggingface.co/TencentARC/T2I-Adapter", + "filename": "t2iadapter_style_sd14v1.pth", + "url": "https://huggingface.co/TencentARC/T2I-Adapter/resolve/main/models/t2iadapter_style_sd14v1.pth", + "size": "154.4MB" + }, + { + "name": "T2I-Adapter XL (lineart) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for lineart", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0", + "filename": "t2i-adapter-lineart-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" + }, + { + "name": "T2I-Adapter XL (canny) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for canny", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0", + "filename": "t2i-adapter-canny-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" + }, + { + "name": "T2I-Adapter XL (depth-zoe) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-zoe", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0", + "filename": "t2i-adapter-depth-zoe-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" + }, + { + "name": "T2I-Adapter XL (depth-midas) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-midas", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0", + "filename": "t2i-adapter-depth-midas-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" + }, + { + "name": "T2I-Adapter XL (sketch) FP16", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for sketch", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0", + "filename": "t2i-adapter-sketch-sdxl-1.0.fp16.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.fp16.safetensors", + "size": "158.1MB" + }, + { + "name": "T2I-Adapter XL (lineart)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for lineart", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0", + "filename": "t2i-adapter-lineart-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-lineart-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" + }, + { + "name": "T2I-Adapter XL (canny)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for canny", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0", + "filename": "t2i-adapter-canny-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" + }, + { + "name": "T2I-Adapter XL (depth-zoe)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-zoe", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0", + "filename": "t2i-adapter-depth-zoe-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-zoe-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" + }, + { + "name": "T2I-Adapter XL (depth-midas)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for depth-midas", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0", + "filename": "t2i-adapter-depth-midas-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-depth-midas-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" + }, + { + "name": "T2I-Adapter XL (sketch)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for sketch", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0", + "filename": "t2i-adapter-sketch-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-sketch-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" + }, + { + "name": "T2I-Adapter XL (openpose)", + "type": "T2I-Adapter", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet T2I-Adapter XL for openpose", + "reference": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0", + "filename": "t2i-adapter-openpose-sdxl-1.0.safetensors", + "url": "https://huggingface.co/TencentARC/t2i-adapter-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "316.1MB" + }, + { + "name": "CiaraRowles/TemporalNet2", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/SD1.5", + "description": "TemporalNet was a ControlNet model designed to enhance the temporal consistency of generated outputs", + "reference": "https://huggingface.co/CiaraRowles/TemporalNet2", + "filename": "temporalnetversion2.safetensors", + "url": "https://huggingface.co/CiaraRowles/TemporalNet2/resolve/main/temporalnetversion2.safetensors", + "size": "5.71GB" + }, + { + "name": "CiaraRowles/TemporalNet1XL (1.0)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/TemporalNet1XL", + "description": "This is TemporalNet1XL, it is a re-train of the controlnet TemporalNet1 with Stable Diffusion XL.", + "reference": "https://huggingface.co/CiaraRowles/controlnet-temporalnet-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/CiaraRowles/controlnet-temporalnet-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "5.00GB" + }, + + { + "name": "Comfy-Org/sigclip_vision_384 (patch14_384)", + "type": "clip_vision", + "base": "sigclip", + "save_path": "clip_vision", + "description": "This clip vision model is required for FLUX.1 Redux.", + "reference": "https://huggingface.co/Comfy-Org/sigclip_vision_384/tree/main", + "filename": "sigclip_vision_patch14_384.safetensors", + "url": "https://huggingface.co/Comfy-Org/sigclip_vision_384/resolve/main/sigclip_vision_patch14_384.safetensors", + "size": "857MB" + }, + + { + "name": "CLIPVision model (stabilityai/clip_vision_g)", + "type": "clip_vision", + "base": "ViT-G", + "save_path": "clip_vision", + "description": "clip_g vision model", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "clip_vision_g.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/revision/clip_vision_g.safetensors", + "size": "3.69GB" + }, + { + "name": "CLIPVision model (openai/clip-vit-large)", + "type": "clip_vision", + "base": "ViT-L", + "save_path": "clip_vision", + "description": "CLIPVision model (needed for styles model)", + "reference": "https://huggingface.co/openai/clip-vit-large-patch14", + "filename": "clip-vit-large-patch14.safetensors", + "url": "https://huggingface.co/openai/clip-vit-large-patch14/resolve/main/model.safetensors", + "size": "1.71GB" + }, + { + "name": "CLIPVision model (Kwai-Kolors/Kolors-IP-Adapter-Plus/clip-vit-large)", + "type": "clip_vision", + "base": "ViT-L", + "save_path": "clip_vision", + "description": "CLIPVision model (needed for IP-Adapter)", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus", + "filename": "clip-vit-large-patch14-336.bin", + "url": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus/resolve/main/image_encoder/pytorch_model.bin", + "size": "1.71GB" + }, + { + "name": "CLIPVision model (IP-Adapter) CLIP-ViT-H-14-laion2B-s32B-b79K", + "type": "clip_vision", + "base": "ViT-H", + "save_path": "clip_vision", + "description": "CLIPVision model (needed for IP-Adapter)", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors", + "size": "2.53GB" + }, + { + "name": "CLIPVision model (IP-Adapter) CLIP-ViT-bigG-14-laion2B-39B-b160k", + "type": "clip_vision", + "base": "ViT-G", + "save_path": "clip_vision", + "description": "CLIPVision model (needed for IP-Adapter)", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/model.safetensors", + "size": "3.69GB" + }, + { + "name": "stabilityai/control-lora-canny-rank128.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: canny rank128", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-canny-rank128.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-canny-rank128.safetensors", + "size": "395.7MB" + }, + { + "name": "stabilityai/control-lora-depth-rank128.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: depth rank128", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-depth-rank128.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-depth-rank128.safetensors", + "size": "395.7MB" + }, + { + "name": "stabilityai/control-lora-recolor-rank128.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: recolor rank128", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-recolor-rank128.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-recolor-rank128.safetensors", + "size": "395.7MB" + }, + { + "name": "stabilityai/control-lora-sketch-rank128-metadata.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: sketch rank128 metadata", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-sketch-rank128-metadata.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank128/control-lora-sketch-rank128-metadata.safetensors", + "size": "395.7MB" + }, + { + "name": "stabilityai/control-lora-canny-rank256.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: canny rank256", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-canny-rank256.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-canny-rank256.safetensors", + "size": "774.5MB" + }, + { + "name": "stabilityai/control-lora-depth-rank256.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: depth rank256", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-depth-rank256.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-depth-rank256.safetensors", + "size": "774.4MB" + }, + { + "name": "stabilityai/control-lora-recolor-rank256.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: recolor rank256", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-recolor-rank256.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-recolor-rank256.safetensors", + "size": "774.4MB" + }, + { + "name": "stabilityai/control-lora-sketch-rank256.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Control-LoRA: sketch rank256", + "reference": "https://huggingface.co/stabilityai/control-lora", + "filename": "control-lora-sketch-rank256.safetensors", + "url": "https://huggingface.co/stabilityai/control-lora/resolve/main/control-LoRAs-rank256/control-lora-sketch-rank256.safetensors", + "size": "774.5MB" + }, + { + "name": "SDXL-controlnet: OpenPose (v2)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet openpose model for SDXL", + "reference": "https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0", + "filename": "OpenPoseXL2.safetensors", + "url": "https://huggingface.co/thibaud/controlnet-openpose-sdxl-1.0/resolve/main/OpenPoseXL2.safetensors", + "size": "5.00GB" + }, + { + "name": "controlnet-SargeZT/controlnet-sd-xl-1.0-softedge-dexined", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet softedge model for SDXL", + "reference": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined", + "filename": "controlnet-sd-xl-1.0-softedge-dexined.safetensors", + "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-softedge-dexined/resolve/main/controlnet-sd-xl-1.0-softedge-dexined.safetensors", + "size": "5.00GB" + }, + { + "name": "controlnet-SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "ControlNet depth-zoe model for SDXL", + "reference": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe", + "filename": "depth-zoe-xl-v1.0-controlnet.safetensors", + "url": "https://huggingface.co/SargeZT/controlnet-sd-xl-1.0-depth-16bit-zoe/resolve/main/depth-zoe-xl-v1.0-controlnet.safetensors", + "size": "5.00GB" + }, + { + "name": "ControlNet-v1-1 (ip2p; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (ip2p)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11e_sd15_ip2p_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_ip2p_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (shuffle; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (shuffle)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11e_sd15_shuffle_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11e_sd15_shuffle_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (canny; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (canny)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_canny_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_canny_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (depth; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (depth)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11f1p_sd15_depth_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1p_sd15_depth_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (inpaint; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (inpaint)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_inpaint_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_inpaint_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (lineart; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (lineart)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_lineart_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_lineart_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (mlsd; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (mlsd)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_mlsd_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_mlsd_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (normalbae; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (normalbae)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_normalbae_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_normalbae_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (openpose; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (openpose)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_openpose_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_openpose_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (scribble; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (scribble)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_scribble_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_scribble_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (seg; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (seg)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_seg_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_seg_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (softedge; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (softedge)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15_softedge_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15_softedge_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (anime; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (anime)", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11p_sd15s2_lineart_anime_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11p_sd15s2_lineart_anime_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (tile; fp16; v11u)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11u", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11u_sd15_tile_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11u_sd15_tile_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-v1-1 (tile; fp16; v11f1e)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Safetensors/FP16 versions of the new ControlNet-v1-1 checkpoints (tile) / v11f1e\nYou need to this model for Tiled Resample", + "reference": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors", + "filename": "control_v11f1e_sd15_tile_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/resolve/main/control_v11f1e_sd15_tile_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "ControlNet-HandRefiner-pruned (inpaint-depth-hand; fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "This inpaint-depth controlnet model is specialized for the hand refiner.", + "reference": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned", + "filename": "control_sd15_inpaint_depth_hand_fp16.safetensors", + "url": "https://huggingface.co/hr16/ControlNet-HandRefiner-pruned/resolve/main/control_sd15_inpaint_depth_hand_fp16.safetensors", + "size": "722.6MB" + }, + { + "name": "control_boxdepth_LooseControlfp16 (fp16)", + "type": "controlnet", + "base": "SD1.5", + "save_path": "controlnet/1.5", + "description": "Loose ControlNet model", + "reference": "https://huggingface.co/ioclab/LooseControl_WebUICombine", + "filename": "control_boxdepth_LooseControlfp16.safetensors", + "url": "https://huggingface.co/ioclab/LooseControl_WebUICombine/resolve/main/control_boxdepth_LooseControlfp16.safetensors", + "size": "722.6MB" + }, + { + "name": "GLIGEN textbox (fp16; pruned)", + "type": "gligen", + "base": "SD1.5", + "save_path": "gligen/SD1.5", + "description": "GLIGEN textbox model", + "reference": "https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors", + "filename": "gligen_sd14_textbox_pruned_fp16.safetensors", + "url": "https://huggingface.co/comfyanonymous/GLIGEN_pruned_safetensors/resolve/main/gligen_sd14_textbox_pruned_fp16.safetensors", + "size": "418.2MB" + }, + { + "name": "ViT-H SAM model", + "type": "sam", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM model (ViT-H)", + "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", + "filename": "sam_vit_h_4b8939.pth", + "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth", + "size": "2.56GB" + }, + { + "name": "ViT-L SAM model", + "type": "sam", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM model (ViT-L)", + "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", + "filename": "sam_vit_l_0b3195.pth", + "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth", + "size": "1.25GB" + }, + { + "name": "ViT-B SAM model", + "type": "sam", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM model (ViT-B)", + "reference": "https://github.com/facebookresearch/segment-anything#model-checkpoints", + "filename": "sam_vit_b_01ec64.pth", + "url": "https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth", + "size": "375.0MB" + }, + + { + "name": "sam2.1_hiera_tiny.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (tiny)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_tiny.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_tiny.pt", + "size": "149.0MB" + }, + { + "name": "sam2.1_hiera_small.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (small)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_small.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_small.pt", + "size": "176.0MB" + }, + { + "name": "sam2.1_hiera_base_plus.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (base+)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_base_plus.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_base_plus.pt", + "size": "309.0MB" + }, + { + "name": "sam2.1_hiera_large.pt", + "type": "sam2.1", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2.1 hiera model (large)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2.1_hiera_large.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/092824/sam2.1_hiera_large.pt", + "size": "857.0MB" + }, + + { + "name": "sam2_hiera_tiny.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (tiny)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_tiny.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt", + "size": "149.0MB" + }, + { + "name": "sam2_hiera_small.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (small)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_small.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt", + "size": "176.0MB" + }, + { + "name": "sam2_hiera_base_plus.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (base+)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_base_plus.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt", + "size": "309.0MB" + }, + { + "name": "sam2_hiera_large.pt", + "type": "sam2", + "base": "SAM", + "save_path": "sams", + "description": "Segmenty Anything SAM 2 hiera model (large)", + "reference": "https://github.com/facebookresearch/sam2#model-description", + "filename": "sam2_hiera_large.pt", + "url": "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt", + "size": "857.0MB" + }, + + { + "name": "seecoder v1.0", + "type": "seecoder", + "base": "SEECODER", + "save_path": "seecoders", + "description": "SeeCoder model", + "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder", + "filename": "seecoder-v1-0.safetensors", + "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-v1-0.safetensors", + "size": "1.18GB" + }, + { + "name": "seecoder pa v1.0", + "type": "seecoder", + "base": "SEECODER", + "save_path": "seecoders", + "description": "SeeCoder model", + "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder", + "filename": "seecoder-pa-v1-0.safetensors", + "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-pa-v1-0.safetensors", + "size": "1.19GB" + }, + { + "name": "seecoder anime v1.0", + "type": "seecoder", + "base": "SEECODER", + "save_path": "seecoders", + "description": "SeeCoder model", + "reference": "https://huggingface.co/shi-labs/prompt-free-diffusion/tree/main/pretrained/pfd/seecoder", + "filename": "seecoder-anime-v1-0.safetensors", + "url": "https://huggingface.co/shi-labs/prompt-free-diffusion/resolve/main/pretrained/pfd/seecoder/seecoder-anime-v1-0.safetensors", + "size": "1.18GB" + }, + { + "name": "face_yolov8m (bbox)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/bbox", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "face_yolov8m.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8m.pt", + "size": "52.0MB" + }, + { + "name": "face_yolov8n (bbox)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/bbox", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "face_yolov8n.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n.pt", + "size": "6.23MB" + }, + { + "name": "face_yolov8n_v2 (bbox)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/bbox", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "face_yolov8n_v2.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8n_v2.pt", + "size": "6.24MB" + }, + { + "name": "face_yolov8s (bbox)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/bbox", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "face_yolov8s.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8s.pt", + "size": "22.5MB" + }, + { + "name": "hand_yolov8n (bbox)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/bbox", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "hand_yolov8n.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8n.pt", + "size": "6.24MB" + }, + { + "name": "hand_yolov8s (bbox)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/bbox", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "hand_yolov8s.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8s.pt", + "size": "22.5MB" + }, + { + "name": "person_yolov8m (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "person_yolov8m-seg.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8m-seg.pt", + "size": "54.8MB" + }, + { + "name": "person_yolov8n (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "person_yolov8n-seg.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8n-seg.pt", + "size": "6.78MB" + }, + { + "name": "person_yolov8s (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "person_yolov8s-seg.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8s-seg.pt", + "size": "23.9MB" + }, + { + "name": "deepfashion2_yolov8s (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://huggingface.co/Bingsu/adetailer/tree/main", + "filename": "deepfashion2_yolov8s-seg.pt", + "url": "https://huggingface.co/Bingsu/adetailer/resolve/main/deepfashion2_yolov8s-seg.pt", + "size": "23.9MB" + }, + { + "name": "face_yolov8m-seg_60.pt (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", + "filename": "face_yolov8m-seg_60.pt", + "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8m-seg_60.pt", + "size": "54.8MB" + }, + { + "name": "face_yolov8n-seg2_60.pt (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", + "filename": "face_yolov8n-seg2_60.pt", + "url": "https://github.com/hben35096/assets/releases/download/yolo8/face_yolov8n-seg2_60.pt", + "size": "6.77MB" + }, + { + "name": "hair_yolov8n-seg_60.pt (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", + "filename": "hair_yolov8n-seg_60.pt", + "url": "https://github.com/hben35096/assets/releases/download/yolo8/hair_yolov8n-seg_60.pt", + "size": "6.77MB" + }, + { + "name": "skin_yolov8m-seg_400.pt (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", + "filename": "skin_yolov8m-seg_400.pt", + "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8m-seg_400.pt", + "size": "54.9MB" + }, + { + "name": "skin_yolov8n-seg_400.pt (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", + "filename": "skin_yolov8n-seg_400.pt", + "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_400.pt", + "size": "6.83MB" + }, + { + "name": "skin_yolov8n-seg_800.pt (segm)", + "type": "Ultralytics", + "base": "Ultralytics", + "save_path": "ultralytics/segm", + "description": "These are the available models in the UltralyticsDetectorProvider of Impact Pack.", + "reference": "https://github.com/hben35096/assets/releases/tag/yolo8", + "filename": "skin_yolov8n-seg_800.pt", + "url": "https://github.com/hben35096/assets/releases/download/yolo8/skin_yolov8n-seg_800.pt", + "size": "6.84MB" + }, + { + "name": "animatediff/mmd_sd_v14.ckpt (comfyui-animatediff) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "AnimateDiff", + "description": "Pressing 'install' directly downloads the model from the ArtVentureX/AnimateDiff extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "mm_sd_v14.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt", + "size": "1.67GB" + }, + { + "name": "animatediff/mm_sd_v15.ckpt (comfyui-animatediff) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "AnimateDiff", + "description": "Pressing 'install' directly downloads the model from the ArtVentureX/AnimateDiff extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "mm_sd_v15.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt", + "size": "1.67GB" + }, + { + "name": "animatediff/mmd_sd_v14.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "mm_sd_v14.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v14.ckpt", + "size": "1.67GB" + }, + { + "name": "animatediff/mm_sd_v15.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "mm_sd_v15.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15.ckpt", + "size": "1.67GB" + }, + { + "name": "animatediff/mm_sd_v15_v2.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "mm_sd_v15_v2.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt", + "size": "1.82GB" + }, + { + "name": "animatediff/v3_sd15_mm.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v3_sd15_mm.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt", + "size": "1.67GB" + }, + { + "name": "animatediff/mm_sdxl_v10_beta.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SDXL", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "mm_sdxl_v10_beta.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/mm_sdxl_v10_beta.ckpt", + "size": "950.1MB" + }, + { + "name": "AD_Stabilized_Motion/mm-Stabilized_high.pth (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/manshoety/AD_Stabilized_Motion", + "filename": "mm-Stabilized_high.pth", + "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_high.pth", + "size": "1.67GB" + }, + { + "name": "AD_Stabilized_Motion/mm-Stabilized_mid.pth (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/manshoety/AD_Stabilized_Motion", + "filename": "mm-Stabilized_mid.pth", + "url": "https://huggingface.co/manshoety/AD_Stabilized_Motion/resolve/main/mm-Stabilized_mid.pth", + "size": "1.67GB" + }, + { + "name": "CiaraRowles/temporaldiff-v1-animatediff.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/CiaraRowles/TemporalDiff", + "filename": "temporaldiff-v1-animatediff.ckpt", + "url": "https://huggingface.co/CiaraRowles/TemporalDiff/resolve/main/temporaldiff-v1-animatediff.ckpt", + "size": "1.67GB" + }, + { + "name": "Leoxing/pia.ckpt", + "type": "animatediff-pia", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "AnimateDiff-PIA Model", + "reference": "https://huggingface.co/Leoxing/PIA/tree/main", + "filename": "pia.ckpt", + "url": "https://huggingface.co/Leoxing/PIA/resolve/main/pia.ckpt", + "size": "1.67GB" + }, + + { + "name": "animatediff/v2_lora_PanLeft.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_PanLeft.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanLeft.ckpt", + "size": "77.5MB" + }, + { + "name": "animatediff/v2_lora_PanRight.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_PanRight.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_PanRight.ckpt", + "size": "77.5MB" + }, + { + "name": "animatediff/v2_lora_RollingAnticlockwise.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_RollingAnticlockwise.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingAnticlockwise.ckpt", + "size": "77.5MB" + }, + { + "name": "animatediff/v2_lora_RollingClockwise.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_RollingClockwise.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_RollingClockwise.ckpt", + "size": "77.5MB" + }, + { + "name": "animatediff/v2_lora_TiltDown.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_TiltDown.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltDown.ckpt", + "size": "77.5MB" + }, + { + "name": "animatediff/v2_lora_TiltUp.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_TiltUp.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_TiltUp.ckpt", + "size": "77.5MB" + }, + { + "name": "animatediff/v2_lora_ZoomIn.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_ZoomIn.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomIn.ckpt", + "size": "77.5MB" + }, + { + "name": "animatediff/v2_lora_ZoomOut.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "motion lora", + "base": "SD1.x", + "save_path": "animatediff_motion_lora", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v2_lora_ZoomOut.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v2_lora_ZoomOut.ckpt", + "size": "77.5MB" + }, + { + "name": "LongAnimatediff/lt_long_mm_32_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", + "filename": "lt_long_mm_32_frames.ckpt", + "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_32_frames.ckpt", + "size": "1.82GB" + }, + { + "name": "LongAnimatediff/lt_long_mm_16_64_frames.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", + "filename": "lt_long_mm_16_64_frames.ckpt", + "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames.ckpt", + "size": "1.83GB" + }, + { + "name": "LongAnimatediff/lt_long_mm_16_64_frames_v1.1.ckpt (ComfyUI-AnimateDiff-Evolved) (Updated path)", + "type": "animatediff", + "base": "SD1.x", + "save_path": "animatediff_models", + "description": "Pressing 'install' directly downloads the model from the Kosinkadink/ComfyUI-AnimateDiff-Evolved extension node.", + "reference": "https://huggingface.co/Lightricks/LongAnimateDiff", + "filename": "lt_long_mm_16_64_frames_v1.1.ckpt", + "url": "https://huggingface.co/Lightricks/LongAnimateDiff/resolve/main/lt_long_mm_16_64_frames_v1.1.ckpt", + "size": "1.83GB" + }, + { + "name": "animatediff/v3_sd15_sparsectrl_rgb.ckpt (ComfyUI-AnimateDiff-Evolved)", + "type": "controlnet", + "base": "SD1.x", + "save_path": "controlnet/SD1.5/animatediff", + "description": "AnimateDiff SparseCtrl RGB ControlNet model", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v3_sd15_sparsectrl_rgb.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_rgb.ckpt", + "size": "1.99GB" + }, + { + "name": "animatediff/v3_sd15_sparsectrl_scribble.ckpt", + "type": "controlnet", + "base": "SD1.x", + "save_path": "controlnet/SD1.5/animatediff", + "description": "AnimateDiff SparseCtrl Scribble ControlNet model", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v3_sd15_sparsectrl_scribble.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_scribble.ckpt", + "size": "1.99GB" + }, + { + "name": "animatediff/v3_sd15_adapter.ckpt", + "type": "lora", + "base": "SD1.x", + "save_path": "loras/SD1.5/animatediff", + "description": "AnimateDiff Adapter LoRA (SD1.5)", + "reference": "https://huggingface.co/guoyww/animatediff", + "filename": "v3_sd15_adapter.ckpt", + "url": "https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_adapter.ckpt", + "size": "102.1MB" + }, + { + "name": "TencentARC/motionctrl.pth", + "type": "checkpoint", + "base": "MotionCtrl", + "save_path": "checkpoints/motionctrl", + "description": "To use the ComfyUI-MotionCtrl extension, downloading this model is required.", + "reference": "https://huggingface.co/TencentARC/MotionCtrl", + "filename": "motionctrl.pth", + "url": "https://huggingface.co/TencentARC/MotionCtrl/resolve/main/motionctrl.pth", + "size": "4.02GB" + }, + { + "name": "ip-adapter_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sd15.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors", + "size": "44.6MB" + }, + { + "name": "ip-adapter_sd15_light_v11.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sd15_light_v11.bin", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light_v11.bin", + "size": "44.6MB" + }, + { + "name": "ip-adapter_sd15_light.safetensors [DEPRECATED]", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sd15_light.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light.safetensors", + "size": "44.6MB" + }, + { + "name": "ip-adapter-plus_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter-plus_sd15.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors", + "size": "98.2MB" + }, + { + "name": "ip-adapter-plus-face_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter-plus-face_sd15.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.safetensors", + "size": "98.2MB" + }, + { + "name": "ip-adapter-full-face_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter-full-face_sd15.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-full-face_sd15.safetensors", + "size": "43.6MB" + }, + { + "name": "ip-adapter_sd15_vit-G.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sd15_vit-G.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_vit-G.safetensors", + "size": "46.2MB" + }, + { + "name": "ip-adapter-faceid_sd15.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin", + "size": "96.7MB" + }, + { + "name": "ip-adapter-faceid-plusv2_sd15.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus V2 Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15.bin", + "size": "156.6MB" + }, + { + "name": "ip-adapter-faceid-plus_sd15.bin [DEPRECATED]", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plus_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15.bin", + "size": "156.6MB" + }, + { + "name": "ip-adapter-faceid-portrait-v11_sd15.bin", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait V11 Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait-v11_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait-v11_sd15.bin", + "size": "64.6MB" + }, + { + "name": "ip-adapter-faceid-portrait_sd15.bin [DEPRECATED]", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait_sd15.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sd15.bin", + "size": "64.6MB" + }, + { + "name": "ip-adapter-faceid_sdxl.bin", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl.bin", + "size": "1.07GB" + }, + { + "name": "ip-adapter-faceid-plusv2_sdxl.bin", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Plus Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl.bin", + "size": "1.49GB" + }, + { + "name": "ip-adapter-faceid-portrait_sdxl.bin", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait_sdxl.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl.bin", + "size": "749.8MB" + }, + { + "name": "ip-adapter-faceid-portrait_sdxl_unnorm.bin", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "IP-Adapter-FaceID Portrait Model (SDXL/unnorm) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-portrait_sdxl_unnorm.bin", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-portrait_sdxl_unnorm.bin", + "size": "1.01GB" + }, + { + "name": "ip-adapter-faceid_sd15_lora.safetensors", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID LoRA Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sd15_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15_lora.safetensors", + "size": "51.1MB" + }, + { + "name": "ip-adapter-faceid-plus_sd15_lora.safetensors [DEPRECATED]", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID Plus LoRA Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plus_sd15_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plus_sd15_lora.safetensors", + "size": "51.1MB" + }, + { + "name": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", + "type": "lora", + "base": "SD1.5", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SD1.5) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sd15_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors", + "size": "51.1MB" + }, + { + "name": "ip-adapter-faceid_sdxl_lora.safetensors", + "type": "lora", + "base": "SDXL", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID LoRA Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid_sdxl_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors", + "size": "371.8MB" + }, + { + "name": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "type": "lora", + "base": "SDXL", + "save_path": "loras/ipadapter", + "description": "IP-Adapter-FaceID-Plus V2 LoRA Model (SDXL) [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter-FaceID", + "filename": "ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors", + "size": "371.8MB" + }, + { + "name": "ip-adapter_sdxl.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sdxl.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors", + "size": "702.6MB" + }, + { + "name": "ip-adapter_sdxl_vit-h.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter_sdxl_vit-h.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors", + "size": "698.4MB" + }, + { + "name": "ip-adapter-plus_sdxl_vit-h.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter-plus_sdxl_vit-h.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors", + "size": "847.5MB" + }, + { + "name": "ip-adapter-plus-face_sdxl_vit-h.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "This model requires the use of the SD1.5 encoder despite being for SDXL checkpoints [ipadapter]", + "reference": "https://huggingface.co/h94/IP-Adapter", + "filename": "ip-adapter-plus-face_sdxl_vit-h.safetensors", + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors", + "size": "847.5MB" + }, + { + "name": "ip_plus_composition_sd15.safetensors", + "type": "IP-Adapter", + "base": "SD1.5", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/ostris/ip-composition-adapter", + "filename": "ip_plus_composition_sd15.safetensors", + "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sd15.safetensors", + "size": "98.2MB" + }, + { + "name": "ip_plus_composition_sdxl.safetensors", + "type": "IP-Adapter", + "base": "SDXL", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/ostris/ip-composition-adapter", + "filename": "ip_plus_composition_sdxl.safetensors", + "url": "https://huggingface.co/ostris/ip-composition-adapter/resolve/main/ip_plus_composition_sdxl.safetensors", + "size": "847.5MB" + }, + { + "name": "Kolors-IP-Adapter-Plus.bin (Kwai-Kolors/Kolors-IP-Adapter-Plus)", + "type": "IP-Adapter", + "base": "Kolors", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus", + "filename": "Kolors-IP-Adapter-Plus.bin", + "url": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus/resolve/main/ip_adapter_plus_general.bin", + "size": "1.01GB" + }, + { + "name": "Kolors-IP-Adapter-FaceID-Plus.bin (Kwai-Kolors/Kolors-IP-Adapter-Plus)", + "type": "IP-Adapter", + "base": "Kolors", + "save_path": "ipadapter", + "description": "You can use this model in the [a/ComfyUI IPAdapter plus](https://github.com/cubiq/ComfyUI_IPAdapter_plus) extension.", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-FaceID-Plus", + "filename": "Kolors-IP-Adapter-FaceID-Plus.bin", + "url": "https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-FaceID-Plus/resolve/main/ipa-faceid-plus.bin", + "size": "2.39GB" + }, + + + + { + "name": "GFPGANv1.4.pth", + "type": "GFPGAN", + "base": "GFPGAN", + "save_path": "facerestore_models", + "description": "Face Restoration Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", + "reference": "https://github.com/TencentARC/GFPGAN/releases", + "filename": "GFPGANv1.4.pth", + "url": "https://github.com/TencentARC/GFPGAN/releases/download/v1.3.4/GFPGANv1.4.pth", + "size": "348.6MB" + }, + { + "name": "codeformer.pth", + "type": "CodeFormer", + "base": "CodeFormer", + "save_path": "facerestore_models", + "description": "Face Restoration Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", + "reference": "https://github.com/sczhou/CodeFormer/releases", + "filename": "codeformer.pth", + "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/codeformer.pth", + "size": "376.6MB" + }, + { + "name": "detection_Resnet50_Final.pth", + "type": "facexlib", + "base": "facexlib", + "save_path": "facerestore_models", + "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", + "reference": "https://github.com/xinntao/facexlib", + "filename": "detection_Resnet50_Final.pth", + "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth", + "size": "109.5MB" + }, + { + "name": "detection_mobilenet0.25_Final.pth", + "type": "facexlib", + "base": "facexlib", + "save_path": "facerestore_models", + "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", + "reference": "https://github.com/xinntao/facexlib", + "filename": "detection_mobilenet0.25_Final.pth", + "url": "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_mobilenet0.25_Final.pth", + "size": "1.79MB" + }, + { + "name": "yolov5l-face.pth", + "type": "facexlib", + "base": "facexlib", + "save_path": "facedetection", + "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", + "reference": "https://github.com/xinntao/facexlib", + "filename": "yolov5l-face.pth", + "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5l-face.pth", + "size": "187.0MB" + }, + { + "name": "yolov5n-face.pth", + "type": "facexlib", + "base": "facexlib", + "save_path": "facedetection", + "description": "Face Detection Models. Download the model required for using the 'Facerestore CF (Code Former)' custom node.", + "reference": "https://github.com/xinntao/facexlib", + "filename": "yolov5n-face.pth", + "url": "https://github.com/sczhou/CodeFormer/releases/download/v0.1.0/yolov5n-face.pth", + "size": "7.15MB" + }, + { + "name": "photomaker-v1.bin", + "type": "photomaker", + "base": "SDXL", + "save_path": "photomaker", + "description": "PhotoMaker model. This model is compatible with SDXL.", + "reference": "https://huggingface.co/TencentARC/PhotoMaker", + "filename": "photomaker-v1.bin", + "url": "https://huggingface.co/TencentARC/PhotoMaker/resolve/main/photomaker-v1.bin", + "size": "934.1MB" + }, + { + "name": "photomaker-v2.bin", + "type": "photomaker", + "base": "SDXL", + "save_path": "photomaker", + "description": "PhotoMaker model. This model is compatible with SDXL.", + "reference": "https://huggingface.co/TencentARC/PhotoMaker-V2", + "filename": "photomaker-v2.bin", + "url": "https://huggingface.co/TencentARC/PhotoMaker-V2/resolve/main/photomaker-v2.bin", + "size": "1.8GB" + }, + { + "name": "1k3d68.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/antelopev2", + "description": "Antelopev2 1k3d68.onnx model for InstantId. (InstantId needs all Antelopev2 models)", + "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", + "filename": "1k3d68.onnx", + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/1k3d68.onnx", + "size": "143.6MB" + }, + { + "name": "2d106det.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/antelopev2", + "description": "Antelopev2 2d106det.onnx model for InstantId. (InstantId needs all Antelopev2 models)", + "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", + "filename": "2d106det.onnx", + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/2d106det.onnx", + "size": "5.03MB" + }, + { + "name": "genderage.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/antelopev2", + "description": "Antelopev2 genderage.onnx model for InstantId. (InstantId needs all Antelopev2 models)", + "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", + "filename": "genderage.onnx", + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/genderage.onnx", + "size": "1.32MB" + }, + { + "name": "glintr100.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/antelopev2", + "description": "Antelopev2 glintr100.onnx model for InstantId. (InstantId needs all Antelopev2 models)", + "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", + "filename": "glintr100.onnx", + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/glintr100.onnx", + "size": "260.7MB" + }, + { + "name": "scrfd_10g_bnkps.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/antelopev2", + "description": "Antelopev2 scrfd_10g_bnkps.onnx model for InstantId. (InstantId needs all Antelopev2 models)", + "reference": "https://github.com/cubiq/ComfyUI_InstantID#installation", + "filename": "scrfd_10g_bnkps.onnx", + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/scrfd_10g_bnkps.onnx", + "size": "16.9MB" + }, + { + "name": "ip-adapter.bin", + "type": "instantid", + "base": "SDXL", + "save_path": "instantid", + "description": "InstantId main model based on IpAdapter", + "reference": "https://huggingface.co/InstantX/InstantID", + "filename": "ip-adapter.bin", + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin", + "size": "1.69GB" + }, + { + "name": "diffusion_pytorch_model.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/instantid", + "description": "InstantId controlnet model", + "reference": "https://huggingface.co/InstantX/InstantID", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "InstanceDiffusion/fusers", + "type": "InstanceDiffusion", + "base": "SD1.5", + "save_path": "instance_models/fuser_models", + "description": "Fusers checkpoints for multi-object prompting with InstanceDiffusion.", + "reference": "https://huggingface.co/logtd/instance_diffusion", + "filename": "fusers.ckpt", + "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/fusers.ckpt", + "size": "832.1MB" + }, + { + "name": "InstanceDiffusion/position_net", + "type": "InstanceDiffusion", + "base": "SD1.5", + "save_path": "instance_models/positionnet_models", + "description": "PositionNet checkpoints for multi-object prompting with InstanceDiffusion.", + "reference": "https://huggingface.co/logtd/instance_diffusion", + "filename": "position_net.ckpt", + "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/position_net.ckpt", + "size": "643.2MB" + }, + { + "name": "InstanceDiffusion/scaleu", + "type": "InstanceDiffusion", + "base": "SD1.5", + "save_path": "instance_models/scaleu_models", + "description": "ScaleU checkpoints for multi-object prompting with InstanceDiffusion.", + "reference": "https://huggingface.co/logtd/instance_diffusion", + "filename": "scaleu.ckpt", + "url": "https://huggingface.co/logtd/instance_diffusion/resolve/main/scaleu.ckpt", + "size": "53.1KB" + }, + { + "name": "1k3d68.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/buffalo_l", + "description": "Buffalo_l 1k3d68.onnx model for IpAdapterPlus", + "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", + "filename": "1k3d68.onnx", + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/1k3d68.onnx", + "size": "143.6MB" + }, + { + "name": "2d106det.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/buffalo_l", + "description": "Buffalo_l 2d106det.onnx model for IpAdapterPlus", + "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", + "filename": "2d106det.onnx", + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/2d106det.onnx", + "size": "5.03MB" + }, + { + "name": "det_10g.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/buffalo_l", + "description": "Buffalo_l det_10g.onnx model for IpAdapterPlus", + "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", + "filename": "det_10g.onnx", + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/det_10g.onnx", + "size": "16.9MB" + }, + { + "name": "genderage.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/buffalo_l", + "description": "Buffalo_l genderage.onnx model for IpAdapterPlus", + "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", + "filename": "genderage.onnx", + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/genderage.onnx", + "size": "1.32MB" + }, + { + "name": "w600k_r50.onnx", + "type": "insightface", + "base": "inswapper", + "save_path": "insightface/models/buffalo_l", + "description": "Buffalo_l w600k_r50.onnx model for IpAdapterPlus", + "reference": "https://github.com/cubiq/ComfyUI_IPAdapter_plus?tab=readme-ov-file#faceid", + "filename": "w600k_r50.onnx", + "url": "https://huggingface.co/public-data/insightface/resolve/main/models/buffalo_l/w600k_r50.onnx", + "size": "174.4MB" + }, + { + "name": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", + "type": "BLIP_MODEL", + "base": "blip_model", + "save_path": "blip", + "description": "BLIP ImageCaption (COCO) w/ ViT-B and CapFilt-L", + "reference": "https://github.com/salesforce/BLIP", + "filename": "model_base_capfilt_large.pth", + "url": "https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_base_capfilt_large.pth", + "size": "2.12GB" + }, + { + "name": "GroundingDINO SwinT OGC - Model", + "type": "GroundingDINO", + "base": "DINO", + "save_path": "groundingdino", + "description": "GroundingDINO SwinT OGC Model", + "reference": "https://huggingface.co/ShilongLiu/GroundingDINO", + "filename": "groundingdino_swint_ogc.pth", + "url": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/groundingdino_swint_ogc.pth", + "size": "694.0MB" + }, + { + "name": "GroundingDINO SwinT OGC - CFG File", + "type": "GroundingDINO", + "base": "DINO", + "save_path": "groundingdino", + "description": "GroundingDINO SwinT OGC CFG File", + "reference": "https://huggingface.co/ShilongLiu/GroundingDINO/resolve/main/GroundingDINO_SwinT_OGC.cfg.py", + "filename": "GroundingDINO_SwinT_OGC.cfg.py", + "url": "https://huggingface.co/ShilongLiu/GroundingDINO/raw/main/GroundingDINO_SwinT_OGC.cfg.py", + "size": "1.01KB" + }, + { + "name": "MobileSAM", + "type": "sam", + "base": "SAM", + "save_path": "sams", + "description": "MobileSAM", + "reference": "https://github.com/ChaoningZhang/MobileSAM/", + "filename": "mobile_sam.pt", + "url": "https://github.com/ChaoningZhang/MobileSAM/blob/master/weights/mobile_sam.pt", + "size": "38.8MB" + }, + { + "name": "DynamiCrafter 1024 bf16 safetensors", + "type": "checkpoint", + "base": "DynamiCrafter", + "save_path": "checkpoints/dynamicrafter", + "description": "DynamiCrafter image2video model 1024x575", + "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/", + "filename": "dynamicrafter_1024_v1_bf16.safetensors", + "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_1024_v1_bf16.safetensors", + "size": "5.22GB" + }, + { + "name": "DynamiCrafter 512 interpolation bf16 safetensors", + "type": "checkpoint", + "base": "DynamiCrafter", + "save_path": "checkpoints/dynamicrafter", + "description": "DynamiCrafter image2video interpolation model 512", + "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned/", + "filename": "dynamicrafter_512_interp_v1_bf16.safetensors", + "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/dynamicrafter_512_interp_v1_bf16.safetensors", + "size": "5.22GB" + }, + { + "name": "monster-labs - Controlnet QR Code Monster v1 For SDXL", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "monster-labs - Controlnet QR Code Monster v1 For SDXL", + "reference": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster", + "filename": "control_v1p_sdxl_qrcode_monster.safetensors", + "url": "https://huggingface.co/monster-labs/control_v1p_sdxl_qrcode_monster/resolve/main/diffusion_pytorch_model.safetensors", + "size": "5.00GB" + }, + { + "name": "Depth-FM-v1 fp16 safetensors", + "type": "checkpoint", + "base": "Depth-FM", + "save_path": "checkpoints/depthfm", + "description": "Depth-FM monocular depth estimation model", + "reference": "https://huggingface.co/Kijai/depth-fm-pruned", + "filename": "depthfm-v1_fp16.safetensors", + "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp16.safetensors", + "size": "1.73GB" + }, + { + "name": "Depth-FM-v1 fp32 safetensors", + "type": "checkpoint", + "base": "Depth-FM", + "save_path": "checkpoints/depthfm", + "description": "Depth-FM monocular depth estimation model", + "reference": "https://huggingface.co/Kijai/depth-fm-pruned", + "filename": "depthfm-v1_fp32.safetensors", + "url": "https://huggingface.co/Kijai/depth-fm-pruned/resolve/main/depthfm-v1_fp32.safetensors", + "size": "3.46GB" + }, + { + "name": "SUPIR-v0F.ckpt", + "type": "checkpoint", + "base": "SUPIR", + "save_path": "checkpoints/SUPIR", + "description": "SUPIR checkpoint model", + "reference": "https://huggingface.co/camenduru/SUPIR/tree/main", + "filename": "SUPIR-v0F.ckpt", + "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0F.ckpt", + "size": "5.33GB" + }, + { + "name": "SUPIR-v0Q.ckpt", + "type": "checkpoint", + "base": "SUPIR", + "save_path": "checkpoints/SUPIR", + "description": "SUPIR checkpoint model", + "reference": "https://huggingface.co/camenduru/SUPIR/tree/main", + "filename": "SUPIR-v0Q.ckpt", + "url": "https://huggingface.co/camenduru/SUPIR/resolve/main/SUPIR-v0Q.ckpt", + "size": "5.33GB" + }, + { + "name": "Kijai/SUPIR-v0F_fp16.safetensors (pruned)", + "type": "checkpoint", + "base": "SUPIR", + "save_path": "checkpoints/SUPIR", + "description": "SUPIR checkpoint model", + "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main", + "filename": "SUPIR-v0F_fp16.safetensors", + "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0F_fp16.safetensors", + "size": "2.66GB" + }, + { + "name": "Kijai/SUPIR-v0Q_fp16.safetensors (pruned)", + "type": "checkpoint", + "base": "SUPIR", + "save_path": "checkpoints/SUPIR", + "description": "SUPIR checkpoint model", + "reference": "https://huggingface.co/Kijai/SUPIR_pruned/tree/main", + "filename": "SUPIR-v0Q_fp16.safetensors", + "url": "https://huggingface.co/Kijai/SUPIR_pruned/resolve/main/SUPIR-v0Q_fp16.safetensors", + "size": "2.66GB" + }, + { + "name": "RAM", + "type": "RAM", + "base": "RAM", + "save_path": "rams", + "description": "RAM Recognize Anything Model", + "reference": "https://huggingface.co/xinyu1205/recognize_anything_model", + "filename": "ram_swin_large_14m.pth", + "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/ram_swin_large_14m.pth", + "size": "5.63GB" + }, + { + "name": "RAM++", + "type": "RAM", + "base": "RAM", + "save_path": "rams", + "description": "RAM++ Recognize Anything Model", + "reference": "https://huggingface.co/xinyu1205/recognize-anything-plus-model", + "filename": "ram_plus_swin_large_14m.pth", + "url": "https://huggingface.co/xinyu1205/recognize-anything-plus-model/resolve/main/ram_plus_swin_large_14m.pth", + "size": "3.01GB" + }, + { + "name": "tag2text", + "type": "RAM", + "base": "RAM", + "save_path": "rams", + "description": "tag2text Recognize Anything Model", + "reference": "https://huggingface.co/xinyu1205/recognize_anything_model", + "filename": "tag2text_swin_14m.pth", + "url": "https://huggingface.co/xinyu1205/recognize_anything_model/resolve/main/tag2text_swin_14m.pth", + "size": "4.48GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "model that been trained on 10M+ 3D objects from Objaverse-XL, used for generated rotated CamView", + "reference": "https://objaverse.allenai.org/docs/zero123-xl/", + "filename": "zero123-xl.ckpt", + "url": "https://huggingface.co/kealiu/zero123-xl/resolve/main/zero123-xl.ckpt", + "size": "15.5GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "Stable Zero123 is a model for view-conditioned image generation based on [a/Zero123](https://github.com/cvlab-columbia/zero123).", + "reference": "https://huggingface.co/stabilityai/stable-zero123", + "filename": "stable_zero123.ckpt", + "url": "https://huggingface.co/stabilityai/stable-zero123/resolve/main/stable_zero123.ckpt", + "size": "8.58GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "Zero123 original checkpoints in 105000 steps.", + "reference": "https://huggingface.co/cvlab/zero123-weights", + "filename": "zero123-105000.ckpt", + "url": "https://huggingface.co/cvlab/zero123-weights/resolve/main/105000.ckpt", + "size": "15.5GB" + }, + { + "name": "Zero123 3D object Model", + "type": "zero123", + "base": "zero123", + "save_path": "checkpoints/zero123", + "description": "Zero123 original checkpoints in 165000 steps.", + "reference": "https://huggingface.co/cvlab/zero123-weights", + "filename": "zero123-165000.ckpt", + "url": "https://huggingface.co/cvlab/zero123-weights/resolve/main/165000.ckpt", + "size": "15.5GB" + }, + { + "name": "InstantID/ip-adapter", + "type": "instantid", + "base": "SDXL", + "save_path": "instantid/SDXL", + "description": "ip-adapter model for cubiq/InstantID", + "reference": "https://huggingface.co/InstantX/InstantID", + "filename": "ip-adapter.bin", + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ip-adapter.bin", + "size": "1.69GB" + }, + { + "name": "InstantID/ControlNet", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/instantid", + "description": "instantid controlnet model for cubiq/InstantID", + "reference": "https://huggingface.co/InstantX/InstantID", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/InstantID/resolve/main/ControlNetModel/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "MonsterMMORPG/insightface (for InstantID)", + "type": "insightface", + "base": "SDXL", + "save_path": "insightface/models", + "description": "MonsterMMORPG insightface model for cubiq/InstantID", + "reference": "https://huggingface.co/MonsterMMORPG/tools/tree/main", + "filename": "antelopev2.zip", + "url": "https://huggingface.co/MonsterMMORPG/tools/resolve/main/antelopev2.zip", + "size": "360.7MB" + }, + { + "name": "IC-Light/fc", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "diffusion_models/IC-Light", + "description": "The default relighting model, conditioned on text and foreground", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fc.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fc.safetensors", + "size": "1.72GB" + }, + { + "name": "IC-Light/fbc", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "diffusion_models/IC-Light", + "description": "Relighting model conditioned with text, foreground, and background", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fbc.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fbc.safetensors", + "size": "1.72GB" + }, + { + "name": "IC-Light/fcon", + "type": "IC-Light", + "base": "SD1.5", + "save_path": "diffusion_models/IC-Light", + "description": "Same as iclight_sd15_fc.safetensors, but trained with offset noise", + "reference": "https://huggingface.co/lllyasviel/ic-light", + "filename": "iclight_sd15_fcon.safetensors", + "url": "https://huggingface.co/lllyasviel/ic-light/resolve/main/iclight_sd15_fcon.safetensors", + "size": "1.72GB" + }, + { + "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (fp16)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Controlnet SDXL Tile model realistic version.", + "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic", + "filename": "TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors", + "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_fp16.safetensors", + "size": "2.50GB" + }, + { + "name": "TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic v2 (rank256)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "Controlnet SDXL Tile model realistic version.", + "reference": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic", + "filename": "TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors", + "url": "https://huggingface.co/TTPlanet/TTPLanet_SDXL_Controlnet_Tile_Realistic/resolve/main/TTPLANET_Controlnet_Tile_realistic_v2_rank256.safetensors", + "size": "774.4MB" + }, + { + "name": "ViperYX/RGT_x2.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT", + "description": "RGT x2 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_x2.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x2.pth", + "size": "179.8MB" + }, + { + "name": "ViperYX/RGT_x3.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT", + "description": "RGT x3 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_x3.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x3.pth", + "size": "180.5MB" + }, + { + "name": "ViperYX/RGT_x4.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT", + "description": "RGT_S x4 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_x4.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT/RGT_x4.pth", + "size": "180.4MB" + }, + { + "name": "ViperYX/RGT_S_x2.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT_S", + "description": "RGT_S x2 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_S_x2.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x2.pth", + "size": "135.4MB" + }, + { + "name": "ViperYX/RGT_S_x3.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT_S", + "description": "RGT_S x3 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_S_x3.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x3.pth", + "size": "136.1MB" + }, + { + "name": "ViperYX/RGT_S_x4.pth", + "type": "RGT", + "base": "RGT", + "save_path": "RGT/RGT_S", + "description": "RGT_S x4 upscale model for ComfyUI-RGT", + "reference": "https://huggingface.co/ViperYX/RGT/tree/main", + "filename": "RGT_S_x4.pth", + "url": "https://huggingface.co/ViperYX/RGT/resolve/main/RGT_S/RGT_S_x4.pth", + "size": "136.0MB" + }, + + { + "name": "InstantX/FLUX.1-dev Controlnet (Union)", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/InstantX-FLUX1-Dev-Union", + "description": "FLUX.1 [Dev] Union Controlnet. Supports Canny, Depth, Pose, Tile, Blur, Gray Low Quality.", + "reference": "https://huggingface.co/InstantX/FLUX.1-dev-Controlnet-Union", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/FLUX.1-dev-Controlnet-Union/resolve/main/diffusion_pytorch_model.safetensors", + "size": "6.6GB" + }, + + + { + "name": "InstantX/FLUX.1-dev-IP-Adapter", + "type": "IP-Adapter", + "base": "FLUX.1", + "save_path": "ipadapter-flux", + "description": "FLUX.1-dev-IP-Adapter", + "reference": "https://huggingface.co/InstantX/FLUX.1-dev-IP-Adapter", + "filename": "ip-adapter.bin", + "url": "https://huggingface.co/InstantX/FLUX.1-dev-IP-Adapter/resolve/main/ip-adapter.bin", + "size": "5.29GB" + }, + { + "name": "Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/Shakker-Labs-ControlNet-Union-Pro", + "description": "FLUX.1 [Dev] Union Controlnet. Supports Canny, Tile, Depth, Blur, Pose, Gray, Low Quality", + "reference": "https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro/resolve/main/diffusion_pytorch_model.safetensors", + "size": "6.6GB" + }, + { + "name": "Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro (fp8_e4m3fn) by Kijai", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1", + "description": "FLUX.1 [Dev] Union Controlnet. Supports Canny, Tile, Depth, Blur, Pose, Gray, Low Quality\nVersion quantized to fp8_e4m3fn by Kijai", + "reference": "https://huggingface.co/Kijai/flux-fp8", + "filename": "flux_shakker_labs_union_pro-fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Kijai/flux-fp8/resolve/main/flux_shakker_labs_union_pro-fp8_e4m3fn.safetensors", + "size": "3.3GB" + }, + + { + "name": "jasperai/FLUX.1-dev-Controlnet-Upscaler", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/jasperai-dev-Upscaler", + "description": "This is Flux.1-dev ControlNet for low resolution images developed by Jasper research team.", + "reference": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Upscaler", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Upscaler/resolve/main/diffusion_pytorch_model.safetensors", + "size": "3.58GB" + }, + { + "name": "jasperai/FLUX.1-dev-Controlnet-Depth", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/jasperai-dev-Depth", + "description": "This is Flux.1-dev ControlNet for Depth map developed by Jasper research team.", + "reference": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Depth", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Depth/resolve/main/diffusion_pytorch_model.safetensors", + "size": "3.58GB" + }, + { + "name": "jasperai/Flux.1-dev-Controlnet-Surface-Normals", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "controlnet/FLUX.1/jasperai-dev-Surface-Normals", + "description": "This is Flux.1-dev ControlNet for Surface Normals map developed by Jasper research team.", + "reference": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Surface-Normals", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/jasperai/Flux.1-dev-Controlnet-Surface-Normals/resolve/main/diffusion_pytorch_model.safetensors", + "size": "3.58GB" + }, + + { + "name": "xinsir/ControlNet++: All-in-one ControlNet", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0", + "description": "All-in-one ControlNet for image generations and editing!", + "reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/ControlNet++: All-in-one ControlNet (ProMax model)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-union-sdxl-1.0", + "description": "All-in-one ControlNet for image generations and editing! (ProMax model)", + "reference": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0", + "filename": "diffusion_pytorch_model_promax.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-union-sdxl-1.0/resolve/main/diffusion_pytorch_model_promax.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Scribble-Sdxl-1.0", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0", + "description": "Controlnet SDXL Scribble model.", + "reference": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-scribble-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Canny-Sdxl-1.0 (V2)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-canny-sdxl-1.0", + "description": "Controlnet SDXL Canny model.", + "reference": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0", + "filename": "diffusion_pytorch_model_V2.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-canny-sdxl-1.0/resolve/main/diffusion_pytorch_model_V2.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Openpose-Sdxl-1.0", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0", + "description": "Controlnet SDXL Openpose model.", + "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Openpose-Sdxl-1.0 (Ver. twins)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-openpose-sdxl-1.0", + "description": "Controlnet SDXL Openpose model. (Ver. twins)", + "reference": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0", + "filename": "diffusion_pytorch_model_twins.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0/resolve/main/diffusion_pytorch_model_twins.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/Controlnet-Scribble-Sdxl-1.0-Anime", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-scribble-sdxl-1.0-anime", + "description": "Controlnet SDXL Scribble model. (Ver. anime)", + "reference": "https://huggingface.co/xinsir/anime-painter", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/anime-painter/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/ControlNet Depth SDXL, support zoe, midias", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-depth-sdxl-1.0", + "description": "Controlnet SDXL Depth model.", + "reference": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-depth-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + { + "name": "xinsir/ControlNet Tile SDXL", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL/controlnet-tile-sdxl-1.0", + "description": "Controlnet SDXL Tile model.", + "reference": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/xinsir/controlnet-tile-sdxl-1.0/resolve/main/diffusion_pytorch_model.safetensors", + "size": "2.50GB" + }, + + { + "name": "InstantX/SD3-Controlnet-Canny", + "type": "controlnet", + "base": "SD3", + "save_path": "controlnet/SD3/InstantX-Controlnet-Canny", + "description": "Controlnet SD3 Canny model.", + "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Canny", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/SD3-Controlnet-Canny/resolve/main/diffusion_pytorch_model.safetensors", + "size": "1.19GB" + }, + { + "name": "InstantX/SD3-Controlnet-Pose", + "type": "controlnet", + "base": "SD3", + "save_path": "controlnet/SD3/InstantX-Controlnet-Pose", + "description": "Controlnet SD3 Pose model.", + "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Pose", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/SD3-Controlnet-Pose/resolve/main/diffusion_pytorch_model.safetensors", + "size": "1.19GB" + }, + { + "name": "InstantX/SD3-Controlnet-Tile", + "type": "controlnet", + "base": "SD3", + "save_path": "controlnet/SD3/InstantX-Controlnet-Tile", + "description": "Controlnet SD3 Tile model.", + "reference": "https://huggingface.co/InstantX/SD3-Controlnet-Tile", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/InstantX/SD3-Controlnet-Tile/resolve/main/diffusion_pytorch_model.safetensors", + "size": "1.19GB" + }, + + + { + "name": "stabilityai/SD3.5-Large-Controlnet-Blur", + "type": "controlnet", + "base": "SD3.5", + "save_path": "controlnet/SD3.5", + "description": "Blur Controlnet model for SD3.5 Large", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets", + "filename": "sd3.5_large_controlnet_blur.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_blur.safetensors", + "size": "8.65GB" + }, + { + "name": "stabilityai/SD3.5-Large-Controlnet-Canny", + "type": "controlnet", + "base": "SD3.5", + "save_path": "controlnet/SD3.5", + "description": "Canny Controlnet model for SD3.5 Large", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets", + "filename": "sd3.5_large_controlnet_canny.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_canny.safetensors", + "size": "8.65GB" + }, + { + "name": "stabilityai/SD3.5-Large-Controlnet-Depth", + "type": "controlnet", + "base": "SD3.5", + "save_path": "controlnet/SD3.5", + "description": "Depth Controlnet model for SD3.5 Large", + "reference": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets", + "filename": "sd3.5_large_controlnet_depth.safetensors", + "url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-controlnets/resolve/main/sd3.5_large_controlnet_depth.safetensors", + "size": "8.65GB" + }, + + { + "name": "Kijai/ToonCrafter model checkpoint (interpolation fp16)", + "type": "checkpoint", + "base": "ToonCrafter", + "save_path": "checkpoints/ToonCrafter", + "description": "ToonCrafter checkpoint model for ComfyUI-DynamiCrafterWrapper", + "reference": "https://huggingface.co/Kijai/DynamiCrafter_pruned", + "filename": "tooncrafter_512_interp-fp16.safetensors", + "url": "https://huggingface.co/Kijai/DynamiCrafter_pruned/resolve/main/tooncrafter_512_interp-fp16.safetensors", + "size": "5.25GB" + }, + { + "name": "CN-anytest_v4-marged.safetensors", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged.safetensors", + "size": "2.50GB" + }, + { + "name": "CN-anytest_v4-marged_am_dim256.safetensors (dim256/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Animagine. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_am_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v4-marged_am_dim128.safetensors (dim128/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Animagine. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_am_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_am_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "CN-anytest_v4-marged_pn_dim256.safetensors (dim256/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Pony. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_pn_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v4-marged_pn_dim128.safetensors (dim128/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Pony. A model for style transfer.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v4-marged_pn_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v4-marged_pn_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "CN-anytest_v3-50000_fp16.safetensors (fp16)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_fp16.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_fp16.safetensors", + "size": "2.50GB" + }, + { + "name": "CN-anytest_v3-50000_am_dim256.safetensors (dim256/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Animagine. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_am_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v3-50000_am_dim128.safetensors (dim128/Animagine)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Animagine. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_am_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_am_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "CN-anytest_v3-50000_pn_dim256.safetensors (dim256/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim256) for Pony. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_pn_dim256.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim256.safetensors", + "size": "774.4MB" + }, + { + "name": "CN-anytest_v3-50000_pn_dim128.safetensors (dim128/Pony)", + "type": "controlnet", + "base": "SDXL", + "save_path": "controlnet/SDXL", + "description": "AnyTest Controlnet Lora (dim128) for Pony. A strict control model.", + "reference": "https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main", + "filename": "CN-anytest_v3-50000_pn_dim128.safetensors", + "url": "https://huggingface.co/2vXpSwA7/iroiro-lora/resolve/main/test_controlnet2/CN-anytest_v3-50000_pn_dim128.safetensors", + "size": "395.7MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitb/fp16)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitb_fp16.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp16.safetensors", + "size": "195.0MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitb/fp32)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitb_fp32.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitb_fp32.safetensors", + "size": "389.9MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitl/fp16)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitl_fp16.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp16.safetensors", + "size": "670.7MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitl/fp32)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vitl_fp32.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vitl_fp32.safetensors", + "size": "1.34GB" + }, + { + "name": "kijai/DepthAnythingV2 (vits/fp16)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vits_fp16.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp16.safetensors", + "size": "49.6MB" + }, + { + "name": "kijai/DepthAnythingV2 (vitb/fp32)", + "type": "depthanything", + "base": "depthanything", + "save_path": "depthanything", + "description": "DepthAnythingV2 model", + "reference": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/tree/main", + "filename": "depth_anything_v2_vits_fp32.safetensors", + "url": "https://huggingface.co/Kijai/DepthAnythingV2-safetensors/resolve/main/depth_anything_v2_vits_fp32.safetensors", + "size": "99.2MB" + }, + + { + "name": "PixArt-Sigma-XL-2-1024-MS.pth (checkpoint)", + "type": "checkpoint", + "base": "pixart-sigma", + "save_path": "checkpoints/PixArt-Sigma", + "description": "PixArt-Sigma Checkpoint model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/tree/main", + "filename": "PixArt-Sigma-XL-2-1024-MS.pth", + "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma/resolve/main/PixArt-Sigma-XL-2-1024-MS.pth", + "size": "2.47GB" + }, + + { + "name": "PixArt-Sigma-XL-2-512-MS.safetensors (diffusion)", + "type": "diffusion_model", + "base": "pixart-sigma", + "save_path": "diffusion_models/PixArt-Sigma", + "description": "PixArt-Sigma Diffusion model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-512-MS", + "filename": "PixArt-Sigma-XL-2-512-MS.safetensors", + "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-512-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors", + "size": "2.44GB" + }, + { + "name": "PixArt-Sigma-XL-2-1024-MS.safetensors (diffusion)", + "type": "diffusion_model", + "base": "pixart-sigma", + "save_path": "diffusion_models/PixArt-Sigma", + "description": "PixArt-Sigma Diffusion model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS", + "filename": "PixArt-Sigma-XL-2-1024-MS.safetensors", + "url": "https://huggingface.co/PixArt-alpha/PixArt-Sigma-XL-2-1024-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors", + "size": "2.44GB" + }, + { + "name": "PixArt-XL-2-1024-MS.safetensors (diffusion)", + "type": "diffusion_model", + "base": "pixart-alpha", + "save_path": "diffusion_models/PixArt-Alpha", + "description": "PixArt-Alpha Diffusion model", + "reference": "https://huggingface.co/PixArt-alpha/PixArt-XL-2-1024-MS", + "filename": "PixArt-XL-2-1024-MS.safetensors", + "url": "https://huggingface.co/PixArt-alpha/PixArt-XL-2-1024-MS/resolve/main/transformer/diffusion_pytorch_model.safetensors", + "size": "2.45GB" + }, + + + { + "name": "hunyuan_dit_1.2.safetensors", + "type": "checkpoint", + "base": "Hunyuan-DiT", + "save_path": "checkpoints/hunyuan_dit_comfyui", + "description": "Different versions of HunyuanDIT packaged for ComfyUI use.", + "reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui", + "filename": "hunyuan_dit_1.2.safetensors", + "url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.2.safetensors", + "size": "8.24GB" + }, + { + "name": "hunyuan_dit_1.1.safetensors", + "type": "checkpoint", + "base": "Hunyuan-DiT", + "save_path": "checkpoints/hunyuan_dit_comfyui", + "description": "Different versions of HunyuanDIT packaged for ComfyUI use.", + "reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui", + "filename": "hunyuan_dit_1.1.safetensors", + "url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.1.safetensors", + "size": "8.24GB" + }, + { + "name": "hunyuan_dit_1.0.safetensors", + "type": "checkpoint", + "base": "Hunyuan-DiT", + "save_path": "checkpoints/hunyuan_dit_comfyui", + "description": "Different versions of HunyuanDIT packaged for ComfyUI use.", + "reference": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui", + "filename": "hunyuan_dit_1.0.safetensors", + "url": "https://huggingface.co/comfyanonymous/hunyuan_dit_comfyui/resolve/main/hunyuan_dit_1.0.safetensors", + "size": "8.24GB" + }, + + { + "name": "Comfy-Org/hunyuan_video_t2v_720p_bf16.safetensors", + "type": "diffusion_model", + "base": "Hunyuan Video", + "save_path": "diffusion_models/hunyuan_video", + "description": "Huyuan Video diffusion model. repackaged version.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "hunyuan_video_t2v_720p_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_t2v_720p_bf16.safetensors", + "size": "25.6GB" + }, + { + "name": "Comfy-Org/hunyuan_video_vae_bf16.safetensors", + "type": "VAE", + "base": "Hunyuan Video", + "save_path": "default", + "description": "Huyuan Video VAE model. repackaged version.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "hunyuan_video_vae_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/vae/hunyuan_video_vae_bf16.safetensors", + "size": "493MB" + }, + { + "name": "Comfy-Org/hunyuan_video_image_to_video_720p_bf16.safetensors", + "type": "diffusion_model", + "base": "Hunyuan Video", + "save_path": "diffusion_models/hunyuan_video", + "description": "Huyuan Video Image2Video diffusion model. repackaged version.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "hunyuan_video_image_to_video_720p_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/diffusion_models/hunyuan_video_image_to_video_720p_bf16.safetensors", + "size": "25.6GB" + }, + + { + "name": "Comfy-Org/llava_llama3_fp8_scaled.safetensors", + "type": "clip", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_fp8_scaled text encoder model. This is required for using Hunyuan Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp8_scaled.safetensors", + "size": "9.09GB" + }, + { + "name": "Comfy-Org/llava_llama3_fp16.safetensors", + "type": "clip", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_fp16 text encoder model. This is required for using Hunyuan Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/text_encoders/llava_llama3_fp16.safetensors", + "size": "16.1GB" + }, + { + "name": "Comfy-Org/llava_llama3_vision.safetensors", + "type": "clip_vision", + "base": "LLaVA-Llama-3", + "save_path": "text_encoders", + "description": "llava_llama3_vision clip vison model. This is required for using Hunyuan Video Image2Video.", + "reference": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged", + "filename": "llava_llama3_vision.safetensors", + "url": "https://huggingface.co/Comfy-Org/HunyuanVideo_repackaged/resolve/main/split_files/clip_vision/llava_llama3_vision.safetensors", + "size": "649MB" + }, + + { + "name": "Comfy-Org/omnigen2_fp16.safetensors", + "type": "diffusion_model", + "base": "OmniGen2", + "save_path": "default", + "description": "OmniGen2 diffusion model. This is required for using OmniGen2.", + "reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged", + "filename": "omnigen2_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/omnigen2_fp16.safetensors", + "size": "7.93GB" + }, + { + "name": "Comfy-Org/qwen_2.5_vl_fp16.safetensors", + "type": "clip", + "base": "qwen-2.5", + "save_path": "default", + "description": "text encoder for OmniGen2", + "reference": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged", + "filename": "qwen_2.5_vl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Omnigen2_ComfyUI_repackaged/resolve/main/split_files/text_encoders/qwen_2.5_vl_fp16.safetensors", + "size": "7.51GB" + }, + + { + "name": "FLUX.1 [Schnell] Diffusion model", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Schnell] Diffusion model (a.k.a. FLUX.1 turbo model)[w/Due to the large size of the model, it is recommended to download it through a browser if possible.]", + "reference": "https://huggingface.co/black-forest-labs/FLUX.1-schnell", + "filename": "flux1-schnell.safetensors", + "url": "https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/flux1-schnell.safetensors", + "size": "23.8GB" + }, + + { + "name": "FLUX.1 VAE model", + "type": "VAE", + "base": "FLUX.1", + "save_path": "vae/FLUX1", + "description": "FLUX.1 VAE model\nNOTE: This VAE model can also be used for image generation with OmniGen2.", + "reference": "https://huggingface.co/black-forest-labs/FLUX.1-schnell", + "filename": "ae.safetensors", + "url": "https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/ae.safetensors", + "size": "335MB" + }, + + { + "name": "kijai/FLUX.1 [schnell] Diffusion model (float8_e4m3fn)", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Schnell] Diffusion model (float8_e4m3fn)", + "reference": "https://huggingface.co/Kijai/flux-fp8", + "filename": "flux1-schnell-fp8.safetensors", + "url": "https://huggingface.co/Kijai/flux-fp8/resolve/main/flux1-schnell-fp8.safetensors", + "size": "11.9GB" + }, + + { + "name": "FLUX.1 [Dev] Diffusion model (scaled fp8)", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (scaled fp8)[w/Due to the large size of the model, it is recommended to download it through a browser if possible.]", + "reference": "https://huggingface.co/comfyanonymous/flux_dev_scaled_fp8_test", + "filename": "flux_dev_fp8_scaled_diffusion_model.safetensors", + "url": "https://huggingface.co/comfyanonymous/flux_dev_scaled_fp8_test/resolve/main/flux_dev_fp8_scaled_diffusion_model.safetensors", + "size": "11.9GB" + }, + { + "name": "kijai/FLUX.1 [dev] Diffusion model (float8_e4m3fn)", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [dev] Diffusion model (float8_e4m3fn)", + "reference": "https://huggingface.co/Kijai/flux-fp8", + "filename": "flux1-dev-fp8.safetensors", + "url": "https://huggingface.co/Kijai/flux-fp8/resolve/main/flux1-dev-fp8.safetensors", + "size": "11.9GB" + }, + + { + "name": "Comfy Org/FLUX.1 [dev] Checkpoint model (fp8)", + "type": "checkpoint", + "base": "FLUX.1", + "save_path": "checkpoints/FLUX1", + "description": "FLUX.1 [dev] Checkpoint model (fp8)", + "reference": "https://huggingface.co/Comfy-Org/flux1-dev/tree/main", + "filename": "flux1-dev-fp8.safetensors", + "url": "https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors", + "size": "17.2GB" + }, + { + "name": "Comfy Org/FLUX.1 [schnell] Checkpoint model (fp8)", + "type": "checkpoint", + "base": "FLUX.1", + "save_path": "checkpoints/FLUX1", + "description": "FLUX.1 [schnell] Checkpoint model (fp8)", + "reference": "https://huggingface.co/Comfy-Org/flux1-dev/tree/main", + "filename": "flux1-schnell-fp8.safetensors", + "url": "https://huggingface.co/Comfy-Org/flux1-schnell/resolve/main/flux1-schnell-fp8.safetensors", + "size": "17.2GB" + }, + + { + "name": "city96/flux1-dev-F16.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (f16/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-F16.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-F16.gguf", + "size": "23.8GB" + }, + { + "name": "city96/flux1-dev-Q2_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q2_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q2_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q2_K.gguf", + "size": "4.03GB" + }, + { + "name": "city96/flux1-dev-Q3_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q3_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q3_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q3_K_S.gguf", + "size": "5.23GB" + }, + { + "name": "city96/flux1-dev-Q4_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q4_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q4_0.gguf", + "size": "6.79GB" + }, + { + "name": "city96/flux1-dev-Q4_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q4_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q4_1.gguf", + "size": "7.53GB" + }, + { + "name": "city96/flux1-dev-Q4_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q4_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q4_K_S.gguf", + "size": "6.81GB" + }, + { + "name": "city96/flux1-dev-Q5_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q5_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_0.gguf", + "size": "8.27GB" + }, + { + "name": "city96/flux1-dev-Q5_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q5_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_1.gguf", + "size": "9.01GB" + }, + { + "name": "city96/flux1-dev-Q5_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q5_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q5_K_S.gguf", + "size": "8.29GB" + }, + { + "name": "city96/flux1-dev-Q6_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q6_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q6_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q6_K.gguf", + "size": "9.86GB" + }, + { + "name": "city96/flux1-dev-Q8_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q8_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-dev-gguf", + "filename": "flux1-dev-Q8_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-dev-gguf/resolve/main/flux1-dev-Q8_0.gguf", + "size": "12.7GB" + }, + + { + "name": "city96/flux1-schnell-F16.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (f16/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-F16.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-F16.gguf", + "size": "23.8GB" + }, + { + "name": "city96/flux1-schnell-Q2_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q2_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q2_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q2_K.gguf", + "size": "4.01GB" + }, + { + "name": "city96/flux1-schnell-Q3_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q3_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q3_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q3_K_S.gguf", + "size": "5.21GB" + }, + { + "name": "city96/flux1-schnell-Q4_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q4_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q4_0.gguf", + "size": "6.77GB" + }, + { + "name": "city96/flux1-schnell-Q4_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q4_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q4_1.gguf", + "size": "7.51GB" + }, + { + "name": "city96/flux1-schnell-Q4_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q4_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q4_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q4_K_S.gguf", + "size": "6.78GB" + }, + { + "name": "city96/flux1-schnell-Q5_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q5_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q5_0.gguf", + "size": "8.25GB" + }, + { + "name": "city96/flux1-schnell-Q5_1.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_1/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q5_1.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q5_1.gguf", + "size": "8.99GB" + }, + { + "name": "city96/flux1-schnell-Q5_K_S.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q5_K_S/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q5_K_S.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q5_K_S.gguf", + "size": "8.26GB" + }, + { + "name": "city96/flux1-schnell-Q6_K.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q6_K/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q6_K.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q6_K.gguf", + "size": "9.83GB" + }, + { + "name": "city96/flux1-schnell-Q8_0.gguf", + "type": "diffusion_model", + "base": "FLUX.1", + "save_path": "diffusion_models/FLUX1", + "description": "FLUX.1 [Dev] Diffusion model (Q8_0/.gguf)", + "reference": "https://huggingface.co/city96/FLUX.1-schnell-gguf", + "filename": "flux1-schnell-Q8_0.gguf", + "url": "https://huggingface.co/city96/FLUX.1-schnell-gguf/resolve/main/flux1-schnell-Q8_0.gguf", + "size": "12.7GB" + }, + + { + "name": "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors [Long CLIP L]", + "type": "clip", + "base": "clip", + "save_path": "text_encoders/long_clip", + "description": "Greatly improved TEXT + Detail (as CLIP-L for Flux.1)", + "reference": "https://huggingface.co/zer0int", + "filename": "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors", + "url": "https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/resolve/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors", + "size": "931MB" + }, + { + "name": "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors [Long CLIP L]", + "type": "clip", + "base": "clip", + "save_path": "text_encoders/long_clip", + "description": "Greatly improved TEXT + Detail (as CLIP-L for Flux.1)", + "reference": "https://huggingface.co/zer0int", + "filename": "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors", + "url": "https://huggingface.co/zer0int/CLIP-GmP-ViT-L-14/resolve/main/ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors", + "size": "323MB" + }, + + { + "name": "Depth Pro model", + "type": "depth-pro", + "base": "depth-pro", + "save_path": "depth/ml-depth-pro", + "description": "Depth pro model for [a/ComfyUI-Depth-Pro](https://github.com/spacepxl/ComfyUI-Depth-Pro)", + "reference": "https://huggingface.co/spacepxl/ml-depth-pro", + "filename": "depth_pro.fp16.safetensors", + "url": "https://huggingface.co/spacepxl/ml-depth-pro/resolve/main/depth_pro.fp16.safetensors", + "size": "1.9GB" + }, + + { + "name": "kijai/lotus depth d model v1.1 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus depth d model v1.1 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-depth-d-v-1-1-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-depth-d-v-1-1-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus depth g model v1.0 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus depth g model v1.0 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-depth-g-v1-0-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-depth-g-v1-0-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus depth g model v1.0", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus depth g model v1.0. This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-depth-g-v1-0.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-depth-g-v1-0.safetensors", + "size": "3.47GB" + }, + { + "name": "kijai/lotus normal d model v1.0 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal d model v1.0 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-d-v1-0-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-d-v1-0-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus normal d model v1.0", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal d model v1.0. This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-d-v1-0.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-d-v1-0.safetensors", + "size": "3.47GB" + }, + { + "name": "kijai/lotus normal g model v1.0 (fp16)", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal g model v1.0 (fp16). This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-g-v1-0-fp16.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-g-v1-0-fp16.safetensors", + "size": "1.74GB" + }, + { + "name": "kijai/lotus normal g model v1.0", + "type": "diffusion_model", + "base": "lotus", + "save_path": "diffusion_models", + "description": "lotus normal g model v1.0. This model can be used in ComfyUI-Lotus custom nodes.", + "reference": "https://huggingface.co/Kijai/lotus-comfyui", + "filename": "lotus-normal-g-v1-0.safetensors", + "url": "https://huggingface.co/Kijai/lotus-comfyui/resolve/main/lotus-normal-g-v1-0.safetensors", + "size": "3.47GB" + }, + + { + "name": "Kolors UNet model", + "type": "diffusion_model", + "base": "Kolors", + "save_path": "diffusion_models/kolors", + "description": "Kolors UNet model", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/unet/diffusion_pytorch_model.safetensors", + "size": "10.3GB" + }, + { + "name": "Kolors UNet model (fp16)", + "type": "diffusion_model", + "base": "Kolors", + "save_path": "diffusion_models/kolors", + "description": "Kolors UNet model", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.fp16.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/unet/diffusion_pytorch_model.fp16.safetensors", + "size": "5.16GB" + }, + { + "name": "Kijai/ChatGLM3 (4bit)", + "type": "LLM", + "base": "ChatGLM3", + "save_path": "LLM", + "description": "This is required for Kolors", + "reference": "https://huggingface.co/Kijai/ChatGLM3-safetensors/tree/main", + "filename": "chatglm3-4bit.safetensors", + "url": "https://huggingface.co/Kijai/ChatGLM3-safetensors/resolve/main/chatglm3-4bit.safetensors", + "size": "3.92GB" + }, + { + "name": "Kijai/ChatGLM3 (8bit)", + "type": "LLM", + "base": "ChatGLM3", + "save_path": "LLM", + "description": "This is required for Kolors", + "reference": "https://huggingface.co/Kijai/ChatGLM3-safetensors/tree/main", + "filename": "chatglm3-8bit.safetensors", + "url": "https://huggingface.co/Kijai/ChatGLM3-safetensors/resolve/main/chatglm3-8bit.safetensors", + "size": "3.92GB" + }, + { + "name": "Kijai/ChatGLM3 (16bit)", + "type": "LLM", + "base": "ChatGLM3", + "save_path": "LLM", + "description": "This is required for Kolors", + "reference": "https://huggingface.co/Kijai/ChatGLM3-safetensors/tree/main", + "filename": "chatglm3-fp16.safetensors", + "url": "https://huggingface.co/Kijai/ChatGLM3-safetensors/resolve/main/chatglm3-fp16.safetensors", + "size": "12.52GB" + }, + + { + "name": "pulid_flux_v0.9.1.safetensors", + "type": "PuLID", + "base": "FLUX.1", + "save_path": "pulid", + "description": "This is required for PuLID (FLUX)", + "reference": "https://huggingface.co/guozinan/PuLID", + "filename": "pulid_flux_v0.9.1.safetensors", + "url": "https://huggingface.co/guozinan/PuLID/resolve/main/pulid_flux_v0.9.1.safetensors", + "size": "1.14GB" + }, + { + "name": "pulid_v1.1.safetensors", + "type": "PuLID", + "base": "SDXL", + "save_path": "pulid", + "description": "This is required for PuLID (SDXL)", + "reference": "https://huggingface.co/guozinan/PuLID", + "filename": "pulid_v1.1.safetensors", + "url": "https://huggingface.co/guozinan/PuLID/resolve/main/pulid_v1.1.safetensors", + "size": "984MB" + }, + + { + "name": "kijai/MoGe_ViT_L_fp16.safetensors", + "type": "MoGe", + "base": "MoGe", + "save_path": "MoGe", + "description": "Safetensors versions of [a/https://github.com/microsoft/MoGe](https://github.com/microsoft/MoGe)", + "reference": "https://huggingface.co/Kijai/MoGe_safetensors", + "filename": "MoGe_ViT_L_fp16.safetensors", + "url": "https://huggingface.co/Kijai/MoGe_safetensors/resolve/main/MoGe_ViT_L_fp16.safetensors", + "size": "628MB" + }, + { + "name": "kijai/MoGe_ViT_L_fp16.safetensors", + "type": "MoGe", + "base": "MoGe", + "save_path": "MoGe", + "description": "Safetensors versions of [a/https://github.com/microsoft/MoGe](https://github.com/microsoft/MoGe)", + "reference": "https://huggingface.co/Kijai/MoGe_safetensors", + "filename": "MoGe_ViT_L_fp16.safetensors", + "url": "https://huggingface.co/Kijai/MoGe_safetensors/resolve/main/MoGe_ViT_L_fp16.safetensors", + "size": "1.26GB" + }, + + { + "name": "LTX-Video 2B v0.9 Checkpoint", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltx-video-2b-v0.9.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.safetensors", + "size": "9.37GB" + }, + { + "name": "LTX-Video 2B v0.9.1 Checkpoint", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltx-video-2b-v0.9.1.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.1.safetensors", + "size": "5.72GB" + }, + { + "name": "LTX-Video 2B v0.9.5 Checkpoint", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video is the first DiT-based video generation model capable of generating high-quality videos in real-time. It produces 24 FPS videos at a 768x512 resolution faster than they can be watched. Trained on a large-scale dataset of diverse videos, the model generates high-resolution videos with realistic and varied content.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltx-video-2b-v0.9.5.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltx-video-2b-v0.9.5.safetensors", + "size": "6.34GB" + }, + + { + "name": "XLabs-AI/flux-canny-controlnet-v3.safetensors", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "xlabs/controlnets", + "description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.", + "reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections", + "filename": "flux-canny-controlnet-v3.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-canny-controlnet-v3.safetensors", + "size": "1.49GB" + }, + { + "name": "XLabs-AI/flux-depth-controlnet-v3.safetensors", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "xlabs/controlnets", + "description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.", + "reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections", + "filename": "flux-depth-controlnet-v3.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-depth-controlnet-v3.safetensors", + "size": "1.49GB" + }, + { + "name": "XLabs-AI/flux-hed-controlnet-v3.safetensors", + "type": "controlnet", + "base": "FLUX.1", + "save_path": "xlabs/controlnets", + "description": "ControlNet checkpoints for FLUX.1-dev model by Black Forest Labs.", + "reference": "https://huggingface.co/XLabs-AI/flux-controlnet-collections", + "filename": "flux-hed-controlnet-v3.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-controlnet-collections/resolve/main/flux-hed-controlnet-v3.safetensors", + "size": "1.49GB" + }, + + { + "name": "XLabs-AI/realism_lora.safetensors", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/loras", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-lora-collection", + "filename": "realism_lora.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/realism_lora.safetensors", + "size": "44.8MB" + }, + { + "name": "XLabs-AI/art_lora.safetensors", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/loras", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-lora-collection", + "filename": "art_lora.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/scenery_lora.safetensors", + "size": "44.8MB" + }, + { + "name": "XLabs-AI/mjv6_lora.safetensors", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/loras", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-lora-collection", + "filename": "mjv6_lora.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-lora-collection/resolve/main/mjv6_lora.safetensors", + "size": "44.8MB" + }, + + { + "name": "XLabs-AI/flux-ip-adapter", + "type": "lora", + "base": "FLUX.1", + "save_path": "xlabs/ipadapters", + "description": "A checkpoint with trained LoRAs for FLUX.1-dev model by Black Forest Labs", + "reference": "https://huggingface.co/XLabs-AI/flux-ip-adapter", + "filename": "ip_adapter.safetensors", + "url": "https://huggingface.co/XLabs-AI/flux-ip-adapter/resolve/main/ip_adapter.safetensors", + "size": "982MB" + }, + + { + "name": "efficient_sam_s_cpu.jit [ComfyUI-YoloWorld-EfficientSAM]", + "type": "efficient_sam", + "base": "efficient_sam", + "save_path": "yolo_world", + "description": "Install efficient_sam_s_cpu.jit into ComfyUI-YoloWorld-EfficientSAM", + "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", + "filename": "efficient_sam_s_cpu.jit", + "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_cpu.jit", + "size": "106.0MB" + }, + { + "name": "efficient_sam_s_gpu.jit [ComfyUI-YoloWorld-EfficientSAM]", + "type": "efficient_sam", + "base": "efficient_sam", + "save_path": "yolo_world", + "description": "Install efficient_sam_s_gpu.jit into ComfyUI-YoloWorld-EfficientSAM", + "reference": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/tree/main", + "filename": "efficient_sam_s_gpu.jit", + "url": "https://huggingface.co/camenduru/YoloWorld-EfficientSAM/resolve/main/efficient_sam_s_gpu.jit", + "size": "106.0MB" + }, + + { + "name": "TencentARC/CustomNet V1", + "type": "CustomNet", + "base": "CustomNet", + "save_path": "checkpoints/customnet", + "description": "CustomNet pretrained model for ComfyUI_CustomNet", + "reference": "https://huggingface.co/TencentARC/CustomNet/tree/main", + "filename": "customnet_v1.pt", + "url": "https://huggingface.co/TencentARC/CustomNet/resolve/main/customnet_v1.pt", + "size": "5.71GB" + }, + { + "name": "TencentARC/CustomNet Inpaint V1", + "type": "CustomNet", + "base": "CustomNet", + "save_path": "checkpoints/customnet", + "description": "CustomNet Inpaint pretrained model for ComfyUI_CustomNet", + "reference": "https://huggingface.co/TencentARC/CustomNet/tree/main", + "filename": "customnet_inpaint_v1.pt", + "url": "https://huggingface.co/TencentARC/CustomNet/resolve/main/customnet_inpaint_v1.pt", + "size": "5.71GB" + }, + + { + "name": "deepseek-ai/Janus-Pro-1B", + "type": "Janus-Pro", + "base": "Janus-Pro", + "save_path": "Janus-Pro", + "description": "[SNAPSHOT] Janus-Pro-1B model.[w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/deepseek-ai/Janus-Pro-1B", + "filename": "", + "url": "deepseek-ai/Janus-Pro-1B", + "size": "7.8GB" + }, + { + "name": "deepseek-ai/Janus-Pro-7B", + "type": "Janus-Pro", + "base": "Janus-Pro", + "save_path": "Janus-Pro", + "description": "[SNAPSHOT] Janus-Pro-7B model.[w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/deepseek-ai/Janus-Pro-7B", + "filename": "", + "url": "deepseek-ai/Janus-Pro-7B", + "size": "14.85GB" + }, + { + "name": "kolors/vae/diffusion_pytorch_model.fp16.safetensors", + "type": "VAE", + "base": "Kolors", + "save_path": "vae/kolors", + "description": "Kolors VAE", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.fp16.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/vae/diffusion_pytorch_model.fp16.safetensors", + "size": "167MB" + }, + { + "name": "kolors/vae/diffusion_pytorch_model.safetensors", + "type": "VAE", + "base": "Kolors", + "save_path": "vae/kolors", + "description": "Kolors VAE", + "reference": "https://huggingface.co/Kwai-Kolors/Kolors", + "filename": "diffusion_pytorch_model.safetensors", + "url": "https://huggingface.co/Kwai-Kolors/Kolors/resolve/main/vae/diffusion_pytorch_model.safetensors", + "size": "335MB" + }, + + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_bf16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp8_e4m3fn.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 480p 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 480p 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_480p_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_480p_14B_fp8_scaled.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_bf16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp16.safetensors", + "size": "32.8GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp8_e4m3fn.safetensors", + "size": "16.4GB" + }, + { + "name": "Comfy-Org/Wan2.1 i2v 720p 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for i2v 720p 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_i2v_720p_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_i2v_720p_14B_fp8_scaled.safetensors", + "size": "16.4GB" + }, + + { + "name": "Comfy-Org/Wan2.1 t2v 1.3B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 1.3B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_1.3B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_bf16.safetensors", + "size": "2.84GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 1.3B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 1.3B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_1.3B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_1.3B_fp16.safetensors", + "size": "2.84GB" + }, + + { + "name": "Comfy-Org/Wan2.1 t2v 14B (bf16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_bf16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp8_e4m3fn.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.1 t2v 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.1", + "save_path": "diffusion_models/Wan2.1", + "description": "Wan2.1 difussion model for t2v 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan2.1_t2v_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/diffusion_models/wan2.1_t2v_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.1 VAE", + "type": "vae", + "base": "Wan2.1", + "save_path": "vae", + "description": "Wan2.1 VAE model", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "wan_2.1_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors", + "size": "254MB" + }, + { + "name": "Comfy-Org/clip_vision_h.safetensors", + "type": "clip_vision", + "base": "clip_vision_h", + "save_path": "clip_vision", + "description": "clip_vision_h model for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "clip_vision_h.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/clip_vision/clip_vision_h.safetensors", + "size": "1.26GB" + }, + + { + "name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v high noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_high_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 i2v high noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v high noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v low noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_low_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 i2v low noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for i2v low noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v high noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_high_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v high noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v high noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_high_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v low noise 14B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_low_noise_14B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp16.safetensors", + "size": "28.6GB" + }, + { + "name": "Comfy-Org/Wan2.2 t2v low noise 14B (fp8_scaled)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for t2v low noise 14B (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_t2v_low_noise_14B_fp8_scaled.safetensors", + "size": "14.3GB" + }, + { + "name": "Comfy-Org/Wan2.2 ti2v 5B (fp16)", + "type": "diffusion_model", + "base": "Wan2.2", + "save_path": "diffusion_models/Wan2.2", + "description": "Wan2.2 diffusion model for ti2v 5B (fp16)", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged", + "filename": "wan2.2_ti2v_5B_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged/resolve/main/split_files/diffusion_models/wan2.2_ti2v_5B_fp16.safetensors", + "size": "10.0GB" + }, + + { + "name": "Comfy-Org/umt5_xxl_fp16.safetensors", + "type": "clip", + "base": "umt5_xxl", + "save_path": "text_encoders", + "description": "umt5_xxl_fp16 text encoder for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "umt5_xxl_fp16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp16.safetensors", + "size": "11.4GB" + }, + { + "name": "Comfy-Org/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "type": "clip", + "base": "umt5_xxl", + "save_path": "text_encoders", + "description": "umt5_xxl_fp8_e4m3fn_scaled text encoder for Wan2.1", + "reference": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged", + "filename": "umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors", + "size": "6.74GB" + }, + + { + "name": "lllyasviel/FramePackI2V_HY", + "type": "FramePackI2V", + "base": "FramePackI2V", + "save_path": "diffusers/lllyasviel", + "description": "[SNAPSHOT] This is the f1k1_x_g9_f1k1f2k2f16k4_td FramePack for HY. [w/You cannot download this item on ComfyUI-Manager versions below V3.18]", + "reference": "https://huggingface.co/lllyasviel/FramePackI2V_HY", + "filename": "", + "url": "lllyasviel/FramePackI2V_HY", + "size": "25.75GB" + }, + + { + "name": "LTX-Video Spatial Upscaler v0.9.7", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "Spatial upscaler model for LTX-Video. This model enhances the spatial resolution of generated videos.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-spatial-upscaler-0.9.7.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-spatial-upscaler-0.9.7.safetensors", + "size": "505MB" + }, + { + "name": "LTX-Video Temporal Upscaler v0.9.7", + "type": "upscale", + "base": "upscale", + "save_path": "default", + "description": "Temporal upscaler model for LTX-Video. This model enhances the temporal resolution and smoothness of generated videos.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-temporal-upscaler-0.9.7.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-temporal-upscaler-0.9.7.safetensors", + "size": "524MB" + }, + { + "name": "LTX-Video 13B v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "High-resolution quality LTX-Video 13B model.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-dev.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-dev.safetensors", + "size": "28.6GB" + }, + { + "name": "LTX-Video 13B FP8 v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized version of the LTX-Video 13B model, optimized for lower VRAM usage while maintaining high quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-dev-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-dev-fp8.safetensors", + "size": "15.7GB" + }, + { + "name": "LTX-Video 13B Distilled v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Distilled version of the LTX-Video 13B model, providing improved efficiency while maintaining high-resolution quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled.safetensors", + "size": "28.6GB" + }, + { + "name": "LTX-Video 13B Distilled FP8 v0.9.7", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized distilled version of the LTX-Video 13B model, optimized for even lower VRAM usage while maintaining quality.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-fp8.safetensors", + "size": "15.7GB" + }, + { + "name": "LTX-Video 2B Distilled v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video 2B distilled model v0.9.8 with improved prompt understanding and detail generation.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-2b-0.9.8-distilled.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.8-distilled.safetensors", + "size": "6.34GB" + }, + { + "name": "LTX-Video 2B Distilled FP8 v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized LTX-Video 2B distilled model v0.9.8 with improved prompt understanding and detail generation, optimized for lower VRAM usage.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-2b-0.9.8-distilled-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-2b-0.9.8-distilled-fp8.safetensors", + "size": "4.46GB" + }, + { + "name": "LTX-Video 13B Distilled v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "LTX-Video 13B distilled model v0.9.8 with improved prompt understanding and detail generation.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.8-distilled.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.8-distilled.safetensors", + "size": "28.6GB" + }, + { + "name": "LTX-Video 13B Distilled FP8 v0.9.8", + "type": "checkpoint", + "base": "LTX-Video", + "save_path": "checkpoints/LTXV", + "description": "Quantized LTX-Video 13B distilled model v0.9.8 with improved prompt understanding and detail generation, optimized for lower VRAM usage.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.8-distilled-fp8.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.8-distilled-fp8.safetensors", + "size": "15.7GB" + }, + { + "name": "LTX-Video 13B Distilled LoRA v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "A LoRA adapter that transforms the standard LTX-Video 13B model into a distilled version when loaded.", + "reference": "https://huggingface.co/Lightricks/LTX-Video", + "filename": "ltxv-13b-0.9.7-distilled-lora128.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video/resolve/main/ltxv-13b-0.9.7-distilled-lora128.safetensors", + "size": "1.33GB" + }, + { + "name": "LTX-Video ICLoRA Depth 13B v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "In-Context LoRA (IC LoRA) for depth-controlled video-to-video generation with precise depth conditioning.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-depth-13b-0.9.7", + "filename": "ltxv-097-ic-lora-depth-control-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-depth-13b-0.9.7/resolve/main/ltxv-097-ic-lora-depth-control-comfyui.safetensors", + "size": "81.9MB" + }, + { + "name": "LTX-Video ICLoRA Pose 13B v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "In-Context LoRA (IC LoRA) for pose-controlled video-to-video generation with precise pose conditioning.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-pose-13b-0.9.7", + "filename": "ltxv-097-ic-lora-pose-control-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-pose-13b-0.9.7/resolve/main/ltxv-097-ic-lora-pose-control-comfyui.safetensors", + "size": "151MB" + }, + { + "name": "LTX-Video ICLoRA Canny 13B v0.9.7", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "In-Context LoRA (IC LoRA) for canny edge-controlled video-to-video generation with precise edge conditioning.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-canny-13b-0.9.7", + "filename": "ltxv-097-ic-lora-canny-control-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-canny-13b-0.9.7/resolve/main/ltxv-097-ic-lora-canny-control-comfyui.safetensors", + "size": "81.9MB" + }, + { + "name": "LTX-Video ICLoRA Detailer 13B v0.9.8", + "type": "lora", + "base": "LTX-Video", + "save_path": "loras", + "description": "A video detailer model on top of LTXV_13B_098_DEV trained on custom data using In-Context LoRA (IC LoRA) method.", + "reference": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8", + "filename": "ltxv-098-ic-lora-detailer-comfyui.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8/resolve/main/ltxv-098-ic-lora-detailer-comfyui.safetensors", + "size": "1.31GB" + }, + { + "name": "Latent Bridge Matching for Image Relighting", + "type": "diffusion_model", + "base": "LBM", + "save_path": "diffusion_models/LBM", + "description": "Latent Bridge Matching (LBM) Relighting model", + "reference": "https://huggingface.co/jasperai/LBM_relighting", + "filename": "LBM_relighting.safetensors", + "url": "https://huggingface.co/jasperai/LBM_relighting/resolve/main/model.safetensors", + "size": "5.02GB" + }, + { + "name": "Qwen-Image VAE", + "type": "VAE", + "base": "Qwen-Image", + "save_path": "vae/qwen-image", + "description": "VAE model for Qwen-Image", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI", + "filename": "qwen_image_vae.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors", + "size": "335MB" + }, + { + "name": "Qwen 2.5 VL 7B Text Encoder (fp8_scaled)", + "type": "clip", + "base": "Qwen-2.5-VL", + "save_path": "text_encoders/qwen", + "description": "Qwen 2.5 VL 7B text encoder model (fp8_scaled)", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI", + "filename": "qwen_2.5_vl_7b_fp8_scaled.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors", + "size": "3.75GB" + }, + { + "name": "Qwen 2.5 VL 7B Text Encoder", + "type": "clip", + "base": "Qwen-2.5-VL", + "save_path": "text_encoders/qwen", + "description": "Qwen 2.5 VL 7B text encoder model", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI", + "filename": "qwen_2.5_vl_7b.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b.safetensors", + "size": "7.51GB" + }, + { + "name": "Qwen-Image Diffusion Model (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Qwen-Image", + "save_path": "diffusion_models/qwen-image", + "description": "Qwen-Image diffusion model (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI", + "filename": "qwen_image_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_fp8_e4m3fn.safetensors", + "size": "4.89GB" + }, + { + "name": "Qwen-Image Diffusion Model (bf16)", + "type": "diffusion_model", + "base": "Qwen-Image", + "save_path": "diffusion_models/qwen-image", + "description": "Qwen-Image diffusion model (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI", + "filename": "qwen_image_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_bf16.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Edit 2509 Diffusion Model (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Qwen-Image-Edit", + "save_path": "diffusion_models/qwen-image-edit", + "description": "Qwen-Image-Edit 2509 diffusion model (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI", + "filename": "qwen_image_edit_2509_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_2509_fp8_e4m3fn.safetensors", + "size": "4.89GB" + }, + + { + "name": "Qwen-Image-Edit 2509 Diffusion Model (bf16)", + "type": "diffusion_model", + "base": "Qwen-Image-Edit", + "save_path": "diffusion_models/qwen-image-edit", + "description": "Qwen-Image-Edit 2509 diffusion model (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI", + "filename": "qwen_image_edit_2509_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_2509_bf16.safetensors", + "size": "9.78GB" + }, + + { + "name": "Qwen-Image-Edit Diffusion Model (fp8_e4m3fn)", + "type": "diffusion_model", + "base": "Qwen-Image-Edit", + "save_path": "diffusion_models/qwen-image-edit", + "description": "Qwen-Image-Edit diffusion model (fp8_e4m3fn)", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI", + "filename": "qwen_image_edit_fp8_e4m3fn.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_fp8_e4m3fn.safetensors", + "size": "4.89GB" + }, + + { + "name": "Qwen-Image-Edit Diffusion Model (bf16)", + "type": "diffusion_model", + "base": "Qwen-Image-Edit", + "save_path": "diffusion_models/qwen-image-edit", + "description": "Qwen-Image-Edit diffusion model (bf16)", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI", + "filename": "qwen_image_edit_bf16.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_bf16.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Lightning 8steps V1.0", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 8-step LoRA model V1.0", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-8steps-V1.0.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-8steps-V1.0.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Lightning 4steps V1.0", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 4-step LoRA model V1.0", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-4steps-V1.0.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-4steps-V1.0.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Lightning 4steps V1.0 (bf16)", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 4-step LoRA model V1.0 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-4steps-V1.0-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-4steps-V1.0-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Lightning 4steps V2.0", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 4-step LoRA model V2.0", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-4steps-V2.0.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-4steps-V2.0.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Lightning 4steps V2.0 (bf16)", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 4-step LoRA model V2.0 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-4steps-V2.0-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-4steps-V2.0-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Lightning 8steps V1.1", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 8-step LoRA model V1.1", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-8steps-V1.1.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-8steps-V1.1.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Lightning 8steps V1.1 (bf16)", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 8-step LoRA model V1.1 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-8steps-V1.1-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-8steps-V1.1-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Lightning 8steps V2.0", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 8-step LoRA model V2.0", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-8steps-V2.0.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-8steps-V2.0.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Lightning 8steps V2.0 (bf16)", + "type": "lora", + "base": "Qwen-Image", + "save_path": "loras/qwen-image-lightning", + "description": "Qwen-Image-Lightning 8-step LoRA model V2.0 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Lightning-8steps-V2.0-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-8steps-V2.0-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Edit-Lightning 4steps V1.0", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-Lightning 4-step LoRA model V1.0", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-Lightning-4steps-V1.0.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-Lightning-4steps-V1.0.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Edit-Lightning 4steps V1.0 (bf16)", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-Lightning 4-step LoRA model V1.0 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-Lightning-4steps-V1.0-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-Lightning-4steps-V1.0-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Edit-Lightning 8steps V1.0", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-Lightning 8-step LoRA model V1.0", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-Lightning-8steps-V1.0.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-Lightning-8steps-V1.0.safetensors", + "size": "9.78GB" + }, + { + "name": "Qwen-Image-Edit-Lightning 8steps V1.0 (bf16)", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-Lightning 8-step LoRA model V1.0 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-Lightning-8steps-V1.0-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-Lightning-8steps-V1.0-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Edit-2509-Lightning 4steps V1.0 (bf16)", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-2509-Lightning 4-step LoRA model V1.0 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-2509/Qwen-Image-Edit-2509-Lightning-4steps-V1.0-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Edit-2509-Lightning 4steps V1.0 (fp32)", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-2509-Lightning 4-step LoRA model V1.0 (fp32)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-2509-Lightning-4steps-V1.0-fp32.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-2509/Qwen-Image-Edit-2509-Lightning-4steps-V1.0-fp32.safetensors", + "size": "39.1GB" + }, + { + "name": "Qwen-Image-Edit-2509-Lightning 8steps V1.0 (bf16)", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-2509-Lightning 8-step LoRA model V1.0 (bf16)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-2509-Lightning-8steps-V1.0-bf16.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-2509/Qwen-Image-Edit-2509-Lightning-8steps-V1.0-bf16.safetensors", + "size": "19.6GB" + }, + { + "name": "Qwen-Image-Edit-2509-Lightning 8steps V1.0 (fp32)", + "type": "lora", + "base": "Qwen-Image-Edit", + "save_path": "loras/qwen-image-edit-lightning", + "description": "Qwen-Image-Edit-2509-Lightning 8-step LoRA model V1.0 (fp32)", + "reference": "https://huggingface.co/lightx2v/Qwen-Image-Lightning", + "filename": "Qwen-Image-Edit-2509-Lightning-8steps-V1.0-fp32.safetensors", + "url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Edit-2509/Qwen-Image-Edit-2509-Lightning-8steps-V1.0-fp32.safetensors", + "size": "39.1GB" + }, + { + "name": "Qwen-Image InstantX ControlNet Union", + "type": "controlnet", + "base": "Qwen-Image", + "save_path": "controlnet/qwen-image/instantx", + "description": "Qwen-Image InstantX ControlNet Union model", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image-InstantX-ControlNets", + "filename": "Qwen-Image-InstantX-ControlNet-Union.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image-InstantX-ControlNets/resolve/main/split_files/controlnet/Qwen-Image-InstantX-ControlNet-Union.safetensors", + "size": "2.54GB" + }, + { + "name": "Qwen-Image InstantX ControlNet Inpainting", + "type": "controlnet", + "base": "Qwen-Image", + "save_path": "controlnet/qwen-image/instantx", + "description": "Qwen-Image InstantX ControlNet Inpainting model", + "reference": "https://huggingface.co/Comfy-Org/Qwen-Image-InstantX-ControlNets", + "filename": "Qwen-Image-InstantX-ControlNet-Inpainting.safetensors", + "url": "https://huggingface.co/Comfy-Org/Qwen-Image-InstantX-ControlNets/resolve/main/split_files/controlnet/Qwen-Image-InstantX-ControlNet-Inpainting.safetensors", + "size": "2.54GB" + } + ] +} \ No newline at end of file diff --git a/metadata/popular-models.json b/metadata/popular-models.json new file mode 100644 index 0000000..a60f65f --- /dev/null +++ b/metadata/popular-models.json @@ -0,0 +1,151 @@ +{ + "version": "1.0.0", + "description": "Curated list of popular models with download URLs", + "models": { + "v1-5-pruned-emaonly.safetensors": { + "url": "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors", + "type": "checkpoint", + "directory": "checkpoints" + }, + "v1-5-pruned.safetensors": { + "url": "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors", + "type": "checkpoint", + "directory": "checkpoints" + }, + "sd_xl_base_1.0.safetensors": { + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors", + "type": "checkpoint", + "directory": "checkpoints" + }, + "sd_xl_refiner_1.0.safetensors": { + "url": "https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0.safetensors", + "type": "checkpoint", + "directory": "checkpoints" + }, + "sd3_medium_incl_clips_t5xxlfp8.safetensors": { + "url": "https://huggingface.co/stabilityai/stable-diffusion-3-medium/resolve/main/sd3_medium_incl_clips_t5xxlfp8.safetensors", + "type": "checkpoint", + "directory": "checkpoints" + }, + "sd3.5_large.safetensors": { + "url": "https://huggingface.co/stabilityai/stable-diffusion-3.5-large/resolve/main/sd3.5_large.safetensors", + "type": "checkpoint", + "directory": "checkpoints" + }, + "flux1-dev.safetensors": { + "url": "https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/flux1-dev.safetensors", + "type": "diffusion_model", + "directory": "diffusion_models" + }, + "flux1-schnell.safetensors": { + "url": "https://huggingface.co/black-forest-labs/FLUX.1-schnell/resolve/main/flux1-schnell.safetensors", + "type": "diffusion_model", + "directory": "diffusion_models" + }, + "ae.safetensors": { + "url": "https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/ae.safetensors", + "type": "vae", + "directory": "vae" + }, + "clip_l.safetensors": { + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors", + "type": "clip", + "directory": "clip" + }, + "t5xxl_fp16.safetensors": { + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors", + "type": "text_encoder", + "directory": "text_encoders" + }, + "t5xxl_fp8_e4m3fn.safetensors": { + "url": "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors", + "type": "text_encoder", + "directory": "text_encoders" + }, + "sdxl_vae.safetensors": { + "url": "https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors", + "type": "vae", + "directory": "vae" + }, + "vae-ft-mse-840000-ema-pruned.safetensors": { + "url": "https://huggingface.co/stabilityai/sd-vae-ft-mse-original/resolve/main/vae-ft-mse-840000-ema-pruned.safetensors", + "type": "vae", + "directory": "vae" + }, + "RealESRGAN_x4plus.pth": { + "url": "https://huggingface.co/ai-forever/Real-ESRGAN/resolve/main/RealESRGAN_x4plus.pth", + "type": "upscaler", + "directory": "upscale_models" + }, + "4x-UltraSharp.pth": { + "url": "https://huggingface.co/Kim2091/4x-UltraSharp/resolve/main/4x-UltraSharp.pth", + "type": "upscaler", + "directory": "upscale_models" + }, + "control_v11p_sd15_canny.pth": { + "url": "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_canny.pth", + "type": "controlnet", + "directory": "controlnet" + }, + "control_v11p_sd15_openpose.pth": { + "url": "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_openpose.pth", + "type": "controlnet", + "directory": "controlnet" + }, + "control_v11f1p_sd15_depth.pth": { + "url": "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth", + "type": "controlnet", + "directory": "controlnet" + }, + "control_v11p_sd15_lineart.pth": { + "url": "https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11p_sd15_lineart.pth", + "type": "controlnet", + "directory": "controlnet" + }, + "ip-adapter_sd15.safetensors": { + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors", + "type": "ipadapter", + "directory": "ipadapter" + }, + "ip-adapter-plus_sd15.safetensors": { + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors", + "type": "ipadapter", + "directory": "ipadapter" + }, + "ip-adapter_sdxl.safetensors": { + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors", + "type": "ipadapter", + "directory": "ipadapter" + }, + "ip-adapter-plus_sdxl_vit-h.safetensors": { + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors", + "type": "ipadapter", + "directory": "ipadapter" + }, + "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors": { + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors", + "type": "clip_vision", + "directory": "clip_vision" + }, + "CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors": { + "url": "https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/model.safetensors", + "type": "clip_vision", + "directory": "clip_vision" + }, + "sam_vit_h_4b8939.pth": { + "url": "https://huggingface.co/ybelkada/segment-anything/resolve/main/checkpoints/sam_vit_h_4b8939.pth", + "type": "sams", + "directory": "sams" + }, + "sam_vit_b_01ec64.pth": { + "url": "https://huggingface.co/ybelkada/segment-anything/resolve/main/checkpoints/sam_vit_b_01ec64.pth", + "type": "sams", + "directory": "sams" + }, + "wd-v1-4-moat-tagger-v2.onnx": { + "url": "https://huggingface.co/SmilingWolf/wd-v1-4-moat-tagger-v2/resolve/main/model.onnx", + "type": "onnx", + "directory": "onnx" + } + } +} diff --git a/pyproject.toml b/pyproject.toml index d89908b..4b356df 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,19 @@ [project] name = "comfyui-model-linker" -version = "0.1.0" -description = "A ComfyUI extension that helps users relink missing models in workflows" +version = "1.1.0" +description = "A ComfyUI extension that helps users relink missing models in workflows and download from HuggingFace/CivitAI" readme = "README.md" +license = { file = "LICENSE" } requires-python = ">=3.8" +dependencies = [ + "requests>=2.28.0", + "aiohttp>=3.8.0", +] +[project.urls] +Repository = "https://github.com/your-username/comfyui-model-linker" +Documentation = "https://github.com/your-username/comfyui-model-linker#readme" + +[tool.comfy] +PublisherId = "model-linker" +DisplayName = "Model Linker" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..63a9c18 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +requests>=2.28.0 +aiohttp>=3.8.0 diff --git a/web/linker.js b/web/linker.js index 00da7e9..9912e44 100644 --- a/web/linker.js +++ b/web/linker.js @@ -15,6 +15,7 @@ class LinkerManagerDialog extends ComfyDialog { super(); this.currentWorkflow = null; this.missingModels = []; + this.activeDownloads = {}; // Track active downloads // Create dialog element using $el this.element = $el("div.comfy-modal", { @@ -268,6 +269,24 @@ class LinkerManagerDialog extends ComfyDialog { }); } }); + + // Attach download button listener + const downloadBtnId = `download-${missing.node_id}-${missing.widget_index}`; + const downloadBtn = container.querySelector(`#${downloadBtnId}`); + if (downloadBtn && missing.download_source) { + downloadBtn.addEventListener('click', () => { + this.downloadModel(missing); + }); + } + + // Attach search button listener + const searchBtnId = `search-${missing.node_id}-${missing.widget_index}`; + const searchBtn = container.querySelector(`#${searchBtnId}`); + if (searchBtn) { + searchBtn.addEventListener('click', () => { + this.searchOnline(missing); + }); + } }); } @@ -280,6 +299,10 @@ class LinkerManagerDialog extends ComfyDialog { // Filter out matches below 70% confidence threshold const filteredMatches = allMatches.filter(m => m.confidence >= 70); const hasMatches = filteredMatches.length > 0; + + // Calculate 100% matches upfront (needed for download section) + const perfectMatches = filteredMatches.filter(m => m.confidence === 100); + const otherMatches = filteredMatches.filter(m => m.confidence < 100 && m.confidence >= 70); let html = `
`; @@ -301,13 +324,6 @@ class LinkerManagerDialog extends ComfyDialog { html += `
Category: ${missing.category || 'unknown'}
`; if (hasMatches) { - // Filter out matches below 70% confidence threshold - const filteredMatches = allMatches.filter(m => m.confidence >= 70); - - // Separate 100% matches from others (from filtered list) - const perfectMatches = filteredMatches.filter(m => m.confidence === 100); - const otherMatches = filteredMatches.filter(m => m.confidence < 100 && m.confidence >= 70); - // If we have 100% matches, only show those. Otherwise, show other matches sorted by confidence const matchesToShow = perfectMatches.length > 0 ? perfectMatches @@ -347,9 +363,61 @@ class LinkerManagerDialog extends ComfyDialog { } } else if (allMatches.length > 0 && filteredMatches.length === 0) { // Had matches but all were below 70% threshold - html += `
No matches found above 70% confidence threshold.
`; + html += `
No local matches found above 70% confidence threshold.
`; } else { - html += `
No matches found.
`; + html += `
No local matches found.
`; + } + + // Show download option when no 100% local match exists + const filename = missing.original_path?.split('/').pop()?.split('\\').pop() || ''; + const downloadSource = missing.download_source; + + // Always show download/search when there's no perfect local match + if (perfectMatches.length === 0) { + html += `
`; + + if (downloadSource && downloadSource.url) { + // We have a known download URL - show Download button + const isExact = downloadSource.match_type === 'exact' || downloadSource.source === 'popular' || downloadSource.source === 'huggingface' || downloadSource.source === 'civitai'; + const confidence = downloadSource.confidence ? ` (${downloadSource.confidence}% match)` : ''; + const sourceLabels = { + 'popular': 'Popular Models', + 'model_list': 'Model Database', + 'huggingface': 'HuggingFace', + 'civitai': 'CivitAI' + }; + const sourceLabel = sourceLabels[downloadSource.source] || 'Online'; + const downloadFilename = downloadSource.filename || filename; + const modelName = downloadSource.name ? ` (${downloadSource.name})` : ''; + const size = downloadSource.size ? ` [${downloadSource.size}]` : ''; + + html += `
`; + html += ``; + html += `
`; + html += `
`; + html += isExact ? `✓ Found on ${sourceLabel}` : `~ Similar model found${confidence}`; + html += `
`; + html += `
`; + html += `${downloadFilename}${modelName}${size}`; + html += `
`; + html += `
`; + html += `
`; + } else { + // No known download - offer search + html += ``; + html += ``; + } + + html += ``; + html += `
`; } html += '
'; @@ -621,6 +689,395 @@ class LinkerManagerDialog extends ComfyDialog { } } + /** + * Download a model from a known source + */ + async downloadModel(missing) { + const source = missing.download_source; + if (!source || !source.url) { + this.showNotification('No download URL available', 'error'); + return; + } + + // Use filename from download source if available (may be different from original) + const originalFilename = missing.original_path?.split('/').pop()?.split('\\').pop() || 'model.safetensors'; + const filename = source.filename || originalFilename; + const category = source.directory || missing.category || 'checkpoints'; + const progressId = `download-progress-${missing.node_id}-${missing.widget_index}`; + const progressDiv = this.contentElement?.querySelector(`#${progressId}`); + const downloadBtn = this.contentElement?.querySelector(`#download-${missing.node_id}-${missing.widget_index}`); + + try { + // Disable button and show progress + if (downloadBtn) { + downloadBtn.disabled = true; + downloadBtn.textContent = 'Starting...'; + } + if (progressDiv) { + progressDiv.style.display = 'block'; + progressDiv.innerHTML = 'Starting download...'; + } + + // Start download + const response = await api.fetchApi('/model_linker/download', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + url: source.url, + filename: filename, + category: category + }) + }); + + if (!response.ok) { + throw new Error(`Download failed: ${response.status}`); + } + + const data = await response.json(); + if (!data.success) { + throw new Error(data.error || 'Download failed'); + } + + // Track download and poll for progress + const downloadId = data.download_id; + this.activeDownloads[downloadId] = { missing, progressDiv, downloadBtn }; + this.pollDownloadProgress(downloadId); + + } catch (error) { + console.error('Model Linker: Download error:', error); + if (progressDiv) { + progressDiv.innerHTML = `Error: ${error.message}`; + } + if (downloadBtn) { + downloadBtn.disabled = false; + downloadBtn.textContent = 'Retry Download'; + } + this.showNotification('Download failed: ' + error.message, 'error'); + } + } + + /** + * Poll download progress + */ + async pollDownloadProgress(downloadId) { + const info = this.activeDownloads[downloadId]; + if (!info) return; + + try { + const response = await api.fetchApi(`/model_linker/progress/${downloadId}`); + if (!response.ok) { + throw new Error('Failed to get progress'); + } + + const progress = await response.json(); + const { progressDiv, downloadBtn, missing } = info; + + if (progress.status === 'downloading') { + const percent = progress.progress || 0; + const downloaded = this.formatBytes(progress.downloaded || 0); + const total = this.formatBytes(progress.total_size || 0); + + if (progressDiv) { + progressDiv.innerHTML = ` +
+
+
+
+ ${percent}% (${downloaded} / ${total}) + +
+ `; + // Attach cancel handler + const cancelBtn = progressDiv.querySelector('.cancel-download-btn'); + if (cancelBtn && !cancelBtn._hasListener) { + cancelBtn._hasListener = true; + cancelBtn.addEventListener('click', () => this.cancelDownload(downloadId)); + } + } + if (downloadBtn) { + downloadBtn.textContent = `${percent}%`; + } + + // Continue polling + setTimeout(() => this.pollDownloadProgress(downloadId), 1000); + + } else if (progress.status === 'completed') { + if (progressDiv) { + progressDiv.innerHTML = '✓ Download complete! Refresh to see the model.'; + } + if (downloadBtn) { + downloadBtn.textContent = '✓ Downloaded'; + downloadBtn.style.background = '#4CAF50'; + } + delete this.activeDownloads[downloadId]; + this.showNotification(`Downloaded: ${progress.filename}`, 'success'); + + } else if (progress.status === 'error') { + if (progressDiv) { + progressDiv.innerHTML = `Error: ${progress.error || 'Unknown error'}`; + } + if (downloadBtn) { + downloadBtn.disabled = false; + downloadBtn.textContent = 'Retry'; + } + delete this.activeDownloads[downloadId]; + + } else if (progress.status === 'cancelled') { + if (progressDiv) { + progressDiv.innerHTML = 'Download cancelled'; + } + if (downloadBtn) { + downloadBtn.disabled = false; + downloadBtn.textContent = 'Download'; + } + delete this.activeDownloads[downloadId]; + + } else { + // Still starting, keep polling + setTimeout(() => this.pollDownloadProgress(downloadId), 500); + } + + } catch (error) { + console.error('Model Linker: Progress poll error:', error); + delete this.activeDownloads[downloadId]; + } + } + + /** + * Cancel an active download + */ + async cancelDownload(downloadId) { + try { + const response = await api.fetchApi(`/model_linker/cancel/${downloadId}`, { + method: 'POST' + }); + + if (!response.ok) { + throw new Error('Failed to cancel download'); + } + + const info = this.activeDownloads[downloadId]; + if (info?.progressDiv) { + info.progressDiv.innerHTML = 'Cancelling...'; + } + + } catch (error) { + console.error('Model Linker: Cancel error:', error); + this.showNotification('Failed to cancel download', 'error'); + } + } + + /** + * Search online for a model + */ + async searchOnline(missing) { + const filename = missing.original_path?.split('/').pop()?.split('\\').pop() || ''; + const category = missing.category || ''; + const resultsId = `search-results-${missing.node_id}-${missing.widget_index}`; + const resultsDiv = this.contentElement?.querySelector(`#${resultsId}`); + const searchBtn = this.contentElement?.querySelector(`#search-${missing.node_id}-${missing.widget_index}`); + + try { + if (searchBtn) { + searchBtn.disabled = true; + searchBtn.textContent = '🔍 Searching...'; + } + if (resultsDiv) { + resultsDiv.style.display = 'block'; + resultsDiv.innerHTML = 'Searching HuggingFace and CivitAI...'; + } + + const response = await api.fetchApi('/model_linker/search', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ filename, category }) + }); + + if (!response.ok) { + throw new Error(`Search failed: ${response.status}`); + } + + const data = await response.json(); + this.displaySearchResults(missing, data, resultsDiv); + + } catch (error) { + console.error('Model Linker: Search error:', error); + if (resultsDiv) { + resultsDiv.innerHTML = `Search failed: ${error.message}`; + } + } finally { + if (searchBtn) { + searchBtn.disabled = false; + searchBtn.textContent = '🔍 Search Again'; + } + } + } + + /** + * Display search results + */ + displaySearchResults(missing, data, container) { + if (!container) return; + + const popular = data.popular; + const modelListResult = data.model_list; // ComfyUI Manager database result + const hfResult = data.huggingface; + const civitaiResult = data.civitai; + const found = data.found || popular || modelListResult || hfResult || civitaiResult; + + if (!found) { + container.innerHTML = 'No match found online for this model.'; + return; + } + + let html = '
'; + + // Popular models result (highest priority) + if (popular) { + html += `
`; + html += `✓ Found in Popular Models:`; + html += `
`; + html += ``; + html += `
`; + } + + // Model list result (ComfyUI Manager database with fuzzy matching) + if (modelListResult && modelListResult.url) { + const confidence = modelListResult.confidence ? ` (${modelListResult.confidence}% match)` : ''; + const matchType = modelListResult.match_type === 'exact' ? '✓ Exact match' : '~ Similar model'; + const bgColor = modelListResult.match_type === 'exact' ? 'rgba(76, 175, 80, 0.1)' : 'rgba(156, 39, 176, 0.1)'; + const textColor = modelListResult.match_type === 'exact' ? '#4CAF50' : '#9C27B0'; + + html += `
`; + html += `${matchType} in Model Database${confidence}:`; + html += `
`; + html += `${modelListResult.filename}`; + if (modelListResult.name) { + html += ` (${modelListResult.name})`; + } + if (modelListResult.size) { + html += ` [${modelListResult.size}]`; + } + html += `
`; + html += `
`; + html += ``; + html += `
`; + } + + // HuggingFace result + if (hfResult && hfResult.url) { + html += `
`; + html += `✓ Found on HuggingFace:`; + html += `
`; + html += `${hfResult.filename} `; + html += `(${hfResult.repo})`; + html += `
`; + html += `
`; + html += ``; + html += `
`; + } + + // CivitAI result + if (civitaiResult && civitaiResult.download_url) { + html += `
`; + html += `✓ Found on CivitAI:`; + html += `
`; + html += `${civitaiResult.filename || civitaiResult.name} `; + html += `(${civitaiResult.type || civitaiResult.name})`; + html += `
`; + html += `
`; + html += ``; + html += `
`; + } + + html += '
'; + container.innerHTML = html; + + // Attach download listeners + const downloadBtns = container.querySelectorAll('.search-download-btn'); + downloadBtns.forEach(btn => { + btn.addEventListener('click', () => { + const url = btn.dataset.url; + const filename = btn.dataset.filename; + const category = btn.dataset.category; + this.downloadFromSearch(missing, url, filename, category, btn); + }); + }); + } + + /** + * Download from search results + */ + async downloadFromSearch(missing, url, filename, category, btn) { + const progressId = `download-progress-${missing.node_id}-${missing.widget_index}`; + const progressDiv = this.contentElement?.querySelector(`#${progressId}`); + + try { + btn.disabled = true; + btn.textContent = 'Starting...'; + + if (progressDiv) { + progressDiv.style.display = 'block'; + progressDiv.innerHTML = 'Starting download...'; + } + + const response = await api.fetchApi('/model_linker/download', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ url, filename, category }) + }); + + if (!response.ok) { + throw new Error(`Download failed: ${response.status}`); + } + + const data = await response.json(); + if (!data.success) { + throw new Error(data.error || 'Download failed'); + } + + // Track and poll + const downloadId = data.download_id; + this.activeDownloads[downloadId] = { missing, progressDiv, downloadBtn: btn }; + this.pollDownloadProgress(downloadId); + + } catch (error) { + console.error('Model Linker: Download error:', error); + if (progressDiv) { + progressDiv.innerHTML = `Error: ${error.message}`; + } + btn.disabled = false; + btn.textContent = 'Retry'; + this.showNotification('Download failed: ' + error.message, 'error'); + } + } + + /** + * Format bytes to human readable string + */ + formatBytes(bytes) { + if (bytes === 0) return '0 B'; + const k = 1024; + const sizes = ['B', 'KB', 'MB', 'GB']; + const i = Math.floor(Math.log(bytes) / Math.log(k)); + return parseFloat((bytes / Math.pow(k, i)).toFixed(1)) + ' ' + sizes[i]; + } + /** * Update workflow in ComfyUI's UI/memory * Updates the current workflow in place instead of creating a new tab