Fetch model metadata for Civitai models embedded in workflows (#2994)

This commit is contained in:
Christian Byrne
2025-03-12 07:43:15 -07:00
committed by GitHub
parent 0facb0458b
commit 3e8ef33cbc
3 changed files with 136 additions and 4 deletions

View File

@@ -343,3 +343,25 @@ export const generateUUID = (): string => {
*/
export const formatNumber = (num?: number): string =>
num?.toLocaleString() ?? 'N/A'
/**
* Checks if a URL is a Civitai model URL
* @example
* isCivitaiModelUrl('https://civitai.com/api/download/models/1234567890') // true
* isCivitaiModelUrl('https://civitai.com/api/v1/models/1234567890') // true
* isCivitaiModelUrl('https://civitai.com/api/v1/models-versions/15342') // true
* isCivitaiModelUrl('https://example.com/model.safetensors') // false
*/
export const isCivitaiModelUrl = (url: string): boolean => {
if (!isValidUrl(url)) return false
if (!url.includes('civitai.com')) return false
const urlObj = new URL(url)
const pathname = urlObj.pathname
return (
/^\/api\/download\/models\/(\d+)$/.test(pathname) ||
/^\/api\/v1\/models\/(\d+)$/.test(pathname) ||
/^\/api\/v1\/models-versions\/(\d+)$/.test(pathname)
)
}