51 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import folder_paths
 | 
						|
from PIL import Image, ImageOps
 | 
						|
import numpy as np
 | 
						|
import torch
 | 
						|
import folder_paths
 | 
						|
 | 
						|
 | 
						|
class ComfyUIDeployExternalLora:
 | 
						|
    @classmethod
 | 
						|
    def INPUT_TYPES(s):
 | 
						|
        return {
 | 
						|
            "required": {
 | 
						|
                "input_id": (
 | 
						|
                    "STRING",
 | 
						|
                    {"multiline": False, "default": "input_lora"},
 | 
						|
                ),
 | 
						|
            },
 | 
						|
            "optional": {
 | 
						|
                "default_lora_name": (folder_paths.get_filename_list("loras"), ),
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
    RETURN_TYPES = (folder_paths.get_filename_list("loras"),)
 | 
						|
    RETURN_NAMES = ("path",)
 | 
						|
 | 
						|
    FUNCTION = "run"
 | 
						|
 | 
						|
    CATEGORY = "deploy"
 | 
						|
 | 
						|
    def run(self, input_id, default_lora_name=None):
 | 
						|
        import requests
 | 
						|
        import os
 | 
						|
        import uuid
 | 
						|
 | 
						|
        if input_id and input_id.startswith('http'):
 | 
						|
            unique_filename = str(uuid.uuid4()) + ".safetensors"
 | 
						|
            print(unique_filename)
 | 
						|
            print(folder_paths.folder_names_and_paths["loras"][0][0])
 | 
						|
            destination_path = os.path.join(folder_paths.folder_names_and_paths["loras"][0][0], unique_filename)
 | 
						|
            print(destination_path)
 | 
						|
            print("Downloading external lora - " + input_id + " to " + destination_path)
 | 
						|
            response = requests.get(input_id, headers={'User-Agent': 'Mozilla/5.0'}, allow_redirects=True)
 | 
						|
            with open(destination_path, 'wb') as out_file:
 | 
						|
                out_file.write(response.content)
 | 
						|
            return (unique_filename,)
 | 
						|
        else:
 | 
						|
            return (default_lora_name,)
 | 
						|
        
 | 
						|
 | 
						|
NODE_CLASS_MAPPINGS = {"ComfyUIDeployExternalLora": ComfyUIDeployExternalLora}
 | 
						|
NODE_DISPLAY_NAME_MAPPINGS = {"ComfyUIDeployExternalLora": "External Lora (ComfyUI Deploy)"} |