Update index.html
Browse files- index.html +140 -108
index.html
CHANGED
@@ -386,6 +386,116 @@
|
|
386 |
<script>
|
387 |
let currentCategory = 'hf-models';
|
388 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
389 |
// ์นดํ
๊ณ ๋ฆฌ ์ ํ
|
390 |
function showCategory(category) {
|
391 |
currentCategory = category;
|
@@ -438,77 +548,31 @@
|
|
438 |
}
|
439 |
|
440 |
// Replicate ๋ชจ๋ธ ๋ก๋
|
441 |
-
|
442 |
const container = document.getElementById('replicate-content');
|
443 |
-
container.innerHTML = '
|
444 |
|
445 |
-
|
446 |
-
|
447 |
-
const
|
448 |
-
|
449 |
-
const
|
450 |
-
const html = await response.text();
|
451 |
-
|
452 |
-
// HTML์์ ๋ชจ๋ธ URL ์ถ์ถ
|
453 |
-
const parser = new DOMParser();
|
454 |
-
const doc = parser.parseFromString(html, 'text/html');
|
455 |
-
|
456 |
-
// ๋ชจ๋ ๋ชจ๋ธ ๋งํฌ ์ฐพ๊ธฐ
|
457 |
-
const modelLinks = doc.querySelectorAll('a[href*="/models/"], a[href*="/p/"]');
|
458 |
-
const models = [];
|
459 |
-
const seenUrls = new Set();
|
460 |
-
|
461 |
-
modelLinks.forEach(link => {
|
462 |
-
const href = link.getAttribute('href');
|
463 |
-
if (href && !seenUrls.has(href)) {
|
464 |
-
seenUrls.add(href);
|
465 |
-
const parts = href.split('/');
|
466 |
-
if (parts.length >= 3) {
|
467 |
-
const author = parts[parts.length - 2];
|
468 |
-
const name = parts[parts.length - 1];
|
469 |
-
if (author && name && author !== 'models' && author !== 'p') {
|
470 |
-
models.push({
|
471 |
-
author: author,
|
472 |
-
name: name,
|
473 |
-
url: `https://replicate.com${href}`
|
474 |
-
});
|
475 |
-
}
|
476 |
-
}
|
477 |
-
}
|
478 |
-
});
|
479 |
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
}
|
496 |
-
}
|
497 |
-
} catch (e) {
|
498 |
-
console.error(e);
|
499 |
-
}
|
500 |
-
}
|
501 |
-
}
|
502 |
-
|
503 |
-
if (modelsData.length > 0) {
|
504 |
-
displayReplicateModels(modelsData, container);
|
505 |
-
} else {
|
506 |
-
displaySampleReplicateModels(container);
|
507 |
-
}
|
508 |
-
}
|
509 |
-
} catch (error) {
|
510 |
-
displaySampleReplicateModels(container);
|
511 |
-
}
|
512 |
}
|
513 |
|
514 |
// ํ๋ก์ ์์ฒญ
|
@@ -574,23 +638,6 @@
|
|
574 |
});
|
575 |
}
|
576 |
|
577 |
-
// Replicate ์ค์๊ฐ ๋ชจ๋ธ ํ์
|
578 |
-
function displayReplicateModels(models, container) {
|
579 |
-
container.innerHTML = '';
|
580 |
-
models.forEach((model, index) => {
|
581 |
-
const card = createModelCard({
|
582 |
-
rank: index + 1,
|
583 |
-
title: model.name || model.default_example?.model || 'Unknown',
|
584 |
-
author: model.owner || model.author || model.username || 'replicate',
|
585 |
-
runs: model.run_count || model.runs || 0,
|
586 |
-
icon: getModelIcon(model.name),
|
587 |
-
badge: 'โ
Official',
|
588 |
-
url: model.url || `https://replicate.com/${model.owner || model.author || 'p'}/${model.name}`
|
589 |
-
});
|
590 |
-
container.appendChild(card);
|
591 |
-
});
|
592 |
-
}
|
593 |
-
|
594 |
// ๋ชจ๋ธ ์นด๋ ์์ฑ
|
595 |
function createModelCard(data) {
|
596 |
const card = document.createElement('div');
|
@@ -644,10 +691,14 @@
|
|
644 |
function getModelIcon(name) {
|
645 |
if (!name) return '๐ค';
|
646 |
const lowerName = name.toLowerCase();
|
647 |
-
if (lowerName.includes('
|
648 |
-
if (lowerName.includes('video')) return '๐ฌ';
|
649 |
-
if (lowerName.includes('audio') || lowerName.includes('music') || lowerName.includes('
|
650 |
-
if (lowerName.includes('llama') || lowerName.includes('
|
|
|
|
|
|
|
|
|
651 |
return '๐ค';
|
652 |
}
|
653 |
|
@@ -694,25 +745,6 @@
|
|
694 |
});
|
695 |
}
|
696 |
|
697 |
-
function displaySampleReplicateModels(container) {
|
698 |
-
const officialData = [
|
699 |
-
{ rank: 1, title: 'meta-llama-3.3-70b-instruct', author: 'meta', runs: 3450000, icon: '๐ค', badge: 'โ
Official' },
|
700 |
-
{ rank: 2, title: 'flux-1.1-pro', author: 'black-forest-labs', runs: 2910000, icon: '๐จ', badge: 'โ
Official' },
|
701 |
-
{ rank: 3, title: 'stable-diffusion-3', author: 'stability-ai', runs: 1750000, icon: '๐ผ๏ธ', badge: 'โ
Official' },
|
702 |
-
{ rank: 4, title: 'whisper', author: 'openai', runs: 890000, icon: '๐ค', badge: 'โ
Official' },
|
703 |
-
{ rank: 5, title: 'musicgen', author: 'facebook', runs: 450000, icon: '๐ต', badge: 'โ
Official' },
|
704 |
-
{ rank: 6, title: 'sdxl', author: 'stability-ai', runs: 380000, icon: '๐จ', badge: '๏ฟฝ๏ฟฝ๏ฟฝ Official' },
|
705 |
-
{ rank: 7, title: 'claude-3.7-sonnet', author: 'anthropic', runs: 290000, icon: '๐ค', badge: 'โ
Official' },
|
706 |
-
{ rank: 8, title: 'gemma-2-9b-it', author: 'google', runs: 180000, icon: '๐ฌ', badge: 'โ
Official' }
|
707 |
-
];
|
708 |
-
|
709 |
-
container.innerHTML = '';
|
710 |
-
officialData.forEach(model => {
|
711 |
-
model.url = `https://replicate.com/${model.author}/${model.title}`;
|
712 |
-
container.appendChild(createModelCard(model));
|
713 |
-
});
|
714 |
-
}
|
715 |
-
|
716 |
// ์๋ก๊ณ ์นจ
|
717 |
function refreshCurrent() {
|
718 |
if (currentCategory === 'hf-models') {
|
|
|
386 |
<script>
|
387 |
let currentCategory = 'hf-models';
|
388 |
|
389 |
+
// Replicate URL ๋ฆฌ์คํธ
|
390 |
+
const replicateUrls = [
|
391 |
+
"https://replicate.com/google/imagen-4",
|
392 |
+
"https://replicate.com/google/imagen-3-fast",
|
393 |
+
"https://replicate.com/google/imagen-3",
|
394 |
+
"https://replicate.com/google/lyria-2",
|
395 |
+
"https://replicate.com/luma/ray-flash-2-720p",
|
396 |
+
"https://replicate.com/luma/ray-2-720p",
|
397 |
+
"https://replicate.com/luma/ray-flash-2-540p",
|
398 |
+
"https://replicate.com/luma/ray-2-540p",
|
399 |
+
"https://replicate.com/luma/ray",
|
400 |
+
"https://replicate.com/google/veo-2",
|
401 |
+
"https://replicate.com/black-forest-labs/flux-dev-lora",
|
402 |
+
"https://replicate.com/anthropic/claude-4-sonnet",
|
403 |
+
"https://replicate.com/kwaivgi/kling-v1.6-pro",
|
404 |
+
"https://replicate.com/kwaivgi/kling-v1.6-standard",
|
405 |
+
"https://replicate.com/pixverse/pixverse-v4.5",
|
406 |
+
"https://replicate.com/pixverse/pixverse-v4",
|
407 |
+
"https://replicate.com/openai/o4-mini",
|
408 |
+
"https://replicate.com/openai/o1",
|
409 |
+
"https://replicate.com/openai/o1-mini",
|
410 |
+
"https://replicate.com/openai/gpt-4o",
|
411 |
+
"https://replicate.com/openai/gpt-4o-mini",
|
412 |
+
"https://replicate.com/openai/gpt-4.1",
|
413 |
+
"https://replicate.com/openai/gpt-4.1-nano",
|
414 |
+
"https://replicate.com/kwaivgi/kling-lip-sync",
|
415 |
+
"https://replicate.com/openai/gpt-4.1-mini",
|
416 |
+
"https://replicate.com/kwaivgi/kling-v2.0",
|
417 |
+
"https://replicate.com/kwaivgi/kling-v1.5-pro",
|
418 |
+
"https://replicate.com/kwaivgi/kling-v1.5-standard",
|
419 |
+
"https://replicate.com/pixverse/pixverse-v3.5",
|
420 |
+
"https://replicate.com/openai/dall-e-2",
|
421 |
+
"https://replicate.com/openai/dall-e-3",
|
422 |
+
"https://replicate.com/fofr/color-matcher",
|
423 |
+
"https://replicate.com/minimax/speech-02-turbo",
|
424 |
+
"https://replicate.com/minimax/speech-02-hd",
|
425 |
+
"https://replicate.com/minimax/voice-cloning",
|
426 |
+
"https://replicate.com/ideogram-ai/ideogram-v3-balanced",
|
427 |
+
"https://replicate.com/ideogram-ai/ideogram-v3-turbo",
|
428 |
+
"https://replicate.com/ideogram-ai/ideogram-v3-quality",
|
429 |
+
"https://replicate.com/easel/ai-avatars",
|
430 |
+
"https://replicate.com/black-forest-labs/flux-1.1-pro-ultra-finetuned",
|
431 |
+
"https://replicate.com/black-forest-labs/flux-pro-trainer",
|
432 |
+
"https://replicate.com/openai/gpt-image-1",
|
433 |
+
"https://replicate.com/minimax/image-01",
|
434 |
+
"https://replicate.com/topazlabs/image-upscale",
|
435 |
+
"https://replicate.com/topazlabs/video-upscale",
|
436 |
+
"https://replicate.com/ibm-granite/granite-3.3-8b-instruct",
|
437 |
+
"https://replicate.com/meta/llama-4-maverick-instruct",
|
438 |
+
"https://replicate.com/meta/llama-4-scout-instruct",
|
439 |
+
"https://replicate.com/black-forest-labs/flux-schnell-lora",
|
440 |
+
"https://replicate.com/black-forest-labs/flux-fill-dev",
|
441 |
+
"https://replicate.com/black-forest-labs/flux-1.1-pro-ultra",
|
442 |
+
"https://replicate.com/black-forest-labs/flux-1.1-pro",
|
443 |
+
"https://replicate.com/black-forest-labs/flux-pro",
|
444 |
+
"https://replicate.com/black-forest-labs/flux-fill-pro",
|
445 |
+
"https://replicate.com/black-forest-labs/flux-canny-pro",
|
446 |
+
"https://replicate.com/black-forest-labs/flux-depth-pro",
|
447 |
+
"https://replicate.com/wavespeedai/wan-2.1-t2v-480p",
|
448 |
+
"https://replicate.com/wavespeedai/wan-2.1-t2v-720p",
|
449 |
+
"https://replicate.com/wavespeedai/wan-2.1-i2v-480p",
|
450 |
+
"https://replicate.com/wavespeedai/wan-2.1-i2v-720p",
|
451 |
+
"https://replicate.com/deepseek-ai/deepseek-v3",
|
452 |
+
"https://replicate.com/recraft-ai/recraft-v3",
|
453 |
+
"https://replicate.com/recraft-ai/recraft-v3-svg",
|
454 |
+
"https://replicate.com/recraft-ai/recraft-20b-svg",
|
455 |
+
"https://replicate.com/recraft-ai/recraft-20b",
|
456 |
+
"https://replicate.com/black-forest-labs/flux-redux-schnell",
|
457 |
+
"https://replicate.com/black-forest-labs/flux-redux-dev",
|
458 |
+
"https://replicate.com/black-forest-labs/flux-schnell",
|
459 |
+
"https://replicate.com/black-forest-labs/flux-depth-dev",
|
460 |
+
"https://replicate.com/black-forest-labs/flux-canny-dev",
|
461 |
+
"https://replicate.com/black-forest-labs/flux-dev",
|
462 |
+
"https://replicate.com/easel/advanced-face-swap",
|
463 |
+
"https://replicate.com/ibm-granite/granite-3.2-8b-instruct",
|
464 |
+
"https://replicate.com/ideogram-ai/ideogram-v2a-turbo",
|
465 |
+
"https://replicate.com/ideogram-ai/ideogram-v2a",
|
466 |
+
"https://replicate.com/anthropic/claude-3.7-sonnet",
|
467 |
+
"https://replicate.com/minimax/video-01-director",
|
468 |
+
"https://replicate.com/anthropic/claude-3.5-haiku",
|
469 |
+
"https://replicate.com/anthropic/claude-3.5-sonnet",
|
470 |
+
"https://replicate.com/google/upscaler",
|
471 |
+
"https://replicate.com/deepseek-ai/deepseek-r1",
|
472 |
+
"https://replicate.com/minimax/video-01",
|
473 |
+
"https://replicate.com/recraft-ai/recraft-creative-upscale",
|
474 |
+
"https://replicate.com/recraft-ai/recraft-crisp-upscale",
|
475 |
+
"https://replicate.com/playht/play-dialog",
|
476 |
+
"https://replicate.com/ibm-granite/granite-3.1-8b-instruct",
|
477 |
+
"https://replicate.com/ibm-granite/granite-3.1-2b-instruct",
|
478 |
+
"https://replicate.com/minimax/music-01",
|
479 |
+
"https://replicate.com/minimax/video-01-live",
|
480 |
+
"https://replicate.com/luma/photon-flash",
|
481 |
+
"https://replicate.com/luma/photon",
|
482 |
+
"https://replicate.com/haiper-ai/haiper-video-2",
|
483 |
+
"https://replicate.com/stability-ai/stable-diffusion-3.5-medium",
|
484 |
+
"https://replicate.com/stability-ai/stable-diffusion-3.5-large-turbo",
|
485 |
+
"https://replicate.com/stability-ai/stable-diffusion-3.5-large",
|
486 |
+
"https://replicate.com/ideogram-ai/ideogram-v2-turbo",
|
487 |
+
"https://replicate.com/ideogram-ai/ideogram-v2",
|
488 |
+
"https://replicate.com/ibm-granite/granite-3.0-8b-instruct",
|
489 |
+
"https://replicate.com/ibm-granite/granite-3.0-2b-instruct",
|
490 |
+
"https://replicate.com/ibm-granite/granite-8b-code-instruct-128k",
|
491 |
+
"https://replicate.com/ibm-granite/granite-20b-code-instruct-8k",
|
492 |
+
"https://replicate.com/meta/meta-llama-3.1-405b-instruct",
|
493 |
+
"https://replicate.com/stability-ai/stable-diffusion-3",
|
494 |
+
"https://replicate.com/meta/meta-llama-3-70b",
|
495 |
+
"https://replicate.com/meta/meta-llama-3-70b-instruct",
|
496 |
+
"https://replicate.com/meta/meta-llama-3-8b-instruct"
|
497 |
+
];
|
498 |
+
|
499 |
// ์นดํ
๊ณ ๋ฆฌ ์ ํ
|
500 |
function showCategory(category) {
|
501 |
currentCategory = category;
|
|
|
548 |
}
|
549 |
|
550 |
// Replicate ๋ชจ๋ธ ๋ก๋
|
551 |
+
function loadReplicate() {
|
552 |
const container = document.getElementById('replicate-content');
|
553 |
+
container.innerHTML = '';
|
554 |
|
555 |
+
// URL์์ ๋ชจ๋ธ ์ ๋ณด ์ถ์ถ
|
556 |
+
const models = replicateUrls.map((url, index) => {
|
557 |
+
const parts = url.split('/');
|
558 |
+
const author = parts[parts.length - 2];
|
559 |
+
const modelName = parts[parts.length - 1];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
560 |
|
561 |
+
return {
|
562 |
+
rank: index + 1,
|
563 |
+
title: modelName,
|
564 |
+
author: author,
|
565 |
+
url: url,
|
566 |
+
icon: getModelIcon(modelName),
|
567 |
+
badge: 'โ
Official'
|
568 |
+
};
|
569 |
+
});
|
570 |
+
|
571 |
+
// ๋ชจ๋ธ ์นด๋ ์์ฑ ๋ฐ ํ์
|
572 |
+
models.forEach(model => {
|
573 |
+
const card = createModelCard(model);
|
574 |
+
container.appendChild(card);
|
575 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
576 |
}
|
577 |
|
578 |
// ํ๋ก์ ์์ฒญ
|
|
|
638 |
});
|
639 |
}
|
640 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
641 |
// ๋ชจ๋ธ ์นด๋ ์์ฑ
|
642 |
function createModelCard(data) {
|
643 |
const card = document.createElement('div');
|
|
|
691 |
function getModelIcon(name) {
|
692 |
if (!name) return '๐ค';
|
693 |
const lowerName = name.toLowerCase();
|
694 |
+
if (lowerName.includes('imagen') || lowerName.includes('dall-e') || lowerName.includes('stable-diffusion') || lowerName.includes('flux') || lowerName.includes('ideogram') || lowerName.includes('recraft')) return '๐จ';
|
695 |
+
if (lowerName.includes('video') || lowerName.includes('veo') || lowerName.includes('ray') || lowerName.includes('kling') || lowerName.includes('pixverse') || lowerName.includes('wan') || lowerName.includes('haiper')) return '๐ฌ';
|
696 |
+
if (lowerName.includes('audio') || lowerName.includes('music') || lowerName.includes('speech') || lowerName.includes('voice') || lowerName.includes('lyria') || lowerName.includes('play-dialog')) return '๐ต';
|
697 |
+
if (lowerName.includes('llama') || lowerName.includes('gpt') || lowerName.includes('claude') || lowerName.includes('granite') || lowerName.includes('mistral') || lowerName.includes('deepseek')) return '๐ฌ';
|
698 |
+
if (lowerName.includes('upscale') || lowerName.includes('upscaler')) return '๐';
|
699 |
+
if (lowerName.includes('swap') || lowerName.includes('avatar') || lowerName.includes('face')) return '๐ค';
|
700 |
+
if (lowerName.includes('svg')) return '๐ฏ';
|
701 |
+
if (lowerName.includes('color') || lowerName.includes('photon')) return '๐จ';
|
702 |
return '๐ค';
|
703 |
}
|
704 |
|
|
|
745 |
});
|
746 |
}
|
747 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
748 |
// ์๋ก๊ณ ์นจ
|
749 |
function refreshCurrent() {
|
750 |
if (currentCategory === 'hf-models') {
|