Files
ComfyUI_frontend/docs/TEMPLATE_RANKING.md
Christian Byrne fbdaf5d7f3 feat: New Template Library (#7062)
## Summary

Implement the new design for template library

## Changes

- What
  - New sort option: `Popular` and  `Recommended`
  - New category: `Popular`, leverage the `Popular` sorting
  - Support add category stick to top of the side bar 
- Support template customized visible in different platform by
`includeOnDistributions` field

### How to make `Popular` and `Recommended` work

Add usage-based ordering to workflow templates with position bias
correction, manual ranking (searchRank), and freshness boost.

New sort modes:
- "Recommended" (default): usage × 0.5 + searchRank × 0.3 + freshness ×
0.2
- "Popular": usage × 0.9 + freshness × 0.1

## Screenshots (if applicable)

New default ordering:

<img width="1812" height="1852" alt="Selection_2485"
src="https://github.com/user-attachments/assets/8f4ed6e9-9cf4-43a8-8796-022dcf4c277e"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7062-feat-usage-based-template-ordering-2bb6d73d365081f1ac65f8ad55fe8ce6)
by [Unito](https://www.unito.io)

Popular category:

<img width="281" height="283" alt="image"
src="https://github.com/user-attachments/assets/fd54fcb8-6caa-4982-a6b6-1f70ca4b31e3"
/>

---------

Co-authored-by: Yourz <crazilou@vip.qq.com>
Co-authored-by: GitHub Action <action@github.com>
2026-01-06 19:10:40 +01:00

1.9 KiB
Raw Permalink Blame History

Template Ranking System

Usage-based ordering for workflow templates with position bias normalization.

Scores are pre-computed and normalized offline and shipped as static JSON (mirrors sorted-custom-node-map.json pattern for node search).

Sort Modes

Mode Formula Description
recommended usage × 0.5 + internal × 0.3 + freshness × 0.2 Curated recommendation
popular usage × 0.9 + freshness × 0.1 Pure user-driven
newest Date sort Existing
alphabetical Name sort Existing

Freshness computed at runtime from template.date: 1.0 / (1 + daysSinceAdded / 90), min 0.1.

Data Files

Usage scores (generated from Mixpanel):

// In templates/index.json, add to any template:
{
  "name": "some_template",
  "usage": 1000,
  ...
}

Search rank (set per-template in workflow_templates repo):

// In templates/index.json, add to any template:
{
  "name": "some_template",
  "searchRank": 8,  // Scale 1-10, default 5
  ...
}
searchRank Effect
1-4 Demote (bury in results)
5 Neutral (default if not set)
6-10 Promote (boost in results)

Position Bias Correction

Raw usage reflects true preference AND UI position bias. We use linear interpolation:

correction = 1 + (position - 1) / (maxPosition - 1)
normalizedUsage = rawUsage × correction
Position Boost
1 1.0×
50 1.28×
100 1.57×
175 2.0×

Templates buried at the bottom get up to 2× boost to compensate for reduced visibility.