驾驭AI绘画:《AI魔法绘画》带你秒变顶级画手!

2024-02-10 13:40

本文主要是介绍驾驭AI绘画:《AI魔法绘画》带你秒变顶级画手!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法行业就业。希望和大家一起成长进步。

  今天给大家带来的文章是驾驭AI绘画:《AI魔法绘画》带你秒变顶级画手!,希望能对学习AI绘画的同学们有所帮助。

文章目录

  • 1. 前言
  • 2. 书籍推荐《AI魔法绘画:用Stable Diffusion挑战无限可能》
  • 3. 粉丝福利
  • 4. 自主购买

1. 前言

同学们,抖音买家秀中的那些极具设计感的作品是怎么来的?

你还在羡慕别人的绘画天赋,对着空白的画纸发呆吗?

有没有想过将生硬的代码和灵动的艺术完美融合?

有没有感到现代技术带来了戏剧性改变,从替代马车的汽车,到取代传统影像的数字摄影,再到今天的AI美术创作?

是的,“AI绘画”,它来了。

AI绘画,如雷贯耳,无处不在。

曾几何时,人们认为艺术需要人工创作,需要才情与灵感的瞬间迸发。

然而,技术的高速发展,打破了这种观念,AI绘画正在逐渐崭露头角,成为新的画坛巨擘。

但聊一聊看似高大上的AI技术可能让你觉得高不可攀。那就跟我一起,用Stable Diffusion挑战无限可能,一窥AI绘画的花花世界!


  Stable Diffusion WebUI 中的核心组件,人脸图像面部画面修复模型 CodeFormer的核心代码如下所示:

import math
import torch
from torch import nn, Tensor
import torch.nn.functional as F
from typing import Optionalfrom modules.codeformer.vqgan_arch import VQAutoEncoder, ResBlock
from basicsr.utils.registry import ARCH_REGISTRYclass CodeFormer(VQAutoEncoder):def __init__(self, dim_embd=512, n_head=8, n_layers=9,codebook_size=1024, latent_size=256,connect_list=('32', '64', '128', '256'),fix_modules=('quantize', 'generator')):super(CodeFormer, self).__init__(512, 64, [1, 2, 2, 4, 4, 8], 'nearest',2, [16], codebook_size)if fix_modules is not None:for module in fix_modules:for param in getattr(self, module).parameters():param.requires_grad = Falseself.connect_list = connect_listself.n_layers = n_layersself.dim_embd = dim_embdself.dim_mlp = dim_embd*2self.position_emb = nn.Parameter(torch.zeros(latent_size, self.dim_embd))self.feat_emb = nn.Linear(256, self.dim_embd)# transformerself.ft_layers = nn.Sequential(*[TransformerSALayer(embed_dim=dim_embd, nhead=n_head, dim_mlp=self.dim_mlp, dropout=0.0)for _ in range(self.n_layers)])# logits_predict headself.idx_pred_layer = nn.Sequential(nn.LayerNorm(dim_embd),nn.Linear(dim_embd, codebook_size, bias=False))self.channels = {'16': 512,'32': 256,'64': 256,'128': 128,'256': 128,'512': 64,}# after second residual block for > 16, before attn layer for ==16self.fuse_encoder_block = {'512':2, '256':5, '128':8, '64':11, '32':14, '16':18}# after first residual block for > 16, before attn layer for ==16self.fuse_generator_block = {'16':6, '32': 9, '64':12, '128':15, '256':18, '512':21}# fuse_convs_dictself.fuse_convs_dict = nn.ModuleDict()for f_size in self.connect_list:in_ch = self.channels[f_size]self.fuse_convs_dict[f_size] = Fuse_sft_block(in_ch, in_ch)def _init_weights(self, module):if isinstance(module, (nn.Linear, nn.Embedding)):module.weight.data.normal_(mean=0.0, std=0.02)if isinstance(module, nn.Linear) and module.bias is not None:module.bias.data.zero_()elif isinstance(module, nn.LayerNorm):module.bias.data.zero_()module.weight.data.fill_(1.0)def forward(self, x, w=0, detach_16=True, code_only=False, adain=False):# ################### Encoder #####################enc_feat_dict = {}out_list = [self.fuse_encoder_block[f_size] for f_size in self.connect_list]for i, block in enumerate(self.encoder.blocks):x = block(x)if i in out_list:enc_feat_dict[str(x.shape[-1])] = x.clone()lq_feat = x# ################# Transformer #################### quant_feat, codebook_loss, quant_stats = self.quantize(lq_feat)pos_emb = self.position_emb.unsqueeze(1).repeat(1,x.shape[0],1)# BCHW -> BC(HW) -> (HW)BCfeat_emb = self.feat_emb(lq_feat.flatten(2).permute(2,0,1))query_emb = feat_emb# Transformer encoderfor layer in self.ft_layers:query_emb = layer(query_emb, query_pos=pos_emb)# output logitslogits = self.idx_pred_layer(query_emb) # (hw)bnlogits = logits.permute(1,0,2) # (hw)bn -> b(hw)nif code_only: # for training stage II# logits doesn't need softmax before cross_entropy lossreturn logits, lq_feat# ################# Quantization #################### if self.training:#     quant_feat = torch.einsum('btn,nc->btc', [soft_one_hot, self.quantize.embedding.weight])#     # b(hw)c -> bc(hw) -> bchw#     quant_feat = quant_feat.permute(0,2,1).view(lq_feat.shape)# ------------soft_one_hot = F.softmax(logits, dim=2)_, top_idx = torch.topk(soft_one_hot, 1, dim=2)quant_feat = self.quantize.get_codebook_feat(top_idx, shape=[x.shape[0],16,16,256])# preserve gradients# quant_feat = lq_feat + (quant_feat - lq_feat).detach()if detach_16:quant_feat = quant_feat.detach() # for training stage IIIif adain:quant_feat = adaptive_instance_normalization(quant_feat, lq_feat)# ################## Generator ####################x = quant_featfuse_list = [self.fuse_generator_block[f_size] for f_size in self.connect_list]for i, block in enumerate(self.generator.blocks):x = block(x)if i in fuse_list: # fuse after i-th blockf_size = str(x.shape[-1])if w>0:x = self.fuse_convs_dict[f_size](enc_feat_dict[f_size].detach(), x, w)out = x# logits doesn't need softmax before cross_entropy lossreturn out, logits, lq_feat

2. 书籍推荐《AI魔法绘画:用Stable Diffusion挑战无限可能》

俗话说,知识就是力量,掌握AI绘画技术,你不仅可以创造出令人眼花缭乱的艺术作品,还可能在众多同行中脱颖而出,走上职业生涯的新高峰。

看看那些因为AI的到来,开始大规模裁员的公司,你是否意识到了自己该学习AI绘画的重要性?答案是明显的。掌握潮流,主宰未来,你准备好了吗?

这里,向大家强烈推荐一本书——《AI魔法绘画:用Stable Diffusion挑战无限可能》

它是一本以实际操作为导向的入门级AI绘画图书。

书中详细讲解了基于Stable Diffusion进行AI绘画的完整学习路线,包括绘画技巧、图片生成、提示词编写、ControlNet插件、模型训练等等。

如果你是零基础,无须恐惧,书中涵盖了丰富的实际操作案例,易懂易学,轻松入门。

如果你已经步入职场,那么这本书中的丰富技术内容,绝对能让你大有收获。

重要的是,本书的内容超级全面。无论是始于入门的基础理论知识,还是No-Code模型训练必备的ControlNet插件的详解,甚至是AI绘画全流程的操作教程,本书一应俱全,让你提前预知并掌握AI绘画的全貌,将你从菜鸟级别提升至大师级

此外,**书中包括了一些非常实用的商业设计案例,**如家具效果图、AI插画与插图、AI宠物、原创IP角色、自媒体运营等,这将为你的创新设计思路添砖加瓦!

……

资源丰富,内容详细,各章节知识体系完备,示例形象生动,操作步骤清晰明了,还有读者交流群可与作者互动,本书简直是你学习AI绘画的绝佳教程!

朋友们,生活永远充满无限可能。

但是,如果你想把握未来的潮流,扬帆起航,那么记得装备自己,勇往直前。

快来!开始你的AI绘画之旅,与我一起,**用《AI魔法绘画,用stable Diffusion挑战无限可能》探秘AI绘画的奥妙之处,**在不断迭代的技术驱动下,一起走进神奇的AI绘画世界,一起挑战无限可能吧!

3. 粉丝福利

  🎁本次送书1~3本【取决于阅读量,阅读量越多,送的越多】👈
  ⌛️活动时间:截止到2024-1月13号
  ✳️参与方式:关注博主+三连(点赞、收藏、评论)

4. 自主购买

  小伙伴也可以访问链接进行自主购买哦~

  直达京东购买链接🔗:购买地址《AI魔法绘画:用Stable Diffusion挑战无限可能》

这篇关于驾驭AI绘画:《AI魔法绘画》带你秒变顶级画手!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/697246

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close