【AI绘画】Midjourney进阶:引导线构图详解

news2024/11/30 14:46:40

在这里插入图片描述

博客主页: [小ᶻZ࿆]
本文专栏: AI绘画 | Midjourney

文章目录

  • 💯前言
  • 💯什么是构图
    • 为什么Midjourney要使用构图
  • 💯引导线构图
    • 特点
    • 使用场景
    • 提示词书写技巧
    • 测试
  • 💯小结


在这里插入图片描述


💯前言

【AI绘画】Midjourney进阶:对称构图详解     https://blog.csdn.net/2201_75539691?type=blog

【AI绘画】Midjourney进阶:三分线构图详解     https://blog.csdn.net/2201_75539691?type=blog

【AI绘画】Midjourney进阶:中心点构图详解     https://blog.csdn.net/2201_75539691?type=blog

【AI绘画】Midjourney进阶:留白构图详解     https://blog.csdn.net/2201_75539691?type=blog

  • 在之前的文章中,我们深入探讨了构图在 Midjourney 中的核心作用。通过对称、三分线、中心点构图和留白构图,我们理解了如何利用视觉平衡、比例和位置,使画面更具表现力。今天,我们将重点探讨引导线构图,这是一种极具实用性的技巧。通过自然或人为的线条,巧妙地引导观众的视线,赋予作品更强的层次感和视觉流动性。这不仅能够增加画面的深度感,还能让作品在视觉上更具吸引力。无论是在风景绘画、建筑场景,还是人物作品中,引导线构图都能够帮助创作者实现更精致的画面布局。本文将详细解析这种构图方法,助你在 Midjourney 中更高效地运用引导线技术,创造出引人入胜的视觉效果。
    Midjourney官方使用手册
    在这里插入图片描述

💯什么是构图

构图是摄影、绘画、设计等视觉艺术中的一个基本概念。它指的是艺术家如何在二维平面上安排元素,包括形状、线条、色彩、质地、空间等,以达到一定的视觉效果和艺术表达。
在这里插入图片描述


为什么Midjourney要使用构图

  • 简单来说,Midjourney有构图词画面质量更高
  • 构图的目标是引导观众的视线,突出主题,增加视觉吸引I力,以及传达艺术家的观点或情感。
    在这里插入图片描述
  • 在Midjourney中使用构图是非常重要的,有两个方向可以解释其必要性:非共性和共性。

    • 从非共性的角度来看,在Midjourney中使用构图相关的提示词可以显著提升生成画面的质量。这是因为Midjourney的模型在训练时,不仅使用了图像,还结合了与这些图像相关的提示词。通常来说,这些图像来源于专业摄影或高质量渠道,具有较高的视觉标准。当模型学习了这些图片与提示词之间的关联后,用户在生成图像时如果使用了构图相关的提示词,系统会优先选择类似图库中的优质素材,从而生成更为精致的画面。因此,通过使用构图提示词,可以明显地提高生成图像的质量。
      在这里插入图片描述

    • 从共性的角度来说,构图本身就是一种极为有效的手段,可以用于引导观众的视线、突出画面的主题、增强视觉吸引力,并传递创作者的情感和观点。构图所带来的这些视觉上的提升效果,是不受具体工具限制的,无论是在摄影、绘画还是AI生成图像中都是通用的。因此,当在Midjourney中使用构图提示词时,画面的质量提升几乎是必然的结果。这些道理或许听起来有些抽象,但在实际操作和练习时,大家会切实地感受到构图带来的效果提升。
      在这里插入图片描述


💯引导线构图

引导线构图是一种常用技巧,它利用图像中的线条引导观者的视线,将注意力引向图片的主要焦点或者让眼睛在画面中流动。

  • 引导线构图是一种非常实用的构图技巧,它通过利用图像中的线条来引导观众的视线,将他们的注意力自然引向画面的主要焦点。这种技巧不仅能够强化作品的视觉重点,还可以创造出一种流动感,使得观众的视线能够顺着线条在画面中移动,从而增加画面的层次感和深度。无论是在风景摄影、建筑设计,还是人物肖像中,引导线构图都能有效提升作品的表现力,帮助观众更好地理解创作者想要传达的主题。
    在这里插入图片描述

  • 为了更好地理解引导线构图的概念,我们来看几张示例图片。首先是一张风景图,公路从近处延伸到远方。通过道路两侧的边缘线以及道路中央的分隔线,观众的视线会自然而然地从画面前景引导至远处的风景。这种构图手法非常直观地展现了引导线的作用,将视线引向更为广阔的远景。
    在这里插入图片描述

  • 接着我们来看另一组建筑设计的图片。在这些画面中,建筑物的线条同样起到了引导视线的作用。通过建筑物的结构和线条,观众的目光会被引导在画面中流动,仿佛在空间中探索。这不仅使画面更具秩序感,也增加了视觉的层次感和延展性。
    在这里插入图片描述


特点

  1. 引导视线

    • 引导线能够有效地引导观众的目光,使他们的视线自然地沿着线条移动,进而突出画面中的重点元素。这种构图方式让观众的视线在画面中流动,从而增强作品的表现力。
      在这里插入图片描述
  2. 增加深度:

    • 引导线,特别是有序排列的线条,能够为图片增添空间感,使二维的画面呈现出类似三维的效果。尤其是在建筑类作品中,不同线条的组合能够带来强烈的深度感和秩序感,使得整个画面更加立体、富有层次。
      在这里插入图片描述

使用场景

  1. 首先,在风景摄影中,我们可以利用自然界中的线条作为引导线,比如山脉、河流或道路等元素。这些线条能够有效地引导观众的视线,深入到画面的远方,增强景物的层次感。
    在这里插入图片描述

  2. 其次,在建筑摄影中,建筑物的线条、形状和结构同样可以作为引导线,帮助观众的目光在画面中流动。这种构图方式可以使建筑作品更具秩序感和空间感。
    在这里插入图片描述

  3. 最后,在人像摄影中,模特的姿态、眼神甚至衣物的线条都可以成为引导线,吸引观众的注意力,强调人物的重点细节,增强照片的情感表达。
    在这里插入图片描述


提示词书写技巧

  • 在撰写提示词时,准确地使用引导线构图Guide Line Composition)这一关键词非常关键。这一构图技巧通过线条的排列与设计,引导观众的视线沿着特定路径在画面中流动,最终聚焦在图像的重点区域。在提示词中加入guide Line Composition,能够帮助AI生成的图像更好地体现视觉引导效果,强化画面的层次感和空间感。这一技巧广泛应用于风景、建筑以及人像摄影等领域,使生成的图像更具深度和视觉连贯性。
    在这里插入图片描述

测试

原图:

landscape photography, mountains, valley, river, sunset, soft lighting, 8k, cinematic, wide angle --ar 16:9
  • 原图展示的是自然风光的整体美感,主要以山脉、河流和夕阳为主,画面中的元素没有明显的引导,观众的视线在画面中可能会随机游走,无法集中在某一特定区域。画面虽然美丽,但缺乏明确的视觉焦点,层次感和纵深感相对较弱。
    在这里插入图片描述

原图+guide Line Composition:

landscape photography, mountains, winding road, river, sunset, guide line composition, leading lines, cinematic, 8k, dramatic lighting, wide angle --ar 16:9 
  • 添加guide line composition后大大增强了视觉引导效果。通过蜿蜒的道路和河流作为引导线,观众的视线会自然地从画面前景延伸至远处,画面中的线条结构强化了纵深感,使得图像看起来更加有序和立体。同时,观众的目光被有效地引导至远方的风景,使得画面的层次更加分明,整体的视觉体验更具连贯性和冲击力。
    在这里插入图片描述

💯小结

  • 在这里插入图片描述
    引导线构图作为一种重要的视觉表现手法,在Midjourney生成图像的过程中,能够显著提升画面的视觉效果和层次感。通过合理运用线条,将观众的视线自然而然地引向图像的主要焦点,不仅可以强化画面中的视觉重点,还能够创造出一种流动感,使图像看起来更加生动、有深度。在风景、建筑和人像摄影等场景中,引导线构图的运用都能帮助创作者实现更具吸引力的作品。这种构图技巧,结合了美学与技术,能够有效增强图像的视觉连贯性和表现力,尤其在使用Midjourney进行AI生成图像时,通过在提示词中添加相关的构图词汇,作品的质量和层次感可以得到显著提升。
  • 随着AI绘画技术的不断进步,构图技巧的应用将变得更加智能化和细致化。未来,AI不仅能够根据提示词生成高质量的图像,还会逐渐掌握艺术创作中的隐性规则,如情感表达、主题深度和视觉美学。通过不断优化对构图、光影、色彩等元素的理解,AI将能够更加精准地捕捉创作者的意图,甚至在无明确提示的情况下自主生成具有艺术性和内涵的作品。AI绘画的未来,不仅仅是工具的升级,更是艺术与技术深度融合的时代,它将拓宽人类艺术表达的边界,激发出更多富有创意与思考的视觉作品。

import torch, torchvision.transforms as transforms; from torchvision.models import vgg19; import torch.nn.functional as F; from PIL import Image; import matplotlib.pyplot as plt; class StyleTransferModel(torch.nn.Module): def __init__(self): super(StyleTransferModel, self).__init__(); self.vgg = vgg19(pretrained=True).features; for param in self.vgg.parameters(): param.requires_grad_(False); def forward(self, x): layers = {'0': 'conv1_1', '5': 'conv2_1', '10': 'conv3_1', '19': 'conv4_1', '21': 'conv4_2', '28': 'conv5_1'}; features = {}; for name, layer in self.vgg._modules.items(): x = layer(x); if name in layers: features[layers[name]] = x; return features; def load_image(img_path, max_size=400, shape=None): image = Image.open(img_path).convert('RGB'); if max(image.size) > max_size: size = max_size; else: size = max(image.size); if shape is not None: size = shape; in_transform = transforms.Compose([transforms.Resize((size, size)), transforms.ToTensor(), transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))]); image = in_transform(image)[:3, :, :].unsqueeze(0); return image; def im_convert(tensor): image = tensor.to('cpu').clone().detach(); image = image.numpy().squeeze(); image = image.transpose(1, 2, 0); image = image * (0.229, 0.224, 0.225) + (0.485, 0.456, 0.406); image = image.clip(0, 1); return image; def gram_matrix(tensor): _, d, h, w = tensor.size(); tensor = tensor.view(d, h * w); gram = torch.mm(tensor, tensor.t()); return gram; content = load_image('content.jpg').to('cuda'); style = load_image('style.jpg', shape=content.shape[-2:]).to('cuda'); model = StyleTransferModel().to('cuda'); style_features = model(style); content_features = model(content); style_grams = {layer: gram_matrix(style_features[layer]) for layer in style_features}; target = content.clone().requires_grad_(True).to('cuda'); style_weights = {'conv1_1': 1.0, 'conv2_1': 0.8, 'conv3_1': 0.5, 'conv4_1': 0.3, 'conv5_1': 0.1}; content_weight = 1e4; style_weight = 1e2; optimizer = torch.optim.Adam([target], lr=0.003); for i in range(1, 3001): target_features = model(target); content_loss = F.mse_loss(target_features['conv4_2'], content_features['conv4_2']); style_loss = 0; for layer in style_weights: target_feature = target_features[layer]; target_gram = gram_matrix(target_feature); style_gram = style_grams[layer]; layer_style_loss = style_weights[layer] * F.mse_loss(target_gram, style_gram); b, c, h, w = target_feature.shape; style_loss += layer_style_loss / (c * h * w); total_loss = content_weight * content_loss + style_weight * style_loss; optimizer.zero_grad(); total_loss.backward(); optimizer.step(); if i % 500 == 0: print('Iteration {}, Total loss: {}'.format(i, total_loss.item())); plt.imshow(im_convert(target)); plt.axis('off'); plt.show()

在这里插入图片描述


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

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

相关文章

AnaTraf | TCP重传的工作原理与优化方法

目录 什么是TCP重传? TCP重传的常见触发原因 TCP重传对网络性能的影响 1. 高延迟与重传 2. 吞吐量的下降 如何优化和减少TCP重传 1. 优化网络设备配置 2. 优化网络链路 3. 网络带宽的合理规划 4. 部署CDN和缓存策略 结语 AnaTraf 网络性能监控系统NPM | …

网络最快的速度光速,因此‘‘光网络‘‘由此产生

世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。 一 有线网规划 二 无线网规划

如何用pyhton修改1000+图片的名字?

import os oldpath input("请输入文件路径(在windows中复制那个图片文件夹的路径就可以):") #注意window系统中的路径用这个‘\分割,但是编程语言中一般都是正斜杠也就是’/‘ #这里写一个代码,将 \ > / path "" fo…

嵌入式职业规划

嵌入式职业规划 在嵌入式的软件开发中,可以分为: 嵌入式MCU软件开发工程师; 嵌入式Linux底层(BSP)软件开发工程师; 嵌入式Linux应用开发工程师; 嵌入式FPGA算法开发工程师 对于前两个阶段 …

H.266与H.265、AV1、H.264对比

好多开发者希望搞清楚H.266(Versatile Video Coding,VVC)、H.265(High Efficiency Video Coding,HEVC)、AV1、H.264(Advanced Video Coding)四者区别,本文从压缩效率、画…

代码随想录算法训练营第三十八天 | 62. 不同路径、63. 不同路径 II、343. 整数拆分、96.不同的二叉搜索树(343、96以后学)

1. 题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路…

提高EDM广告发送率和到达率_实用技巧揭秘

EDM广告提高发送率和到达率策略包括优化邮件服务器设置、制定邮件内容及设计策略、持续监测与测试。ZohoCampaigns通过可靠ESP、SPF和DKIM验证、维护IP声誉确保高发送率和到达率。 一、了解EDM的发送率和到达率概念 在深入研究提升策略之前,首先我们需要明确两个专…

2-126基于matlab希尔伯特黄变换(HHT)的图像三维重建

基于matlab希尔伯特黄变换(HHT)的图像三维重建,利用希尔伯特黄变换(HHT)的条纹图相位信息提取算法,对输入图片的变形条纹图相位信息进行提取,实现三维重建。程序已调通,可直接运行。…

Axure重要元件三——中继器时间排序

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 本节课:中继器数据时间排序 课程内容:数据的升序、降序、重置排序 应用场景:表单数据的排序 案例展示: 步骤一&#xff…

【数据分享】1901-2023年我国省市县三级逐月最低气温(免费获取/Shp/Excel格式)

之前我们分享过1901-2023年1km分辨率逐月最低气温栅格数据(可查看之前的文章获悉详情),该数据来源于国家青藏高原科学数据中心,很多小伙伴拿到数据后反馈栅格数据不太方便使用,问我们能不能把数据处理为更方便使用的Sh…

0基础学java之Day09(下午完整版)

六、数组 概念: 1.数组是引用数据类型 2.数组中的数据叫做元素 3.元素都有标号叫做索引/下标 4.下标从0开始 5.数组一旦初始化成功,长度不可变(意味着数组没有添加和删除) 6.数组中的元素在内存中是挨在一起的 声明: 数…

CTF(四)

导言: 本文主要讲述在CTF竞赛中,web类题目file_include。 靶场链接:攻防世界 (xctf.org.cn) 一,观察页面。 可以看到一段php代码。从则段代码中我们可以知道: 1,使用include引入check.php文件&#xff…

Excel制作工资表

需要用到的函数 函数要求如下: IFERROR 功能:处理公式中的错误,避免显示错误值。当公式产生错误时,使用自定义的值或表达式代替错误信息。 IFERROR(值, 错误值)SUM 功能:求和,计算一系列数字的总和。 语…

SSD |(七)FTL详解(中)

文章目录 📚垃圾回收🐇垃圾回收原理🐇写放大🐇垃圾回收实现🐇垃圾回收时机 📚解除映射关系📚磨损均衡 📚垃圾回收 🐇垃圾回收原理 ✋设定一个迷你SSD空间: 假…

Windows 和 Ubuntu通讯的网络设置

如果你是一个嵌入式工程师,因为工作需要,在linux下进行开发,一定会遇见配网问题。这篇文章解决Windows 和虚拟机Ubuntu通讯的网络设置的问题。 Windows的网络配置: 在配置网络前,先了解一下windows和ubuntu的网络构成…

CTFHUB技能树之SQL——过滤空格

开启靶场,打开链接: 既然是过滤空格,绕过空格的方法: 用/**/或%0a替代空格 (1)判断注入点 1 and 11# 会显示hacker 1/**/and/**/11# 有回显 1/**/and/**/12# 无回显,说明是整数型注入 &#…

嵌入式C++中内存分配基本实现方法

大家好,今天主要给大家分享一下,如何使用计算机中的内存空间进行分配,观察具体现象。 第一:C语言动态空间分配方式 第二:C++中动态内存分配方法 new 可以自动计算数据类型的大小 与 类型的转换 malloc 只能手动进行。 2.new 可以在分配空间的时候初始化 malloc 不行。 第三…

python采集汽车之家数据

python采集汽车之家数据 一、寻找数据接口二、发送请求获取响应三、解析数据四、完整代码一、寻找数据接口 如下图所示,在汽车之家首页点击报价图标: 在下图中选择价位,例如选择15-20万: 打开浏览器开发者工具,刷新页面,找到数据接口。接下来,通过翻页寻找接口url的变…

uni-app uni.setTabBarBadge 不生效

‘text’属性,类型必须是字符串,而接口返回的是数值,没有注意到,所以怎么都不生效,也不会有报错!

渗透测试导论

渗透测试的定义和目的 渗透测试(Penetration Testing)是一项安全演习,网络安全专家尝试查找和利用计算机系统中的漏洞。 模拟攻击的目的是识别攻击者可以利用的系统防御中的薄弱环节。 这就像银行雇用别人假装盗匪,让他们试图闯…