SDXL Inpainting 0.1 快速上手:10行Python代码完成你的第一次AI图像局部重绘
【免费下载链接】stable-diffusion-xl-1.0-inpainting-0.1项目地址: https://ai.gitcode.com/hf_mirrors/diffusers/stable-diffusion-xl-1.0-inpainting-0.1
SDXL Inpainting 0.1是 Stability AI 推出的 SDXL 图像局部重绘(Inpainting)模型:只要一张图片 + 一张遮罩 + 一句提示词,它就能精准"擦掉"指定区域并按你的描述重新绘制,同时保持画面其余部分几乎不变。本文是一份面向新手的完整指南,帮你用不到 10 行 Python 代码,快速跑通第一次 AI 图像局部重绘。
📦 安装 diffusers:一条命令搞定
本模型基于 Hugging Face 的 diffusers 推理库加载运行,安装非常简单:
pip install diffusers transformers accelerate torch模型体积较大(约 10 GB+,含 fp16 权重),建议优先从国内镜像源下载;如果你无法访问原始站点,可使用本仓库地址克隆获取全部权重文件:
git clone https://gitcode.com/hf_mirrors/diffusers/stable-diffusion-xl-1.0-inpainting-0.1🎨 10行Python代码,完成第一次AI图像局部重绘
下面这段代码就是完整流程:加载模型 → 读入原图和遮罩 → 执行局部重绘 → 保存结果。
from diffusers import AutoPipelineForInpainting import torch from PIL import Image pipe = AutoPipelineForInpainting.from_pretrained( "hf_mirrors/diffusers/stable-diffusion-xl-1.0-inpainting-0.1", torch_dtype=torch.float16, variant="fp16").to("cuda") image = Image.open("cat.jpg").resize((1024, 1024)) # 原图 mask = Image.open("mask.png").resize((1024, 1024)) # 遮罩:白色=重绘区域 result = pipe("a tiger sitting on the same sofa", image=image, mask_image=mask, guidance_scale=8.0, num_inference_steps=20, strength=0.99) result.images[0].save("out.png")遮罩怎么用?遮罩是一张黑白图:白色区域会被擦掉并按提示词重绘,黑色区域保持原样。你可以用任意画图工具制作,分辨率与原图一致即可。官方示例把一张猫图上的沙发区域遮罩后,提示词 "a tiger sitting on a park bench" 就把该区域变成了老虎,其余像素几乎原封不动。
⚙️ 核心参数速查:重绘效果怎么调
| 参数 | 建议值 | 作用 |
|---|---|---|
num_inference_steps | 15~30(推荐 20) | 推理步数,越多质量越高、耗时越长 |
strength | 0.9~0.99(必须 < 1.0) | 重绘强度;接近 1 表示遮罩区完全按提示词重画 |
guidance_scale | 7.5~9 | 提示词遵循度,过大容易过饱和 |
| 分辨率 | 1024×1024 | 模型训练分辨率,其他尺寸效果可能下降 |
💡 官方提示:
strength设为 1 时(即全遮罩文生图)图像会变模糊,局部重绘场景下请用 0.9 以下到 0.99 之间的值。
🔍 模型目录结构:每个文件夹都是干什么的?
仓库里的每个文件夹对应模型的一个组件,方便你按需管理或替换权重:
| 路径 | 组件 | 说明 |
|---|---|---|
unet/ | UNet2DConditionModel | 扩散主干网络,输入通道为 9(4 通道原图 + 4 通道潜码 + 1 通道遮罩),局部重绘的核心 |
text_encoder/、text_encoder_2/ | CLIP × 2 | 双文本编码器,把提示词转成语义向量 |
tokenizer/、tokenizer_2/ | CLIPTokenizer | 文本分词器 |
vae/ | AutoencoderKL | 图像与潜空间互转的 VAE |
scheduler/ | EulerDiscreteScheduler | 采样器配置(timestep_spacing: leading) |
model_index.json | 索引 | 各组件的加载清单,_class_name为StableDiffusionXLInpaintPipeline |
其中 unet/config.json 里的in_channels: 9正是"能读图 + 读遮罩"的关键:普通 SDXL UNet 只有 4 个输入通道,而 Inpainting 版额外接入了掩码图像。
🚀 快速进阶:让效果更好的 3 个技巧
- 提示词要具体:描述被重绘区域的主体、姿态、光影,例如 "a red sports car, studio lighting, 4k"。
- 遮罩边缘留一圈羽化:白黑交界太硬会产生明显接缝,轻微模糊遮罩边缘过渡更自然。
- 固定随机种子:用
torch.Generator指定 seed 可以复现结果,便于反复对比不同参数。
❓ 常见问题 FAQ
显卡显存要多少?SDXL Inpainting 建议 8GB 以上显存(fp16);显存不足可加--low_cpu_mem_usage或使用 CPU offload。
为什么重绘区域有"重影"?通常是strength过高或遮罩边缘过硬,调低到 0.85~0.95 并羽化遮罩试试。
能改非遮罩区域吗?不能。该模型只重绘遮罩内的像素,其余部分会被约束保持原样,这正是局部重绘的价值所在。
模型用途边界:该模型以研究和创作场景为主,不保证事实性内容(如人脸)的精确还原,使用前请遵守 OpenRAIL++ 许可与生成内容规范。
至此你已经完成了第一次 AI 图像局部重绘:从安装到出图,核心代码不到 10 行。接下来不妨换一张自己的照片、画几个不同形状的遮罩,感受strength和guidance_scale带来的效果差异——这就是玩转SDXL Inpainting 0.1的最短路径。
【免费下载链接】stable-diffusion-xl-1.0-inpainting-0.1项目地址: https://ai.gitcode.com/hf_mirrors/diffusers/stable-diffusion-xl-1.0-inpainting-0.1
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考