const unknownImage = 'https://mohitpawar.com/wp-content/uploads/2010/10/unknown.jpg'; function handleKnownKeyExceptions(key) { switch (key) { case 'danika"cbg19"leemassey': return 'cbg'; case 'joannarudaxsh': return 'rudaxsh'; case 'cyberpunk2077:v': return 'v'; case 'character:danascully': return 'gilliananderson'; default: return key; } } function isKnownSkippableKey(key) { if (key.startsWith('concept:') || key.startsWith('style:') || key.startsWith('clothing:')) { return true; } switch (key) { case "sdxl0.9betatests:famouspeople": return true; default: return false; } } function prepareKey(name) { return handleKnownKeyExceptions( name .toLowerCase() .replaceAll(' ', '') .replaceAll('-', '') .replaceAll("'", '') .replaceAll('ł', 'l') .normalize('NFD') .replace(/\p{Diacritic}/gu, ''), ); } function setImageUrl(key, imageUrl) { if (!presence[key].imageUrl) { presence[key].imageUrl = imageUrl; } } function clearCurrentSearchValue() { document.getElementById('search').value = ''; } function getCurrentSearchValue() { return document.getElementById('search').value; } function getCurrentSearchMode() { return document.getElementById('searchMode').value; } function escapeHtml(unsafe) { return unsafe .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function formatNumber(num) { return Math.abs(num) > 999 ? `${Math.sign(num) * (Math.abs(num) / 1000).toFixed(1)}k` : Math.sign(num) * Math.abs(num); } function compare(a, b) { if (a.name < b.name) { return -1; } if (a.name > b.name) { return 1; } return 0; } function linkPrefix(url) { if (!url) return ''; return ``; } function linkSuffix(url) { if (!url) return ''; return ''; } function filterByType(element) { switch (getCurrentSearchMode()) { case 'available': if (document.getElementById('selectedLocon').checked && !element.locon) { return false; } if (document.getElementById('selectedLora').checked && !element.lora) { return false; } if ( document.getElementById('selectedEmbedding').checked && !element.embedding ) { return false; } if (document.getElementById('selectedFlux').checked && !element.flux) { return false; } break; case 'missing': { if (document.getElementById('selectedLocon').checked && element.locon) { return false; } if (document.getElementById('selectedLora').checked && element.lora) { return false; } if ( document.getElementById('selectedEmbedding').checked && element.embedding ) { return false; } if (document.getElementById('selectedFlux').checked && element.flux) { return false; } break; } } return true; } function searchModels(value) { const lowerCaseValue = value.toLowerCase(); const filtered = presenceModels.filter((element) => { return ( (element.key.toLowerCase().includes(lowerCaseValue) || value === '*') && filterByType(element) ); }); document.getElementById('found').value = filtered.length; let htmlContent = ''; const contentDiv = document.getElementById('mainContent'); let keys = []; filtered.forEach((element) => { keys.push(element.key); htmlContent += `