Spaces:
				
			
			
	
			
			
		Running
		
			on 
			
			Zero
	
	
	
			
			
	
	
	
	
		
		
		Running
		
			on 
			
			Zero
	Upload 6 files
Browse files- app.py +21 -16
- constants.py +20 -15
- dc.py +43 -26
- llmdolphin.py +54 -0
- requirements.txt +1 -1
- utils.py +1 -1
    	
        app.py
    CHANGED
    
    | @@ -4,7 +4,7 @@ import numpy as np | |
| 4 |  | 
| 5 | 
             
            # DiffuseCraft
         | 
| 6 | 
             
            from dc import (infer, _infer, pass_result, get_diffusers_model_list, get_samplers, save_image_history,
         | 
| 7 | 
            -
                get_vaes, enable_diffusers_model_detail, extract_exif_data,  | 
| 8 | 
             
                preset_quality, preset_styles, process_style_prompt, get_all_lora_tupled_list, update_loras, apply_lora_prompt,
         | 
| 9 | 
             
                download_my_lora, search_civitai_lora, update_civitai_selection, select_civitai_lora, search_civitai_lora_json,
         | 
| 10 | 
             
                get_t2i_model_info, get_civitai_tag, CIVITAI_SORT, CIVITAI_PERIOD, CIVITAI_BASEMODEL,
         | 
| @@ -217,7 +217,7 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, | |
| 217 | 
             
                                    image_mask = gr.Image(label="Image Mask", type="filepath", height=384, sources=["upload", "clipboard"], show_share_button=False, elem_classes="image")
         | 
| 218 | 
             
                                with gr.Row():
         | 
| 219 | 
             
                                    strength = gr.Slider(minimum=0.01, maximum=1.0, step=0.01, value=0.55, label="Strength",
         | 
| 220 | 
            -
                                                        info="This option adjusts the level of changes for img2img and  | 
| 221 | 
             
                                    image_resolution = gr.Slider(minimum=64, maximum=2048, step=64, value=1024, label="Image Resolution",
         | 
| 222 | 
             
                                                                info="The maximum proportional size of the generated image based on the uploaded image.")
         | 
| 223 | 
             
                                with gr.Row():
         | 
| @@ -289,13 +289,13 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, | |
| 289 | 
             
                                    cm_btn_send_ip1.click(send_img, [img_source, img_result], [image_ip1, mask_ip1], queue=False, show_api=False)
         | 
| 290 | 
             
                                    cm_btn_send_ip2.click(send_img, [img_source, img_result], [image_ip2, mask_ip2], queue=False, show_api=False)
         | 
| 291 |  | 
| 292 | 
            -
                            with gr.Tab("Hires fix / Detailfix"):
         | 
| 293 | 
             
                                with gr.Accordion("Hires fix", open=True):
         | 
| 294 | 
             
                                    with gr.Row():
         | 
| 295 | 
             
                                        upscaler_model_path = gr.Dropdown(label="Upscaler", choices=UPSCALER_KEYS, value=UPSCALER_KEYS[0])
         | 
| 296 | 
             
                                        upscaler_increases_size = gr.Slider(minimum=1.1, maximum=4., step=0.1, value=1.2, label="Upscale by")
         | 
| 297 | 
            -
                                         | 
| 298 | 
            -
                                         | 
| 299 | 
             
                                    with gr.Row():
         | 
| 300 | 
             
                                        hires_steps = gr.Slider(minimum=0, value=30, maximum=100, step=1, label="Hires Steps")
         | 
| 301 | 
             
                                        hires_denoising_strength = gr.Slider(minimum=0.1, maximum=1.0, step=0.01, value=0.55, label="Hires Denoising Strength")
         | 
| @@ -342,7 +342,13 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, | |
| 342 | 
             
                                            mask_dilation_b = gr.Number(label="Mask dilation:", value=4, minimum=1)
         | 
| 343 | 
             
                                            mask_blur_b = gr.Number(label="Mask blur:", value=4, minimum=1)
         | 
| 344 | 
             
                                            mask_padding_b = gr.Number(label="Mask padding:", value=32, minimum=1)
         | 
| 345 | 
            -
             | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 346 | 
             
                            with gr.Tab("Translation Settings"):
         | 
| 347 | 
             
                                chatbot = gr.Chatbot(render_markdown=False, visible=False) # component for auto-translation
         | 
| 348 | 
             
                                chat_model = gr.Dropdown(choices=get_dolphin_models(), value=get_dolphin_models()[0][1], allow_custom_value=True, label="Model")
         | 
| @@ -396,13 +402,13 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, | |
| 396 | 
             
                            value_threshold, distance_threshold, recolor_gamma_correction, tile_blur_sigma,
         | 
| 397 | 
             
                            image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 398 | 
             
                            image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2,
         | 
| 399 | 
            -
                            upscaler_model_path, upscaler_increases_size,  | 
| 400 | 
             
                            hires_sampler, hires_schedule_type, hires_guidance_scale, hires_prompt, hires_negative_prompt,
         | 
| 401 | 
             
                            adetailer_inpaint_only, adetailer_verbose, adetailer_sampler, adetailer_active_a,
         | 
| 402 | 
             
                            prompt_ad_a, negative_prompt_ad_a, strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a,
         | 
| 403 | 
             
                            mask_dilation_a, mask_blur_a, mask_padding_a, adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b,
         | 
| 404 | 
             
                            face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b, mask_dilation_b, mask_blur_b, mask_padding_b,
         | 
| 405 | 
            -
                            active_textual_inversion, gpu_duration, auto_trans, recom_prompt],
         | 
| 406 | 
             
                    outputs=[result],
         | 
| 407 | 
             
                    queue=True,
         | 
| 408 | 
             
                    show_progress="full",
         | 
| @@ -424,13 +430,13 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, | |
| 424 | 
             
                            value_threshold, distance_threshold, recolor_gamma_correction, tile_blur_sigma,
         | 
| 425 | 
             
                            image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 426 | 
             
                            image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2,
         | 
| 427 | 
            -
                            upscaler_model_path, upscaler_increases_size,  | 
| 428 | 
             
                            hires_sampler, hires_schedule_type, hires_guidance_scale, hires_prompt, hires_negative_prompt,
         | 
| 429 | 
             
                            adetailer_inpaint_only, adetailer_verbose, adetailer_sampler, adetailer_active_a,
         | 
| 430 | 
             
                            prompt_ad_a, negative_prompt_ad_a, strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a,
         | 
| 431 | 
             
                            mask_dilation_a, mask_blur_a, mask_padding_a, adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b,
         | 
| 432 | 
             
                            face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b, mask_dilation_b, mask_blur_b, mask_padding_b,
         | 
| 433 | 
            -
                            active_textual_inversion, gpu_duration, auto_trans, recom_prompt],
         | 
| 434 | 
             
                    outputs=[result],
         | 
| 435 | 
             
                    queue=False,
         | 
| 436 | 
             
                    show_api=True,
         | 
| @@ -462,13 +468,13 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, | |
| 462 | 
             
                            value_threshold, distance_threshold, recolor_gamma_correction, tile_blur_sigma,
         | 
| 463 | 
             
                            image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 464 | 
             
                            image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2,
         | 
| 465 | 
            -
                            upscaler_model_path, upscaler_increases_size,  | 
| 466 | 
             
                            hires_sampler, hires_schedule_type, hires_guidance_scale, hires_prompt, hires_negative_prompt,
         | 
| 467 | 
             
                            adetailer_inpaint_only, adetailer_verbose, adetailer_sampler, adetailer_active_a,
         | 
| 468 | 
             
                            prompt_ad_a, negative_prompt_ad_a, strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a,
         | 
| 469 | 
             
                            mask_dilation_a, mask_blur_a, mask_padding_a, adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b,
         | 
| 470 | 
             
                            face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b, mask_dilation_b, mask_blur_b, mask_padding_b,
         | 
| 471 | 
            -
                            active_textual_inversion, gpu_duration, auto_trans, recom_prompt],
         | 
| 472 | 
             
                    outputs=[result],
         | 
| 473 | 
             
                    queue=True,
         | 
| 474 | 
             
                    show_progress="full",
         | 
| @@ -651,16 +657,15 @@ with gr.Blocks(fill_width=True, elem_id="container", css=css, delete_cache=(60, | |
| 651 | 
             
                with gr.Tab("Upscaler"):
         | 
| 652 | 
             
                    with gr.Row():
         | 
| 653 | 
             
                        with gr.Column():
         | 
|  | |
| 654 | 
             
                            image_up_tab = gr.Image(label="Image", type="pil", sources=["upload"])
         | 
| 655 | 
            -
                            upscaler_tab = gr.Dropdown(label="Upscaler", choices= | 
| 656 | 
             
                            upscaler_size_tab = gr.Slider(minimum=1., maximum=4., step=0.1, value=1.1, label="Upscale by")
         | 
| 657 | 
             
                            generate_button_up_tab = gr.Button(value="START UPSCALE", variant="primary")
         | 
| 658 | 
            -
             | 
| 659 | 
             
                        with gr.Column():
         | 
| 660 | 
             
                            result_up_tab = gr.Image(label="Result", type="pil", interactive=False, format="png")
         | 
| 661 | 
            -
             | 
| 662 | 
             
                            generate_button_up_tab.click(
         | 
| 663 | 
            -
                                fn= | 
| 664 | 
             
                                inputs=[image_up_tab, upscaler_tab, upscaler_size_tab],
         | 
| 665 | 
             
                                outputs=[result_up_tab],
         | 
| 666 | 
             
                            )
         | 
|  | |
| 4 |  | 
| 5 | 
             
            # DiffuseCraft
         | 
| 6 | 
             
            from dc import (infer, _infer, pass_result, get_diffusers_model_list, get_samplers, save_image_history,
         | 
| 7 | 
            +
                get_vaes, enable_diffusers_model_detail, extract_exif_data, process_upscale, UPSCALER_KEYS, FACE_RESTORATION_MODELS,
         | 
| 8 | 
             
                preset_quality, preset_styles, process_style_prompt, get_all_lora_tupled_list, update_loras, apply_lora_prompt,
         | 
| 9 | 
             
                download_my_lora, search_civitai_lora, update_civitai_selection, select_civitai_lora, search_civitai_lora_json,
         | 
| 10 | 
             
                get_t2i_model_info, get_civitai_tag, CIVITAI_SORT, CIVITAI_PERIOD, CIVITAI_BASEMODEL,
         | 
|  | |
| 217 | 
             
                                    image_mask = gr.Image(label="Image Mask", type="filepath", height=384, sources=["upload", "clipboard"], show_share_button=False, elem_classes="image")
         | 
| 218 | 
             
                                with gr.Row():
         | 
| 219 | 
             
                                    strength = gr.Slider(minimum=0.01, maximum=1.0, step=0.01, value=0.55, label="Strength",
         | 
| 220 | 
            +
                                                        info="This option adjusts the level of changes for img2img, repaint and inpaint.")
         | 
| 221 | 
             
                                    image_resolution = gr.Slider(minimum=64, maximum=2048, step=64, value=1024, label="Image Resolution",
         | 
| 222 | 
             
                                                                info="The maximum proportional size of the generated image based on the uploaded image.")
         | 
| 223 | 
             
                                with gr.Row():
         | 
|  | |
| 289 | 
             
                                    cm_btn_send_ip1.click(send_img, [img_source, img_result], [image_ip1, mask_ip1], queue=False, show_api=False)
         | 
| 290 | 
             
                                    cm_btn_send_ip2.click(send_img, [img_source, img_result], [image_ip2, mask_ip2], queue=False, show_api=False)
         | 
| 291 |  | 
| 292 | 
            +
                            with gr.Tab("Hires fix / Detailfix / Face restoration"):
         | 
| 293 | 
             
                                with gr.Accordion("Hires fix", open=True):
         | 
| 294 | 
             
                                    with gr.Row():
         | 
| 295 | 
             
                                        upscaler_model_path = gr.Dropdown(label="Upscaler", choices=UPSCALER_KEYS, value=UPSCALER_KEYS[0])
         | 
| 296 | 
             
                                        upscaler_increases_size = gr.Slider(minimum=1.1, maximum=4., step=0.1, value=1.2, label="Upscale by")
         | 
| 297 | 
            +
                                        upscaler_tile_size = gr.Slider(minimum=0, maximum=512, step=16, value=0, label="Upscaler Tile Size", info="0 = no tiling")
         | 
| 298 | 
            +
                                        upscaler_tile_overlap = gr.Slider(minimum=0, maximum=48, step=1, value=8, label="Upscaler Tile Overlap")
         | 
| 299 | 
             
                                    with gr.Row():
         | 
| 300 | 
             
                                        hires_steps = gr.Slider(minimum=0, value=30, maximum=100, step=1, label="Hires Steps")
         | 
| 301 | 
             
                                        hires_denoising_strength = gr.Slider(minimum=0.1, maximum=1.0, step=0.01, value=0.55, label="Hires Denoising Strength")
         | 
|  | |
| 342 | 
             
                                            mask_dilation_b = gr.Number(label="Mask dilation:", value=4, minimum=1)
         | 
| 343 | 
             
                                            mask_blur_b = gr.Number(label="Mask blur:", value=4, minimum=1)
         | 
| 344 | 
             
                                            mask_padding_b = gr.Number(label="Mask padding:", value=32, minimum=1)
         | 
| 345 | 
            +
                                with gr.Accordion("Face restoration", open=True, visible=True):
         | 
| 346 | 
            +
                                    face_rest_options = [None] + FACE_RESTORATION_MODELS
         | 
| 347 | 
            +
                                    with gr.Row():
         | 
| 348 | 
            +
                                        face_restoration_model = gr.Dropdown(label="Face restoration model", choices=face_rest_options, value=face_rest_options[0])
         | 
| 349 | 
            +
                                        face_restoration_visibility = gr.Slider(minimum=0., maximum=1., step=0.001, value=1., label="Visibility")
         | 
| 350 | 
            +
                                        face_restoration_weight = gr.Slider(minimum=0., maximum=1., step=0.001, value=.5, label="Weight", info="(0 = maximum effect, 1 = minimum effect)")
         | 
| 351 | 
            +
             | 
| 352 | 
             
                            with gr.Tab("Translation Settings"):
         | 
| 353 | 
             
                                chatbot = gr.Chatbot(render_markdown=False, visible=False) # component for auto-translation
         | 
| 354 | 
             
                                chat_model = gr.Dropdown(choices=get_dolphin_models(), value=get_dolphin_models()[0][1], allow_custom_value=True, label="Model")
         | 
|  | |
| 402 | 
             
                            value_threshold, distance_threshold, recolor_gamma_correction, tile_blur_sigma,
         | 
| 403 | 
             
                            image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 404 | 
             
                            image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2,
         | 
| 405 | 
            +
                            upscaler_model_path, upscaler_increases_size, upscaler_tile_size, upscaler_tile_overlap, hires_steps, hires_denoising_strength,
         | 
| 406 | 
             
                            hires_sampler, hires_schedule_type, hires_guidance_scale, hires_prompt, hires_negative_prompt,
         | 
| 407 | 
             
                            adetailer_inpaint_only, adetailer_verbose, adetailer_sampler, adetailer_active_a,
         | 
| 408 | 
             
                            prompt_ad_a, negative_prompt_ad_a, strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a,
         | 
| 409 | 
             
                            mask_dilation_a, mask_blur_a, mask_padding_a, adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b,
         | 
| 410 | 
             
                            face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b, mask_dilation_b, mask_blur_b, mask_padding_b,
         | 
| 411 | 
            +
                            active_textual_inversion, face_restoration_model, face_restoration_visibility, face_restoration_weight, gpu_duration, auto_trans, recom_prompt],
         | 
| 412 | 
             
                    outputs=[result],
         | 
| 413 | 
             
                    queue=True,
         | 
| 414 | 
             
                    show_progress="full",
         | 
|  | |
| 430 | 
             
                            value_threshold, distance_threshold, recolor_gamma_correction, tile_blur_sigma,
         | 
| 431 | 
             
                            image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 432 | 
             
                            image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2,
         | 
| 433 | 
            +
                            upscaler_model_path, upscaler_increases_size, upscaler_tile_size, upscaler_tile_overlap, hires_steps, hires_denoising_strength,
         | 
| 434 | 
             
                            hires_sampler, hires_schedule_type, hires_guidance_scale, hires_prompt, hires_negative_prompt,
         | 
| 435 | 
             
                            adetailer_inpaint_only, adetailer_verbose, adetailer_sampler, adetailer_active_a,
         | 
| 436 | 
             
                            prompt_ad_a, negative_prompt_ad_a, strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a,
         | 
| 437 | 
             
                            mask_dilation_a, mask_blur_a, mask_padding_a, adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b,
         | 
| 438 | 
             
                            face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b, mask_dilation_b, mask_blur_b, mask_padding_b,
         | 
| 439 | 
            +
                            active_textual_inversion, face_restoration_model, face_restoration_visibility, face_restoration_weight, gpu_duration, auto_trans, recom_prompt],
         | 
| 440 | 
             
                    outputs=[result],
         | 
| 441 | 
             
                    queue=False,
         | 
| 442 | 
             
                    show_api=True,
         | 
|  | |
| 468 | 
             
                            value_threshold, distance_threshold, recolor_gamma_correction, tile_blur_sigma,
         | 
| 469 | 
             
                            image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 470 | 
             
                            image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2,
         | 
| 471 | 
            +
                            upscaler_model_path, upscaler_increases_size, upscaler_tile_size, upscaler_tile_overlap, hires_steps, hires_denoising_strength,
         | 
| 472 | 
             
                            hires_sampler, hires_schedule_type, hires_guidance_scale, hires_prompt, hires_negative_prompt,
         | 
| 473 | 
             
                            adetailer_inpaint_only, adetailer_verbose, adetailer_sampler, adetailer_active_a,
         | 
| 474 | 
             
                            prompt_ad_a, negative_prompt_ad_a, strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a,
         | 
| 475 | 
             
                            mask_dilation_a, mask_blur_a, mask_padding_a, adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b,
         | 
| 476 | 
             
                            face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b, mask_dilation_b, mask_blur_b, mask_padding_b,
         | 
| 477 | 
            +
                            active_textual_inversion, face_restoration_model, face_restoration_visibility, face_restoration_weight, gpu_duration, auto_trans, recom_prompt],
         | 
| 478 | 
             
                    outputs=[result],
         | 
| 479 | 
             
                    queue=True,
         | 
| 480 | 
             
                    show_progress="full",
         | 
|  | |
| 657 | 
             
                with gr.Tab("Upscaler"):
         | 
| 658 | 
             
                    with gr.Row():
         | 
| 659 | 
             
                        with gr.Column():
         | 
| 660 | 
            +
                            USCALER_TAB_KEYS = [name for name in UPSCALER_KEYS[9:]]
         | 
| 661 | 
             
                            image_up_tab = gr.Image(label="Image", type="pil", sources=["upload"])
         | 
| 662 | 
            +
                            upscaler_tab = gr.Dropdown(label="Upscaler", choices=USCALER_TAB_KEYS, value=USCALER_TAB_KEYS[5])
         | 
| 663 | 
             
                            upscaler_size_tab = gr.Slider(minimum=1., maximum=4., step=0.1, value=1.1, label="Upscale by")
         | 
| 664 | 
             
                            generate_button_up_tab = gr.Button(value="START UPSCALE", variant="primary")
         | 
|  | |
| 665 | 
             
                        with gr.Column():
         | 
| 666 | 
             
                            result_up_tab = gr.Image(label="Result", type="pil", interactive=False, format="png")
         | 
|  | |
| 667 | 
             
                            generate_button_up_tab.click(
         | 
| 668 | 
            +
                                fn=process_upscale,
         | 
| 669 | 
             
                                inputs=[image_up_tab, upscaler_tab, upscaler_size_tab],
         | 
| 670 | 
             
                                outputs=[result_up_tab],
         | 
| 671 | 
             
                            )
         | 
    	
        constants.py
    CHANGED
    
    | @@ -4,6 +4,7 @@ from stablepy import ( | |
| 4 | 
             
                scheduler_names,
         | 
| 5 | 
             
                SD15_TASKS,
         | 
| 6 | 
             
                SDXL_TASKS,
         | 
|  | |
| 7 | 
             
            )
         | 
| 8 |  | 
| 9 | 
             
            # - **Download Models**
         | 
| @@ -43,12 +44,19 @@ LOAD_DIFFUSERS_FORMAT_MODEL = [ | |
| 43 | 
             
                'John6666/ntr-mix-illustrious-xl-noob-xl-ntrmix35-sdxl',
         | 
| 44 | 
             
                'John6666/ntr-mix-illustrious-xl-noob-xl-v777-sdxl',
         | 
| 45 | 
             
                'John6666/ntr-mix-illustrious-xl-noob-xl-v777forlora-sdxl',
         | 
|  | |
|  | |
|  | |
|  | |
| 46 | 
             
                'John6666/haruki-mix-illustrious-v10-sdxl',
         | 
| 47 | 
             
                'John6666/noobreal-v10-sdxl',
         | 
| 48 | 
             
                'John6666/complicated-noobai-merge-vprediction-sdxl',
         | 
|  | |
|  | |
| 49 | 
             
                'Laxhar/noobai-XL-Vpred-0.65s',
         | 
| 50 | 
             
                'Laxhar/noobai-XL-Vpred-0.65',
         | 
| 51 | 
             
                'Laxhar/noobai-XL-Vpred-0.6',
         | 
|  | |
| 52 | 
             
                'John6666/noobai-xl-nai-xl-vpred05version-sdxl',
         | 
| 53 | 
             
                'John6666/noobai-fusion2-vpred-itercomp-v1-sdxl',
         | 
| 54 | 
             
                'John6666/noobai-xl-nai-xl-vpredtestversion-sdxl',
         | 
| @@ -58,6 +66,7 @@ LOAD_DIFFUSERS_FORMAT_MODEL = [ | |
| 58 | 
             
                'John6666/illustrious-pencil-xl-v200-sdxl',
         | 
| 59 | 
             
                'John6666/obsession-illustriousxl-v21-sdxl',
         | 
| 60 | 
             
                'John6666/obsession-illustriousxl-v30-sdxl',
         | 
|  | |
| 61 | 
             
                'John6666/wai-nsfw-illustrious-v70-sdxl',
         | 
| 62 | 
             
                'John6666/illustrious-pony-mix-v3-sdxl',
         | 
| 63 | 
             
                'John6666/nova-anime-xl-illustriousv10-sdxl',
         | 
| @@ -81,6 +90,7 @@ LOAD_DIFFUSERS_FORMAT_MODEL = [ | |
| 81 | 
             
                'John6666/ras-real-anime-screencap-v1-sdxl',
         | 
| 82 | 
             
                'John6666/duchaiten-pony-xl-no-score-v60-sdxl',
         | 
| 83 | 
             
                'John6666/mistoon-anime-ponyalpha-sdxl',
         | 
|  | |
| 84 | 
             
                'John6666/ebara-mfcg-pony-mix-v12-sdxl',
         | 
| 85 | 
             
                'John6666/t-ponynai3-v51-sdxl',
         | 
| 86 | 
             
                'John6666/t-ponynai3-v65-sdxl',
         | 
| @@ -156,6 +166,7 @@ DIRECTORY_MODELS = 'models' | |
| 156 | 
             
            DIRECTORY_LORAS = 'loras'
         | 
| 157 | 
             
            DIRECTORY_VAES = 'vaes'
         | 
| 158 | 
             
            DIRECTORY_EMBEDS = 'embedings'
         | 
|  | |
| 159 |  | 
| 160 | 
             
            CACHE_HF = "/home/user/.cache/huggingface/hub/"
         | 
| 161 | 
             
            STORAGE_ROOT = "/home/user/"
         | 
| @@ -184,27 +195,21 @@ TASK_STABLEPY = { | |
| 184 | 
             
                'optical pattern ControlNet': 'pattern',
         | 
| 185 | 
             
                'recolor ControlNet': 'recolor',
         | 
| 186 | 
             
                'tile ControlNet': 'tile',
         | 
|  | |
| 187 | 
             
            }
         | 
| 188 |  | 
| 189 | 
             
            TASK_MODEL_LIST = list(TASK_STABLEPY.keys())
         | 
| 190 |  | 
| 191 | 
             
            UPSCALER_DICT_GUI = {
         | 
| 192 | 
             
                None: None,
         | 
| 193 | 
            -
                " | 
| 194 | 
            -
                " | 
| 195 | 
            -
                'Latent': 'Latent',
         | 
| 196 | 
            -
                'Latent (antialiased)': 'Latent (antialiased)',
         | 
| 197 | 
            -
                'Latent (bicubic)': 'Latent (bicubic)',
         | 
| 198 | 
            -
                'Latent (bicubic antialiased)': 'Latent (bicubic antialiased)',
         | 
| 199 | 
            -
                'Latent (nearest)': 'Latent (nearest)',
         | 
| 200 | 
            -
                'Latent (nearest-exact)': 'Latent (nearest-exact)',
         | 
| 201 | 
            -
                "RealESRGAN_x4plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth",
         | 
| 202 | 
             
                "RealESRNet_x4plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.1/RealESRNet_x4plus.pth",
         | 
| 203 | 
            -
                "RealESRGAN_x4plus_anime_6B": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth",
         | 
| 204 | 
            -
                "RealESRGAN_x2plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth",
         | 
| 205 | 
            -
                "realesr-animevideov3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-animevideov3.pth",
         | 
| 206 | 
            -
                "realesr-general-x4v3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-x4v3.pth",
         | 
| 207 | 
            -
                "realesr-general-wdn-x4v3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-wdn-x4v3.pth",
         | 
| 208 | 
             
                "4x-UltraSharp": "https://huggingface.co/Shandypur/ESRGAN-4x-UltraSharp/resolve/main/4x-UltraSharp.pth",
         | 
| 209 | 
             
                "4x_foolhardy_Remacri": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth",
         | 
| 210 | 
             
                "Remacri4xExtraSmoother": "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/Remacri%204x%20ExtraSmoother.pth",
         | 
| @@ -219,6 +224,7 @@ UPSCALER_KEYS = list(UPSCALER_DICT_GUI.keys()) | |
| 219 | 
             
            DIFFUSERS_CONTROLNET_MODEL = [
         | 
| 220 | 
             
                "Automatic",
         | 
| 221 |  | 
|  | |
| 222 | 
             
                "xinsir/controlnet-union-sdxl-1.0",
         | 
| 223 | 
             
                "xinsir/anime-painter",
         | 
| 224 | 
             
                "Eugeoter/noob-sdxl-controlnet-canny",
         | 
| @@ -241,7 +247,6 @@ DIFFUSERS_CONTROLNET_MODEL = [ | |
| 241 | 
             
                "r3gm/controlnet-recolor-sdxl-fp16",
         | 
| 242 | 
             
                "r3gm/controlnet-openpose-twins-sdxl-1.0-fp16",
         | 
| 243 | 
             
                "r3gm/controlnet-qr-pattern-sdxl-fp16",
         | 
| 244 | 
            -
                "brad-twinkl/controlnet-union-sdxl-1.0-promax",
         | 
| 245 | 
             
                "Yakonrus/SDXL_Controlnet_Tile_Realistic_v2",
         | 
| 246 | 
             
                "TheMistoAI/MistoLine",
         | 
| 247 | 
             
                "briaai/BRIA-2.3-ControlNet-Recoloring",
         | 
|  | |
| 4 | 
             
                scheduler_names,
         | 
| 5 | 
             
                SD15_TASKS,
         | 
| 6 | 
             
                SDXL_TASKS,
         | 
| 7 | 
            +
                ALL_BUILTIN_UPSCALERS,
         | 
| 8 | 
             
            )
         | 
| 9 |  | 
| 10 | 
             
            # - **Download Models**
         | 
|  | |
| 44 | 
             
                'John6666/ntr-mix-illustrious-xl-noob-xl-ntrmix35-sdxl',
         | 
| 45 | 
             
                'John6666/ntr-mix-illustrious-xl-noob-xl-v777-sdxl',
         | 
| 46 | 
             
                'John6666/ntr-mix-illustrious-xl-noob-xl-v777forlora-sdxl',
         | 
| 47 | 
            +
                'John6666/ntr-mix-illustrious-xl-noob-xl-xi-sdxl',
         | 
| 48 | 
            +
                'John6666/mistoon-anime-v10illustrious-sdxl',
         | 
| 49 | 
            +
                'John6666/hassaku-xl-illustrious-v10-sdxl',
         | 
| 50 | 
            +
                'John6666/hassaku-xl-illustrious-v10style-sdxl',
         | 
| 51 | 
             
                'John6666/haruki-mix-illustrious-v10-sdxl',
         | 
| 52 | 
             
                'John6666/noobreal-v10-sdxl',
         | 
| 53 | 
             
                'John6666/complicated-noobai-merge-vprediction-sdxl',
         | 
| 54 | 
            +
                'Laxhar/noobai-XL-Vpred-0.75s',
         | 
| 55 | 
            +
                'Laxhar/noobai-XL-Vpred-0.75',
         | 
| 56 | 
             
                'Laxhar/noobai-XL-Vpred-0.65s',
         | 
| 57 | 
             
                'Laxhar/noobai-XL-Vpred-0.65',
         | 
| 58 | 
             
                'Laxhar/noobai-XL-Vpred-0.6',
         | 
| 59 | 
            +
                'John6666/cat-tower-noobai-xl-checkpoint-v14vpred-sdxl',
         | 
| 60 | 
             
                'John6666/noobai-xl-nai-xl-vpred05version-sdxl',
         | 
| 61 | 
             
                'John6666/noobai-fusion2-vpred-itercomp-v1-sdxl',
         | 
| 62 | 
             
                'John6666/noobai-xl-nai-xl-vpredtestversion-sdxl',
         | 
|  | |
| 66 | 
             
                'John6666/illustrious-pencil-xl-v200-sdxl',
         | 
| 67 | 
             
                'John6666/obsession-illustriousxl-v21-sdxl',
         | 
| 68 | 
             
                'John6666/obsession-illustriousxl-v30-sdxl',
         | 
| 69 | 
            +
                'John6666/obsession-illustriousxl-v31-sdxl',
         | 
| 70 | 
             
                'John6666/wai-nsfw-illustrious-v70-sdxl',
         | 
| 71 | 
             
                'John6666/illustrious-pony-mix-v3-sdxl',
         | 
| 72 | 
             
                'John6666/nova-anime-xl-illustriousv10-sdxl',
         | 
|  | |
| 90 | 
             
                'John6666/ras-real-anime-screencap-v1-sdxl',
         | 
| 91 | 
             
                'John6666/duchaiten-pony-xl-no-score-v60-sdxl',
         | 
| 92 | 
             
                'John6666/mistoon-anime-ponyalpha-sdxl',
         | 
| 93 | 
            +
                'John6666/mistoon-xl-copper-v20fast-sdxl',
         | 
| 94 | 
             
                'John6666/ebara-mfcg-pony-mix-v12-sdxl',
         | 
| 95 | 
             
                'John6666/t-ponynai3-v51-sdxl',
         | 
| 96 | 
             
                'John6666/t-ponynai3-v65-sdxl',
         | 
|  | |
| 166 | 
             
            DIRECTORY_LORAS = 'loras'
         | 
| 167 | 
             
            DIRECTORY_VAES = 'vaes'
         | 
| 168 | 
             
            DIRECTORY_EMBEDS = 'embedings'
         | 
| 169 | 
            +
            DIRECTORY_UPSCALERS = 'upscalers'
         | 
| 170 |  | 
| 171 | 
             
            CACHE_HF = "/home/user/.cache/huggingface/hub/"
         | 
| 172 | 
             
            STORAGE_ROOT = "/home/user/"
         | 
|  | |
| 195 | 
             
                'optical pattern ControlNet': 'pattern',
         | 
| 196 | 
             
                'recolor ControlNet': 'recolor',
         | 
| 197 | 
             
                'tile ControlNet': 'tile',
         | 
| 198 | 
            +
                'repaint ControlNet': 'repaint',
         | 
| 199 | 
             
            }
         | 
| 200 |  | 
| 201 | 
             
            TASK_MODEL_LIST = list(TASK_STABLEPY.keys())
         | 
| 202 |  | 
| 203 | 
             
            UPSCALER_DICT_GUI = {
         | 
| 204 | 
             
                None: None,
         | 
| 205 | 
            +
                **{bu: bu for bu in ALL_BUILTIN_UPSCALERS if bu not in ["HAT x4", "DAT x4", "DAT x3", "DAT x2", "SwinIR 4x"]},
         | 
| 206 | 
            +
                # "RealESRGAN_x4plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth",
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 207 | 
             
                "RealESRNet_x4plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.1/RealESRNet_x4plus.pth",
         | 
| 208 | 
            +
                # "RealESRGAN_x4plus_anime_6B": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth",
         | 
| 209 | 
            +
                # "RealESRGAN_x2plus": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.1/RealESRGAN_x2plus.pth",
         | 
| 210 | 
            +
                # "realesr-animevideov3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-animevideov3.pth",
         | 
| 211 | 
            +
                # "realesr-general-x4v3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-x4v3.pth",
         | 
| 212 | 
            +
                # "realesr-general-wdn-x4v3": "https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-general-wdn-x4v3.pth",
         | 
| 213 | 
             
                "4x-UltraSharp": "https://huggingface.co/Shandypur/ESRGAN-4x-UltraSharp/resolve/main/4x-UltraSharp.pth",
         | 
| 214 | 
             
                "4x_foolhardy_Remacri": "https://huggingface.co/FacehugmanIII/4x_foolhardy_Remacri/resolve/main/4x_foolhardy_Remacri.pth",
         | 
| 215 | 
             
                "Remacri4xExtraSmoother": "https://huggingface.co/hollowstrawberry/upscalers-backup/resolve/main/ESRGAN/Remacri%204x%20ExtraSmoother.pth",
         | 
|  | |
| 224 | 
             
            DIFFUSERS_CONTROLNET_MODEL = [
         | 
| 225 | 
             
                "Automatic",
         | 
| 226 |  | 
| 227 | 
            +
                "brad-twinkl/controlnet-union-sdxl-1.0-promax",
         | 
| 228 | 
             
                "xinsir/controlnet-union-sdxl-1.0",
         | 
| 229 | 
             
                "xinsir/anime-painter",
         | 
| 230 | 
             
                "Eugeoter/noob-sdxl-controlnet-canny",
         | 
|  | |
| 247 | 
             
                "r3gm/controlnet-recolor-sdxl-fp16",
         | 
| 248 | 
             
                "r3gm/controlnet-openpose-twins-sdxl-1.0-fp16",
         | 
| 249 | 
             
                "r3gm/controlnet-qr-pattern-sdxl-fp16",
         | 
|  | |
| 250 | 
             
                "Yakonrus/SDXL_Controlnet_Tile_Realistic_v2",
         | 
| 251 | 
             
                "TheMistoAI/MistoLine",
         | 
| 252 | 
             
                "briaai/BRIA-2.3-ControlNet-Recoloring",
         | 
    	
        dc.py
    CHANGED
    
    | @@ -6,8 +6,10 @@ from stablepy import ( | |
| 6 | 
             
                SCHEDULE_PREDICTION_TYPE_OPTIONS,
         | 
| 7 | 
             
                check_scheduler_compatibility,
         | 
| 8 | 
             
                TASK_AND_PREPROCESSORS,
         | 
|  | |
| 9 | 
             
            )
         | 
| 10 | 
             
            from constants import (
         | 
|  | |
| 11 | 
             
                TASK_STABLEPY,
         | 
| 12 | 
             
                TASK_MODEL_LIST,
         | 
| 13 | 
             
                UPSCALER_DICT_GUI,
         | 
| @@ -92,6 +94,10 @@ download_private_repo(HF_VAE_PRIVATE_REPO, DIRECTORY_VAES, False) | |
| 92 | 
             
            load_diffusers_format_model = list_uniq(LOAD_DIFFUSERS_FORMAT_MODEL + get_model_id_list())
         | 
| 93 | 
             
            ## END MOD
         | 
| 94 |  | 
|  | |
|  | |
|  | |
|  | |
| 95 | 
             
            # Download stuffs
         | 
| 96 | 
             
            for url in [url.strip() for url in download_model.split(',')]:
         | 
| 97 | 
             
                if not os.path.exists(f"./models/{url.split('/')[-1]}"):
         | 
| @@ -138,6 +144,7 @@ flux_pipe = FluxPipeline.from_pretrained( | |
| 138 | 
             
            components = flux_pipe.components
         | 
| 139 | 
             
            components.pop("transformer", None)
         | 
| 140 | 
             
            delete_model(flux_repo)
         | 
|  | |
| 141 |  | 
| 142 | 
             
            ## BEGIN MOD
         | 
| 143 | 
             
            class GuiSD:
         | 
| @@ -310,8 +317,8 @@ class GuiSD: | |
| 310 | 
             
                    syntax_weights,
         | 
| 311 | 
             
                    upscaler_model_path,
         | 
| 312 | 
             
                    upscaler_increases_size,
         | 
| 313 | 
            -
                     | 
| 314 | 
            -
                     | 
| 315 | 
             
                    hires_steps,
         | 
| 316 | 
             
                    hires_denoising_strength,
         | 
| 317 | 
             
                    hires_sampler,
         | 
| @@ -375,6 +382,9 @@ class GuiSD: | |
| 375 | 
             
                    mode_ip2,
         | 
| 376 | 
             
                    scale_ip2,
         | 
| 377 | 
             
                    pag_scale,
         | 
|  | |
|  | |
|  | |
| 378 | 
             
                ):
         | 
| 379 | 
             
                    info_state = html_template_message("Navigating latent space...")
         | 
| 380 | 
             
                    yield info_state, gr.update(), gr.update()
         | 
| @@ -424,18 +434,15 @@ class GuiSD: | |
| 424 | 
             
                    if task == "inpaint" and not image_mask:
         | 
| 425 | 
             
                        raise ValueError("No mask image found: Specify one in 'Image Mask'")
         | 
| 426 |  | 
| 427 | 
            -
                    if  | 
| 428 | 
             
                        upscaler_model = upscaler_model_path
         | 
| 429 | 
             
                    else:
         | 
| 430 | 
            -
                        directory_upscalers = 'upscalers'
         | 
| 431 | 
            -
                        os.makedirs(directory_upscalers, exist_ok=True)
         | 
| 432 | 
            -
             | 
| 433 | 
             
                        url_upscaler = UPSCALER_DICT_GUI[upscaler_model_path]
         | 
| 434 |  | 
| 435 | 
            -
                        if not os.path.exists(f"./ | 
| 436 | 
            -
                            download_things( | 
| 437 |  | 
| 438 | 
            -
                        upscaler_model = f"./ | 
| 439 |  | 
| 440 | 
             
                    logging.getLogger("ultralytics").setLevel(logging.INFO if adetailer_verbose else logging.ERROR)
         | 
| 441 |  | 
| @@ -539,8 +546,8 @@ class GuiSD: | |
| 539 | 
             
                        "t2i_adapter_conditioning_factor": float(t2i_adapter_conditioning_factor),
         | 
| 540 | 
             
                        "upscaler_model_path": upscaler_model,
         | 
| 541 | 
             
                        "upscaler_increases_size": upscaler_increases_size,
         | 
| 542 | 
            -
                        " | 
| 543 | 
            -
                        " | 
| 544 | 
             
                        "hires_steps": hires_steps,
         | 
| 545 | 
             
                        "hires_denoising_strength": hires_denoising_strength,
         | 
| 546 | 
             
                        "hires_prompt": hires_prompt,
         | 
| @@ -555,6 +562,9 @@ class GuiSD: | |
| 555 | 
             
                        "ip_adapter_model": params_ip_model,
         | 
| 556 | 
             
                        "ip_adapter_mode": params_ip_mode,
         | 
| 557 | 
             
                        "ip_adapter_scale": params_ip_scale,
         | 
|  | |
|  | |
|  | |
| 558 | 
             
                    }
         | 
| 559 |  | 
| 560 | 
             
                    # kwargs for diffusers pipeline
         | 
| @@ -705,22 +715,26 @@ def sd_gen_generate_pipeline(*args): | |
| 705 |  | 
| 706 |  | 
| 707 | 
             
            @spaces.GPU(duration=15)
         | 
| 708 | 
            -
            def  | 
| 709 | 
             
                if image is None: return None
         | 
| 710 |  | 
| 711 | 
             
                from stablepy.diffusers_vanilla.utils import save_pil_image_with_metadata
         | 
| 712 | 
            -
                from stablepy import  | 
| 713 |  | 
|  | |
| 714 | 
             
                exif_image = extract_exif_data(image)
         | 
| 715 |  | 
| 716 | 
            -
                 | 
| 717 | 
            -
             | 
| 718 | 
            -
                 | 
| 719 | 
            -
             | 
| 720 | 
            -
                     | 
|  | |
|  | |
|  | |
| 721 |  | 
| 722 | 
            -
                scaler_beta =  | 
| 723 | 
            -
                image_up = scaler_beta.upscale(image, upscaler_size,  | 
| 724 |  | 
| 725 | 
             
                image_path = save_pil_image_with_metadata(image_up, f'{os.getcwd()}/up_images', exif_image)
         | 
| 726 |  | 
| @@ -760,13 +774,14 @@ def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance | |
| 760 | 
             
                      value_threshold=0.1, distance_threshold=0.1, recolor_gamma_correction=1., tile_blur_sigma=9,
         | 
| 761 | 
             
                      image_ip1_dict=None, mask_ip1=None, model_ip1="plus_face", mode_ip1="original", scale_ip1=0.7,
         | 
| 762 | 
             
                      image_ip2_dict=None, mask_ip2=None, model_ip2="base", mode_ip2="style", scale_ip2=0.7,
         | 
| 763 | 
            -
                      upscaler_model_path=None, upscaler_increases_size=1.0,  | 
| 764 | 
             
                      hires_sampler="Use same sampler", hires_schedule_type="Use same schedule type", hires_guidance_scale=-1, hires_prompt="", hires_negative_prompt="",
         | 
| 765 | 
             
                      adetailer_inpaint_only=True, adetailer_verbose=False, adetailer_sampler="Use same sampler", adetailer_active_a=False,
         | 
| 766 | 
             
                      prompt_ad_a="", negative_prompt_ad_a="", strength_ad_a=0.35, face_detector_ad_a=True, person_detector_ad_a=True, hand_detector_ad_a=False,
         | 
| 767 | 
             
                      mask_dilation_a=4, mask_blur_a=4, mask_padding_a=32, adetailer_active_b=False, prompt_ad_b="", negative_prompt_ad_b="", strength_ad_b=0.35,
         | 
| 768 | 
             
                      face_detector_ad_b=True, person_detector_ad_b=True, hand_detector_ad_b=False, mask_dilation_b=4, mask_blur_b=4, mask_padding_b=32,
         | 
| 769 | 
            -
                      active_textual_inversion=False,  | 
|  | |
| 770 | 
             
                MAX_SEED = np.iinfo(np.int32).max
         | 
| 771 |  | 
| 772 | 
             
                image_mask = image_control_dict['layers'][0] if isinstance(image_control_dict, dict) and not image_mask else image_mask
         | 
| @@ -833,7 +848,7 @@ def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance | |
| 833 | 
             
                    height, width, model_name, vae, task, image_control, preprocessor_name, preprocess_resolution, image_resolution,
         | 
| 834 | 
             
                    style_prompt, style_json, image_mask, strength, low_threshold, high_threshold, value_threshold, distance_threshold,
         | 
| 835 | 
             
                    recolor_gamma_correction, tile_blur_sigma, control_net_output_scaling, control_net_start_threshold, control_net_stop_threshold,
         | 
| 836 | 
            -
                    active_textual_inversion, prompt_syntax, upscaler_model_path, upscaler_increases_size,  | 
| 837 | 
             
                    hires_steps, hires_denoising_strength, hires_sampler, hires_prompt, hires_negative_prompt, hires_before_adetailer, hires_after_adetailer,
         | 
| 838 | 
             
                    hires_schedule_type, hires_guidance_scale, controlnet_model, loop_generation, leave_progress_bar, disable_progress_bar, image_previews,
         | 
| 839 | 
             
                    display_images, save_generated_images, filename_pattern, image_storage_location, retain_compel_previous_load, retain_detailfix_model_previous_load,
         | 
| @@ -842,7 +857,8 @@ def infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidance | |
| 842 | 
             
                    strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a, mask_dilation_a, mask_blur_a, mask_padding_a,
         | 
| 843 | 
             
                    adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b, face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b,
         | 
| 844 | 
             
                    mask_dilation_b, mask_blur_b, mask_padding_b, retain_task_cache, guidance_rescale, image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 845 | 
            -
                    image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2, pag_scale,  | 
|  | |
| 846 | 
             
                ):
         | 
| 847 | 
             
                    images = stream_images if isinstance(stream_images, list) else images
         | 
| 848 | 
             
                progress(1, desc="Inference completed.")
         | 
| @@ -862,13 +878,14 @@ def _infer(prompt, negative_prompt, seed, randomize_seed, width, height, guidanc | |
| 862 | 
             
                       value_threshold=0.1, distance_threshold=0.1, recolor_gamma_correction=1., tile_blur_sigma=9,
         | 
| 863 | 
             
                       image_ip1_dict=None, mask_ip1=None, model_ip1="plus_face", mode_ip1="original", scale_ip1=0.7,
         | 
| 864 | 
             
                       image_ip2_dict=None, mask_ip2=None, model_ip2="base", mode_ip2="style", scale_ip2=0.7,
         | 
| 865 | 
            -
                       upscaler_model_path=None, upscaler_increases_size=1.0,  | 
| 866 | 
             
                       hires_sampler="Use same sampler", hires_schedule_type="Use same schedule type", hires_guidance_scale=-1, hires_prompt="", hires_negative_prompt="",
         | 
| 867 | 
             
                       adetailer_inpaint_only=True, adetailer_verbose=False, adetailer_sampler="Use same sampler", adetailer_active_a=False,
         | 
| 868 | 
             
                       prompt_ad_a="", negative_prompt_ad_a="", strength_ad_a=0.35, face_detector_ad_a=True, person_detector_ad_a=True, hand_detector_ad_a=False,
         | 
| 869 | 
             
                       mask_dilation_a=4, mask_blur_a=4, mask_padding_a=32, adetailer_active_b=False, prompt_ad_b="", negative_prompt_ad_b="", strength_ad_b=0.35,
         | 
| 870 | 
             
                       face_detector_ad_b=True, person_detector_ad_b=True, hand_detector_ad_b=False, mask_dilation_b=4, mask_blur_b=4, mask_padding_b=32,
         | 
| 871 | 
            -
                       active_textual_inversion=False,  | 
|  | |
| 872 | 
             
                return gr.update()
         | 
| 873 |  | 
| 874 |  | 
|  | |
| 6 | 
             
                SCHEDULE_PREDICTION_TYPE_OPTIONS,
         | 
| 7 | 
             
                check_scheduler_compatibility,
         | 
| 8 | 
             
                TASK_AND_PREPROCESSORS,
         | 
| 9 | 
            +
                FACE_RESTORATION_MODELS,
         | 
| 10 | 
             
            )
         | 
| 11 | 
             
            from constants import (
         | 
| 12 | 
            +
                DIRECTORY_UPSCALERS,
         | 
| 13 | 
             
                TASK_STABLEPY,
         | 
| 14 | 
             
                TASK_MODEL_LIST,
         | 
| 15 | 
             
                UPSCALER_DICT_GUI,
         | 
|  | |
| 94 | 
             
            load_diffusers_format_model = list_uniq(LOAD_DIFFUSERS_FORMAT_MODEL + get_model_id_list())
         | 
| 95 | 
             
            ## END MOD
         | 
| 96 |  | 
| 97 | 
            +
            directories = [DIRECTORY_MODELS, DIRECTORY_LORAS, DIRECTORY_VAES, DIRECTORY_EMBEDS, DIRECTORY_UPSCALERS]
         | 
| 98 | 
            +
            for directory in directories:
         | 
| 99 | 
            +
                os.makedirs(directory, exist_ok=True)
         | 
| 100 | 
            +
             | 
| 101 | 
             
            # Download stuffs
         | 
| 102 | 
             
            for url in [url.strip() for url in download_model.split(',')]:
         | 
| 103 | 
             
                if not os.path.exists(f"./models/{url.split('/')[-1]}"):
         | 
|  | |
| 144 | 
             
            components = flux_pipe.components
         | 
| 145 | 
             
            components.pop("transformer", None)
         | 
| 146 | 
             
            delete_model(flux_repo)
         | 
| 147 | 
            +
            # components = None
         | 
| 148 |  | 
| 149 | 
             
            ## BEGIN MOD
         | 
| 150 | 
             
            class GuiSD:
         | 
|  | |
| 317 | 
             
                    syntax_weights,
         | 
| 318 | 
             
                    upscaler_model_path,
         | 
| 319 | 
             
                    upscaler_increases_size,
         | 
| 320 | 
            +
                    upscaler_tile_size,
         | 
| 321 | 
            +
                    upscaler_tile_overlap,
         | 
| 322 | 
             
                    hires_steps,
         | 
| 323 | 
             
                    hires_denoising_strength,
         | 
| 324 | 
             
                    hires_sampler,
         | 
|  | |
| 382 | 
             
                    mode_ip2,
         | 
| 383 | 
             
                    scale_ip2,
         | 
| 384 | 
             
                    pag_scale,
         | 
| 385 | 
            +
                    face_restoration_model,
         | 
| 386 | 
            +
                    face_restoration_visibility,
         | 
| 387 | 
            +
                    face_restoration_weight,
         | 
| 388 | 
             
                ):
         | 
| 389 | 
             
                    info_state = html_template_message("Navigating latent space...")
         | 
| 390 | 
             
                    yield info_state, gr.update(), gr.update()
         | 
|  | |
| 434 | 
             
                    if task == "inpaint" and not image_mask:
         | 
| 435 | 
             
                        raise ValueError("No mask image found: Specify one in 'Image Mask'")
         | 
| 436 |  | 
| 437 | 
            +
                    if "https://" not in str(UPSCALER_DICT_GUI[upscaler_model_path]):
         | 
| 438 | 
             
                        upscaler_model = upscaler_model_path
         | 
| 439 | 
             
                    else:
         | 
|  | |
|  | |
|  | |
| 440 | 
             
                        url_upscaler = UPSCALER_DICT_GUI[upscaler_model_path]
         | 
| 441 |  | 
| 442 | 
            +
                        if not os.path.exists(f"./{DIRECTORY_UPSCALERS}/{url_upscaler.split('/')[-1]}"):
         | 
| 443 | 
            +
                            download_things(DIRECTORY_UPSCALERS, url_upscaler, HF_TOKEN)
         | 
| 444 |  | 
| 445 | 
            +
                        upscaler_model = f"./{DIRECTORY_UPSCALERS}/{url_upscaler.split('/')[-1]}"
         | 
| 446 |  | 
| 447 | 
             
                    logging.getLogger("ultralytics").setLevel(logging.INFO if adetailer_verbose else logging.ERROR)
         | 
| 448 |  | 
|  | |
| 546 | 
             
                        "t2i_adapter_conditioning_factor": float(t2i_adapter_conditioning_factor),
         | 
| 547 | 
             
                        "upscaler_model_path": upscaler_model,
         | 
| 548 | 
             
                        "upscaler_increases_size": upscaler_increases_size,
         | 
| 549 | 
            +
                        "upscaler_tile_size": upscaler_tile_size,
         | 
| 550 | 
            +
                        "upscaler_tile_overlap": upscaler_tile_overlap,
         | 
| 551 | 
             
                        "hires_steps": hires_steps,
         | 
| 552 | 
             
                        "hires_denoising_strength": hires_denoising_strength,
         | 
| 553 | 
             
                        "hires_prompt": hires_prompt,
         | 
|  | |
| 562 | 
             
                        "ip_adapter_model": params_ip_model,
         | 
| 563 | 
             
                        "ip_adapter_mode": params_ip_mode,
         | 
| 564 | 
             
                        "ip_adapter_scale": params_ip_scale,
         | 
| 565 | 
            +
                        "face_restoration_model": face_restoration_model,
         | 
| 566 | 
            +
                        "face_restoration_visibility": face_restoration_visibility,
         | 
| 567 | 
            +
                        "face_restoration_weight": face_restoration_weight,
         | 
| 568 | 
             
                    }
         | 
| 569 |  | 
| 570 | 
             
                    # kwargs for diffusers pipeline
         | 
|  | |
| 715 |  | 
| 716 |  | 
| 717 | 
             
            @spaces.GPU(duration=15)
         | 
| 718 | 
            +
            def process_upscale(image, upscaler_name, upscaler_size):
         | 
| 719 | 
             
                if image is None: return None
         | 
| 720 |  | 
| 721 | 
             
                from stablepy.diffusers_vanilla.utils import save_pil_image_with_metadata
         | 
| 722 | 
            +
                from stablepy import load_upscaler_model
         | 
| 723 |  | 
| 724 | 
            +
                image = image.convert("RGB")
         | 
| 725 | 
             
                exif_image = extract_exif_data(image)
         | 
| 726 |  | 
| 727 | 
            +
                name_upscaler = UPSCALER_DICT_GUI[upscaler_name]
         | 
| 728 | 
            +
             | 
| 729 | 
            +
                if "https://" in str(name_upscaler):
         | 
| 730 | 
            +
             | 
| 731 | 
            +
                    if not os.path.exists(f"./{DIRECTORY_UPSCALERS}/{name_upscaler.split('/')[-1]}"):
         | 
| 732 | 
            +
                        download_things(DIRECTORY_UPSCALERS, name_upscaler, HF_TOKEN)
         | 
| 733 | 
            +
             | 
| 734 | 
            +
                    name_upscaler = f"./{DIRECTORY_UPSCALERS}/{name_upscaler.split('/')[-1]}"
         | 
| 735 |  | 
| 736 | 
            +
                scaler_beta = load_upscaler_model(model=name_upscaler, tile=0, tile_overlap=8, device="cuda", half=True)
         | 
| 737 | 
            +
                image_up = scaler_beta.upscale(image, upscaler_size, True)
         | 
| 738 |  | 
| 739 | 
             
                image_path = save_pil_image_with_metadata(image_up, f'{os.getcwd()}/up_images', exif_image)
         | 
| 740 |  | 
|  | |
| 774 | 
             
                      value_threshold=0.1, distance_threshold=0.1, recolor_gamma_correction=1., tile_blur_sigma=9,
         | 
| 775 | 
             
                      image_ip1_dict=None, mask_ip1=None, model_ip1="plus_face", mode_ip1="original", scale_ip1=0.7,
         | 
| 776 | 
             
                      image_ip2_dict=None, mask_ip2=None, model_ip2="base", mode_ip2="style", scale_ip2=0.7,
         | 
| 777 | 
            +
                      upscaler_model_path=None, upscaler_increases_size=1.0, upscaler_tile_size=0, upscaler_tile_overlap=8, hires_steps=30, hires_denoising_strength=0.55,
         | 
| 778 | 
             
                      hires_sampler="Use same sampler", hires_schedule_type="Use same schedule type", hires_guidance_scale=-1, hires_prompt="", hires_negative_prompt="",
         | 
| 779 | 
             
                      adetailer_inpaint_only=True, adetailer_verbose=False, adetailer_sampler="Use same sampler", adetailer_active_a=False,
         | 
| 780 | 
             
                      prompt_ad_a="", negative_prompt_ad_a="", strength_ad_a=0.35, face_detector_ad_a=True, person_detector_ad_a=True, hand_detector_ad_a=False,
         | 
| 781 | 
             
                      mask_dilation_a=4, mask_blur_a=4, mask_padding_a=32, adetailer_active_b=False, prompt_ad_b="", negative_prompt_ad_b="", strength_ad_b=0.35,
         | 
| 782 | 
             
                      face_detector_ad_b=True, person_detector_ad_b=True, hand_detector_ad_b=False, mask_dilation_b=4, mask_blur_b=4, mask_padding_b=32,
         | 
| 783 | 
            +
                      active_textual_inversion=False, face_restoration_model=None, face_restoration_visibility=1., face_restoration_weight=.5,
         | 
| 784 | 
            +
                      gpu_duration=59, translate=False, recom_prompt=True, progress=gr.Progress(track_tqdm=True)):
         | 
| 785 | 
             
                MAX_SEED = np.iinfo(np.int32).max
         | 
| 786 |  | 
| 787 | 
             
                image_mask = image_control_dict['layers'][0] if isinstance(image_control_dict, dict) and not image_mask else image_mask
         | 
|  | |
| 848 | 
             
                    height, width, model_name, vae, task, image_control, preprocessor_name, preprocess_resolution, image_resolution,
         | 
| 849 | 
             
                    style_prompt, style_json, image_mask, strength, low_threshold, high_threshold, value_threshold, distance_threshold,
         | 
| 850 | 
             
                    recolor_gamma_correction, tile_blur_sigma, control_net_output_scaling, control_net_start_threshold, control_net_stop_threshold,
         | 
| 851 | 
            +
                    active_textual_inversion, prompt_syntax, upscaler_model_path, upscaler_increases_size, upscaler_tile_size, upscaler_tile_overlap,
         | 
| 852 | 
             
                    hires_steps, hires_denoising_strength, hires_sampler, hires_prompt, hires_negative_prompt, hires_before_adetailer, hires_after_adetailer,
         | 
| 853 | 
             
                    hires_schedule_type, hires_guidance_scale, controlnet_model, loop_generation, leave_progress_bar, disable_progress_bar, image_previews,
         | 
| 854 | 
             
                    display_images, save_generated_images, filename_pattern, image_storage_location, retain_compel_previous_load, retain_detailfix_model_previous_load,
         | 
|  | |
| 857 | 
             
                    strength_ad_a, face_detector_ad_a, person_detector_ad_a, hand_detector_ad_a, mask_dilation_a, mask_blur_a, mask_padding_a,
         | 
| 858 | 
             
                    adetailer_active_b, prompt_ad_b, negative_prompt_ad_b, strength_ad_b, face_detector_ad_b, person_detector_ad_b, hand_detector_ad_b,
         | 
| 859 | 
             
                    mask_dilation_b, mask_blur_b, mask_padding_b, retain_task_cache, guidance_rescale, image_ip1, mask_ip1, model_ip1, mode_ip1, scale_ip1,
         | 
| 860 | 
            +
                    image_ip2, mask_ip2, model_ip2, mode_ip2, scale_ip2, pag_scale, face_restoration_model, face_restoration_visibility, face_restoration_weight,
         | 
| 861 | 
            +
                    load_lora_cpu, verbose_info, gpu_duration
         | 
| 862 | 
             
                ):
         | 
| 863 | 
             
                    images = stream_images if isinstance(stream_images, list) else images
         | 
| 864 | 
             
                progress(1, desc="Inference completed.")
         | 
|  | |
| 878 | 
             
                       value_threshold=0.1, distance_threshold=0.1, recolor_gamma_correction=1., tile_blur_sigma=9,
         | 
| 879 | 
             
                       image_ip1_dict=None, mask_ip1=None, model_ip1="plus_face", mode_ip1="original", scale_ip1=0.7,
         | 
| 880 | 
             
                       image_ip2_dict=None, mask_ip2=None, model_ip2="base", mode_ip2="style", scale_ip2=0.7,
         | 
| 881 | 
            +
                       upscaler_model_path=None, upscaler_increases_size=1.0, upscaler_tile_size=0, upscaler_tile_overlap=8, hires_steps=30, hires_denoising_strength=0.55,
         | 
| 882 | 
             
                       hires_sampler="Use same sampler", hires_schedule_type="Use same schedule type", hires_guidance_scale=-1, hires_prompt="", hires_negative_prompt="",
         | 
| 883 | 
             
                       adetailer_inpaint_only=True, adetailer_verbose=False, adetailer_sampler="Use same sampler", adetailer_active_a=False,
         | 
| 884 | 
             
                       prompt_ad_a="", negative_prompt_ad_a="", strength_ad_a=0.35, face_detector_ad_a=True, person_detector_ad_a=True, hand_detector_ad_a=False,
         | 
| 885 | 
             
                       mask_dilation_a=4, mask_blur_a=4, mask_padding_a=32, adetailer_active_b=False, prompt_ad_b="", negative_prompt_ad_b="", strength_ad_b=0.35,
         | 
| 886 | 
             
                       face_detector_ad_b=True, person_detector_ad_b=True, hand_detector_ad_b=False, mask_dilation_b=4, mask_blur_b=4, mask_padding_b=32,
         | 
| 887 | 
            +
                       active_textual_inversion=False, face_restoration_model=None, face_restoration_visibility=1., face_restoration_weight=.5,
         | 
| 888 | 
            +
                       gpu_duration=59, translate=False, recom_prompt=True, progress=gr.Progress(track_tqdm=True)):
         | 
| 889 | 
             
                return gr.update()
         | 
| 890 |  | 
| 891 |  | 
    	
        llmdolphin.py
    CHANGED
    
    | @@ -37,6 +37,7 @@ llm_models = { | |
| 37 | 
             
                "MN-12B-Lyra-v4-Q4_K_M.gguf": ["bartowski/MN-12B-Lyra-v4-GGUF", MessagesFormatterType.CHATML],
         | 
| 38 | 
             
                "Lyra4-Gutenberg-12B.Q4_K_M.gguf": ["mradermacher/Lyra4-Gutenberg-12B-GGUF", MessagesFormatterType.CHATML],
         | 
| 39 | 
             
                "Llama-3.1-8B-EZO-1.1-it.Q5_K_M.gguf": ["mradermacher/Llama-3.1-8B-EZO-1.1-it-GGUF", MessagesFormatterType.MISTRAL],
         | 
|  | |
| 40 | 
             
                "MN-12B-Starcannon-v1.i1-Q4_K_M.gguf": ["mradermacher/MN-12B-Starcannon-v1-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 41 | 
             
                "MN-12B-Starcannon-v2.i1-Q4_K_M.gguf": ["mradermacher/MN-12B-Starcannon-v2-i1-GGUF", MessagesFormatterType.CHATML],
         | 
| 42 | 
             
                "MN-12B-Starcannon-v3.i1-Q4_K_M.gguf": ["mradermacher/MN-12B-Starcannon-v3-i1-GGUF", MessagesFormatterType.CHATML],
         | 
| @@ -84,6 +85,59 @@ llm_models = { | |
| 84 | 
             
                "ChatWaifu_22B_v2.0_preview.Q4_K_S.gguf": ["mradermacher/ChatWaifu_22B_v2.0_preview-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 85 | 
             
                "ChatWaifu_v1.4.Q5_K_M.gguf": ["mradermacher/ChatWaifu_v1.4-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 86 | 
             
                "ChatWaifu_v1.3.1.Q4_K_M.gguf": ["mradermacher/ChatWaifu_v1.3.1-GGUF", MessagesFormatterType.MISTRAL],
         | 
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
|  | |
| 87 | 
             
                "Josiefied-abliteratedV4-Qwen2.5-14B-Inst-BaseMerge-TIES.Q4_K_M.gguf": ["mradermacher/Josiefied-abliteratedV4-Qwen2.5-14B-Inst-BaseMerge-TIES-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 88 | 
             
                "InfinityLake-2x7B.i1-Q4_K_M.gguf": ["mradermacher/InfinityLake-2x7B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 89 | 
             
                "InfinityKuno-2x7B.i1-Q4_K_M.gguf": ["mradermacher/InfinityKuno-2x7B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
|  | |
| 37 | 
             
                "MN-12B-Lyra-v4-Q4_K_M.gguf": ["bartowski/MN-12B-Lyra-v4-GGUF", MessagesFormatterType.CHATML],
         | 
| 38 | 
             
                "Lyra4-Gutenberg-12B.Q4_K_M.gguf": ["mradermacher/Lyra4-Gutenberg-12B-GGUF", MessagesFormatterType.CHATML],
         | 
| 39 | 
             
                "Llama-3.1-8B-EZO-1.1-it.Q5_K_M.gguf": ["mradermacher/Llama-3.1-8B-EZO-1.1-it-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 40 | 
            +
                "Magnolia-v2-12B.i1-Q4_K_M.gguf": ["mradermacher/Magnolia-v2-12B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 41 | 
             
                "MN-12B-Starcannon-v1.i1-Q4_K_M.gguf": ["mradermacher/MN-12B-Starcannon-v1-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 42 | 
             
                "MN-12B-Starcannon-v2.i1-Q4_K_M.gguf": ["mradermacher/MN-12B-Starcannon-v2-i1-GGUF", MessagesFormatterType.CHATML],
         | 
| 43 | 
             
                "MN-12B-Starcannon-v3.i1-Q4_K_M.gguf": ["mradermacher/MN-12B-Starcannon-v3-i1-GGUF", MessagesFormatterType.CHATML],
         | 
|  | |
| 85 | 
             
                "ChatWaifu_22B_v2.0_preview.Q4_K_S.gguf": ["mradermacher/ChatWaifu_22B_v2.0_preview-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 86 | 
             
                "ChatWaifu_v1.4.Q5_K_M.gguf": ["mradermacher/ChatWaifu_v1.4-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 87 | 
             
                "ChatWaifu_v1.3.1.Q4_K_M.gguf": ["mradermacher/ChatWaifu_v1.3.1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 88 | 
            +
                "Qwen2.5-7B-Instruct-kto.Q5_K_M.gguf": ["mradermacher/Qwen2.5-7B-Instruct-kto-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 89 | 
            +
                "Poppy_Porpoise-v0.7-L3-8B.i1-Q5_K_M.gguf": ["mradermacher/Poppy_Porpoise-v0.7-L3-8B-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 90 | 
            +
                "NeuralStar_Story-9b.i1-Q4_K_M.gguf": ["mradermacher/NeuralStar_Story-9b-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 91 | 
            +
                "MT5-Gen3-MAG-gemma-2-9B.Q4_K_M.gguf": ["mradermacher/MT5-Gen3-MAG-gemma-2-9B-GGUF", MessagesFormatterType.ALPACA],
         | 
| 92 | 
            +
                "MT5-Gen3-MAGBMU-gemma-2-9B.Q4_K_M.gguf": ["mradermacher/MT5-Gen3-MAGBMU-gemma-2-9B-GGUF", MessagesFormatterType.ALPACA],
         | 
| 93 | 
            +
                "MT4-Gen3-MM-gemma-2-Rv0.4MT4g2-9B.Q4_K_M.gguf": ["mradermacher/MT4-Gen3-MM-gemma-2-Rv0.4MT4g2-9B-GGUF", MessagesFormatterType.ALPACA],
         | 
| 94 | 
            +
                "L3-8B-Poppy-Sunspice-experiment-c.i1-Q5_K_M.gguf": ["mradermacher/L3-8B-Poppy-Sunspice-experiment-c-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 95 | 
            +
                "Gemma-Evo-10B.i1-Q4_K_M.gguf": ["mradermacher/Gemma-Evo-10B-i1-GGUF", MessagesFormatterType.ALPACA],
         | 
| 96 | 
            +
                "Gemma2-9B-test-novelistwo.Q4_K_M.gguf": ["mradermacher/Gemma2-9B-test-novelistwo-GGUF", MessagesFormatterType.ALPACA],
         | 
| 97 | 
            +
                "Gemma-2-9b-baymax.i1-Q4_K_M.gguf": ["mradermacher/Gemma-2-9b-baymax-i1-GGUF", MessagesFormatterType.ALPACA],
         | 
| 98 | 
            +
                "eule-qwen2.5instruct-7b-111224.i1-Q5_K_M.gguf": ["mradermacher/eule-qwen2.5instruct-7b-111224-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 99 | 
            +
                "Creative-7B-nerd.i1-Q5_K_M.gguf": ["mradermacher/Creative-7B-nerd-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 100 | 
            +
                "FuseChat-Llama-3.1-8B-Instruct-Q5_K_M.gguf": ["bartowski/FuseChat-Llama-3.1-8B-Instruct-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 101 | 
            +
                "Sailor2-8B-Chat-Uncensored.i1-Q4_K_M.gguf": ["mradermacher/Sailor2-8B-Chat-Uncensored-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 102 | 
            +
                "oh-dcft-v3.1-llama-3.1-8b.i1-Q5_K_M.gguf": ["mradermacher/oh-dcft-v3.1-llama-3.1-8b-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 103 | 
            +
                "oh-dcft-v3.1-claude-3-5-haiku-20241022.i1-Q5_K_M.gguf": ["mradermacher/oh-dcft-v3.1-claude-3-5-haiku-20241022-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 104 | 
            +
                "NovaSpark.i1-Q5_K_M.gguf": ["mradermacher/NovaSpark-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 105 | 
            +
                "Novaeus-Promptist-7B-Instruct.i1-Q5_K_M.gguf": ["mradermacher/Novaeus-Promptist-7B-Instruct-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 106 | 
            +
                "suzume-llama-3-8B-multilingual.i1-Q5_K_M.gguf": ["mradermacher/suzume-llama-3-8B-multilingual-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 107 | 
            +
                "suzume-llama-3-8B-japanese.i1-Q4_K_M.gguf": ["mradermacher/suzume-llama-3-8B-japanese-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 108 | 
            +
                "nepoticide-12B-Unslop-Unleashed-Mell-RPMax.i1-Q4_K_M.gguf": ["mradermacher/nepoticide-12B-Unslop-Unleashed-Mell-RPMax-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 109 | 
            +
                "NemoMix-12B-DellaV1b.i1-Q4_K_M.gguf": ["mradermacher/NemoMix-12B-DellaV1b-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 110 | 
            +
                "NekoMix-12B.i1-Q4_K_M.gguf": ["mradermacher/NekoMix-12B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 111 | 
            +
                "Moriyasu_Qwen2_JP_7B.Q5_K_M.gguf": ["mradermacher/Moriyasu_Qwen2_JP_7B-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 112 | 
            +
                "MN-Funhouse-12B.i1-Q4_K_M.gguf": ["mradermacher/MN-Funhouse-12B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 113 | 
            +
                "Mistralv0.2-Erosumikav2-Franken-Sonya-10.5B.i1-Q4_K_M.gguf": ["mradermacher/Mistralv0.2-Erosumikav2-Franken-Sonya-10.5B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 114 | 
            +
                "Mistral-Reddit-12B.i1-Q4_K_M.gguf": ["mradermacher/Mistral-Reddit-12B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 115 | 
            +
                "MistralMusic.Q5_K_M.gguf": ["mradermacher/MistralMusic-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 116 | 
            +
                "miscii-Virtuoso-Small.i1-Q4_K_M.gguf": ["mradermacher/miscii-Virtuoso-Small-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 117 | 
            +
                "Mermaid-Dolphin-Mixtral-2x7b.i1-Q4_K_M.gguf": ["mradermacher/Mermaid-Dolphin-Mixtral-2x7b-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 118 | 
            +
                "Merged-Tasty-Unsloth-Llama-3.1-8B-v4.Q5_K_M.gguf": ["mradermacher/Merged-Tasty-Unsloth-Llama-3.1-8B-v4-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 119 | 
            +
                "MedWest-7B.i1-Q5_K_M.gguf": ["mradermacher/MedWest-7B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 120 | 
            +
                "Matter-0.1-7B-boost-DPO-preview.i1-Q5_K_M.gguf": ["mradermacher/Matter-0.1-7B-boost-DPO-preview-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 121 | 
            +
                "Magnolia-v3-12B.i1-Q4_K_M.gguf": ["mradermacher/Magnolia-v3-12B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 122 | 
            +
                "Llama-TI-8B.i1-Q5_K_M.gguf": ["mradermacher/Llama-TI-8B-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 123 | 
            +
                "Llama3-Chinese-8B-Instruct-Agent-v1.Q5_K_M.gguf": ["mradermacher/Llama3-Chinese-8B-Instruct-Agent-v1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 124 | 
            +
                "Llama-3-8B-Instruct-DPO-v0.3.i1-Q5_K_M.gguf": ["mradermacher/Llama-3-8B-Instruct-DPO-v0.3-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 125 | 
            +
                "Llama3.1-Reddit-Writer-8B.i1-Q5_K_M.gguf": ["mradermacher/Llama3.1-Reddit-Writer-8B-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 126 | 
            +
                "Llama-3.1-8B-Tortoise.i1-Q5_K_M.gguf": ["mradermacher/Llama-3.1-8B-Tortoise-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 127 | 
            +
                "LightChatAssistant-2x7B.i1-Q4_K_M.gguf": ["mradermacher/LightChatAssistant-2x7B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 128 | 
            +
                "Lamarck-14B-v0.3.i1-Q4_K_M.gguf": ["mradermacher/Lamarck-14B-v0.3-i1-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 129 | 
            +
                "lamarck-14b-prose-model_stock.Q4_K_M.gguf": ["mradermacher/lamarck-14b-prose-model_stock-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 130 | 
            +
                "L3-ColdBrew-DualCore.i1-Q5_K_M.gguf": ["mradermacher/L3-ColdBrew-DualCore-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 131 | 
            +
                "L3.1-Tiv-10B.i1-Q4_K_M.gguf": ["mradermacher/L3.1-Tiv-10B-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 132 | 
            +
                "L3.1-Sekplus-10B.i1-Q4_K_M.gguf": ["mradermacher/L3.1-Sekplus-10B-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 133 | 
            +
                "KRONOS-8B-V1-P3.Q5_K_M.gguf": ["mradermacher/KRONOS-8B-V1-P3-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 134 | 
            +
                "Gemma2-9B-test-novelist.Q4_K_M.gguf": ["mradermacher/Gemma2-9B-test-novelist-GGUF", MessagesFormatterType.ALPACA],
         | 
| 135 | 
            +
                "G2-Nowing-9B.i1-Q4_K_M.gguf": ["mradermacher/G2-Nowing-9B-i1-GGUF", MessagesFormatterType.ALPACA],
         | 
| 136 | 
            +
                "G2-Nowing-9B-32K-YS.i1-Q4_K_M.gguf": ["mradermacher/G2-Nowing-9B-32K-YS-i1-GGUF", MessagesFormatterType.ALPACA],
         | 
| 137 | 
            +
                "D_AU-Tiefighter-Plus-OrcaMaid-V3-13B-32k-slerp.i1-Q4_K_M.gguf": ["mradermacher/D_AU-Tiefighter-Plus-OrcaMaid-V3-13B-32k-slerp-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 138 | 
            +
                "Baldur-KTO.i1-Q5_K_M.gguf": ["mradermacher/Baldur-KTO-i1-GGUF", MessagesFormatterType.LLAMA_3],
         | 
| 139 | 
            +
                "FuseChat-Qwen-2.5-7B-Instruct-Q5_K_M.gguf": ["bartowski/FuseChat-Qwen-2.5-7B-Instruct-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 140 | 
            +
                "FuseChat-Gemma-2-9B-Instruct-Q4_K_M.gguf": ["bartowski/FuseChat-Gemma-2-9B-Instruct-GGUF", MessagesFormatterType.ALPACA],
         | 
| 141 | 
             
                "Josiefied-abliteratedV4-Qwen2.5-14B-Inst-BaseMerge-TIES.Q4_K_M.gguf": ["mradermacher/Josiefied-abliteratedV4-Qwen2.5-14B-Inst-BaseMerge-TIES-GGUF", MessagesFormatterType.OPEN_CHAT],
         | 
| 142 | 
             
                "InfinityLake-2x7B.i1-Q4_K_M.gguf": ["mradermacher/InfinityLake-2x7B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
| 143 | 
             
                "InfinityKuno-2x7B.i1-Q4_K_M.gguf": ["mradermacher/InfinityKuno-2x7B-i1-GGUF", MessagesFormatterType.MISTRAL],
         | 
    	
        requirements.txt
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            git+https://github.com/R3gm/stablepy.git@ | 
| 2 | 
             
            accelerate
         | 
| 3 | 
             
            diffusers
         | 
| 4 | 
             
            invisible_watermark
         | 
|  | |
| 1 | 
            +
            git+https://github.com/R3gm/stablepy.git@5e66972  # -b refactor_sampler_fix
         | 
| 2 | 
             
            accelerate
         | 
| 3 | 
             
            diffusers
         | 
| 4 | 
             
            invisible_watermark
         | 
    	
        utils.py
    CHANGED
    
    | @@ -300,7 +300,7 @@ def get_model_type(repo_id: str): | |
| 300 | 
             
                default = "SD 1.5"
         | 
| 301 | 
             
                try:
         | 
| 302 | 
             
                    if os.path.exists(repo_id):
         | 
| 303 | 
            -
                        tag = checkpoint_model_type(repo_id)
         | 
| 304 | 
             
                        return DIFFUSECRAFT_CHECKPOINT_NAME[tag]
         | 
| 305 | 
             
                    else:
         | 
| 306 | 
             
                        model = api.model_info(repo_id=repo_id, timeout=5.0)
         | 
|  | |
| 300 | 
             
                default = "SD 1.5"
         | 
| 301 | 
             
                try:
         | 
| 302 | 
             
                    if os.path.exists(repo_id):
         | 
| 303 | 
            +
                        tag, _, _ = checkpoint_model_type(repo_id)
         | 
| 304 | 
             
                        return DIFFUSECRAFT_CHECKPOINT_NAME[tag]
         | 
| 305 | 
             
                    else:
         | 
| 306 | 
             
                        model = api.model_info(repo_id=repo_id, timeout=5.0)
         | 
