你这可以啊
点赞 评论

相关推荐

ComfyUI v0.14.2 发布:修复 Gemini/Nano banana 节点空白图像问题,全新 MIME 匹配机制登场1. 更新目标:解决 Gemini/Nano API 空白图像问题在此前版本中,ComfyUI 的 API 节点在处理 Gemini 模型生成的内容时,偶尔会出现返回空白图像的情况。这个问题主要出现在节点对返回的 MIME 类型进行匹配的过程中,系统仅能识别具体的字符串类型(如 "image/png"),而无法通配或灵活识别其他类型,例如 "image/jpeg" 或 "image/webp" 等。此问题导致部分模型生成的图片未能正确提取和呈现,严重影响使用体验。v0.14.2 版本针对这一问题进行了根本性的技术改进,通过使用 glob(通配符)匹配机制,使 MIME 类型匹配更加灵活和智能,从而彻底解决这一潜在漏洞。2. 代码关键改动:增加 _mime_matches 函数在 comfy_api_nodes/nodes_gemini.py 文件中新增了如下逻辑:def _mime_matches(mime: GeminiMimeType | None, pattern: str) -> bool:"""Check if a MIME type matches a pattern. Supports fnmatch globs (e.g. 'image/*')."""if mime is None:return Falsereturn fnmatch(mime.value, pattern)这一函数通过引入 Python 标准库 fnmatch 模块,实现了基于通配符的 MIME 字符串匹配。从原先的严格字符串等值判断,演进为支持标准通配表达式,如:• "image/*" —— 匹配所有图像类型;• "text/*" —— 匹配所有文本类型;• "application/*" —— 匹配所有应用数据类型。这样一来,当 Gemini 模型在返回数据时使用不同的 MIME 描述(例如某些模型可能返回 "image/jpeg" 或 "image/webp"),程序都可以自动识别并正确提取图像数据,极大提升了兼容性与稳定性。3. 函数 get_parts_by_type 改进:全面采用 _mime_matches 匹配机制在此函数中,原本用于判断 MIME 类型的逻辑为直接字符串比较:elif part.inlineData and part.inlineData.mimeType == part_type:新的代码将其改为:elif part.inlineData and _mime_matches(part.inlineData.mimeType, part_type):同样地,文件数据部分也采用相同逻辑:elif part.fileData and _mime_matches(part.fileData.mimeType, part_type):这意味着无论数据是 inlineData(内嵌数据) 还是 fileData(文件数据),都能通过灵活的模式匹配来识别不同类型的输入内容。这一步调整是本次更新的核心,它直接关联到 Gemini 节点的图像提取逻辑,也是解决空白图像问题的根本。4. 函数 get_image_from_response 改进:支持所有图像类型此前版本中,程序仅从响应中提取 "image/png" 类型的内容:parts = get_parts_by_type(response, "image/png")但由于很多模型会生成多种不同格式的图像,因此新版将其改为:parts = get_parts_by_type(response, "image/*")这意味着系统现在可以从返回的任何图像类型(包括 JPEG、WEBP、GIF、TIFF 等)中识别并提取图像数据,大幅度提升兼容性与处理效率。这一调整配合 _mime_matches 函数的通配符匹配机制,可视为一次重要的底层增强,为未来扩展更多的模型支持打下了坚实基础。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务