ComfyUI Extension: ComfyUI-NanoBanana-inpaint

Authored by XYMikky12138

Created

Updated

0 stars

ComfyUI nodes for API-based inpainting (Gemini, Imagen) with aspect ratio constraints, smart cropping, resize fitting, intelligent paste-back with transparency support. (Description by CC)

Custom Nodes (0)

    README

    💡 为什么需要这个?(The Pain Point) 在使用 Gemini / Imagen 等 API 模型进行局部重绘(Inpainting)时,通常会遇到以下难题: 比例限制:这些模型通常只支持固定的长宽比(如 1:1, 4:5, 16:9 等)。如果你随意画一个遮罩发送过去,模型可能会报错或输出变形的图像。 分辨率桶:模型通常基于 1K/2K/4K 的分辨率桶(Resolution Buckets)进行计算。输入太小的切片会导致生成模糊,输入比例不对会导致拉伸。 回贴接缝与变形:API 返回的图像往往经过了重采样(Resize),直接贴回原图会导致像素无法对齐,或者物体被拉伸变形(Stretch),产生明显的违和感。 透明通道丢失:部分 API 返回的图像包含透明背景,常规的回贴节点会将其变成黑色块。

    🔧 节点详解 (Node Documentation)

    1. 🍌 Banana Smart Crop (智能裁切) 负责计算最佳裁切范围,并准备发送给 API 的图像。 输入: image: 原图。 mask: 局部重绘的遮罩。 context_expand_factor: 上下文扩大系数 (0.1~1.0)。让 AI 看到更多遮罩周围的内容。 force_ratio: 强制比例 (推荐 Auto,支持 1:1, 4:5, 16:9 等)。 输出: scaled_1k_image: [关键] 经过放大处理的图像,请将此图像连接到 API 节点。 cropped_image_ref: 原始比例的参考图(用于后续尺寸还原)。 crop_box_xywh: 裁切框坐标数据(BOX类型)。
    2. 🍌 Banana Resize Fit (尺寸适配) 负责将 API 返回的巨大图像还原回裁切框的大小,且保持不拉伸。 输入: source_image: API 节点返回的图像。 reference_image: 连接到 Banana Smart Crop 的 cropped_image_ref。 逻辑: 优先对齐长边,然后居中裁切多余部分(或填充黑边)。保证像素 1:1 还原,不产生拉伸变形。
    3. 🍌 Banana Uncrop Paste (智能回贴) 将处理好的图像贴回原图。 输入: original_image: 原始大图。 resized_crop_image: 连接到 Banana Resize Fit 的输出。 crop_box_xywh: 连接到 Banana Smart Crop 的输出。 feather: 边缘羽化像素值 (建议 16-32)。 特性: 如果输入图像包含透明通道(Alpha),会自动识别并透出原图背景,不会产生黑块。