电子商业网站建设步骤哈尔滨百度seo公司

当前位置: 首页 > news >正文

电子商业网站建设步骤,哈尔滨百度seo公司,杭州专业网站设计策划,开发运营一个app要多少钱博客主页#xff1a; [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 #x1f4af;前言#x1f4af;什么是构图为什么Midjourney要使用构图 #x1f4af;对称构图特点使用场景提示词书写技巧测试 #x1f4af;小结 #x1f4af;前言 通常来学习AI绘画的人可以分为… 博客主页 [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 前言什么是构图为什么Midjourney要使用构图 对称构图特点使用场景提示词书写技巧测试 小结 前言 通常来学习AI绘画的人可以分为两种类型 第一类人群是那些完全没有接触过AI也对设计领域不熟悉的初学者。这些人可以通过一些捷径来快速进入设计的大门甚至开展一些实际的项目。然而这类人有一个较大的短板就是他们对设计基础知识的掌握较为欠缺——例如光影、色彩、构图甚至很多知名艺术家的风格特征。因此在学习过程中掌握这些领域的基本知识显得尤为重要以避免“不知道自己不知道”这些知识的情况。通过补充这些知识哪怕只是有一个大概的了解也可以帮助他们更好地开展实际工作。第二类人群则是已有设计经验的设计师他们对设计的各个方面都相当熟悉但可能需要学习如何将他们已有的设计知识与AI工具结合起来。这类人群的重点是将已有的设计能力扩展到AI辅助的创作中实现工具与专业知识的融合。 基于以上两类人群的需求本文的内容将会兼顾不同的学习需求。一方面介绍设计领域的基础知识为初学者提供坚实的学习基础另一方面讨论如何将AI技术与传统设计知识相结合为已有设计经验的人提供新的思路和实践方法。 Midjourney官方使用手册 什么是构图 构图是摄影、绘画、设计等视觉艺术中的一个基本概念。它指的是艺术家如何在二维平面上安排元素包括形状、线条、色彩、质地、空间等以达到一定的视觉效果和艺术表达。 为什么Midjourney要使用构图 简单来说Midjourney有构图词画面质量更高构图的目标是引导观众的视线突出主题增加视觉吸引I力以及传达艺术家的观点或情感。 在Midjourney中使用构图是非常重要的有两个方向可以解释其必要性非共性和共性。 从非共性的角度来看在Midjourney中使用构图相关的提示词可以显著提升生成画面的质量。这是因为Midjourney的模型在训练时不仅使用了图像还结合了与这些图像相关的提示词。通常来说这些图像来源于专业摄影或高质量渠道具有较高的视觉标准。当模型学习了这些图片与提示词之间的关联后用户在生成图像时如果使用了构图相关的提示词系统会优先选择类似图库中的优质素材从而生成更为精致的画面。因此通过使用构图提示词可以明显地提高生成图像的质量。 从共性的角度来说构图本身就是一种极为有效的手段可以用于引导观众的视线、突出画面的主题、增强视觉吸引力并传递创作者的情感和观点。构图所带来的这些视觉上的提升效果是不受具体工具限制的无论是在摄影、绘画还是AI生成图像中都是通用的。因此当在Midjourney中使用构图提示词时画面的质量提升几乎是必然的结果。这些道理或许听起来有些抽象但在实际操作和练习时大家会切实地感受到构图带来的效果提升。 对称构图 定义在一个画面中通过让两侧的元素在形状、色彩、质地等方面保持相同或相似的构图方式。 首先介绍的是对称构图这是一种非常常见且经典的构图方式。具体而言对称构图的形式是在画面中让上下或者左右两侧的元素在形状、色彩、质地等方面保持相同或相似。这种构图方式能够有效地营造出一种和谐、稳定的视觉效果使画面看起来更为均衡和整洁。 特点 平衡感对称构图的最大特点就是平衡感无论是左右对称还是上下对称都能给人一种稳定的视觉感受。特点视觉冲击力对称构图由于其形式的独特能够给人带来强烈的视觉冲击力特别是在对比鲜明的场景中对称构图的效果更加明显。对称构图简洁明快对称构图的另一个特点是简洁明快它的形式非常直观能够让观者快速抓住画面的主题。 首先是它强烈的平衡感。无论是左右对称还是上下对称对称构图都能够给人一种稳定的视觉感受。这种平衡感使得画面看起来非常和谐尤其是在建筑摄影中这种构图能够让建筑显得更加庄重而稳固给观众一种强烈的稳定感。 其次对称构图还具有很强的视觉冲击力。由于其形式上的独特对称的安排常常能够带来特别鲜明的视觉体验尤其是在对比度较为强烈的场景中这种效果会更加明显。当画面中不同元素之间形成对称时这种布局会显得格外引人注目使得观众对画面的印象更为深刻。 最后对称构图的另一个重要特点就是简洁明快。它的构图方式非常直观画面通常不包含过多复杂的元素观众的视线可以很自然地从画面中心开始逐渐扩展到两侧。这种简洁的安排方式使得观众能够迅速抓住画面的主题不会被多余的信息分散注意力。 使用场景 建筑图中通过使用对称构图可以表现出建筑的规整和魅力。人像图中通过使用对称构图可以突出人物的特点和气质。风景图中通过使用对称构图可以展现出自然的和谐和美感。 首先在建筑摄影中对称构图能够很好地表现建筑的规整与魅力。通过让建筑的左右或上下部分对称画面看起来井然有序这种构图方式可以极大地突显建筑本身的设计精妙与宏伟感。 其次在人像摄影中对称构图则能突出人物的特质与气质。通过将人物居于画面的对称中心能够很直接地吸引观众的目光展现出人物的特点。此外如果配合合适的色调与光影效果还可以进一步增强人物的情绪表达尽管在这里我们更强调对称性带来的整体风格的突出效果。 最后在风景摄影中对称构图非常适合用于展现自然的和谐美感。对称的构图方式能够将自然景物的平衡与宁静之美传递给观众尤其是在空旷的景象中这种构图可以有效地表达出那种空寂辽远的感觉令人感受到大自然的广阔与宁静。 提示词书写技巧 在书写对称构图的提示词时使用“Symmetrical Composition”可以有效帮助Midjourney生成具有对称性的画面营造平衡感与和谐美。这一提示词非常适合用于建筑、人像和风景等场景能够让生成的图像呈现出强烈的稳定性与视觉冲击力。建议结合其他描述性词语如“cinematic light”或“8k”以进一步提升图像的整体质量与表现力。 测试 原图 landscape, mountains, river, trees, cinematic light, ultra details, 8k –ar 16:9在未加入“Symmetrical Composition”的原图中画面的元素呈自然分布风景中的山川、河流、树木以一种随机且自然的方式展现虽然整体光影效果优美但在视觉上显得稍微不那么统一缺乏明确的焦点给人一种随性的感觉。
原图Symmetrical Composition landscape, mountains, river, trees, Symmetrical Composition, cinematic light, ultra details, 8k –ar 16:9在加入了“Symmetrical Composition”提示词后画面结构明显更为平衡。山川和河流的布局对称分布整幅画面呈现出一种强烈的对称美感使得观众的视线可以被清晰地引导至画面的中心位置。对称的构图带来了明显的秩序感和稳定感使得画面显得更为和谐和庄重提升了整体的视觉吸引力。 小结 学习AI绘画的过程中不同背景的学习者会面临独特的需求。初学者需要补充设计基础尤其是光影、色彩和构图等方面的知识而设计师则需探索将已有经验与AI技术结合提升创作效果。构图在Midjourney中的重要性体现在它不仅能够提升图像的整体质量还能更有效地引导观众的视线增加画面的平衡感与视觉吸引力。使用“Symmetrical Composition”这样的构图提示词能显著增强图像的秩序和稳定性使其更加和谐和有表现力。这种技巧在建筑、人像和风景等场景中尤为适用能为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(pretrainedTrue).features; for param in self.vgg.parameters(): param.requiresgrad(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().requiresgrad(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()