{"id":50839840,"url":"https://github.com/laurigates/comfyui-sampler-info","last_synced_at":"2026-06-14T06:05:06.307Z","repository":{"id":359868500,"uuid":"1245628938","full_name":"laurigates/comfyui-sampler-info","owner":"laurigates","description":"Rich metadata + fuzzy-search picker for ComfyUI sampler/scheduler dropdowns","archived":false,"fork":false,"pushed_at":"2026-06-06T06:57:20.000Z","size":538,"stargazers_count":2,"open_issues_count":9,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-06T07:09:42.765Z","etag":null,"topics":["comfyui","comfyui-nodes","managed-by-opentofu","sampler","scheduler"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laurigates.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-21T12:00:43.000Z","updated_at":"2026-06-06T06:57:14.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/laurigates/comfyui-sampler-info","commit_stats":null,"previous_names":["laurigates/comfyui-sampler-info"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/laurigates/comfyui-sampler-info","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurigates%2Fcomfyui-sampler-info","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurigates%2Fcomfyui-sampler-info/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurigates%2Fcomfyui-sampler-info/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurigates%2Fcomfyui-sampler-info/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laurigates","download_url":"https://codeload.github.com/laurigates/comfyui-sampler-info/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurigates%2Fcomfyui-sampler-info/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34310805,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comfyui","comfyui-nodes","managed-by-opentofu","sampler","scheduler"],"created_at":"2026-06-14T06:05:03.239Z","updated_at":"2026-06-14T06:05:06.301Z","avatar_url":"https://github.com/laurigates.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# comfyui-sampler-info\n\nRich metadata + fuzzy-search picker for ComfyUI's `sampler_name` / `sampler`\n/ `scheduler` widgets. Replaces the cryptic alphabetical dropdown with a\nmodal you can actually navigate — *and* tells you what each sampler is for.\n\n\u003e The stock dropdown is 155 strings in a flat list (with RES4LYF loaded).\n\u003e No descriptions, no dates, no hint of when to use what.\n\u003e This pack fixes that.\n\n![picker dialog](docs/picker.png)\n![hover tooltip](docs/tooltip.png)\n\n## What it does\n\nTwo additive enhancements:\n\n**1. Hover/long-press tooltips.** Every `sampler_name` / `sampler` /\n`scheduler` combo widget gets a tooltip describing the *currently selected*\nvalue — paper year, family, ODE order, type (deterministic / ancestral /\nSDE), one-sentence summary, \"good for\" use case, schedulers it pairs with,\nand \"largely superseded by\" notes where applicable.\n\nIf [comfyui-touch-tooltips](https://github.com/laurigates/comfyui-touch-tooltips)\nis also installed, the same tooltips surface on long-press for mobile.\n\n**2. Fuzzy-search modal picker.** Clicking the widget opens a centered\nmodal dialog instead of the native LiteGraph dropdown:\n\n- Every option as a row with name + colored badges (order, type, year,\n  family) + summary + \"good for\" + \"pairs with\"\n- **fzf-style fuzzy search** at the top: subsequence matching with\n  word-boundary bonuses (the underscore-separated naming convention used\n  by ComfyUI samplers gets special treatment), space-separated AND tokens\n  (`dpm sde` → all SDE-flavored DPM variants), matched chars highlighted\n- Keyboard nav: \u003ckbd\u003e↑\u003c/kbd\u003e \u003ckbd\u003e↓\u003c/kbd\u003e navigate, \u003ckbd\u003eEnter\u003c/kbd\u003e\n  select, \u003ckbd\u003eEsc\u003c/kbd\u003e close, \u003ckbd\u003ePgUp\u003c/kbd\u003e/\u003ckbd\u003ePgDn\u003c/kbd\u003e jump 8,\n  type from anywhere to filter\n- Mobile-friendly: 16px input (no iOS auto-zoom), 36px touch targets,\n  momentum scrolling. Works much better than the native dropdown which\n  tends to misposition on zoomed/panned canvases.\n- **Additive**: rows for samplers not in the corpus still render with\n  bare names. Wan's wrapper-specific `scheduler` values (`unipc`,\n  `dpm++`, `flowmatch_causvid`, …) just show their original tooltip\n  without being clobbered.\n\n## Install\n\n### Via ComfyUI Manager *(once accepted into the registry)*\n\nIn ComfyUI Manager, search for **\"sampler info\"** → Install.\n\n### Manual\n\n```sh\ncd \u003cComfyUI\u003e/custom_nodes\ngit clone https://github.com/laurigates/comfyui-sampler-info\n# (no Python deps to install — frontend-only pack)\n```\n\nRestart ComfyUI. Hard-refresh your browser tab.\n\n## Usage\n\nJust works. Open any node with a `sampler_name`, `sampler`, or `scheduler`\ncombo widget (KSampler, KSamplerAdvanced, SamplerCustom, easy kSampler,\nWanVideoSampler, HyVideoSampler, LTXVBaseSampler, …) and:\n\n- **Hover** the widget → tooltip describing the currently selected value\n- **Click** the widget → fuzzy-search picker modal\n\nSampler/scheduler widgets are detected by **widget name**, not node type —\nso anything that names its widget `sampler_name` / `sampler` / `scheduler`\nwill get the treatment automatically.\n\n## How the corpus works\n\nMetadata lives in two JSON files served as static assets:\n\n- `web/data/samplers.json`\n- `web/data/schedulers.json`\n\nBoth files have the same schema:\n\n```json\n{\n  \"exact\": {\n    \"dpmpp_2m\": {\n      \"year\": 2022,\n      \"family\": \"DPM-Solver++\",\n      \"order\": 2,\n      \"type\": \"deterministic multistep\",\n      \"summary\": \"The default workhorse. …\",\n      \"good_for\": \"General-purpose, SD1.5 / SDXL / Flux\",\n      \"pairs_with\": [\"karras\", \"exponential\", \"sgm_uniform\"],\n      \"supersedes_by\": null\n    }\n  },\n  \"prefix\": [\n    {\n      \"match\": \"^res_\\\\d+m$\",\n      \"family\": \"RES (RES4LYF, multistep)\",\n      \"summary\": \"…\",\n      \"good_for\": \"…\",\n      \"pairs_with\": [\"karras\", \"exponential\", \"bong_tangent\"]\n    }\n  ]\n}\n```\n\n**Exact** match wins over **prefix** regex. Prefix entries let\nRES4LYF's ~110 sampler tokens be covered at family level without\n1:1 enumeration.\n\n### Coverage\n\n- All 48 ComfyUI core samplers (`euler` → `sa_solver_pece` + `ddim` /\n  `uni_pc` / `uni_pc_bh2`)\n- All 9 core schedulers + `bong_tangent` (RES4LYF)\n- 14 RES4LYF prefix families covering the rk / res / lawson / etdrk /\n  abnorsett / gauss-legendre / radau / lobatto / dpmpp-extended families\n\n### Contributing corpus entries\n\nPRs welcome — especially for:\n\n1. **Token-specific data for RES4LYF samplers** (currently only\n   family-level prefix matches) — the pack scoring framework expects\n   `year`, `family`, `order`, `type`, `summary`, `good_for`, `pairs_with`.\n2. **Year/paper provenance** for samplers marked with an uncertain year\n   (`exp_heun_2_x0`, `seeds_2`, `seeds_3`, `er_sde`, …).\n3. **Custom-pack samplers** outside the core set — Lightning LoRA\n   samplers, distilled-model samplers, video-model samplers.\n\nOpen a PR editing the JSON. Each entry only needs the fields you're\nconfident about; the renderer skips missing fields gracefully.\n\n## Compatibility\n\n- ComfyUI: any version with the modern Vue-based frontend\n  (`comfyui-frontend-package`) — tested against 1.43.17.\n- Modern frontend uses `widget.onPointerDown` to intercept clicks; if\n  ComfyUI ever changes that hook, the picker stops opening and falls\n  back to the native dropdown (tooltip enrichment still works).\n- Frontend-only pack: no Python dependencies. The `__init__.py`\n  exports an empty `NODE_CLASS_MAPPINGS` and `WEB_DIRECTORY = \"./web\"`\n  so ComfyUI's loader picks up the JS extension.\n\n## Acknowledgments\n\n- **RES4LYF** by Clybius — original source of the ~110 advanced\n  Runge-Kutta / exponential-integrator sampler families described here.\n- **comfyui-touch-tooltips** — companion pack that surfaces the tooltip\n  channel on touch devices.\n- ComfyUI core sampler authors — implementations and paper citations\n  underpin every entry in the corpus.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurigates%2Fcomfyui-sampler-info","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaurigates%2Fcomfyui-sampler-info","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurigates%2Fcomfyui-sampler-info/lists"}