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

做网站需要什么设备受欢迎的模板网站建设

做网站需要什么设备,受欢迎的模板网站建设,济南手机网站建设公司排名,网站报名怎么做文章目录 Stable Diffusion安装AnimateDiff插件适配sdxl模型适配 Stable Diffusion使用插件安装界面设置基础文生图加入lora的文生图 Stable Diffusion安装 我的情况比较特殊#xff0c;显卡版本太老#xff0c;最高也就支持cuda10.2#xff0c;因此只能安装pytorch1.12.1显卡版本太老最高也就支持cuda10.2因此只能安装pytorch1.12.1并且无法安装xformers。 在安装好虚拟环境和对应pytorch版本后按照github教程安装stable diffusion webui即可在webui.sh中将use_venv1 (默认) 修改为use_venv0以在当前激活的虚拟环境中运行webui然后执行bash webus.sh安装相关依赖。 针对显卡使用情况可在webui-user.sh中设置可见显卡export CUDA_VISIBLE_DEVICES0,1,2并在执行webui.py时在命令行中通过--device-id1指定具体的使用设备。 为了使用最新的模型和插件需要做出以下适配: AnimateDiff插件适配 该插件的原理是在调用和完成时分别向原始模型中注入inject和删除restore时间步模块从而生成连续变化的GIF由于整体版本过老直接执行该插件会报没有insert和pop方法的错误因此需要在animatediff_mm.py文件中手动实现这两个函数需要注意insert和pop的操作和通常理解不一样 def inject(self, sd_model, model_namemm_sd_v15.ckpt):unet sd_model.model.diffusion_modelself._load(model_name)self.gn32_original_forward GroupNorm32.forwardgn32_original_forward self.gn32_original_forward# self.tes_original_forward TimestepEmbedSequential.forward# def mm_tes_forward(self, x, emb, contextNone):# for layer in self:# if isinstance(layer, TimestepBlock):# x layer(x, emb)# elif isinstance(layer, (SpatialTransformer, VanillaTemporalModule)):# x layer(x, context)# else:# x layer(x)# return x# TimestepEmbedSequential.forward mm_tes_forwardif self.mm.using_v2:logger.info(fInjecting motion module {model_name} into SD1.5 UNet middle block.)# unet.middle_block.insert(-1, self.mm.mid_block.motion_modules[0])# unet.middle_block.add_module(new_module, self.mm.mid_block.motion_modules[0])# unet.middle_block.appendself.mm.mid_block.motion_modules[0])unet.middle_block unet.middle_block[0:-1].append(self.mm.mid_block.motion_modules[0]).append(unet.middle_block[-1])# n len(unet.middle_block._modules)# index -1# if index 0:# index n# for i in range(n, index, -1):# unet.middle_block._modules[str(i)] unet.middle_block._modules[str(i - 1)]# unet.middle_block._modules[str(index)] unet.middle_blockelse:logger.info(fHacking GroupNorm32 forward function.)def groupnorm32_mm_forward(self, x):x rearrange(x, (b f) c h w - b c f h w, b2)x gn32_original_forward(self, x)x rearrange(x, b c f h w - (b f) c h w, b2)return xGroupNorm32.forward groupnorm32_mm_forwardlogger.info(fInjecting motion module {model_name} into SD1.5 UNet input blocks.)for mm_idx, unet_idx in enumerate([1, 2, 4, 5, 7, 8, 10, 11]):mm_idx0, mm_idx1 mm_idx // 2, mm_idx % 2unet.input_blocks[unet_idx].append(self.mm.down_blocks[mm_idx0].motion_modules[mm_idx1])logger.info(fInjecting motion module {model_name} into SD1.5 UNet output blocks.)for unet_idx in range(12):mm_idx0, mm_idx1 unet_idx // 3, unet_idx % 3if unet_idx % 3 2 and unet_idx ! 11:# unet.output_blocks[unet_idx].insert(# -1, self.mm.up_blocks[mm_idx0].motion_modules[mm_idx1]# )# unet.output_blocks[unet_idx].add_module(new_module, self.mm.up_blocks[mm_idx0].motion_modules[mm_idx1])# unet.output_blocks[unet_idx].append(self.mm.up_blocks[mm_idx0].motion_modules[mm_idx1])unet.output_blocks[unet_idx] unet.output_blocks[unet_idx][0:-1].append(self.mm.up_blocks[mm_idx0].motion_modules[mm_idx1]).append(unet.output_blocks[unet_idx][-1])else:unet.output_blocks[unet_idx].append(self.mm.up_blocks[mm_idx0].motion_modules[mm_idx1])self._set_ddim_alpha(sd_model)self._set_layer_mapping(sd_model)logger.info(fInjection finished.)def restore(self, sd_model):self._restore_ddim_alpha(sd_model)unet sd_model.model.diffusion_modellogger.info(fRemoving motion module from SD1.5 UNet input blocks.)for unet_idx in [1, 2, 4, 5, 7, 8, 10, 11]:# unet.input_blocks[unet_idx].pop(-1)unet.input_blocks[unet_idx] unet.input_blocks[unet_idx][:-1]logger.info(fRemoving motion module from SD1.5 UNet output blocks.)for unet_idx in range(12):if unet_idx % 3 2 and unet_idx ! 11:# unet.output_blocks[unet_idx].pop(-2)unet.output_blocks[unet_idx] unet.output_blocks[unet_idx][:-2].append(unet.output_blocks[unet_idx][-1])else:# unet.output_blocks[unet_idx].pop(-1)unet.output_blocks[unet_idx] unet.output_blocks[unet_idx][:-1]if self.mm.using_v2:logger.info(fRemoving motion module from SD1.5 UNet middle block.)# unet.middle_block.pop(-2)unet.middle_block unet.middle_block[:-2].append(unet.middle_block[-1])else:logger.info(fRestoring GroupNorm32 forward function.)GroupNorm32.forward self.gn32_original_forward# TimestepEmbedSequential.forward self.tes_original_forwardlogger.info(fRemoval finished.)if shared.cmd_opts.lowvram:self.unload()sdxl模型适配 在选择sdxl模型时会收到如下报错 AssertionError: We do not support vanilla attention in 1.12.1cu102 anymore, as it is too expensive. Please install xformers via e.g. pip install xformers0.0.16然后就会自动下载模型但由于hugging face的连接问题会报这种错误 requests.exceptions.ConnectTimeout: (MaxRetryError(HTTPSConnectionPool(hosthuggingface.co, port443): Max retries exceeded with url: /laion/CLIP-ViT-bigG-14-laion2B-39B-b160k/resolve/main/open_clip_pytorch_model.bin (Caused by ConnectTimeoutError(urllib3.connection.HTTPSConnection object at 0x7fc89a4438b0, Connection to huggingface.co timed out. (connect timeout10)))), (Request ID: 9f90780e-6ae0-4531-83df-2f5052c4a1a3))这时就需要把所有下不了的模型下载到本地然后把代码里的version由模型名称改成模型路径例如将repositories/generative-models/configs/inference/sd_xl_base.yaml中的version: laion2b_s39b_b160k改成本地的/models/hugfac/CLIP-ViT-bigG-14-laion2B-39B-b160k/open_clip_pytorch_model.bin 但到这里还没完为了能正常运行需要在代码里把对于xformer的检查相关Assert部分注释掉并重新实现repositories/generative-models/sgm/modules/diffusionmodules/model.py中的attention函数 def attention(self, h_: torch.Tensor) - torch.Tensor:h_ self.norm(h_)q self.q(h_)k self.k(h_)v self.v(h_)# compute attentionB, C, H, W q.shapeq, k, v map(lambda x: rearrange(x, b c h w - b (h w) c), (q, k, v))q, k, v map(lambda t: t.unsqueeze(3).reshape(B, t.shape[1], 1, C).permute(0, 2, 1, 3).reshape(B * 1, t.shape[1], C).contiguous(),(q, k, v),)# out xformers.ops.memory_efficient_attention(# q, k, v, attn_biasNone, opself.attention_op# )k k / (k.shape[-1] ** 0.5)attn torch.matmul(q, k.transpose(-2, -1))attn torch.softmax(attn, dim-1)out torch.matmul(attn, v)out (out.unsqueeze(0).reshape(B, 1, out.shape[1], C).permute(0, 2, 1, 3).reshape(B, out.shape[1], C))return rearrange(out, b (h w) c - b c h w, bB, hH, wW, cC)Stable Diffusion使用 插件安装 点击扩展→可用→简单粗暴按星数排序 如果github无法访问可以复制链接后前面加上https://ghproxy.com/从网址安装 最终安装的部分插件如下注意需要手动把插件模型下载到对应路径下才能使用 界面设置 在设置→用户界面中对快捷设置和UItab做修改 点击右上角设置kitchen插件主题 最终效果如下 基础文生图 首先在模型左侧选择Stable Diffusion模型及其对应VAE然后输入正向和反向提示词在下面点击生成相关设置如采样方法、采样迭代次数和宽高等。 需要注意的几点 Clip跳过层设置CLIP 是用来给提示词编码的神经网络默认是使用模型最后一层的输出作为提示词的嵌入表示将其设为2就可以使用模型倒数第二层的输出作为嵌入表示。增加这一参数时可以更好地保留提示中的信息生成与提示更匹配的图片但设置的值过大也会影响编码的准确性。该参数仅适用于使用CLIP的模型即1.x模型及其派生物。2.0模型及其派生物不与CLIP交互因为它们使用OpenCLIP。将交叉关注层向上转型到float32设置遇到NAN报错或者花屏图片时可以试试。图片大小设置对于SDXL模型为了保证生成质量图片至少为1024x1024 16:9电影摄影1820x10243:2专业摄影1536x10244:3普通图片1365x1024 采样方法对SDXL 1.0来说建议使用任何DPM采样器特别是带有Karras采样器的DPM。比如DPM 2M Karras或DPM 2S a Karras 生成示例如下 加入lora的文生图 lora是一类对模型进行微调的方法是一系列参数量较小的模型在与原始模型结合后可以对生成图片做特定修饰可以理解为化妆技术。 lora的使用方法是将模型下载到models/Lora文件夹下注意最好分文件夹存放方便调用和管理 对应的前端界面如下 使用方法很简单在输入提示词后直接点击lora模型就会自动添加到输入末尾
http://www.hkea.cn/news/14435600/

相关文章:

  • 怎么给网站搭建后台app应用网站html5模板
  • 网站在哪里搜索wordpress 前台多余代码
  • 万网域名管理网站右翼网站
  • 国学大师网站是哪里做的网站下载的网页修改下面版权所有
  • 网站开发图片加载过慢如何优化xampp 查看wordpress模板
  • 合肥网站建设公司加盟代理网页在线
  • 四川住房和城乡建设部网站官网房地产网站开发
  • 佛山用户网站建设建立网站要钱吗?
  • 优良网站it外包公司为什么不能去
  • 张家界网站制作公司重庆专业网站开发服务
  • 深圳住房和建设局网站登录界面seo免费优化工具
  • 国外做免费的视频网站火车头wordpress发布模块制作
  • 泉州自助建站杭州专业的网站制作公司
  • 刚做的网站怎么在百度上能搜到网站服务器容量
  • 开发大型网站的最主流语言网站看不到预览图
  • 网站后台管理器怎么做响应式网站建设报价单
  • 建个普通网站多少钱wordpress会员vip插件
  • 青岛网站定制电商网站建设合同模板
  • 高端网站建设文案自学做网站可以吗
  • 北京高端定制网站建设专业企业网站制作怎么做
  • 快速搭建网站框架图电商网站搭建
  • 爱站网工具包网页教程网站
  • 苏州代做淘宝网站北京 顺义 网站制作
  • 把网站扒下来以后怎么做拓者网室内设计官网app
  • 坪山网站建设渠道广东新闻频道直播
  • 哪个网站能学做微商怎么制作自己的水印
  • 有哪些网站做的比较好看的WordPress注册不提示
  • 新一代 网站备案抓好门户网站建设
  • 网站建设与制作价格怎么看一个网站是谁做的
  • 摄影学习网站网站开发三大元素