comfyui 工作流生成图片使用history接口获取返回时 outputs为空 问题请教,希望有大佬可以帮忙解答一下

news2024/11/15 12:43:41

comfyui github地址: GitHub - comfyanonymous/ComfyUI: The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface.The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. - comfyanonymous/ComfyUIicon-default.png?t=O83Ahttps://github.com/comfyanonymous/ComfyUI

github上提供了生成的python代码 ComfyUI/script_examples at master · comfyanonymous/ComfyUI · GitHub

使用提供的案例代码 上传到comfyui服务器上,把prompt换成自己的prompt 等任务完成之后 使用history获取生成的图片结果为空

而使用同样的prompt 在同一个服务上使用web页面生成图片就可以成功, 有大佬碰到过这样的问题吗?

脚步代码如下:

import logging

#This is an example that uses the websockets api to know when a prompt execution is done
#Once the prompt execution is done it downloads the images using the /history endpoint

import websocket #NOTE: websocket-client (https://github.com/websocket-client/websocket-client)
import uuid
import json
import urllib.request
import urllib.parse

server_address = "127.0.0.1:8188"
client_id = str(uuid.uuid4())

def queue_prompt(prompt):
    p = {"prompt": prompt, "client_id": client_id}
    data = json.dumps(p).encode('utf-8')
    req =  urllib.request.Request("http://{}/prompt".format(server_address), data=data)
    return json.loads(urllib.request.urlopen(req).read())

def get_image(filename, subfolder, folder_type):
    data = {"filename": filename, "subfolder": subfolder, "type": folder_type}
    url_values = urllib.parse.urlencode(data)
    with urllib.request.urlopen("http://{}/view?{}".format(server_address, url_values)) as response:
        return response.read()

def get_history(prompt_id):
    with urllib.request.urlopen("http://{}/history/{}".format(server_address, prompt_id)) as response:
        return json.loads(response.read())

def get_history_all():
    with urllib.request.urlopen("http://{}/history".format(server_address)) as response:
        return json.loads(response.read())

def get_extensions():
    with urllib.request.urlopen("http://{}/extensions".format(server_address)) as response:
        return json.loads(response.read())

def get_queue():
    with urllib.request.urlopen("http://{}/queue".format(server_address)) as response:
        return json.loads(response.read())

def get_images(ws, prompt):
    queue = queue_prompt(prompt)
    print("queue_prompt, {}".format(queue))
    prompt_id = queue['prompt_id']
    output_images = {}
    while True:
        out = ws.recv()
        print("wx接收响应, out: {}".format(out))
        if isinstance(out, str):
            message = json.loads(out)
            if message['type'] == 'executing':
                data = message['data']
                if data['node'] is None and data['prompt_id'] == prompt_id:
                    break #Execution is done
        else:
            # If you want to be able to decode the binary stream for latent previews, here is how you can do it:
            # bytesIO = BytesIO(out[8:])
            # preview_image = Image.open(bytesIO) # This is your preview in PIL image format, store it in a global
            continue #previews are binary data

    getHistory = get_history(prompt_id)
    print("getHistory, gethistory: {}".format(getHistory))
    history = getHistory[prompt_id]
    for node_id in history['outputs']:
        node_output = history['outputs'][node_id]
        print("node_output, {}".format(node_output))
        images_output = []
        if 'images' in node_output:
            for image in node_output['images']:
                image_data = get_image(image['filename'], image['subfolder'], image['type'])
                images_output.append(image_data)
        output_images[node_id] = images_output

    # resp = get_extensions()
    # print('extensions_resp', resp)
    resp = get_queue()
    print('queue', resp)

    historyAll = get_history_all()
    print('historyAll', historyAll)

    return output_images

prompt_text = """
{
    "3": {
        "class_type": "KSampler",
        "inputs": {
            "cfg": 8,
            "denoise": 1,
            "latent_image": [
                "5",
                0
            ],
            "model": [
                "4",
                0
            ],
            "negative": [
                "7",
                0
            ],
            "positive": [
                "6",
                0
            ],
            "sampler_name": "euler",
            "scheduler": "normal",
            "seed": 8566257,
            "steps": 20
        }
    },
    "4": {
        "class_type": "CheckpointLoaderSimple",
        "inputs": {
            "ckpt_name": "v1-5-pruned-emaonly.safetensors"
        }
    },
    "5": {
        "class_type": "EmptyLatentImage",
        "inputs": {
            "batch_size": 1,
            "height": 512,
            "width": 512
        }
    },
    "6": {
        "class_type": "CLIPTextEncode",
        "inputs": {
            "clip": [
                "4",
                1
            ],
            "text": "masterpiece best quality girl"
        }
    },
    "7": {
        "class_type": "CLIPTextEncode",
        "inputs": {
            "clip": [
                "4",
                1
            ],
            "text": "bad hands"
        }
    },
    "8": {
        "class_type": "VAEDecode",
        "inputs": {
            "samples": [
                "3",
                0
            ],
            "vae": [
                "4",
                2
            ]
        }
    },
    "9": {
        "class_type": "SaveImage",
        "inputs": {
            "filename_prefix": "ComfyUI",
            "images": [
                "8",
                0
            ]
        }
    }
}
"""

test = {
        "server_address": "127.0.0.1:8188",
        "nas_file_path": "/root/ComfyUI",
        "client_id": "f7fdb85f7b0f435498a348772b8e45b1",
        "record_id": "73",
        "user_type": "1",
        "user_id": "123",
        "output_filename": "1727312980636",
        "oss_file_path": "comfyui_output/portrait/123/",
        "prompt": "{\"22\":{\"class_type\":\"PulidModelLoader\",\"inputs\":{\"pulid_file\":\"ip-adapter_pulid_sdxl_fp16.safetensors\"},\"_meta\":{\"title\":\"PuLID模型加载器\"}},\"44\":{\"class_type\":\"InstantIDModelLoader\",\"inputs\":{\"instantid_file\":\"ip-adapter.bin\"},\"_meta\":{\"title\":\"InstnatID模型加载器\"}},\"88\":{\"class_type\":\"UpscaleModelLoader\",\"inputs\":{\"model_name\":\"4x_NMKD-Siax_200k.pth\"},\"_meta\":{\"title\":\"放大模型加载器\"}},\"23\":{\"class_type\":\"PulidEvaClipLoader\",\"inputs\":{},\"_meta\":{\"title\":\"PuLIDEVAClip加载器\"}},\"45\":{\"class_type\":\"InstantIDFaceAnalysis\",\"inputs\":{\"provider\":\"CPU\"},\"_meta\":{\"title\":\"InstantID面部分析\"}},\"89\":{\"class_type\":\"ImageScaleBy\",\"inputs\":{\"image\":[\"87\",0],\"scale_by\":0.38,\"upscale_method\":\"nearest-exact\"},\"_meta\":{\"title\":\"图像按系数缩放\"}},\"46\":{\"class_type\":\"ControlNetLoader\",\"inputs\":{\"control_net_name\":\"diffusion_pytorch_model.safetensors\"},\"_meta\":{\"title\":\"ControlNet加载器\"}},\"47\":{\"class_type\":\"KSampler (Efficient)\",\"inputs\":{\"vae_decode\":\"true\",\"latent_image\":[\"90\",0],\"seed\":[\"93\",0],\"cfg\":5,\"positive\":[\"43\",1],\"steps\":25,\"script\":[\"75\",0],\"scheduler\":\"karras\",\"negative\":[\"43\",2],\"denoise\":0.58,\"sampler_name\":\"dpmpp_2m_sde\",\"optional_vae\":[\"11\",4],\"preview_method\":\"none\",\"model\":[\"43\",0]},\"_meta\":{\"title\":\"K采样器(效率)\"}},\"29\":{\"class_type\":\"ApplyPulid\",\"inputs\":{\"end_at\":1,\"image\":[\"86\",0],\"pulid\":[\"22\",0],\"method\":\"fidelity\",\"weight\":0.3,\"model\":[\"10\",0],\"eva_clip\":[\"23\",0],\"face_analysis\":[\"76\",0],\"start_at\":0},\"_meta\":{\"title\":\"应用PuLID\"}},\"90\":{\"class_type\":\"VAEEncode\",\"inputs\":{\"pixels\":[\"89\",0],\"vae\":[\"11\",4]},\"_meta\":{\"title\":\"VAE编码\"}},\"92\":{\"class_type\":\"String Literal\",\"inputs\":{\"string\":\"professional,4k,highly detailed,medium portrait soft light, beautiful model,vivid,photorealistic, vivid colors, \",\"speak_and_recognation\":true},\"_meta\":{\"title\":\"String Literal\"}},\"93\":{\"class_type\":\"Seed Generator\",\"inputs\":{\"seed\":1047523952660796},\"_meta\":{\"title\":\"Seed Generator\"}},\"94\":{\"class_type\":\"String Literal\",\"inputs\":{\"string\":\"1man,indoors,business suit,necktie,,upper_body,portrait, \",\"speak_and_recognation\":true},\"_meta\":{\"title\":\"String Literal\"}},\"75\":{\"class_type\":\"Noise Control Script\",\"inputs\":{\"seed\":813662192183951,\"cfg_denoiser\":false,\"add_seed_noise\":false,\"weight\":0.015,\"rng_source\":\"gpu\"},\"_meta\":{\"title\":\"控制噪波\"}},\"10\":{\"class_type\":\"Efficient Loader\",\"inputs\":{\"lora_name\":\"None\",\"weight_interpretation\":\"A1111\",\"batch_size\":2,\"empty_latent_width\":832,\"empty_latent_height\":1216,\"speak_and_recognation\":true,\"token_normalization\":\"mean\",\"lora_stack\":[\"103\",0],\"positive\":[\"99\",0],\"lora_clip_strength\":1,\"ckpt_name\":\"leosamsHelloworldXL_helloworldXL70.safetensors\",\"negative\":\"(worst quality, low quality, blurry, bad eye, wrong hand, bad anatomy, wrong anatomy, open mouth, deformed, distorted, disfigured, cgi, illustration, cartoon, poorly drawn, watermark),nsfw,nipples,flag,american_flag, \",\"lora_model_strength\":1,\"clip_skip\":-1,\"vae_name\":\"Baked VAE\"},\"_meta\":{\"title\":\"效率加载器\"}},\"76\":{\"class_type\":\"PulidInsightFaceLoader\",\"inputs\":{\"provider\":\"CPU\"},\"_meta\":{\"title\":\"PuLIDInsightFace加载器\"}},\"11\":{\"class_type\":\"KSampler (Efficient)\",\"inputs\":{\"vae_decode\":\"true\",\"latent_image\":[\"10\",3],\"seed\":[\"93\",0],\"cfg\":6,\"positive\":[\"10\",1],\"steps\":25,\"script\":[\"75\",0],\"scheduler\":\"karras\",\"negative\":[\"10\",2],\"denoise\":1,\"sampler_name\":\"dpmpp_2m_sde\",\"optional_vae\":[\"10\",4],\"preview_method\":\"none\",\"model\":[\"29\",0]},\"_meta\":{\"title\":\"K采样器(效率)\"}},\"99\":{\"class_type\":\"Text Concatenate\",\"inputs\":{\"delimiter\":\", \",\"text_a\":[\"94\",0],\"clean_whitespace\":\"true\",\"text_c\":[\"92\",0],\"text_b\":[\"100\",0]},\"_meta\":{\"title\":\"文本连锁\"}},\"16\":{\"class_type\":\"LoadImage\",\"inputs\":{\"image\":\"94a506e555b24c20969b19a401825986.png\",\"upload\":\"image\"},\"_meta\":{\"title\":\"加载图像\"}},\"100\":{\"class_type\":\"String Literal\",\"inputs\":{\"string\":\"\",\"speak_and_recognation\":true},\"_meta\":{\"title\":\"String Literal\"}},\"103\":{\"class_type\":\"easy loraStack\",\"inputs\":{\"lora_3_name\":\"None\",\"lora_6_name\":\"None\",\"lora_7_strength\":1,\"lora_9_clip_strength\":1,\"lora_1_strength\":0.6,\"lora_9_model_strength\":1,\"lora_5_model_strength\":1,\"lora_4_clip_strength\":1,\"lora_2_clip_strength\":1,\"lora_4_strength\":1,\"mode\":\"simple\",\"num_loras\":1,\"lora_6_clip_strength\":1,\"lora_8_name\":\"None\",\"lora_7_name\":\"None\",\"lora_8_model_strength\":1,\"lora_5_strength\":1,\"lora_4_name\":\"None\",\"lora_4_model_strength\":1,\"lora_1_name\":\"None\",\"lora_2_strength\":1,\"lora_2_model_strength\":1,\"lora_3_clip_strength\":1,\"lora_8_clip_strength\":1,\"lora_10_model_strength\":1,\"lora_7_model_strength\":1,\"lora_8_strength\":1,\"toggle\":false,\"lora_1_clip_strength\":1,\"lora_2_name\":\"None\",\"lora_10_name\":\"None\",\"lora_10_clip_strength\":1,\"lora_10_strength\":1,\"lora_1_model_strength\":1,\"lora_5_name\":\"None\",\"lora_3_model_strength\":1,\"lora_9_strength\":1,\"lora_3_strength\":1,\"lora_5_clip_strength\":1,\"lora_6_model_strength\":1,\"lora_6_strength\":1,\"lora_7_clip_strength\":1,\"lora_9_name\":\"None\"},\"_meta\":{\"title\":\"简易Lora堆\"}},\"85\":{\"class_type\":\"LayerUtility: SaveImagePlus\",\"inputs\":{\"preview\":false,\"filename_prefix\":\"comfyui\",\"images\":[\"47\",5],\"save_workflow_as_json\":false,\"custom_path\":\"\",\"format\":\"png\",\"meta_data\":false,\"blind_watermark\":\"\",\"timestamp\":\"None\",\"quality\":100},\"_meta\":{\"title\":\"LayerUtility: SaveImage Plus\"}},\"86\":{\"class_type\":\"CropFace\",\"inputs\":{\"image\":[\"16\",0],\"facedetection\":\"retinaface_resnet50\"},\"_meta\":{\"title\":\"裁剪面部\"}},\"43\":{\"class_type\":\"ApplyInstantID\",\"inputs\":{\"instantid\":[\"44\",0],\"end_at\":1,\"image\":[\"86\",0],\"negative\":[\"11\",2],\"control_net\":[\"46\",0],\"insightface\":[\"45\",0],\"image_kps\":[\"89\",0],\"weight\":0.8,\"model\":[\"11\",0],\"positive\":[\"11\",1],\"start_at\":0},\"_meta\":{\"title\":\"应用InstantID\"}},\"87\":{\"class_type\":\"ImageUpscaleWithModel\",\"inputs\":{\"image\":[\"11\",5],\"upscale_model\":[\"88\",0]},\"_meta\":{\"title\":\"图像通过模型放大\"}}}",
        "image_type": "1",
    }

result = json.dumps(test)

resultJson = json.loads(result)

print('类型', type(resultJson))
print(resultJson)

prompt = json.loads(resultJson['prompt'])
#set the text prompt for our positive CLIPTextEncode
# prompt["6"]["inputs"]["text"] = "masterpiece best quality man"
#
# #set the seed for our KSampler node
# prompt["3"]["inputs"]["seed"] = 5

ws = websocket.WebSocket()
ws.connect("ws://{}/ws?clientId={}".format(server_address, client_id))
images = get_images(ws, prompt)
print(images)
ws.close() # for in case this example is used in an environment where it will be repeatedly called, like in a Gradio app. otherwise, you'll randomly receive connection timeouts
#Commented out code to display the output images:

# for node_id in images:
#     for image_data in images[node_id]:
#         from PIL import Image
#         import io
#         image = Image.open(io.BytesIO(image_data))
#         image.show()

自己的prompt如下: 

{
  "22": {
    "class_type": "PulidModelLoader",
    "inputs": {
      "pulid_file": "ip-adapter_pulid_sdxl_fp16.safetensors"
    },
    "_meta": {
      "title": "PuLID模型加载器"
    }
  },
  "44": {
    "class_type": "InstantIDModelLoader",
    "inputs": {
      "instantid_file": "ip-adapter.bin"
    },
    "_meta": {
      "title": "InstnatID模型加载器"
    }
  },
  "88": {
    "class_type": "UpscaleModelLoader",
    "inputs": {
      "model_name": "4x_NMKD-Siax_200k.pth"
    },
    "_meta": {
      "title": "放大模型加载器"
    }
  },
  "23": {
    "class_type": "PulidEvaClipLoader",
    "inputs": {},
    "_meta": {
      "title": "PuLIDEVAClip加载器"
    }
  },
  "45": {
    "class_type": "InstantIDFaceAnalysis",
    "inputs": {
      "provider": "CPU"
    },
    "_meta": {
      "title": "InstantID面部分析"
    }
  },
  "89": {
    "class_type": "ImageScaleBy",
    "inputs": {
      "image": [
        "87",
        0
      ],
      "scale_by": 0.38,
      "upscale_method": "nearest-exact"
    },
    "_meta": {
      "title": "图像按系数缩放"
    }
  },
  "46": {
    "class_type": "ControlNetLoader",
    "inputs": {
      "control_net_name": "diffusion_pytorch_model.safetensors"
    },
    "_meta": {
      "title": "ControlNet加载器"
    }
  },
  "47": {
    "class_type": "KSampler (Efficient)",
    "inputs": {
      "vae_decode": "true",
      "latent_image": [
        "90",
        0
      ],
      "seed": [
        "93",
        0
      ],
      "cfg": 5,
      "positive": [
        "43",
        1
      ],
      "steps": 25,
      "script": [
        "75",
        0
      ],
      "scheduler": "karras",
      "negative": [
        "43",
        2
      ],
      "denoise": 0.58,
      "sampler_name": "dpmpp_2m_sde",
      "optional_vae": [
        "11",
        4
      ],
      "preview_method": "none",
      "model": [
        "43",
        0
      ]
    },
    "_meta": {
      "title": "K采样器(效率)"
    }
  },
  "29": {
    "class_type": "ApplyPulid",
    "inputs": {
      "end_at": 1,
      "image": [
        "86",
        0
      ],
      "pulid": [
        "22",
        0
      ],
      "method": "fidelity",
      "weight": 0.3,
      "model": [
        "10",
        0
      ],
      "eva_clip": [
        "23",
        0
      ],
      "face_analysis": [
        "76",
        0
      ],
      "start_at": 0
    },
    "_meta": {
      "title": "应用PuLID"
    }
  },
  "90": {
    "class_type": "VAEEncode",
    "inputs": {
      "pixels": [
        "89",
        0
      ],
      "vae": [
        "11",
        4
      ]
    },
    "_meta": {
      "title": "VAE编码"
    }
  },
  "92": {
    "class_type": "String Literal",
    "inputs": {
      "string": "professional,4k,highly detailed,medium portrait soft light, beautiful model,vivid,photorealistic, vivid colors, ",
      "speak_and_recognation": true
    },
    "_meta": {
      "title": "String Literal"
    }
  },
  "93": {
    "class_type": "Seed Generator",
    "inputs": {
      "seed": 1047523952660796
    },
    "_meta": {
      "title": "Seed Generator"
    }
  },
  "94": {
    "class_type": "String Literal",
    "inputs": {
      "string": "1man,indoors,business suit,necktie,,upper_body,portrait, ",
      "speak_and_recognation": true
    },
    "_meta": {
      "title": "String Literal"
    }
  },
  "75": {
    "class_type": "Noise Control Script",
    "inputs": {
      "seed": 813662192183951,
      "cfg_denoiser": false,
      "add_seed_noise": false,
      "weight": 0.015,
      "rng_source": "gpu"
    },
    "_meta": {
      "title": "控制噪波"
    }
  },
  "10": {
    "class_type": "Efficient Loader",
    "inputs": {
      "lora_name": "None",
      "weight_interpretation": "A1111",
      "batch_size": 2,
      "empty_latent_width": 832,
      "empty_latent_height": 1216,
      "speak_and_recognation": true,
      "token_normalization": "mean",
      "lora_stack": [
        "103",
        0
      ],
      "positive": [
        "99",
        0
      ],
      "lora_clip_strength": 1,
      "ckpt_name": "leosamsHelloworldXL_helloworldXL70.safetensors",
      "negative": "(worst quality, low quality, blurry, bad eye, wrong hand, bad anatomy, wrong anatomy, open mouth, deformed, distorted, disfigured, cgi, illustration, cartoon, poorly drawn, watermark),nsfw,nipples,flag,american_flag, ",
      "lora_model_strength": 1,
      "clip_skip": -1,
      "vae_name": "Baked VAE"
    },
    "_meta": {
      "title": "效率加载器"
    }
  },
  "76": {
    "class_type": "PulidInsightFaceLoader",
    "inputs": {
      "provider": "CPU"
    },
    "_meta": {
      "title": "PuLIDInsightFace加载器"
    }
  },
  "11": {
    "class_type": "KSampler (Efficient)",
    "inputs": {
      "vae_decode": "true",
      "latent_image": [
        "10",
        3
      ],
      "seed": [
        "93",
        0
      ],
      "cfg": 6,
      "positive": [
        "10",
        1
      ],
      "steps": 25,
      "script": [
        "75",
        0
      ],
      "scheduler": "karras",
      "negative": [
        "10",
        2
      ],
      "denoise": 1,
      "sampler_name": "dpmpp_2m_sde",
      "optional_vae": [
        "10",
        4
      ],
      "preview_method": "none",
      "model": [
        "29",
        0
      ]
    },
    "_meta": {
      "title": "K采样器(效率)"
    }
  },
  "99": {
    "class_type": "Text Concatenate",
    "inputs": {
      "delimiter": ", ",
      "text_a": [
        "94",
        0
      ],
      "clean_whitespace": "true",
      "text_c": [
        "92",
        0
      ],
      "text_b": [
        "100",
        0
      ]
    },
    "_meta": {
      "title": "文本连锁"
    }
  },
  "16": {
    "class_type": "LoadImage",
    "inputs": {
      "image": "94a506e555b24c20969b19a401825986.png",
      "upload": "image"
    },
    "_meta": {
      "title": "加载图像"
    }
  },
  "100": {
    "class_type": "String Literal",
    "inputs": {
      "string": "",
      "speak_and_recognation": true
    },
    "_meta": {
      "title": "String Literal"
    }
  },
  "103": {
    "class_type": "easy loraStack",
    "inputs": {
      "lora_3_name": "None",
      "lora_6_name": "None",
      "lora_7_strength": 1,
      "lora_9_clip_strength": 1,
      "lora_1_strength": 0.6,
      "lora_9_model_strength": 1,
      "lora_5_model_strength": 1,
      "lora_4_clip_strength": 1,
      "lora_2_clip_strength": 1,
      "lora_4_strength": 1,
      "mode": "simple",
      "num_loras": 1,
      "lora_6_clip_strength": 1,
      "lora_8_name": "None",
      "lora_7_name": "None",
      "lora_8_model_strength": 1,
      "lora_5_strength": 1,
      "lora_4_name": "None",
      "lora_4_model_strength": 1,
      "lora_1_name": "None",
      "lora_2_strength": 1,
      "lora_2_model_strength": 1,
      "lora_3_clip_strength": 1,
      "lora_8_clip_strength": 1,
      "lora_10_model_strength": 1,
      "lora_7_model_strength": 1,
      "lora_8_strength": 1,
      "toggle": false,
      "lora_1_clip_strength": 1,
      "lora_2_name": "None",
      "lora_10_name": "None",
      "lora_10_clip_strength": 1,
      "lora_10_strength": 1,
      "lora_1_model_strength": 1,
      "lora_5_name": "None",
      "lora_3_model_strength": 1,
      "lora_9_strength": 1,
      "lora_3_strength": 1,
      "lora_5_clip_strength": 1,
      "lora_6_model_strength": 1,
      "lora_6_strength": 1,
      "lora_7_clip_strength": 1,
      "lora_9_name": "None"
    },
    "_meta": {
      "title": "简易Lora堆"
    }
  },
  "85": {
    "class_type": "LayerUtility: SaveImagePlus",
    "inputs": {
      "preview": false,
      "filename_prefix": "comfyui",
      "images": [
        "47",
        5
      ],
      "save_workflow_as_json": false,
      "custom_path": "",
      "format": "png",
      "meta_data": false,
      "blind_watermark": "",
      "timestamp": "None",
      "quality": 100
    },
    "_meta": {
      "title": "LayerUtility: SaveImage Plus"
    }
  },
  "86": {
    "class_type": "CropFace",
    "inputs": {
      "image": [
        "16",
        0
      ],
      "facedetection": "retinaface_resnet50"
    },
    "_meta": {
      "title": "裁剪面部"
    }
  },
  "43": {
    "class_type": "ApplyInstantID",
    "inputs": {
      "instantid": [
        "44",
        0
      ],
      "end_at": 1,
      "image": [
        "86",
        0
      ],
      "negative": [
        "11",
        2
      ],
      "control_net": [
        "46",
        0
      ],
      "insightface": [
        "45",
        0
      ],
      "image_kps": [
        "89",
        0
      ],
      "weight": 0.8,
      "model": [
        "11",
        0
      ],
      "positive": [
        "11",
        1
      ],
      "start_at": 0
    },
    "_meta": {
      "title": "应用InstantID"
    }
  },
  "87": {
    "class_type": "ImageUpscaleWithModel",
    "inputs": {
      "image": [
        "11",
        5
      ],
      "upscale_model": [
        "88",
        0
      ]
    },
    "_meta": {
      "title": "图像通过模型放大"
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2167673.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

flush cache line dirty bytes

结论: ARM :To mark these lines, each line of the cache has an associated dirty bit (or bits) 所以这个依赖硬件实现,可能只刷出dirty bytes of cache line to memory.有的硬件只有一个dirty bit,所以会刷出整条cache line x86没有找…

1--苍穹外卖-SpringBoot项目介绍及环境搭建 详解

目录 软件开发整体流程 软件开发流程 角色分工 软件环境 苍穹外卖项目介绍 项目介绍 产品原型 技术选型 开发环境搭建 前端环境搭建 后端环境搭建 完善登录功能 导入接口文档 Swagger 介绍 使用方式 常用注解 软件开发整体流程 软件开发流程 需求分析&#x…

Supabase 入门指南

Supabase 是一个开源替代品,用于 Firebase 提供的后端服务。它基于 PostgreSQL,提供实时数据库、身份验证、存储等功能。本文将深入探讨 Supabase 的主要功能,并结合不同场景给出代码实例。 1. 创建 Supabase 项目 首先,访问 S…

Cannon-es物理引擎中物体动力控制的深度探索

本文目录 前言1、cannon-es给物体施加力1.1 前置代码1.2 效果1.3 给小球施加力1. applyForce效果 2. applyImpulse效果 3. applyLocalImpulse效果 4. applyTorque效果 区别总结 前言 在三维物理引擎的世界里,Cannon-ES以其轻量级和高效能著称,为开发者提…

寿司检测系统源码分享

寿司检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

zabbix“专家坐诊”第257期问答

问题一 Q:zabbix5.0监控项里的键值,怎么设置变量值?{#ABC} {$ABC} 都识别不到变量。 A:可以参考一下这个。 问题二 Q:我想问一下用odbc创建监控项,生成了json格式,如何创建一个触发器去判断里面…

精准控制交易亏损:掌握关键止损点设置技巧

前段时间,咱们探讨了开仓的策略,那今天就需要来聊聊止损的技巧了。一个好的开始很重要,但知道何时止损也是同样关键。市场波动大,机会稍纵即逝。当趋势变得不明确时,止损可以帮助我们管理风险,防止损失加剧…

Spring Cloud Gateway 之动态uri 自定义过滤器

背景:第三方公司 请求本公司入参和出参一样的同一个接口,根据业务类型不一样需要不同业务微服务处理 ,和第三方公司协商在请求头中加入业务类型方便我公司在网关成分发请求。 1:在spring cloud gateway yml 中加入路由 重点是 -…

STL——map和set【map和set的介绍和使用】【multimap和multiset】

目录 map和set1.关联式容器2.键值对3.树形结构的关联式容器3.1set3.1.1set的介绍3.1.2set的使用3.1.2.1set的模版参数列表3.1.2.2set的构造3.1.2.3set的迭代器3.1.2.4set基本接口的使用3.1.2.5set使用案例 3.2map3.2.1map介绍3.2.2map的使用3.2.2.1map的构造3.2.2.2map的迭代器…

一个必会算法模型,XGBoost !!

大家好,今天咱们来聊聊XGBoost ~ XGBoost(Extreme Gradient Boosting)是一种集成学习算法,是梯度提升树的一种改进。它通过结合多个弱学习器(通常是决策树)来构建一个强大的集成模型。 XGBoost 的核心原理…

数据结构练习题————(二叉树)——考前必备合集!

今天在牛客网和力扣上带来了数据结构中二叉树的进阶练习题 1.二叉搜索树与双向链表———二叉搜索树与双向链表_牛客题霸_牛客网 (nowcoder.com) 2.二叉树遍历————二叉树遍历_牛客题霸_牛客网 (nowcoder.com) 3.二叉树的层序遍历————102. 二叉树的层序遍历 - 力扣&am…

C# 一键清空控件值

_场景:_在任何一个Form表单的操作页面或者数据台账的查询页面,基本都会看到一个清除的按钮,其功能就是用来清除我们需要抛弃的已经写入到控件内的数据。如果一个个控件来处理的话,想必会非常麻烦,而且系统不单单只是一…

杭州算力小镇:AI泛化解锁新机遇,探寻AI Agent 迭代新路径

人工智能技术不断迭代,重点围绕着两个事情,一是数据,二是算力。 算法的迭代推动着AI朝向多模态的方向发展,使之能够灵活应对不同领域的不同任务,模型的任务执行能力大大提升,人工智能泛化能力被推上高潮。…

scala 2.12 error: value foreach is not a member of Object

如图所示:在scala 2.11的时候下面的不报错,但是在2.12下报错了 在scala2.12环境下错误如下: 经过查找资料得到:df 后面加上rdd 即可

kafka下载配置

下载安装 参开kafka社区 zookeeperkafka消息队列群集部署https://apache.csdn.net/66c958fb10164416336632c3.html 下载 kafka_2.12-3.2.0安装包快速下载地址分享 官网下载链接地址: 官网下载地址:https://kafka.apache.org/downloads 官网呢下载慢…

详细解读,F5服务器负载均衡的技术优势

在现代大规模、高流量的网络使用场景中,为应对高并发和海量数据的挑战,服务器负载均衡技术应运而生。但凡知道服务器负载均衡这一名词的,基本都对F5有所耳闻,因为负载均衡正是F5的代表作,换句通俗易懂的话来说&#xf…

需求: 通过后台生成的树形结构,返回给前台用于动态生成表格标题,并将对应标题下面的信息对应起来

1. 如图所以&#xff0c;完成以下内容对应 2. 代码示例如下&#xff0c; 动态生成树形结构列名称&#xff0c;并将表格中存在的值与其对应起来 /*** 查询资源计划列表** param resourcePlan 资源计划* return 资源计划*/Overridepublic Map<String, Object> selectResour…

程序编译的四个阶段

程序编译的四个阶段 #include <stdio.h>int main(){printf("Hello World~");return 0; } hello.c程序的生命周期从一个高级C语言程序开始&#xff0c;这种形式容易被人读懂。 但这无法直接被计算机读懂。为了在系统上运行hello.c程序&#xff0c;每条C语言都…

科研绘图系列:R语言组合多个图形

文章目录 介绍加载R包画图介绍 通过patchworkR包组合多个ggplot数据图形对象。 加载R包 library(ggplot2) library(patchwork)画图 画图theme_set(theme_bw() +theme(

2024年408真题计算机网络篇

1 https://zhuanlan.zhihu.com/p/721169467。最小割可以看作是切断水流的最薄弱环节——通过切断这些关键的“水管”&#xff0c;就可以完全阻止水从源点流到汇点。 在下列二进制数字调制方法中&#xff0c;需要2个不同频率载波 的是 A. ASK B. PSK C. FSK D. DPSK 解答…