0基础3分钟学会SDAI换脸,真人一键“穿越”动漫风

电脑报 2024-07-04 15:45:34

关注我们的小伙伴一定知道,前不久我们在全国各地搞了很多场活动,现场有一个环节就是AI拍照,人气很高。

在现场呢是很多小伙伴对这个很感兴趣,想知道具体的操作方法,所以这期就和大家简单的分享一下整个流程。

先看看效果。因为要求是赛博朋克风动漫人物转绘,所以最后出图就是这种赛博朋克风的动漫画风。那具体怎么做呢,我们现在就从头开始一步一步来实现它。

【可关注B站碳基科技研究所,搜“喂饭级教程,SD轻松AI换脸/转绘动漫风”】

这里我们用到的是Stable Diffusion,离线生成比较方便。我们想要的这种效果使用WEBUI和ComfyUI都能实现。

ComfyUI的工作流很方便,但是对于初学者来说理解起来可能会有点困难,而且用别人的工作流有时候可能会遇到各种报错需要解决。

我们这里是用WebUI来跑的,虽然不能像ComfyUI那样一键导入工作流就复现,但整个流程也非常简单易懂,即使0基础只要照着做也是几分钟就实现了。

推荐使用秋葉的整合包安装部署

首先要部署好Stable Diffusion的WebUI,推荐直接用“赛博大神”秋葉的整合包(B站搜索“秋葉aaaki”)。因为要用到Controlnet,所以记得提前部署好Controlnet。这里是使用Instant_id来保持人物一致性,所以也要提前下载安装好Instant_id的预处理器和模型。鉴于篇幅,我们这里就不详细讲解安装过程,如有需要可以参考秋葉的使用说明和安装教程。

接下来就是选择并安装合适的大模型。因为是要转换成赛博朋克动漫风,所以这里用一些带有赛博朋克风格的二次元的模型比较好。而Instant_id只支持SDXL,所以这里也要选用SDXL模型。

根据我们的尝试,“彩璃二次元”“动漫二次元”“炫彩二次元”“绚丽多彩”等二次元SDXL模型都还是比较好用的。大家可以到各大SD模型网站下载使用。

我们这里选择“彩璃二次元”这个模型做演示。出图方法选用“文生图”,虽然是转绘,但是我们这个需求是可以不用“图生图”的。

正向提示词这里输入“1girl,absurdres,front view,cyberpunk, glowing neon lights,masterpiece,best quality,”(分别对应“1女孩,超高分辨率,正面视角,赛博朋克,霓虹灯,杰作,最佳质量”)。这里的1girl对应女生,如果是男生的话,就替换成1boy,其他的词更多是营造赛博朋克氛围和画质的提示词,如果你有其他的想法也可以自己修改添加。

反向提示词“(worst quality:2),(low quality:2),(normal quality:2),lowres,normal quality,((monochrome)),((grayscale)),skin spots,acnes,skin blemishes,age spot,(ugly:1.33),(duplicate:1.33),(morbid:1.21),(mutilated:1.21),(tranny:1.33),mutated hands,(poorly drawn hands:1.5),blurry,(bad anatomy:1.21),(bad proportions:1.33),extra limbs,(disfigured:1.33),(missing arms:1.33),(extra legs:1.33),(fused fingers:1.61),(too many fingers:1.61),(unclear eyes:1.33),lowers,bad hands,missing fingers,extra digit,bad hands,missing fingers,(((extra arms and legs))),”

反向提示词这里使用的一组通用提示词,基本上都是质量方面的,大家可以自行发挥想象。

采样方法选DPM系列和Euler系列都是可以的。因为模型作者推荐该模型使用DPM++ 2S a Karras,所以这里也用相同的采样方法。迭代步数根据模型说明选用25-30步。

生成分辨率这个根据自己的需求和硬件性能来设定。因为我们的目的是要打印成6英寸照片,所以设置成了1440×900。过高的分辨率对显存有较高的需求,而太低的分辨率会导致SDXL模型出图有问题,推荐大家使用1024×683左右的分辨率,画质能接受且显存占用不会过大。

总批次数×单批数量=每次生成多少张图。这个根据自己的需求来填,建议只修改“总批次数”,“单批数量”保持为1,过大的“单批数量”会导致显存不足。,比如我们这里“总批次数”为4,“单批数量”为1,意思就是一共生成4批图片,每批1张,也就是总共4张供大家挑选。

接下来就要用到ControlNet了。在第一个ControlNet单元,先传上去一张图,这张图就是用于识别人物面部特征的,对于图片的大小没有太高的要求,但是一定要保证脸是清楚无遮挡的,表情不要太夸张。背景、姿态、动作都是无所谓的,这些会被重绘。

然后在下面勾上“启用”和“完美像素模式”,控制类型选择“Instant-ID”,预处理器选择这个“instant_id_face_embedding”,模型用“ip-adapter_instant_id_sdxl”。这一步就是获取人物的面部特征。

然后我们再启用第二个ControlNet单元,同样是上传一张图片,然后勾选“启用”和“完美像素模式”。这张图片用于控制生成后的图片中人物的姿态,和上一张图不同的是,这张图不识别人物面部特征,所以可以用任意人的脸,甚至是二次元的都可以。

但是这张图是要识别人物姿态的,所以最好是和前一张图的人物面部方向一致,也就是说第一张图是正面那就都正面,第一张图是侧面就都侧面。另外,这张图的比例最好和之前填写的分辨率比例保持一直,否则出图可能会有一些奇怪的拉伸。

控制类型依旧选“Instant_ID”,和之前不同的是这里预处理器选“instant_id_face_keypoints”,模型选“control_instant_id_sdxl”。同样是稍微调整下控制权重之类的。这样就控制了出图的人物姿态。

设置完成后,点击生成。我们这里是选的一次出4张图,等待一会儿,图就出来了,是不是还挺像那么回事吧,而且操作起来也很简单对吧。

这个实例从原理上来讲呢,就是用Instant_ID来保持人物一致性。通过文生图生成了一张图,然后通过Instant_ID控制姿态并换脸。所以大家也可以举一反三,并不一定是真人转绘成动漫人物啊,动漫转真人也是可以这样做的,还有AI写真之类的,其实原理上都是差不多的。

需要大家需要注意的是,因为这里用的是SDXL,而且还挂载了2个ControlNet单元,对显存的要求还是略高,演示用的1440×960这个分辨率大概会用到13GB多的显存,显卡的选择上最好就需要用到拥有16GB及更大显存的卡了。比如我们这里用的是RTX 4080,低成本的16GB显存的卡可以选择RTX 4060 Ti 16GB。

如果把分辨率降到1024×683,那么显存的占用会降低至11GB多,这样的话12GB显存的卡就刚好够用,像RTX 3060 12GB、RTX 4070这些都可以轻松尝试了。

总体来看,这是一个比较简单的方法,适合快速出图及抽卡体验。不过由于整体控制不是非常精准,所以有时候会出现一些不精确的图,但是好在简洁易懂,对于抽卡来说还是比较方便的。适合初学的时候理解操作方法,也适合需要快出出图的演示场合。

那么你学懂了吗,不如赶紧动手操作起来把。(如果想观看视频版教程或获取部署好Instant_ID的整合包可以关注B站碳基科技研究所,搜“喂饭级教程,SD轻松AI换脸/转绘动漫风”。

1 阅读:18