Midjourney 实现角色一致性的新方法

AI 绘画的奇妙之处,实乃令人叹为观止!就像大千世界中,寻不见两片完全相同的树叶一般,AI 绘画亦复如是。同一提示之词,竟能催生出千变万化的图像,使得AI所绘之作,宛如自然之物般独特,毫无呆板重复之嫌。

然而,这种随机性却给许多用户带来了不小的困扰。尤其对于那些故事书或绘本的创作者来说,他们往往希望 AI 生成的人物能够保持一致的特征,以便为故事书或绘本塑造统一的人物形象。

角色一致性这一议题并非新生事物,过去我们曾采用过多种方法来解决这一问题,如借助随机种子(seed)或上传参考图等手段。然而,随着 Midjourney 的不断迭代更新,新的方法往往会超越旧有的手段。

本文旨在介绍一种全新的方法,通过它我们能够实现更为持久且精准的角色一致性。我以真人举例,漫画人物的方法雷同。

1. 为角色创建相册

第一步是为角色创建一个相册。这个相册展示了角色不同角度和表情的头像。我用的提示词如下:

Prompt: wide 12-frame photo sheet, young woman with pixie-cut brunette hair, white background, diverse angles and expressions

提示词:12 幅宽幅照片,年轻女性,褐发精灵头,白色背景,不同角度和表情

我更倾向于将这一提示词输入到DALL-E之中,因为它能够生成更为规范的格子布局。

下图是 DALL-E 生成的图片。

Midjourney 生成的 Photo Sheet 布局会乱一些,人物的一致性也会略差一些,请看下图:

不过,如果用 DALL-E 生成的图像做参考图的话,Midjourney 也能生成比较稳定的格子布局。并且,通过平移 (Pan) 和 放大 (Upscale),还可以生成更多头像。不过,我不建议目前这么操作,因为格子越多,Midjourney 越不稳定。

2. 截图并上传头像

一旦我们拥有了人物的头像相册,便可以为人物创建场景提供有力的参考。

接下来的步骤是挑选出一些具有差异且效果上佳的头像,截图并保存,再上传到 Midjourney 上生成链接。

如此,当不同场景需要呈现人物各异的角度或表情之时,我们便拥有了一系列灵活多变的参考图。

我建议把这些链接嵌入到 Notion 中,然后右击图片可以随时拷贝,比在 Discord 里面拷贝方便多了。

3. 创建场景并换脸

接下来,我们来为人物创建场景。为此,我写了如下提示词:

Prompt: outdoor photography, young woman, pixie-cut brunette hair, riding bicycle along park path, morning light on face, trees and sunlight filtering through the leaves

提示词:户外摄影,年轻女子,精灵般剪短的褐发,沿着公园小径骑车,晨光洒在脸上,树木和阳光透过树叶

在这个提示词里面,我大致描述了角色的特征,比如她的褐色短发。尽可能的贴近角色可以为后期的工作带来便利。 Midjourney 生成的图像如下:

这个人物的特征和我们创建的角色差异比较大。接下来开始换脸。这里会用到 Midjourney 的局部重绘 (Inpainting) 功能。

大致的流程是这样的:首先,在女孩的脸部创建一个选区。接着,从之前的人物头像相册中挑选一张角度和表情都较为合适的头像,将头像的链接放置到局部重绘的提示词输入框中,并适当地加入关于人物面部光线的提示词。

在 Midjourney 生成的四张图里面,我挑选了一张比较像的。

这个过程我们主要关注的是面部特征是否相似。有时候换脸的效果会失真,看上去像把头像生硬地贴到图片上一样。不过没关系,这个问题可以通过微调解决。如果一次生成的图像的面部特征不相似,局部重绘进行多次。

接下来我们来进行微调,让照片看上去更自然。这里用到的是 Midjourney 的 “Vary” 功能。“Vary Strong” 和 “Vary Subtle” 都行。

确保你已经点亮了 Remix 模式的按钮。点亮了这个按钮才可以弹出输入提示词的对话框。我们要通过提示词来确保画面结构保持一致。因为刚才局部重绘的时候,我们已经删掉了大部分提示词,只剩下 “morning light on face”。如果不激活 Remix 模式的话,人物的场景也会发生变化。

弹出提示词的对话框以后,我们需要填入之前的提示词,即:

outdoor photography, young woman, pixie-cut brunette hair, riding bicycle along park path, morning light on face, trees and sunlight filtering through the leaves

除此之外,为了维持角色的面部特征,还需要参考图。这里的参考图可以用刚才的图片,也可以用头像相册里的。参考图设置权重为 2,即:

s.mj.run/1KlOcmgDtbs outdoor photography, young woman, pixie-cut brunette hair, riding bicycle along park path, morning light on face, trees and sunlight filtering through the leaves --iw 2

我觉得第三张图片比较好,于是进行了放大。

可以看到,人物的短发,弯弯的眉毛和性感的厚嘴唇都得到了较好的保留。

这个过程可以反复进行,不断优化。

我们可以将表现较好的人物头像截屏下来,并纳入到角色的头像相册中,丰富我们的参考图库。这样,在创建新的场景时,由于有了更多一致性的参考图,新场景中的人物一致性也会越来越稳定。

总结

虽然 Midjourney 不如 Stable Diffusion 那样可控,但总算可以通过新的功能提高角色的一致性。让我们期待它们开源和闭源的文生图 AI 可以相互促进,朝着更加可控和更加创意的方向发展。

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/552950.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在报表控件 FastReport .NET 中使用 PageCreate 事件

FastReport Business Graphics .NET,是一款基于fastreport报表开发控件的商业图形库,借助 FastReport 商业图形库,您可以可视化不同的分层数据,构建业务图表以进行进一步分析和决策。利用数据呈现领域专家针对 .NET 7、.NET Core、…

使用Android studio,安卓手机编译安装yolov8部署ncnn,频繁出现编译错误

从编译开始就开始出现错误,解决步骤: 1.降低graddle版本,7.2-bin --->>> 降低为 6.1.1-all #distributionUrlhttps\://services.gradle.org/distributions/gradle-7.2-bin.zip distributionUrlhttps\://services.gradle.org/di…

【论文阅读】RS-Mamba for Large Remote Sensing Image Dense Prediction(附Code)

论文作者提出了RS-Mamba(RSM)用于高分辨率遥感图像遥感的密集预测任务。RSM设计用于模拟具有线性复杂性的遥感图像的全局特征,使其能够有效地处理大型VHR图像。它采用全向选择性扫描模块,从多个方向对图像进行全局建模,从多个方向捕捉大的空间…

Vue的生命周期的详解

Vue的生命周期是每个使用Vue框架的前端人员都需要掌握的知识,以此作为记录。 Vue的生命周期就是vue实例从创建到销毁的全过程,也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译…

基于51单片机点滴输液控制系统LCD显示( proteus仿真+程序+设计报告+讲解视频)

基于51单片机点滴输液控制系统LCD显示 1. 主要功能:2. 讲解视频:3. 仿真设计4. 程序代码5. 设计报告6. 设计资料内容清单&&下载链接 基于51单片机点滴输液控制系统LCD显示( proteus仿真程序设计报告讲解视频) 仿真图proteus7.8及以上…

基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.5版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级、高度提炼,一套API优雅支持UDP 、TCP 、WebSocket 三种协议,支持iOS、Android、H5、小程序、Uniapp、标准Java平台,服务端基于Netty编写。 工…

09 SQL进阶 -- SQL高级处理 -- 窗口函数等

1. 窗口函数 1.1 窗口函数概念及基本的使用方法 窗口函数也称为 OLAP 函数。OLAP 是 OnLine AnalyticalProcessing 的简称,意思是对数据库数据进行实时分析处理。 为了便于理解,称之为窗口函数。常规的 SELECT 语句都是对整张表进行查询,而窗口函数可以让我们有选择的去某…

创建一个javascript公共方法的npm包,js-tool-big-box,发布到npm上,一劳永逸

前端javascript的公共方法太多了,时间日期的,数值的,字符串的,搞复制的,搞网络请求的,搞数据转换的,几乎就是每个新项目,有的拷一拷,没有的继续写,放个utils目…

每日一题---OJ题: 用队列实现栈

片头 嗨! 小伙伴们,大家好! 今天我们一起来看看这道OJ题---用队列实现栈,话不多说,我们马上开始~ emmm,题目看似有点长,我们一起来分析分析! 我们都知道,栈的特点是后进先出(Last In First Out,简称 LIFO ),队列的特点是先进先出(First In First Out 简称 FIFO),明明两者的性…

【记录】Python|Selenium 下载 PDF 不预览不弹窗(2024年)

版本: Chrome 124Python 12Selenium 4.19.0 版本与我有差异不要紧,只要别差异太大比如 Chrome 用 57 之前的版本了,就可以看本文。 如果你从前完全没使用过、没安装过Selenium,可以参考这篇博客《【记录】Python3|Sele…

求π的近似值(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <math.h>int main() {//初始化变量值&#xff1b;int symbol 1;double denominator 1.0, sum 0, term 1.0;//循…

Excel文件解析(Java)

一、概述 在应用程序的开发过程中&#xff0c;经常需要使用 Excel文件来进行数据的导入或导出。所以&#xff0c;在通过Java语言实现此类需求的时候&#xff0c;往往会面临着Excel文件的解析(导入&#xff09;或生成&#xff08;导出)。 在Java技术生态圈中&#xff0c…

JVM运行时内存溢出以及解决办法

JVM有哪些运行时数据区 JVM运行时数据区有程序计数器、本地方法栈虚拟机栈、堆、元数据区、直接内存。 其中只有程序计数器不是内存溢出&#xff0c;其他的都有可能会产生内存溢出。 栈内存溢出 当方法的调用深度过深&#xff0c;可能会导致栈内存溢出。 一般是发生在递归调…

Elasticsearch:如何将 MongoDB 数据引入 Elastic Cloud

作者&#xff1a;Hemendra Singh Lodhi Elastic Cloud 是由 Elastic 提供的基于云的托管服务。Elastic Cloud 允许客户在亚马逊网络服务 (AWS)、谷歌云平台 (GCP) 和微软 Azure 上部署、管理和扩展他们的 Elasticsearch 集群。 MongoDB 是一种流行的 NoSQL 文档导向数据库&am…

IDEA最好用插件推荐

1 背景 俗话说&#xff1a;“工欲善其事必先利其器”&#xff0c;本问介绍几款强大实用的 IDEA 插件&#xff0c;助力大家开发。 希望大家做一个聪明又努力的人&#xff0c;而不只是一个努力的人。 以下插件大都可以通过 IDEA 自带的插件管理中心安装&#xff0c;如果搜不到可以…

算法|最大堆、最小堆和堆排序的实现(JavaScript)

一些概念 堆&#xff1a;特殊的完全二叉树&#xff0c;具有特定性质的完全二叉树。大根堆&#xff1a;父节点 > 子节点小根堆&#xff1a;父节点 < 子节点 二叉堆也属于完全二叉树&#xff0c;所以可以用数组表示。 若下标从1开始&#xff0c;左节点为 2*i &#xff0…

类和对象-封装-设计案例1-立方体类

#include<bits/stdc.h> using namespace std; class Cube{public://设置长void setL(int l){m_Ll;} //获取长int getL(){return m_L;}//设置宽 void setW(int w){m_Ww;}//获取宽 int getW(){return m_W;}//设置高 void setH(int h){m_Hh;}//获取高int getH(){return m_H;…

【机器学习300问】72、神经网络的隐藏层数量和各层神经元节点数如何影响模型的表现?

评估深度学习的模型的性能依旧可以用偏差和方差来衡量。它们反映了模型在预测过程中与理想情况的偏离程度&#xff0c;以及模型对数据扰动的敏感性。我们简单回顾一下什么是模型的偏差和方差&#xff1f; 一、深度学习模型的偏差和方差 偏差&#xff1a;衡量模型预测结果的期望…

JAVAEE—UDP协议TCP协议/三次握手四次挥手

文章目录 UDP协议UDP协议的段格式UDP的传输过程校验和无连接 TCP协议TCP报文的格式段有连接可靠性确认应答超时重传如果ACK丢了呢&#xff1f; 序号和确认序号 连接的构建和断开连接的构建&#xff08;三次握手&#xff09;三次握手的作用为什么握手是三次&#xff0c;而不是四…

微信小程序的常用API ①

前言&#xff1a;什么是微信小程序的API&#xff1f; &#xff08;1&#xff09;微信小程序的API是由宿主环境提供的。通俗来说API是一种接口函数&#xff0c;把函数封装起来给开发者使用&#xff0c;这样好多功能都无需开发者去实现&#xff0c;直接调用即可。 &#xff08;…