AI绘画-Midjourney基础1-突破想象的界限:掌握文本引导的图像生成技巧

news2024/11/13 11:21:05

Midjourney是一款 AI 绘画工具,可以根据你的提示(本文中称为 prompt)创作出各种图像。你只需要在Discord上和一个机器人聊天,就可以用简单的命令来控制它。目前已不支持免费试用,可以选择付费计划来获得更多功能和优势。

目前 Midjourney 的最新模型为 v5.1 模型,新用户有25次免费额度,快去体验吧!

本文干货满满,建议收藏!!!

一、第一幅 AI 绘画作品

要使用 Midjourney 进行 AI 绘画,首先要创建一个 Discord 账号,然后加入 Midjourney 服务器。

具体如何注册 Midjourney 网上已有大量教程,还是不会注册的朋友们可以私聊博主。

1. 创作(/imagine)

在控制台输入 /imagine 指令,在 prompt 框中输入提示信息,完成后输入回车,即可创作一张 AI 绘画作品。

如我们在控制台输入 /imagin a cute cat,就会得到4张可爱的小猫咪图片:

2. 升档和变体

在使用 /imagine 指令创作图片后,会生成4张不同的图片,同时下方会出现一排按钮,接下来讲解按钮的作用。

首先,使用1、2、3、4分别对这4张图片进行编号,U1~U4 和 V1~V4 表示对对应的图片做 U 操作(upscale,升档)或 V 操作(variations,变体),重做按钮表示按刚刚的提示重新生成4张图片。

(1) 升档操作

mj 会为每条指令生成4张图片,升档操作表示从这4张图片中选择某张图片,放大这张图片并增加细节,提高清晰度。

可以看到,U1 操作即为选择了第1张图片,将其放大并增加细节,更加清晰。

下面还有3个按钮,功能如下:

Make Variations 按钮表示对这张图片进行变体操作。

Web 按钮,表示在个人主页中查看这张图片,如下所示:

右下角有个保存按钮,点击即可将其下载到我们自己的设备上了!

Favorite 按钮则表示收藏,可以在个人主页查看已收藏的图片。

(2) 变体操作

变体操作表示从这4张图片中选择某张图片,对这张图片做变体处理,按照这张图片生成4张主体一致,细节有所变化的新图片。新生成的这4张图片还可以继续进行 U 操作、V 操作和重做操作。

二、Midjourney 设置

在控制台输入指令 /settings,进入设置页面。如下图所示: 

1. 模型

配置界面第1行和第2行的选项代表使用哪个模型进行作图,只能选择一项。当前版本默认使用 v5.1 模型,分辨率更高,理解力更强,细节处理更好。

Niji 模型是二次元风格的模型,适用于生成二次元风格的图片。RAW Mode 版本是 v5.1 模型的另一种模式,会生成另一种风格的图片,适合生成电影类型的图像,在选择 v5.1 模型时才会出现这个模式。

2. 风格参数

第3行的配置项为风格参数,有low、med、high、very high四种模式,越高图片越精细。

这一行的4个选项只可以选择其中1个。

3. 公开模式 / 隐身模式

第4行的第1个选项 Public mode,选中表示公开模式,所有人都能看见你生成的图片。

取消选中则表示隐身模式,别人看不见你生成的图片。

隐身模式只有高级订阅(即60$一月)的用户才可以使用。把 Midjourney bot 机器人拉入自己的服务器虽然看起来是只有自己看到自己生成的图片,但实际上你的 prompt 和你生成的图片也被发送到 Midjourney 的公共频道,所有人都可见。

4. 快速模式 / 放松模式

第4行的第2个选项 Fast mode,选中表示快速模式,需要消耗占用 GPU 的快速时长。快速模式下不需要排队,出图速度较快。普通订阅的用户和高级订阅的用户每个月都有一部分快速时长。

取消选中则表示放松模式,需要排队作业,出图速度较慢。

5. 混音模式

第4行的第3个选项 Remix mode 代表混音模式,选中后可以对图片的局部风格进行调整,即在变体操作时调整生成图片的 prompt。

使用文本描述 A happy girl,绘画效果如下:

打开 Remix mode 后,做 v1 操作,可以看到出现一个弹窗,在弹窗中我们可以修改 prompt:

修改文本描述为 A sad girl 后,效果如下:

可以看到,混音模式下,可以对图片的局部风格进行调整,甚至可以完全改变图片的风格。

三、Midjourney 后缀参数

Midjourney 的 prompt 由文本描述和后缀参数两部分组成。文本描述推荐使用英文,Midjourney 对中文的识别能力不是很强。

由于博主英语不是很好,接下来的示例我都是使用 AI 来帮忙生成 prompt。

后缀参数可以控制图片的大小、风格、样式、质量等,可以更容易生成我们想要的图片。

后缀参数之间的顺序可以任意改变。

1. -- [模型]

-- 后跟上模型代表使用这个模型进行作图。如 -- v5.1(注意 -- 后面有一个空格)表示使用 v5.1 模型,--niji 5(注意这里的 -- 后没有空格)表示使用 niji 5模型等。

2. --ar 比例

后缀参数 ar 表示生成图片的比例。参数值为图片的宽高比,格式为 w:h,w 为宽,h 为高。

默认值为 1:1,一般的取值有 3:2,4:3,3:4 等。

网页上的图片比例一般为 16:9,来看下面的示例:

Welcome to the world :: of a future city ::2 that shines under the starlit sky. Neon lights twinkle in the distance, reflecting off the sleek, glassy surfaces of towering structures. Futuristic vehicles zoom through the air, leaving trails of light in their wake. It's a city that's awake, alive, and pulsating with energy. --ar 16:9

这条 prompt 中文本提示中有权重切分符(::),权重切分符如何使用将在 Midjourney 的进阶篇中进行讲解。

3. --style 风格

后缀参数 style 表示模型生成图片的风格。

v4 模型有 4a、4b 和 4c 3种风格,niji 5 模型有 expressive(默认)、cute 和 scenic 3种风格,v5.1 模型有默认风格和 raw 风格2种风格。

Embark on a journey :: into the world of an endearing girl ::2 in a room inspired by Japanese aesthetics. The room bursts with pastel colors, plushies, and eclectic decorations, creating a warm and inviting ambiance. The girl, in her adorable clothes, with a sweet smile, embodies pure charm. --niji 5 --seed 1024

如下分别为 niji 5 模型使用 expressive 风格和 cute 风格的效果:

可以看到,cute 风格下的图片显得更加可爱。

4. --chaos 多样性,变化

后缀参数 chaos 影响初始图像网格的差异程度,可以简写为 c。取值范围为0-100,默认为0。

高 chaos 值将生成更不寻常和意外的结果和构图,低 chaos 值则会产生更可靠和可重复的结果。

如下分别为 chaos 参数值为0和80时的效果:

Welcome to the world of the Rainbow Windmill Island. ::2 The island, adorned with vibrant windmills spinning joyfully, stands in the middle of a turquoise sea. ::1.5 The sky above is bright and clear, with fluffy white clouds scattered across the azure expanse. The sight of the island, so full of life and color, brings a sense of peace and tranquility.

可以看到,chaos 值越高,生成的图片越更富有想象力。

5. --seed 一致性

后缀参数 seed 表示生成图片时使用的种子,可以确保生成的图片的一致性,相近的 seed 值生成的图片的构图和风格都很接近。使用相同的文本提示、模型、风格和 seed 值的 prompt,生成的四宫格图片将一模一样。

上面 --style 的案例中,和我使用相同的 seed 值1024,会得到和我一样的四宫格图片。

这个参数将在进阶篇详细展开。

6. --no 否定提示

后缀参数 --no 表示否定提示,表明在图像生成中不想要的东西,作用是对不需要的元素进行删除,使它们不太可能出现在输出中。

例如想生成一幅没有任何河流的风景画,可以这样写:

a landscape painting --no rivers

7. --tile 无缝贴图

后缀参数 tile 生成可以用作重复图案的图像,用于制作无缝图案、壁纸和纹理。

woodden board texture --tile

一个检查无缝贴图的网站:Seamless texture check | pycheung.com

8. --quality 质量

后缀参数 quality  影响生成图像所需的时间,即图片的质量,可以简写为 q。默认值为1,可选值有 .25、.5、1、2 四个值。

高质量的设置需要较长的处理时间并生成更多细节,更高的数值也意味着每个作业使用的GPU分钟数更多。

质量设置不影响分辨率,更高的 quality 设置并不总是更好。有时,较低的 quality 设置可以产生更好的结果,这取决于试图创建的图像。较低的 quality 设置可能最适合于手势抽象外观。更高的 quality 值可以改善从许多细节中受益的建筑图像的外观。选择与希望创建的图像类型最匹配的设置。

如下为 quality 值为1和2时的效果:

Welcome to a cityscape of the future, where skyscrapers::2 loom large against the sky, their futuristic design a testament to human ingenuity and progress::1.5. Neon lights flicker on their surfaces, painting an electrifying picture of the city night. --ar 3:2

可以看到,quality 值为2时图片有更丰富的细节。

9. --stylize 相关度

后缀参数 stylize 影响生成的图片和 prompt 的相关度,可以简写为 s。取值范围为0-1000,默认值为100。数值越小,和我们 prompt 关联度越高;数值越大,生成的图片更加高调。

如下为 stylize 值为100和800时的效果:

Step into the enchanting world ::2 of a cute magical kitten in the realm of anime ::2. With sparkling eyes and a tiny wand, it casts spells of joy and laughter. --niji 5 --style cute

可以看到,当 stylize 值为800时,图片主体都变了,上面的 prompt 的主体为魔法猫咪。

10. --iw 图文相关性

取值范围0.5 ~ 2,用于图生图控制生成图片的图文相关性。取值越高,则生成的图片参考 prompt 中“图”的比重就越高;反之,参考“文”的比重就越高。在后续图生图的文章中会详细解析。

四、Midjourney 常用指令

1. 绘图相关

(1) /imagine 生成图片

最基本的指令,用于文本生成图片,prompt后面加描绘词,即文生图。

(2) /discribe 生成文本

用于图片生成与之相关的4条英文的文本描述,即图生文。

控制台输入 /describe 指令,上传一张图片,发送,即可得到4条文本描述。

注意:这几条文本描述只是 AI 分析图片得出来的,并无法保证使用这些文本描述可以得到相同的图片。

(3) /blend 两个图片混合

将两张图片按照文本描述进行混合,即图生图。后续文章会详解讲解。

(4) /show 结合任务ID生成原图片

在聊天记录中的一个任务右上角,点击添加反应按钮,搜索 "envelope",点击这个信封图标。

这时就可以在 Midjourney Bot 给你的私信中看到这个任务的 Job ID 和 seed 值。

这个时候控制台输入 /show 指令,job_id 框中粘贴上面查看到的 job_id,就可以看到这条消息了,同时可以对这个任务继续进行升档操作和变体操作。

这个指令并不经常使用,细心的朋友已经发现,上面获取 Job ID 那里同时还获取到了 seed 值,有用的其实就是这个 seed 值。

上文已经提到,使用相同的文本提示、模型、风格和 seed 值的 prompt,生成的四宫格图片将一模一样。现在就来试验一下:

Embark on a journey :: into the world of an endearing girl ::2 in a room inspired by Japanese aesthetics. The room bursts with pastel colors, plushies, and eclectic decorations, creating a warm and inviting ambiance. The girl, in her adorable clothes, with a sweet smile, embodies pure charm. --ar 1:1 --niji 5 --seed 4123671164

使用上面的 prompt,你将会得到和我相同的图片。这就是 seed 的神奇之处!

利用这个特性,我们就可以使用控制变量法对图片的细节进行微调了,进阶篇中我将详细讲解。

2. 设置相关

(1) /settings 设置

(2) /fast 切换到快速模式

(3) /relax 切换到放松模式

(4) /public 切换到公共模式

(5) /stealth 切换到隐身模式

(6) /prefer remix:切换到混合模式

3. 后缀相关

(1) /prefer suffix 指定要添加每个提示末尾的后缀

Midjourney 有很多的后缀参数,有时候在每次作图时都会添加一些固定的后缀参数,显然有点麻烦。使用 /prefer suffix 指令可以定要添加每个提示末尾的后缀:

如下面这条指令,会在每次绘图时,prompt 后都添加上 --ar 16:9 --v 5.1 --style raw --q 2 --s 800。 

接下来我输入文本描述,运行时后面会自动加上预设的后缀。

Step into the world of Zaun ::2, a city steeped in darkness and chaos. The high-tech industrial infrastructure towers above, offering a stark contrast to the disorder below

直接输入 /prefer suffix 指令,后不加任何内容,可以重置后缀预设。

(2) /prefer option set 创建自定义变量

使用 /prefer suffix 设置默认后缀参数的默认值,只能设置一条预设。如果想要设置多条后缀参数的预设,在不同情况下使用不同预设,那么就可以使用 /prefer option set 创建变量的方法。

定义变量 x 为 "--ar 4:3 --chaos 30",之后就可以直接在 prompt 中以 --x 的形式使用该变量,x 即等于 "--ar 4:3 --chaos 30"。

出现下面的提示时,即为创建变量成功!

使用变量 x 的方式如下:

Step into the vastness of the universe ::2. The sky is ablaze with countless stars, each one a distant world waiting to be discovered

如上案例中,在运行时变量 x 被自动替换为已经预设好的后缀参数。

(3) /prefer option list 列出之前设置的所有变量

控制台输入指令 /prefer option list 后回车发送,可以看到已定义好的变量。

另外,如果想要删除变量,可以使用 /prefer option set,设置空的 value 即可。

看到如下消息即为成功删除变量:

再次输入 /prefer option list 指令,可以看到已经没有了变量 x。

4. 系统相关

(1) /info 查看基本信息

如订阅状况、工作模式等。

Subscription:订阅信息,有订阅等级,订阅方式(按月 / 按年)和订阅时间。

Job Mode:工作模式,Fast(快速模式)/ Relax(放松模式)。

Visibility:可见性,Publuic(公开模式)/ Stealth(隐身模式)。

Fast Time Remaining:剩余多少快速时长。

Lifetime Usage:快速模式下生成了多少张图片,使用了多长时间 GPU。

Relaxed Usage:放松模式下生成了多少张图片,使用了多长时间 GPU。

Queued Jobs (fast):当前有多少个快速模式的作业正在排队队列。

Queued Jobs (relax):当前有多少个放松模式的作业正在排队队列。

Running Jobs:当前有哪些作业正在运行。

(2) /ask 获取问题答案

(3) /help 查看帮助信息

(4) /subscribe 管理订阅

附:使用 AI 生成 Midjourney 的提示词

我在 ZelinAI 上做了一个 AI 应用,可以根据用户输入的内容生成一条适用于 Midjourney 的文本描述,对不熟悉英文的小伙伴们非常友好。

点击这里来体验吧!

由于 Zelin AI 目前只能使用 ChatGPT 模型(即 GPT-3.5),能力不是很强。这个 AI 工具目前还无法生成完整的 prompt,只能生成英文描述,后缀参数还需要我们来手动调配。

另外,我用 GPT-4 训练了一个生成 Midjourney 提示的 AI 工具,GPT-4 相比于 GPT-3.5 强大了很多,理解能力大幅度提高,已经可以生成完整的带后缀参数的 prompt。

如下为 GPT-4 模型下 Midjourney 提示工程师 AI 工具的表现:

可以看到,生成了完整的 prompt!使用第3条 promot,效果如下:

生成的图片还是非常不错的!正文部分的各种案例图片的 prompt 都由 GPT-4 版本的 Midjourney 提示工程师 AI 工具生成。

点赞达到15个,后续我会在本专栏发一篇文章来详解讲解如何训练这个模型!

点赞达到30个,我将公开这篇文章!

三连 + 关注,在评论区回复 "AIGC!",我将把 GPT-4 版本的 Midjourney 提示工程师模型的训练咒语发给你!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

viet构建项目及<script setup>的用法

vite构建项目 官方文档:https://v3.cn.vuejs.org/guide/installation.html#vite vite 官网:https://vitejs.cn 什么是 vite?—— 新一代前端构建工具。 优势如下: 开发环境中,无需打包操作,可快速的冷启动。…

操作系统易错题

操作系统易错题 假设某硬盘由5个盘片构成(共有8个记录面),盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为16道/mm,每磁道分16个扇区,每扇区512字节&…

【图像分割】卫星遥感影像道路分割:D-LinkNet算法解读

前言 因为毕设中的部分内容涉及到卫星遥感影像道路分割,因此去对相关算法做了一些调研。 本文所使用数据集为DeepGlobe,来自于CVPR2018年的一个挑战赛:DeepGlobe Road Extraction Challenge。 D-LinkNet为该挑战赛的冠军算法。 考虑到D-Lin…

时间序列预测 | Matlab基于遗传算法优化BP神经网络(GA-BP)的时间序列预测,matlab代码

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测 | Matlab基于遗传算法优化BP神经网络(GA-BP)的时间序列预测,matlab代码 评价指标包括:R2、MAE、MSE、RMSE等,代码质量极高,方便学习和替换数据。 部分源码 %% 清空环境变量 warning off …

Flink学习——处理函数ProcessFunction及多流转换

处理函数 在DataStream的更底层,我们可以不定义任何具体的算子(如map(),filter()等)二只提炼出一个统一的“处理”(process)操作 。它是所有转换算子的概括性的表达。可以自定义处理逻辑。 所以这一层接口就…

Springcloud1--->Eureka注册中心

目录 Eureka原理Eureka入门案例编写EurekaServer将user-service注册到Eureka消费者从Eureka获取服务 Eureka详解基础架构高可用的Eureka Server失效剔除和自我保护 Eureka原理 Eureka:就是服务注册中心(可以是一个集群),对外暴露自…

开心档之MySQL 数据类型

目录 MySQL 数据类型 数值类型 日期和时间类型 字符串类型 MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 MySQL 支持所有标准 SQL 数值数据类型…

矢量图形处理控件CAD .NET介绍以及安装

CAD .NET一款在CAD领域被广泛应用的控件,可以快速准确的阅读DWG和DXF文件,并且通过Windows GDI方法绘制件,支持多种文件格式,包括DWG、DXF、Gerber、光栅图像等,并支持部分编辑功能。 CAD.NET最新下载https://www.evg…

Android 性能优化篇之SharedPreferences使用优化

简介: SharedPreferences(以下简称SP)是Android本地存储的一种方式,是以key-value的形式存储在/data/data/项目包名/shared_prefs/sp_name.xml里 SP的使用及存在的问题 SharedPreferences(以下简称SP)是Android本地存储的一种方式,是以key-…

机器学习吴恩达笔记第一篇——基于梯度下降的线性回归(零基础)

机器学习吴恩达笔记第一篇——基于梯度下降的线性回归(零基础) 一、线性回归——理论(单变量) 1、 假设函数h(x)为: ​ h ( x ) θ 0 θ 1 X h(x)\theta_0\theta_1 X h(x)θ0​θ1​X 2、要拟合数据成一条直线&…

如何让 300 万程序员爱上 CODING?

**《DNSPod十问》**是由腾讯云企业中心推出的一档深度谈话栏目,通过每期向嘉宾提出十个问题,带着广大读者站在产业互联网、科技领域精英的肩膀上,俯瞰各大行业发展趋势和前沿技术革新。 刘毅,腾讯云 CODING CEO、腾讯云开发者产品…

第十六章_Redis案例落地实战bitmap/hyperloglog/GEO

统计的类型有哪些 亿级系统中常见的四种统计 聚合统计 统计多个集合元素的聚合结果,就是前面讲解过的交差并等集合统计 复习命令 交并差集和聚合函数的应用 排序统计 抖音短视频最新评论留言的场景,请你设计一个展现列表。考察你的数据结构和设计思…

Nsudo,建议有编程基础的人使用,获取管理员和超级管理员权限

资源地址: https://download.csdn.net/download/yaosichengalpha/87801699 Nsudo,建议有编程基础的人使用,获取管理员和超级管理员权限 NSudo是一款非常不错的系统管理工具,他是基于raymai97的超级命令提示符,可以帮助我们获取T…

MybatisPlus--基础入门!真滴方便

目录 一、简介 2.特性 二、入门 1.创建springboot 项目 注意&#xff1a;引入 MyBatis-Plus 之后请不要再次引入 MyBatis 以及 MyBatis-Spring&#xff0c;以避免因版本差异导致的问题 2.数据准备 3.配置application.yml 4.代码 BaseMapper<>很重要&#xff01;…

vue 本地/PC端访问微信云数据库

1. 解决跨域访问问题 新建文件 vue.config.js // 后端服务器地址 let url "http://localhost:8888"; module.exports {publicPath: "./", // 【必要】静态文件使用相对路径outputDir: "./dist", //打包后的文件夹名字及路径devServer: {// 开…

组合数学第二讲

可以把取出来的数从小到大排序&#xff0c;第一个数不变&#xff0c;第二个数1&#xff0c;以此类推... 总共的情况为&#xff0c;数字取完后可再依次减回去&#xff0c;保证数在100以内 k-element multisets 引出下面的二项式系数 binomial coefficients&#xff08;二项式系…

线段树C++实现

一、本题线段树数组数据和结构 data[]{1,2,-3,5,6,-2,7,1,12,30,-10}&#xff0c;11个元素。 二、各个函数和结构 &#xff08;一&#xff09;线段树结构 创建线段树的结构&#xff0c; l、r为左边界和右边界&#xff0c;maxV和minV为最大值和最小值&#xff0c;sum为和&#…

English Learning - L3 作业打卡 Lesson2 Day12 2023.5.16 周二

English Learning - L3 作业打卡 Lesson2 Day12 2023.5.16 周二 引言&#x1f349;句1: Dollars are called greenbacks because that is the color of the back side of the paper money.成分划分弱读连读爆破语调 &#x1f349;句2: The color black is used often in expres…

抽象 + 接口 + 内部类

抽象类和抽象方法 抽象类不能实例化抽象类不一定有抽象方法&#xff0c;有抽象方法的类一定是抽象方法可以有构造方法抽象类的子类 要么重写抽象类中的所有抽象方法要么是抽象类 案例 Animal类Dog类 Sheep类Test类 接口 接口抽象类针对事物&#xff0c;接口针对行为案…

使用Google浏览器开启New bing

简介 搭建 通过谷歌商店下载两个浏览器插件&#xff0c;一个用于修改请求头agent的插件和一个用于伪造来源的插件x-forwarded-for插件&#xff0c;当然类似的插件很多很多&#xff0c;我这里使用的两个插件是 User-Agent Switcher Header Editor 使用 User-Agent Switcher 插件…