@@ -184,11 +184,23 @@ class ModelDownloaderUtil {
184184 this . activeZone = getRequiredElementById ( 'model_downloader_right_sidebar' ) ;
185185 this . folders = getRequiredElementById ( 'model_downloader_folder' ) ;
186186 this . hfPrefix = 'https://huggingface.co/' ;
187- this . civitPrefix = 'https://civitai.com/' ;
187+ this . civitPrefix = 'https://civitai.red/' ;
188+ this . civitOldPrefix = 'https://civitai.com/' ;
188189 this . civitGreenPrefix = 'https://civitai.green/' ;
189190 this . urlRequestId = 0 ;
190191 }
191192
193+ normalizeCivitaiUrl ( url ) {
194+ url = url . trim ( ) ;
195+ if ( url . startsWith ( this . civitGreenPrefix ) ) {
196+ return this . civitPrefix + url . substring ( this . civitGreenPrefix . length ) ;
197+ }
198+ if ( url . startsWith ( this . civitOldPrefix ) ) {
199+ return this . civitPrefix + url . substring ( this . civitOldPrefix . length ) ;
200+ }
201+ return url ;
202+ }
203+
192204 buildFolderSelector ( selector ) {
193205 if ( ! coreModelMap ) {
194206 return ;
@@ -238,7 +250,7 @@ class ModelDownloaderUtil {
238250 callback ( null ) ;
239251 return ;
240252 }
241- callback ( `https://civitai.com /models/${ rawData . response . modelId } ?modelVersionId=${ rawData . response . id } ` ) ;
253+ callback ( `https://civitai.red /models/${ rawData . response . modelId } ?modelVersionId=${ rawData . response . id } ` ) ;
242254 } , 0 , ( ) => {
243255 callback ( null ) ;
244256 } ) ;
@@ -382,10 +394,7 @@ class ModelDownloaderUtil {
382394 }
383395
384396 parseCivitaiUrl ( url ) {
385- url = url . trim ( ) ;
386- if ( url . startsWith ( this . civitGreenPrefix ) ) {
387- url = this . civitPrefix + url . substring ( this . civitGreenPrefix . length ) ;
388- }
397+ url = this . normalizeCivitaiUrl ( url ) ;
389398 let parts = splitWithTail ( url . substring ( this . civitPrefix . length ) , '/' , 4 ) ; // 'models', id, name + sometimes version OR 'api', 'download', 'models', versid
390399 if ( parts . length == 2 && parts [ 0 ] == 'models' && parts [ 1 ] . includes ( '?' ) ) {
391400 let subparts = splitWithTail ( parts [ 1 ] , '?' , 2 ) ;
@@ -475,7 +484,10 @@ class ModelDownloaderUtil {
475484 this . metadataZone . dataset . raw = '' ;
476485 delete this . metadataZone . dataset . image ;
477486 this . imageSide . innerHTML = '' ;
478- let url = this . url . value . trim ( ) ;
487+ let url = this . normalizeCivitaiUrl ( this . url . value ) ;
488+ if ( url != this . url . value ) {
489+ this . url . value = url ;
490+ }
479491 this . urlRequestId ++ ;
480492 let requestId = this . urlRequestId ;
481493 if ( url . endsWith ( '.pt' ) || url . endsWith ( '.pth' ) || url . endsWith ( '.ckpt' ) || url . endsWith ( '.bin' ) ) {
@@ -519,9 +531,6 @@ class ModelDownloaderUtil {
519531 this . button . disabled = false ;
520532 return ;
521533 }
522- if ( url . startsWith ( this . civitGreenPrefix ) ) {
523- url = this . civitPrefix + url . substring ( this . civitGreenPrefix . length ) ;
524- }
525534 if ( url . startsWith ( this . civitPrefix ) ) {
526535 let parts = splitWithTail ( url . substring ( this . civitPrefix . length ) , '/' , 4 ) ; // 'models', id, name + sometimes version OR 'api', 'download', 'models', versid
527536 if ( parts . length == 2 && parts [ 0 ] == 'models' && parts [ 1 ] . includes ( '?' ) ) {
0 commit comments