黑龙江网站设计公司,国际网站建设工具,青岛高创网站建设,南充网站建设公司博客主页#xff1a; [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 #x1f4af;前言#x1f4af;什么是构图为什么Midjourney要使用构图 #x1f4af;三分线构图特点使用场景提示词书写技巧测试 #x1f4af;小结 #x1f4af;前言 【AI绘画】Midjourney进阶 [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 前言什么是构图为什么Midjourney要使用构图 三分线构图特点使用场景提示词书写技巧测试 小结 前言 【AI绘画】Midjourney进阶对称构图详解 https://blog.csdn.net/2201_75539691?typeblog
在上一篇文章中我们深入探讨了构图的定义以及学习构图的重要性。我们详细介绍了对称构图的概念、特点及其在Midjourney中的应用方式帮助大家理解如何通过对称性提升画面的平衡感和视觉冲击力。接下来本文将继续为大家介绍另一种常用且经典的构图技巧——三分线构图又称黄金分割构图。通过对这一构图法则的分析与应用示例希望能够帮助大家在AI绘画创作中更加精准地掌握构图技巧提升作品的美感与表现力。 Midjourney官方使用手册 什么是构图 构图是摄影、绘画、设计等视觉艺术中的一个基本概念。它指的是艺术家如何在二维平面上安排元素包括形状、线条、色彩、质地、空间等以达到一定的视觉效果和艺术表达。 为什么Midjourney要使用构图 简单来说Midjourney有构图词画面质量更高构图的目标是引导观众的视线突出主题增加视觉吸引I力以及传达艺术家的观点或情感。 在Midjourney中使用构图是非常重要的有两个方向可以解释其必要性非共性和共性。 从非共性的角度来看在Midjourney中使用构图相关的提示词可以显著提升生成画面的质量。这是因为Midjourney的模型在训练时不仅使用了图像还结合了与这些图像相关的提示词。通常来说这些图像来源于专业摄影或高质量渠道具有较高的视觉标准。当模型学习了这些图片与提示词之间的关联后用户在生成图像时如果使用了构图相关的提示词系统会优先选择类似图库中的优质素材从而生成更为精致的画面。因此通过使用构图提示词可以明显地提高生成图像的质量。 从共性的角度来说构图本身就是一种极为有效的手段可以用于引导观众的视线、突出画面的主题、增强视觉吸引力并传递创作者的情感和观点。构图所带来的这些视觉上的提升效果是不受具体工具限制的无论是在摄影、绘画还是AI生成图像中都是通用的。因此当在Midjourney中使用构图提示词时画面的质量提升几乎是必然的结果。这些道理或许听起来有些抽象但在实际操作和练习时大家会切实地感受到构图带来的效果提升。
三分线构图 三分线构图又被称为黄金分割构图是构图中最常用的一种构图法则。这种构图法则的基本原理是将画面分割为九等份由两条垂直线和两条水平线相交形成主体或重要元素放在这四条线或者交点上。 三分线构图也被称为黄金分割构图是一种非常常用的构图法则。如果你对摄影有一定了解可能会熟悉这个构图技巧。而对于刚开始接触摄影的人来说使用三分线构图可以显著提升照片的视觉效果。其基本原理是将画面分为九等份由两条垂直线和两条水平线交叉形成网格。画面的主体或重要元素通常放置在这四条线的交点上或者沿着这些线来进行布局。 特点 平衡感三分线构图可以使画面的视觉重心分布均匀使画面看上去更加稳定和平衡。 画面美感三分线构图符合人类的视觉习惯和审美规律能够使画面看上去更加和谐和美观。 三分线构图的第一个特点是平衡感。虽然不像对称构图那样完全均衡但它通过将画面分成三分之一和三分之二的比例使得视觉重心得到均匀分布从而让画面整体看上去更加稳定且具有平衡感。 第二个特点是画面美感。三分线构图符合人类的视觉习惯和审美规律能够让画面显得更加和谐、美观。即使没有设计背景的人也会因为这种构图形式的自然规律感受到画面的美感和愉悦感。 使用场景 在风景图片中通过使用三分线构图可以有效地表现出天空和地面的比例关系。 在人像图片中通过使用三分线构图可以使人物的位置和背景的比例更加协调。 在建筑图片和静物图中通过使用三分线构图可以使建筑或静物的位置和周围环境的关系更加和谐。 三分线构图在多种场景中都有着广泛的应用。在风景摄影中三分线构图能够很好地展现天空与地面之间的比例关系营造出更加和谐的视觉效果。 在人像摄影中通过三分线构图人物的位置与背景的比例能够更加协调使得整体画面更加平衡且富有美感。 除此之外在建筑摄影或静物摄影中三分线构图也非常实用。它能够巧妙地将建筑或静物与周围环境的关系表现得更加和谐。
无论是在光影对比上还是元素布局上这种构图都能使画面呈现出更加平衡的视觉效果。例如当一侧的元素较重时通过在另一侧放置主体人物可以瞬间让画面变得更为平衡。 提示词书写技巧
在书写与三分线构图相关的提示词时使用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(pretrainedTrue).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_size400, shapeNone): 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, shapecontent.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], lr0.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()