前言

这篇文章来自我们会员的一个提问, 如何用一张正面参考图生成角色三视图? 其实在几个月前,mousewrites;”>https://civitai.com/user/mousewrites/models](https://civitai.com/user/mousewrites/models)) 就给出了一套工具用于生成三视图,但这个问题的挑战是,它要求的并不是直接生成,而是有一张参考图,要在参考图的基础上去生成三视。 所以以mousewrites此前给出的工作流,这是非常困难的, 因此,本篇教程我开发了一套改进的工作流,它可以一定程度上解答这个问题。 让我们先来看结果吧,左侧是最初的输入图片,右侧是最终的输出

Stable Diffusion | 从一张参考图到三视图 - 图1

所用到的工具: 1. inpaint + CharTurner+ CharTurnerBeta-Lora 2. photoshop + canny/lineart + reference 3. img2img

布局

第一步我们需构建需要的布局模版,这步我们在inpaint中完成 1. 首先,我们将图片输入img,用deepbooru分析prompts,这里需要手动调整prompts,删除诸如1girl这样的数量词,looking_at_viewer这样的方向词,仅保留人物的外貌特征词汇; 2. 添加chartunnerv2( texture inversion) 和 charturn3(lora) 这两个工具; 3. 套用chartunnerv2 所建议的prompts模版; 4. 添加from_side / from_behind 这样的方向词; 5. 在inpaint中画出蒙版,Masked content选择fill, Denoising strength选择0.95左右,模型就选择跟你输入图片风格比较接近的即可,没有太大要求;

Stable Diffusion | 从一张参考图到三视图 - 图2

你可以看到我画出的人物大小和颜色与原图都不匹配, 这无关紧要! 只要姿势,角度和服装道具满足就好! 当你觉得满意时将生成的图片 send to inpaint

Stable Diffusion | 从一张参考图到三视图 - 图3

重复上一步骤,接着画第三个位置, 用batch可以帮助你快速筛选, 如果你需要更多的角度, 也可以多次重复此步骤。

生成

在生成前,我们需要处理一下我们上一步生成的图片,处理方法也很简单

Stable Diffusion | 从一张参考图到三视图 - 图4

在photoshop中调整生成部分的大小,让它们跟你的参考图匹配,

Stable Diffusion | 从一张参考图到三视图 - 图5

先不要着急关掉photoshop, 让我们再做一张图,将我们之前的参考,复制几份,放到我们layout中的相应位置(不用很精确,大致即可)
OK, 准备好两张图之后让我们回到SD,这次我们在tex2img中生成, 还是使用之前用的CharTurner 模版 prompts,
但这次我们要用到controlnet,将做好的两张图分别应用在lineart(canny也可以) 与reference

Stable Diffusion | 从一张参考图到三视图 - 图6

Stable Diffusion | 从一张参考图到三视图 - 图7


选择好你想要的模型, 点击生成即可,为方便选择,我也用到batch

Stable Diffusion | 从一张参考图到三视图 - 图8

放大

不要直接使用Hires! 这个问题我在之前的Controlnet Reference的文章中提到过,

ControlNet-Reference的高级用法

《ControlNet-Reference的高级用法》

使用reference的同时使用Hires,出图是不同的。也就是说,如果直接使用Hires,几乎无法保证Reference颜色的准确性! 我们选择一张或比较满意的图片,然后手动放大,用img2img里手动重绘,重绘幅度0.33左右(根据你实际情况调整) 如果你的图片有一些问题,需要手动修复, 你也可以在img2img之前在photoshop之类的工具里对小图进行修复

Stable Diffusion | 从一张参考图到三视图 - 图9

你看到这张图的膝盖有点错误,这可以通过多次生成或者在ps中涂抹去修复,因为我只是介绍一下工作流,因此我不打算重做了,我喜欢留一点挑战给我的读者 ;)

总结

1. 这个改进流程与mousewrites提出的流程的最大区别在于,它完全消除了CharTurner对出图风格的影响,实际上CharTurner工具在这个流程里的作用,只是帮助我们提高了出其它角度图片的概率,你完全可以不用它,但这样你可能需要多随机几次。 2. 与CharTurner流程一样,这个流程也不能画出用prompts无法画出的东西,比如你的参考图是一张非常奇怪的怪物,SD可能仍然没有办法很好的画出来,不过因为我们使用了Reference,所以这个流程画出的可能性还是要高一些 3. 写完这篇文章,我发现我也许可以尝试去炼一个新的,完全不同方法实现的 turner 模型,希望我能有好运气 ;D, 如果我成功了我会再来与你们分享。 感谢收看! 如果你也对人工智能的应用和影响感兴趣,那么欢迎加入我们的社群!在这里,我们可以一起探讨有趣的设计话题,共同探索 AI所带来的无限可能性! 【 PIXIV小触社-AIGC交流分社】 群号:213488391 每周群内会免费分享行业新闻周刊、AI工具推荐、学习资源、AI案例! 目前已接入chatgpt和AI绘图机器人,欢迎大家来体验和使用。

Stable Diffusion | 从一张参考图到三视图 - 图10