InstantID 零样本人脸保持生成一张照片秒出任何风格【免费下载链接】InstantIDInstantID: Zero-shot Identity-Preserving Generation in Seconds 项目地址: https://gitcode.com/gh_mirrors/in/InstantID手机相册里随便挑一张正脸照几秒后它站在赛博朋克霓虹灯下、水墨山水之间、油画框里——脸没变风格全换了。InstantID 就是干这件事的单张图片输入、无需任何训练、秒级输出把人脸保持生成从攒 20 张照片训 LoRA 的工序压缩成一次pipe(...)调用。单图免训练InstantID 跟 LoRA 路线差在哪跟 LoRA 路线比InstantID 省掉了拍 30 张写真、占卡训 3 小时的整条流水线——它更像现场化妆师对着你的证件照 30 秒换完妆不拆你的骨头。底层没有可训练参数人脸语义走 IP-Adapter 注入五官关键点走 ControlNet 锁结构两者都挂在 Stable Diffusion XL 上联合去噪。跟同类零样本方案PhotoMaker、IPA-FaceID 系列横着比它同时保住了人脸保真度和文字编辑自由度脸和风格融合得更自然assets/compare-a.png有 5 组风格 × 6 种方法的对照。跟 LoRA 路线比输入从 1530 张降到 1 张等待时间从小时级降到秒级。clone 到出图4 行命令跑通 InstantID4 行命令把环境、权重、推理一次性拉齐需要 CUDA GPU显存紧张时后面会讲怎么开 offload git clone https://gitcode.com/gh_mirrors/in/InstantID cd InstantID pip install -r gradio_demo/requirements.txt opencv-python transformers accelerate insightface python gradio_demo/download_models.py python infer.py第二行装 SDXL、diffusers、insightface 等运行时依赖第三行从 HuggingFace 拉 InstantID 的 ControlNet 权重和ip-adapter.bin同时用gdown补下人脸编码器 antelopev2gradio_demo/download_models.py第 25 行第四行跑仓库自带的infer.py几秒后工作目录多出result.jpg——你的第一张换风格不换脸图。如果 antelopev2 的 gdown 链接拉不下来按 README「Download」章节手动解压到models/antelopev2即可目录结构以仓库最新 README 为准。不想写代码的话python gradio_demo/app.py直接起一个本地 Web 界面拖图、填 prompt、点 Generate 就能出结果。三个任务场景多风格矩阵、参数调优、LCM 提速任务一一张自拍生成 8 种风格数字画像核心逻辑全在pipe(...)那一次调用里prompt管风格image_embeds管像你image关键点图管五官位置三段各管一摊。把人脸编码和风格化生成串成一次调用的最小片段如下摘自infer.py省略了模型加载部分face_image resize_img(load_image(./examples/yann-lecun_resize.jpg)) face_info sorted(app.get(cv2.cvtColor(np.array(face_image), cv2.COLOR_RGB2BGR)), keylambda x: (x[bbox][2]-x[bbox][0])*(x[bbox][3]-x[bbox][1]))[-1] image pipe( promptwatercolor painting, soft brush strokes, pastel palette, negative_promptphoto, realistic, 3d render, image_embedsface_info[embedding], imagedraw_kps(face_image, face_info[kps]), controlnet_conditioning_scale0.8, ip_adapter_scale0.8, ).images[0] image.save(result.jpg)把prompt换成 cyberpunk neon、oil painting、ink wash 等任意风格词输出里的人始终是同一张脸。仓库assets/1.png展示了 5 位参考人脸 × 8 种风格的矩阵效果一眼能看出身份一致性。任务二两个参数调像不像和听不听话controlnet_conditioning_scale控制关键点结构约束强度越高脸越焊死ip_adapter_scale控制身份嵌入强度越高越像但文本越难改。README「Usage Tips」给的调参口诀要更高相似度 → 两个都调大颜色过饱和 → 先降ip_adapter_scale不行再降controlnet_conditioning_scale想让 prompt 更自由发挥 → 单独降ip_adapter_scalecog/predict.py的predict()签名里这两个参数也是输入项第 141152 行改成 CLI 参数后就能批量扫网格图。任务三嫌 30 步太慢LCM 压到 10 步SDXL 默认 30 步去噪在消费级显卡上要十几秒。README「Speed Up with LCM-LoRA」章节给了 6 行加速方案download_models.py已经把 LCM-LoRA 权重一起下好了from diffusers import LCMScheduler pipe.load_lora_weights(./checkpoints/pytorch_lora_weights.safetensors) pipe.fuse_lora() pipe.scheduler LCMScheduler.from_config(pipe.scheduler.config) # 推理时传 num_inference_steps10, guidance_scale010 步出图速度接近实时风格化场景下肉眼几乎看不出差异。多人脸限制、显存与合规红线注意多人合照不在支持范围。infer.py第 67 行按 bbox 面积排序后只取最大脸做参考第二个人的五官会被直接忽略——想合成双人图需要自己分图再拼。别忽略SDXL 本体 ControlNet IP-Adapter 三件套会顶到 15 GB 以上显存。README 建议开pipe.enable_model_cpu_offload()和pipe.enable_vae_tiling()两个开关用速度换显存8 GB 卡也能跑。合规线antelopev2人脸编码器来自 insightface仅限非商业研究用途InstantID 官方 checkpoints 同样标注 research purposes onlyREADME「Disclaimer」章节。拿去做商用人脸合成前确认你和模型的许可都站得住。源码想深挖的话人脸注意力注入在ip_adapter/attention_processor.py关键点绘制在pipeline_stable_diffusion_xl_instantid.py的draw_kps()img2img 变体在infer_img2img.py完整 pipeline 跟官方 diffusers 社区版同名文件对齐2024/01/23 合入。回到那张自拍python infer.py回车几秒后result.jpg就躺在工作目录里——脸还是你的脸风格已经是任何你想要的风格。【免费下载链接】InstantIDInstantID: Zero-shot Identity-Preserving Generation in Seconds 项目地址: https://gitcode.com/gh_mirrors/in/InstantID创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?