公司网站一般用什么软件做,合肥万户网站建设,蛋糕网站案例,玉树wap网站建设大家好#xff0c;我是herosunly。985院校硕士毕业#xff0c;现担任算法研究员一职#xff0c;热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名#xff0c;CCF比赛第二名#xff0c;科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的… 大家好我是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_embd512, n_head8, n_layers9,codebook_size1024, latent_size256,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_dimdim_embd, nheadn_head, dim_mlpself.dim_mlp, dropout0.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, biasFalse))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_(mean0.0, std0.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, w0, detach_16True, code_onlyFalse, adainFalse):# ################### 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_pospos_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 doesnt 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, dim2)_, top_idx torch.topk(soft_one_hot, 1, dim2)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 w0:x self.fuse_convs_dict[f_size](enc_feat_dict[f_size].detach(), x, w)out x# logits doesnt need softmax before cross_entropy lossreturn out, logits, lq_feat2. 书籍推荐《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挑战无限可能》