{"record":{"id":"7184b088efabcb54","repo":"unslothai/unsloth","slug":"unknown-family-name","errorCode":null,"errorMessage":"unknown family '{name}'","messagePattern":"unknown family '(.+?)'","errorType":"console","errorClass":"SystemExit","httpStatus":null,"severity":"warning","filePath":"scripts/image_speedmem_bench.py","lineNumber":168,"sourceCode":"    return diffusers\n\n\ndef _target():\n    \"\"\"Stand-in for DiffusionDeviceTarget: what the real lever functions read.\"\"\"\n    import torch\n    return types.SimpleNamespace(\n        device = \"cuda\",\n        dtype = torch.bfloat16,\n        supports_default_torch_compile = True,\n    )\n\n\ndef _find_family(name: str):\n    from core.inference.diffusion_families import _FAMILIES as ALL\n    for fam in ALL:\n        if fam.name == name:\n            return fam\n    raise SystemExit(f\"unknown family '{name}'\")\n\n\ndef _apply_levers(\n    pipe,\n    cfg: dict,\n    *,\n    fam_obj,\n    no_epc: bool = False,\n    unarm_cache: bool = False,\n    logger = None,\n) -> dict:\n    \"\"\"Apply the configured levers with the loader's own argument values, in the loader's\n    order (diffusion.py): TE quant -> attention -> step cache -> eager patches -> speed.\"\"\"\n    from core.inference.diffusion_precision import quantize_text_encoders\n    from core.inference.diffusion_attention import (\n        apply_attention_backend,\n        select_attention_backend,\n    )","sourceCodeStart":150,"sourceCodeEnd":186,"githubUrl":"https://github.com/unslothai/unsloth/blob/203007d19051dcd2ae33876786d117c99f6b0368/scripts/image_speedmem_bench.py#L150-L186","documentation":"Thrown by parseOptionalBaseUrl (chat-providers-dialog.tsx:464-466) when the input parses as a URL but its scheme is neither http: nor https:. This is a deliberate protocol allowlist: the base URL is used for server-side fetches to chat completions endpoints, and schemes like file:, ftp:, or javascript: are meaningless or dangerous there.","triggerScenarios":"Entering e.g. 'file:///models/endpoint', 'ftp://host/api', 'ws://localhost:8000', or any URL whose scheme the URL constructor accepts but the dialog rejects. Commonly happens when users paste a WebSocket endpoint or a local file path into the Base URL field.","commonSituations":"Confusing an OpenAI-compatible HTTP endpoint with a WebSocket/GRPC URL; pasting a filesystem path to a local model (local models are chosen elsewhere in the studio, not via this dialog); typos like 'httpss://'.","solutions":["Use the HTTP(S) endpoint of the inference server, e.g. 'http://127.0.0.1:8000/v1' for a local llama.cpp/vLLM server.","Do not point this field at local model files — local models are loaded through the model picker, not a custom provider.","Fix scheme typos ('httpss', 'http:/')."],"exampleFix":"// before\nws://127.0.0.1:8000/ws\n\n// after\nhttp://127.0.0.1:8000/v1","handlingStrategy":"validation","validationCode":"function usesHttpScheme(input: string): boolean {\n  try { const p = new URL(input.trim()).protocol; return p === 'http:' || p === 'https:'; } catch { return false; }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Restrict the input's autocorrect/autocapitalize and validate on blur with a scheme-specific message.","Route local models through the model picker, not this field.","Use http(s) inference endpoints (vLLM/llama.cpp/TGI all expose one) instead of ws/grpc URLs."],"tags":["validation","url","providers","frontend","form"],"backgroundTag":null,"analyzedSha":"203007d19051dcd2ae33876786d117c99f6b0368","analyzedAt":"2026-08-15T02:48:39.846Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}