
56VS65
让我分析两个版本的主要动作:
V56 (文生图) 的动作流程:
- 连接服务器
ws = websocket.WebSocket()
ws.connect(f"ws://{server_address}/ws?clientId={client_id}")
- 构建文生图工作流
prompt = {
"3": { # KSampler },
"4": { # 模型加载 },
"5": { # 空白图像 },
"6": { # 正面提示词 },
"7": { # 负面提示词 },
"8": { # VAE解码 },
"9": { # 保存图像 }
}
- 提交任务
request_data = {"prompt": prompt, "client_id": client_id}
response = requests.post(f"http://{server_address}/prompt", json=request_data)
- 获取生成结果
response = requests.get(f"http://{server_address}/history/{prompt_id}")
V65 (图生图) 的动作流程:
- 上传原始图片
upload_image(image_path, server_address)
- 连接服务器
ws = websocket.WebSocket()
ws.connect(f"ws://{server_address}/ws?clientId={client_id}")
- 构建图生图工作流
prompt = {
"3": { # KSampler },
"4": { # 模型加载 },
"6": { # 正面提示词 },
"7": { # 负面提示词 },
"8": { # VAE解码 },
"9": { # 保存图像 },
"10": { # VAE编码 },
"11": { # 加载输入图片 }
}
- 提交任务
request_data = {"prompt": prompt, "client_id": client_id}
response = requests.post(f"http://{server_address}/prompt", json=request_data)
- 获取生成结果
response = requests.get(f"http://{server_address}/history/{prompt_id}")
- 保存结果图片
with open(full_path, "wb") as f:
f.write(response.read())
主要区别:
- V65多了上传原始图片的步骤
- V65的工作流中多了VAE编码和加载输入图片节点
- V56使用空白图像节点,而V65使用上传的图片
- V65的工作流更复杂,需要处理输入图片的编码和解码
- V65需要额外处理文件上传和保存的逻辑
两者共同点:
- 都需要连接WebSocket
- 都使用相同的API提交任务和获取结果
- 基本的工作流结构类似
- 错误处理机制相似
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 兰雀AI