Spaces:
Running
Running
Upload 9 files
Browse files- data-filenames.js +0 -0
- data-filenames.json +0 -0
- data-hf-images.js +12 -0
- data-hf-images.json +12 -0
- data-hf-uploaded.js +0 -0
- data-hf-uploaded.json +0 -0
- data-huggingface.js +0 -0
- data-huggingface.json +0 -0
- index.html +107 -3
data-filenames.js
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data-filenames.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data-hf-images.js
CHANGED
|
@@ -6708,6 +6708,18 @@ const hfImages = {
|
|
| 6708 |
"framework": "Flux"
|
| 6709 |
}
|
| 6710 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6711 |
"WAN": [
|
| 6712 |
{
|
| 6713 |
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/wan/wan_feliciaday_00001_.png",
|
|
|
|
| 6708 |
"framework": "Flux"
|
| 6709 |
}
|
| 6710 |
],
|
| 6711 |
+
"LTX": [
|
| 6712 |
+
{
|
| 6713 |
+
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/ltx/ltx2_feliciaday_00001_.png",
|
| 6714 |
+
"filename": "ltx2_feliciaday_00001_.png",
|
| 6715 |
+
"framework": "LTX"
|
| 6716 |
+
},
|
| 6717 |
+
{
|
| 6718 |
+
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/ltx/ltx2_feliciaday_00002_.mp4",
|
| 6719 |
+
"filename": "ltx2_feliciaday_00002_.mp4",
|
| 6720 |
+
"framework": "LTX"
|
| 6721 |
+
}
|
| 6722 |
+
],
|
| 6723 |
"WAN": [
|
| 6724 |
{
|
| 6725 |
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/wan/wan_feliciaday_00001_.png",
|
data-hf-images.json
CHANGED
|
@@ -6708,6 +6708,18 @@
|
|
| 6708 |
"framework": "Flux"
|
| 6709 |
}
|
| 6710 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6711 |
"WAN": [
|
| 6712 |
{
|
| 6713 |
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/wan/wan_feliciaday_00001_.png",
|
|
|
|
| 6708 |
"framework": "Flux"
|
| 6709 |
}
|
| 6710 |
],
|
| 6711 |
+
"LTX": [
|
| 6712 |
+
{
|
| 6713 |
+
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/ltx/ltx2_feliciaday_00001_.png",
|
| 6714 |
+
"filename": "ltx2_feliciaday_00001_.png",
|
| 6715 |
+
"framework": "LTX"
|
| 6716 |
+
},
|
| 6717 |
+
{
|
| 6718 |
+
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/ltx/ltx2_feliciaday_00002_.mp4",
|
| 6719 |
+
"filename": "ltx2_feliciaday_00002_.mp4",
|
| 6720 |
+
"framework": "LTX"
|
| 6721 |
+
}
|
| 6722 |
+
],
|
| 6723 |
"WAN": [
|
| 6724 |
{
|
| 6725 |
"url": "https://huggingface.co/datasets/malcolmrey/samples/resolve/main/wan/wan_feliciaday_00001_.png",
|
data-hf-uploaded.js
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data-hf-uploaded.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data-huggingface.js
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
data-huggingface.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
index.html
CHANGED
|
@@ -1421,6 +1421,15 @@
|
|
| 1421 |
<span>SDXL</span>
|
| 1422 |
</label>
|
| 1423 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1424 |
<label class="checkbox-label">
|
| 1425 |
<input
|
| 1426 |
id="selectedZimage"
|
|
@@ -1491,6 +1500,7 @@
|
|
| 1491 |
<div class="image-viewer">
|
| 1492 |
<button id="prevImageBtn" class="image-nav-arrow image-nav-prev" onclick="previousImage()" aria-label="Previous image" style="display:none;">‹</button>
|
| 1493 |
<img id="modalImage" src="" alt="" class="modal-image" />
|
|
|
|
| 1494 |
<button id="nextImageBtn" class="image-nav-arrow image-nav-next" onclick="nextImage()" aria-label="Next image" style="display:none;">›</button>
|
| 1495 |
</div>
|
| 1496 |
<div id="imageInfo" class="image-info" style="display:none;">
|
|
@@ -1761,6 +1771,7 @@
|
|
| 1761 |
flux: 'Flux',
|
| 1762 |
wan: 'WAN',
|
| 1763 |
sdxl: 'SDXL',
|
|
|
|
| 1764 |
qwen: 'Qwen',
|
| 1765 |
zimage: 'ZImage'
|
| 1766 |
};
|
|
@@ -1926,6 +1937,7 @@
|
|
| 1926 |
flux: 'flux',
|
| 1927 |
wan: 'wan',
|
| 1928 |
sdxl: 'sdxl',
|
|
|
|
| 1929 |
qwen: 'qwen',
|
| 1930 |
zimage: 'zimage'
|
| 1931 |
};
|
|
@@ -1997,6 +2009,7 @@
|
|
| 1997 |
const modalTitle = document.getElementById('modalTitle');
|
| 1998 |
const modalImage = document.getElementById('modalImage');
|
| 1999 |
const modalStats = document.getElementById('modalStats');
|
|
|
|
| 2000 |
|
| 2001 |
// Generate HuggingFace links using actual filenames from data-filenames.js
|
| 2002 |
const personName = element.key;
|
|
@@ -2006,6 +2019,12 @@
|
|
| 2006 |
modalTitle.textContent = element.key;
|
| 2007 |
modalImage.src = element.imageUrl ?? unknownImage;
|
| 2008 |
modalImage.alt = element.key;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2009 |
|
| 2010 |
modalStats.innerHTML = `
|
| 2011 |
<div class="modal-stat-row">
|
|
@@ -2044,6 +2063,12 @@
|
|
| 2044 |
${formatModalHFLinks(element.sdxl, 'sdxl', personFilenames.sdxl)}
|
| 2045 |
</span>
|
| 2046 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2047 |
<div class="modal-stat-row">
|
| 2048 |
<span class="modal-stat-label">${yesNo(element.zimage)} ZImage</span>
|
| 2049 |
<span class="modal-stat-value">
|
|
@@ -2088,6 +2113,7 @@
|
|
| 2088 |
flux: [],
|
| 2089 |
wan: [],
|
| 2090 |
sdxl: [],
|
|
|
|
| 2091 |
qwen: [],
|
| 2092 |
};
|
| 2093 |
|
|
@@ -2157,6 +2183,22 @@
|
|
| 2157 |
}
|
| 2158 |
});
|
| 2159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2160 |
models.qwens.forEach((qwen) => {
|
| 2161 |
const key = prepareKey(qwen.name);
|
| 2162 |
if (presence[key] !== undefined) {
|
|
@@ -2189,6 +2231,7 @@
|
|
| 2189 |
flux: presence[property].flux,
|
| 2190 |
wan: presence[property].wan,
|
| 2191 |
sdxl: presence[property].sdxl,
|
|
|
|
| 2192 |
zimage: presence[property].zimage,
|
| 2193 |
qwen: presence[property].qwen,
|
| 2194 |
mega: undefined,
|
|
@@ -2199,12 +2242,48 @@
|
|
| 2199 |
fluxHFLink: presence[property]?.fluxHFLink,
|
| 2200 |
wanHFLink: presence[property]?.wanHFLink,
|
| 2201 |
sdxlHFLink: presence[property]?.sdxlHFLink,
|
|
|
|
| 2202 |
zimageHFLink: presence[property]?.zimageHFLink,
|
| 2203 |
qwenHFLink: presence[property]?.qwenHFLink,
|
| 2204 |
};
|
| 2205 |
presenceModels.push(element);
|
| 2206 |
}
|
| 2207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2208 |
function searchModelsModern(value) {
|
| 2209 |
const lowerCaseValue = value.toLowerCase();
|
| 2210 |
const sortBy = getSortBy();
|
|
@@ -2323,7 +2402,12 @@
|
|
| 2323 |
images.push(...personHFImages.WAN);
|
| 2324 |
}
|
| 2325 |
|
| 2326 |
-
// 3. Add
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2327 |
// Check each framework in personData for Civitai models
|
| 2328 |
const checkCivitaiImage = (framework, civitaiModels) => {
|
| 2329 |
if (!civitaiModels) return;
|
|
@@ -2345,9 +2429,12 @@
|
|
| 2345 |
checkCivitaiImage('Flux', models.fluxes);
|
| 2346 |
checkCivitaiImage('WAN', models.wans);
|
| 2347 |
checkCivitaiImage('SDXL', models.sdxls);
|
|
|
|
|
|
|
|
|
|
| 2348 |
checkCivitaiImage('Qwen', models.qwens);
|
| 2349 |
|
| 2350 |
-
//
|
| 2351 |
const frameworkOrder = ['LyCORIS', 'Lora', 'Embedding', 'Flux', 'SDXL', 'Qwen'];
|
| 2352 |
for (const fw of frameworkOrder) {
|
| 2353 |
if (personHFImages[fw]) {
|
|
@@ -2360,6 +2447,7 @@
|
|
| 2360 |
|
| 2361 |
function updateImageDisplay() {
|
| 2362 |
const modalImage = document.getElementById('modalImage');
|
|
|
|
| 2363 |
const imageCounter = document.getElementById('imageCounter');
|
| 2364 |
const frameworkLabel = document.getElementById('frameworkLabel');
|
| 2365 |
const imageInfo = document.getElementById('imageInfo');
|
|
@@ -2368,7 +2456,23 @@
|
|
| 2368 |
|
| 2369 |
if (currentImages.length > 0) {
|
| 2370 |
const currentImage = currentImages[currentImageIndex];
|
| 2371 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2372 |
|
| 2373 |
if (currentImages.length > 1) {
|
| 2374 |
imageCounter.textContent = `${currentImageIndex + 1} / ${currentImages.length}`;
|
|
|
|
| 1421 |
<span>SDXL</span>
|
| 1422 |
</label>
|
| 1423 |
|
| 1424 |
+
<label class="checkbox-label">
|
| 1425 |
+
<input
|
| 1426 |
+
id="selectedLtx"
|
| 1427 |
+
type="checkbox"
|
| 1428 |
+
onclick="javascript:searchModels(getCurrentSearchValue());"
|
| 1429 |
+
/>
|
| 1430 |
+
<span>LTX</span>
|
| 1431 |
+
</label>
|
| 1432 |
+
|
| 1433 |
<label class="checkbox-label">
|
| 1434 |
<input
|
| 1435 |
id="selectedZimage"
|
|
|
|
| 1500 |
<div class="image-viewer">
|
| 1501 |
<button id="prevImageBtn" class="image-nav-arrow image-nav-prev" onclick="previousImage()" aria-label="Previous image" style="display:none;">‹</button>
|
| 1502 |
<img id="modalImage" src="" alt="" class="modal-image" />
|
| 1503 |
+
<video id="modalVideo" class="modal-image" style="display:none;" controls muted playsinline preload="metadata"></video>
|
| 1504 |
<button id="nextImageBtn" class="image-nav-arrow image-nav-next" onclick="nextImage()" aria-label="Next image" style="display:none;">›</button>
|
| 1505 |
</div>
|
| 1506 |
<div id="imageInfo" class="image-info" style="display:none;">
|
|
|
|
| 1771 |
flux: 'Flux',
|
| 1772 |
wan: 'WAN',
|
| 1773 |
sdxl: 'SDXL',
|
| 1774 |
+
ltx: 'LTX',
|
| 1775 |
qwen: 'Qwen',
|
| 1776 |
zimage: 'ZImage'
|
| 1777 |
};
|
|
|
|
| 1937 |
flux: 'flux',
|
| 1938 |
wan: 'wan',
|
| 1939 |
sdxl: 'sdxl',
|
| 1940 |
+
ltx: 'ltx',
|
| 1941 |
qwen: 'qwen',
|
| 1942 |
zimage: 'zimage'
|
| 1943 |
};
|
|
|
|
| 2009 |
const modalTitle = document.getElementById('modalTitle');
|
| 2010 |
const modalImage = document.getElementById('modalImage');
|
| 2011 |
const modalStats = document.getElementById('modalStats');
|
| 2012 |
+
const modalVideo = document.getElementById('modalVideo');
|
| 2013 |
|
| 2014 |
// Generate HuggingFace links using actual filenames from data-filenames.js
|
| 2015 |
const personName = element.key;
|
|
|
|
| 2019 |
modalTitle.textContent = element.key;
|
| 2020 |
modalImage.src = element.imageUrl ?? unknownImage;
|
| 2021 |
modalImage.alt = element.key;
|
| 2022 |
+
if (modalVideo) {
|
| 2023 |
+
modalVideo.pause?.();
|
| 2024 |
+
modalVideo.removeAttribute('src');
|
| 2025 |
+
modalVideo.load?.();
|
| 2026 |
+
modalVideo.style.display = 'none';
|
| 2027 |
+
}
|
| 2028 |
|
| 2029 |
modalStats.innerHTML = `
|
| 2030 |
<div class="modal-stat-row">
|
|
|
|
| 2063 |
${formatModalHFLinks(element.sdxl, 'sdxl', personFilenames.sdxl)}
|
| 2064 |
</span>
|
| 2065 |
</div>
|
| 2066 |
+
<div class="modal-stat-row">
|
| 2067 |
+
<span class="modal-stat-label">${yesNo(element.ltx)} LTX</span>
|
| 2068 |
+
<span class="modal-stat-value">
|
| 2069 |
+
${formatModalHFLinks(element.ltx, 'ltx', personFilenames.ltx)}
|
| 2070 |
+
</span>
|
| 2071 |
+
</div>
|
| 2072 |
<div class="modal-stat-row">
|
| 2073 |
<span class="modal-stat-label">${yesNo(element.zimage)} ZImage</span>
|
| 2074 |
<span class="modal-stat-value">
|
|
|
|
| 2113 |
flux: [],
|
| 2114 |
wan: [],
|
| 2115 |
sdxl: [],
|
| 2116 |
+
ltx: [],
|
| 2117 |
qwen: [],
|
| 2118 |
};
|
| 2119 |
|
|
|
|
| 2183 |
}
|
| 2184 |
});
|
| 2185 |
|
| 2186 |
+
if (models.ltxes) {
|
| 2187 |
+
models.ltxes.forEach((ltx) => {
|
| 2188 |
+
const key = prepareKey(ltx.name);
|
| 2189 |
+
if (presence[key] !== undefined) {
|
| 2190 |
+
presence[key].ltxCivitai = true;
|
| 2191 |
+
setImageUrl(key, ltx.imageUrl);
|
| 2192 |
+
presence[key].ltxCivitaiLink = ltx.url;
|
| 2193 |
+
} else if (!isKnownSkippableKey(key)) {
|
| 2194 |
+
if (!notMatched.ltx) {
|
| 2195 |
+
notMatched.ltx = [];
|
| 2196 |
+
}
|
| 2197 |
+
notMatched.ltx.push(key);
|
| 2198 |
+
}
|
| 2199 |
+
});
|
| 2200 |
+
}
|
| 2201 |
+
|
| 2202 |
models.qwens.forEach((qwen) => {
|
| 2203 |
const key = prepareKey(qwen.name);
|
| 2204 |
if (presence[key] !== undefined) {
|
|
|
|
| 2231 |
flux: presence[property].flux,
|
| 2232 |
wan: presence[property].wan,
|
| 2233 |
sdxl: presence[property].sdxl,
|
| 2234 |
+
ltx: presence[property].ltx,
|
| 2235 |
zimage: presence[property].zimage,
|
| 2236 |
qwen: presence[property].qwen,
|
| 2237 |
mega: undefined,
|
|
|
|
| 2242 |
fluxHFLink: presence[property]?.fluxHFLink,
|
| 2243 |
wanHFLink: presence[property]?.wanHFLink,
|
| 2244 |
sdxlHFLink: presence[property]?.sdxlHFLink,
|
| 2245 |
+
ltxHFLink: presence[property]?.ltxHFLink,
|
| 2246 |
zimageHFLink: presence[property]?.zimageHFLink,
|
| 2247 |
qwenHFLink: presence[property]?.qwenHFLink,
|
| 2248 |
};
|
| 2249 |
presenceModels.push(element);
|
| 2250 |
}
|
| 2251 |
|
| 2252 |
+
function filterByType(element) {
|
| 2253 |
+
const mode = document.getElementById('searchMode').value;
|
| 2254 |
+
const filters = [
|
| 2255 |
+
{ selected: document.getElementById('selectedLocon').checked, property: element.locon },
|
| 2256 |
+
{ selected: document.getElementById('selectedLora').checked, property: element.lora },
|
| 2257 |
+
{ selected: document.getElementById('selectedEmbedding').checked, property: element.embedding },
|
| 2258 |
+
{ selected: document.getElementById('selectedFlux').checked, property: element.flux },
|
| 2259 |
+
{ selected: document.getElementById('selectedWan').checked, property: element.wan },
|
| 2260 |
+
{ selected: document.getElementById('selectedSdxl').checked, property: element.sdxl },
|
| 2261 |
+
{ selected: document.getElementById('selectedLtx').checked, property: element.ltx },
|
| 2262 |
+
{ selected: document.getElementById('selectedQwen').checked, property: element.qwen },
|
| 2263 |
+
{ selected: document.getElementById('selectedZimage').checked, property: element.zimage },
|
| 2264 |
+
];
|
| 2265 |
+
|
| 2266 |
+
// If no filters are selected, show all
|
| 2267 |
+
const anySelected = filters.some((f) => f.selected);
|
| 2268 |
+
if (!anySelected) {
|
| 2269 |
+
return true;
|
| 2270 |
+
}
|
| 2271 |
+
|
| 2272 |
+
// Check each selected filter
|
| 2273 |
+
for (const filter of filters) {
|
| 2274 |
+
if (filter.selected) {
|
| 2275 |
+
if (mode === 'available' && !filter.property) {
|
| 2276 |
+
return false;
|
| 2277 |
+
}
|
| 2278 |
+
if (mode === 'missing' && filter.property) {
|
| 2279 |
+
return false;
|
| 2280 |
+
}
|
| 2281 |
+
}
|
| 2282 |
+
}
|
| 2283 |
+
|
| 2284 |
+
return true;
|
| 2285 |
+
}
|
| 2286 |
+
|
| 2287 |
function searchModelsModern(value) {
|
| 2288 |
const lowerCaseValue = value.toLowerCase();
|
| 2289 |
const sortBy = getSortBy();
|
|
|
|
| 2402 |
images.push(...personHFImages.WAN);
|
| 2403 |
}
|
| 2404 |
|
| 2405 |
+
// 3. Add LTX samples third (from HF samples data)
|
| 2406 |
+
if (personHFImages.LTX) {
|
| 2407 |
+
images.push(...personHFImages.LTX);
|
| 2408 |
+
}
|
| 2409 |
+
|
| 2410 |
+
// 4. Add Civitai images by type
|
| 2411 |
// Check each framework in personData for Civitai models
|
| 2412 |
const checkCivitaiImage = (framework, civitaiModels) => {
|
| 2413 |
if (!civitaiModels) return;
|
|
|
|
| 2429 |
checkCivitaiImage('Flux', models.fluxes);
|
| 2430 |
checkCivitaiImage('WAN', models.wans);
|
| 2431 |
checkCivitaiImage('SDXL', models.sdxls);
|
| 2432 |
+
if (models.ltxes) {
|
| 2433 |
+
checkCivitaiImage('LTX', models.ltxes);
|
| 2434 |
+
}
|
| 2435 |
checkCivitaiImage('Qwen', models.qwens);
|
| 2436 |
|
| 2437 |
+
// 5. Add other HF samples (excluding ZImage, WAN and LTX which are already added)
|
| 2438 |
const frameworkOrder = ['LyCORIS', 'Lora', 'Embedding', 'Flux', 'SDXL', 'Qwen'];
|
| 2439 |
for (const fw of frameworkOrder) {
|
| 2440 |
if (personHFImages[fw]) {
|
|
|
|
| 2447 |
|
| 2448 |
function updateImageDisplay() {
|
| 2449 |
const modalImage = document.getElementById('modalImage');
|
| 2450 |
+
const modalVideo = document.getElementById('modalVideo');
|
| 2451 |
const imageCounter = document.getElementById('imageCounter');
|
| 2452 |
const frameworkLabel = document.getElementById('frameworkLabel');
|
| 2453 |
const imageInfo = document.getElementById('imageInfo');
|
|
|
|
| 2456 |
|
| 2457 |
if (currentImages.length > 0) {
|
| 2458 |
const currentImage = currentImages[currentImageIndex];
|
| 2459 |
+
const isVideo = currentImage.url.toLowerCase().endsWith('.mp4');
|
| 2460 |
+
if (isVideo) {
|
| 2461 |
+
if (modalVideo) {
|
| 2462 |
+
modalVideo.src = currentImage.url;
|
| 2463 |
+
modalVideo.style.display = 'block';
|
| 2464 |
+
}
|
| 2465 |
+
modalImage.style.display = 'none';
|
| 2466 |
+
} else {
|
| 2467 |
+
modalImage.src = currentImage.url;
|
| 2468 |
+
modalImage.style.display = 'block';
|
| 2469 |
+
if (modalVideo) {
|
| 2470 |
+
modalVideo.pause?.();
|
| 2471 |
+
modalVideo.removeAttribute('src');
|
| 2472 |
+
modalVideo.load?.();
|
| 2473 |
+
modalVideo.style.display = 'none';
|
| 2474 |
+
}
|
| 2475 |
+
}
|
| 2476 |
|
| 2477 |
if (currentImages.length > 1) {
|
| 2478 |
imageCounter.textContent = `${currentImageIndex + 1} / ${currentImages.length}`;
|