【AI绘画】Midjourney进阶:三分线构图详解


在这里插入图片描述

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

文章目录

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


在这里插入图片描述


💯前言

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

  • 在上一篇文章中,我们深入探讨了构图的定义以及学习构图的重要性。我们详细介绍了对称构图的概念、特点及其在Midjourney中的应用方式,帮助大家理解如何通过对称性提升画面的平衡感和视觉冲击力。接下来,本文将继续为大家介绍另一种常用且经典的构图技巧——三分线构图(又称黄金分割构图)。通过对这一构图法则的分析与应用示例,希望能够帮助大家在AI绘画创作中更加精准地掌握构图技巧,提升作品的美感与表现力。
    Midjourney官方使用手册
    在这里插入图片描述

💯什么是构图

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


为什么Midjourney要使用构图

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

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

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

💯三分线构图

三分线构图,又被称为黄金分割构图,是构图中最常用的一种构图法则。这种构图法则的基本原理是将画面分割为九等份,由两条垂直线和两条水平线相交形成,主体或重要元素放在这四条线或者交点上。

  • 三分线构图,也被称为黄金分割构图,是一种非常常用的构图法则。如果你对摄影有一定了解,可能会熟悉这个构图技巧。而对于刚开始接触摄影的人来说,使用三分线构图可以显著提升照片的视觉效果。其基本原理是将画面分为九等份,由两条垂直线和两条水平线交叉形成网格。画面的主体或重要元素通常放置在这四条线的交点上,或者沿着这些线来进行布局。
    在这里插入图片描述

特点

平衡感:三分线构图可以使画面的视觉重心分布均匀,使画面看上去更加稳定和平衡。
画面美感:三分线构图符合人类的视觉习惯和审美规律,能够使画面看上去更加和谐和美观。

  • 三分线构图的第一个特点是平衡感。虽然不像对称构图那样完全均衡,但它通过将画面分成三分之一和三分之二的比例,使得视觉重心得到均匀分布,从而让画面整体看上去更加稳定且具有平衡感。
    在这里插入图片描述
  • 第二个特点是画面美感。三分线构图符合人类的视觉习惯和审美规律,能够让画面显得更加和谐、美观。即使没有设计背景的人,也会因为这种构图形式的自然规律,感受到画面的美感和愉悦感。
    在这里插入图片描述

使用场景

在风景图片中,通过使用三分线构图,可以有效地表现出天空和地面的比例关系。
在人像图片中,通过使用三分线构图,可以使人物的位置和背景的比例更加协调。
在建筑图片和静物图中,通过使用三分线构图,可以使建筑或静物的位置和周围环境的关系更加和谐。

  1. 三分线构图在多种场景中都有着广泛的应用。在风景摄影中,三分线构图能够很好地展现天空与地面之间的比例关系,营造出更加和谐的视觉效果。
    在这里插入图片描述

  2. 在人像摄影中,通过三分线构图,人物的位置与背景的比例能够更加协调,使得整体画面更加平衡且富有美感。
    在这里插入图片描述

  3. 除此之外,在建筑摄影或静物摄影中,三分线构图也非常实用。它能够巧妙地将建筑或静物与周围环境的关系表现得更加和谐。
    在这里插入图片描述

  • 无论是在光影对比上,还是元素布局上,这种构图都能使画面呈现出更加平衡的视觉效果。例如,当一侧的元素较重时,通过在另一侧放置主体人物,可以瞬间让画面变得更为平衡。
    在这里插入图片描述

提示词书写技巧

  • 在书写与三分线构图相关的提示词时,使用Rule of Thirds composition可以帮助Midjourney生成更加符合黄金分割比例的图像。这个提示词会让图像中的主体或关键元素自动排列在画面的三分线交点上,从而实现更加和谐的视觉效果。无论是风景、人像还是建筑等场景,通过这个提示词可以让画面更具美感,符合人类自然的视觉习惯。因此,建议在创作中结合其他细节描述,例如“cinematic light”或“8k”,来进一步提升画面的整体质量和表现力。
    在这里插入图片描述

测试

原图:

serene forest, river flowing through mountains, vibrant autumn colors, sun setting, reflections on water, ultra detailed, cinematic light, 8k --ar 16:9
  • 在原图中,画面中的各个元素,比如河流、山脉和树木的布局显得相对自由、分散。虽然画面整体色彩和光影表现良好,但视觉重点不够明确,观众的视线可能会在画面中自由游走,缺少一个明显的视觉引导。
    在这里插入图片描述

原图+Rule of Thirds composition:

serene forest, river flowing through mountains, vibrant autumn colors, sun setting, reflections on water, Rule of Thirds composition, ultra detailed, cinematic light, 8k --ar 16:9
  • 当加入三分线构图后,画面中主要的视觉元素被精确地放置在三分线的交点或线上。例如,河流的流向和树木的排列都显得更加有序,视觉重心更加清晰。观众的视线自然而然地被引导到画面中的重点区域,从而增加了画面的平衡感与和谐美。
    在这里插入图片描述

💯小结

  • 在这里插入图片描述
    在本文中,我们详细介绍了三分线构图(也称为黄金分割构图)的原理、特点以及实际应用。通过将画面分为九等份,并将主体或重要元素放置在这些分割线或交点上,可以大幅提升图像的平衡感和美感。三分线构图广泛应用于风景、人像和建筑等场景中,能够自然引导观众的视线,增强画面的视觉效果。同时,在使用AI绘画工具如Midjourney时,结合“Rule of Thirds composition”这样的提示词,可以自动优化图像的构图效果,使作品更加符合人类的审美习惯。通过本文的解析和示例,读者可以更深入地理解这一构图技巧,进而在创作中灵活应用,提升作品的表现力。
  • 展望AI绘画的未来,随着技术的不断进步,AI绘画不仅在技术层面上将愈发成熟,还将在艺术创作中扮演更重要的角色。三分线构图等经典构图技巧的引入,让AI工具如Midjourney不仅能够生成视觉效果出色的作品,还能够遵循艺术创作中的美学法则,帮助创作者精准表达情感和思想。

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.rhkb.cn/news/445664.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

D35【python 接口自动化学习】- python基础之输入输出与文件操作

day35 文件合并 学习日期:20241012 学习目标:输入输出与文件操作﹣-47 如何使用python合并多个文件? 学习笔记: 合并文件需求分析 合并两个文件 代码实现 # 合并两个文件 with open(demo1.txt) as f1:file_data_1f…

Django学习笔记之Django基础学习

Django笔记 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录…

Solidity基础语法

Solidity的在线编辑器:https://remix.ethereum.org/ 一、合约结构 1、SPDX许可标识:指定代码的开源许可 2、pragma指令:声明Solidity版本 3、导入语句:引入其他合约或库 4、合约声明:使用contract关键字 5、状态变量&…

C#自定义特性

特性的用处 一般用来影响某一个类的个别字段或者方法 定义特性 需要将类继承Attribute 可以通过构造函数的方式影响使用特性的方法 可以通过给自定义的特性通过加AttributeUsage特性的方法进行进一步管理 AttributeUsage特性默认传三个参数 第一个参数一般用来约束此自定义…

黑马程序员 javaWeb基础学习,精细点复习【持续更新】

文章目录 WEB开发一、HTML1.html介绍 二、CSS1.CSS介绍2.CSS导入方式3.CSS选择器4.CSS属性 三、JavaScript1.介绍2.浏览器3.js的三种输出方式4.js定义变量5.js数据类型6.js运算符7.全局函数8.函数定义9.js数组对象10.js正则对象11.字符串对象12.自定义对象13.BOM浏览器对象模型…

电脑无线网wifi和有线网同时使用(内网+外网同时使用)

一、要求 我这里以无线网wifi为外网,有线网卡为内网为例: 一、基本信息 无线wifi(外网):ip是192.168.179.235,网关是192.168.179.95有线网(内网):ip是192.168.10.25&…

系统思考与业务创新工作坊

圆满结束两天的新华三《系统思考与业务创新工作坊》项目!在这次工作坊中,我们不仅深入探讨了如何通过系统思维看清复杂的业务全貌,还一起探索了创新背后的逻辑与突破口。 系统思考不是一时的灵感,而是一种持久的思维模式&#xff…

折叠翼弹射无人机产品技术详解

折叠翼无人飞行器系统采用储存、运输、发射一体化设计,飞行器平台可以折叠入筒,采用筒式气体弹射方式发射,其搭载可见光/红外双光载荷与战斗部,可以对敌方中大型坦克、装甲或防御工事进行打击。产品技术详解如下: 一、…

无人机之视觉技术篇

一、视觉传感器的类型 摄像头: 最常见的视觉传感器,能够捕捉可见光图像和视频。 通过单目、双目或多目摄像头的组合,无人机能够实现立体视觉,从而估算距离、深度,并进行物体识别和追踪。 红外传感器: …

推荐几本编程入门书目

对于编程入门,推荐以下几本书籍,这些书籍覆盖了不同的编程语言,适合零基础的学习者逐步掌握编程基础: 1. 《Python编程快速上手——让繁琐工作自动化》 特点:以简单易懂的方式介绍了Python的基础知识和编程概念&#…

UE5 使用Animation Budget Allocator优化角色动画性能

Animation Budget Allocator是UE内置插件,通过锁定动画系统所占CPU的预算,在到达预算计算量时对动画进行限制与优化。 开启Animation Budget Allocator需要让蒙皮Mesh使用特定的组件,并进行一些编辑器设置即可开启。 1.开启Animation Budget…

智慧油田智能安全管控方案-AI助力油气田安全管控升级

在科技日新月异的今天,万物纵横科技凭借其前沿的智慧油田智能安全管控方案,正引领着油气田行业向智能化、高效化转型。该方案深度融合了AI视频智能分析与AIoT(物联网人工智能)技术,为采油场、油气场的设备运维、环境监…

记录使用appium+夜神模拟器测试多设备时selenium和appium版本不兼容带来的问题

记录使用appium夜神模拟器测试多设备时selenium和appium版本不兼容带来的问题 好不容易解决了selenium和appium的版本冲突问题(导致:AttributeError: ‘NoneType’ object has no attribute to_capabilities’异常发生) 第二天运行代码发现…

腾讯云Android 与 iOS 相关

移动端(Android/iOS)支持哪几种系统音量模式? 支持2种系统音量类型,即通话音量类型和媒体音量类型: 通话音量:手机专门为通话场景设计的音量类型,使用手机自带的回声抵消功能,音质…

2024免费mac苹果电脑清理垃圾软件CleanMyMac X4.15.8

对于苹果电脑用户来说,设备上积累的垃圾文件可能会导致存储空间变得紧张,影响电脑的性能和使用体验。尤其是那些经常下载和安装新应用、编辑视频或处理大量照片的用户,更容易感受到存储空间的压力。面对这种情况,寻找一种有效的苹…

【自动驾驶】控制算法(十二)横纵向综合控制 | 从理论到实战全面解析

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

MPA-SVM多变量回归预测|海洋捕食者优化算法-支持向量机|Matalb

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

R语言从多波段tif数据中逐个提取单波段数据

在遥感和地理信息系统(GIS)领域,将多个波段存储在一个文件中可以更有效地进行数据压缩和管理,减少了存储空间的需求。 在R语言中,处理多波段栅格数据通常涉及以下步骤: 读取数据:使用raster包中…

蓝桥杯模块三:蜂鸣器和继电器的基本控制

模块训练题目: 一、蜂鸣器电路图 1.电路图 2.电路分析 138译码器控制Y5,Y5控制Y5C,Y5C低电平控制芯片开启P0口控制ULN2003继而控制蜂鸣器端口和继电器端口 二、程序代码 1.138译码器控制端口函数 建立初始化函数选择锁存器 2.实现题目功能 在LED代…

信号量(Semaphore)是什么,如何使用?

信号量(Semaphore)是 Java java.util.concurrent 包中的一种同步辅助类,用于控制对共享资源的访问。在并发编程中,信号量常用于限制同时访问特定资源的线程数量,避免过多线程同时访问可能导致的资源竞争或性能下降。 …