openfree commited on
Commit
7bf17d1
ยท
verified ยท
1 Parent(s): 5f004d9

Update index.html

Browse files
Files changed (1) hide show
  1. 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
- async function loadReplicate() {
442
  const container = document.getElementById('replicate-content');
443
- container.innerHTML = '<div class="loading"><div class="loading-spinner"></div><p>Loading official models...</p></div>';
444
 
445
- try {
446
- const proxyUrl = 'https://api.allorigins.win/raw?url=';
447
- const targetUrl = 'https://replicate.com/collections/official';
448
-
449
- const response = await fetch(proxyUrl + encodeURIComponent(targetUrl));
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
- if (models.length > 0) {
481
- displayReplicateModels(models, container);
482
- } else {
483
- // Fallback: JSON ๋ฐ์ดํ„ฐ ์ถ”์ถœ ์‹œ๋„
484
- const scriptTags = doc.querySelectorAll('script');
485
- let modelsData = [];
486
-
487
- for (const script of scriptTags) {
488
- if (script.textContent.includes('__NEXT_DATA__')) {
489
- try {
490
- const jsonMatch = script.textContent.match(/{.*}/);
491
- if (jsonMatch) {
492
- const data = JSON.parse(jsonMatch[0]);
493
- if (data.props?.pageProps?.models) {
494
- modelsData = data.props.pageProps.models;
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('image') || lowerName.includes('diffusion') || lowerName.includes('flux')) return '๐ŸŽจ';
648
- if (lowerName.includes('video')) return '๐ŸŽฌ';
649
- if (lowerName.includes('audio') || lowerName.includes('music') || lowerName.includes('whisper')) return '๐ŸŽต';
650
- if (lowerName.includes('llama') || lowerName.includes('chat') || lowerName.includes('gpt')) return '๐Ÿ’ฌ';
 
 
 
 
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') {