【转载】手把手教你用 “三步法” 快速实现 4K+ 超高分辨率满细节出图

手把手教你用 “三步法” 快速实现 4K+ 超高分辨率满细节出图

https://ngabbs.com/read.php?tid=35888357&rand=488

准备工作

  • 如果你的显存不足以直出你期望的最终分辨率,请先按照你习惯的方式安装 切片扩展;
  • 选择一个合适的放大算法,这里我选择的是 4x-UltraSharp,下载以后将PTH文件放在 .\models\ESRGAN\ 目录下;
  • 重新启动SDWebUI,在Settings- Upscaling 页面中,将 Upscaler For img2img 设置为你喜欢的放大算法,这里我设置为4x-UltraSharp;

第一步 出草图

  • 在不超过 768x768 分辨率的范围内,选择你习惯的方式批量出草图,我一般使用 768x576 分辨率;
  • 挑选整体构图和画面元素基本符合你预期的某一张草图,这个时候细节不重要;

第二步 细节修缮

  • 将你挑出的草图拖入 PNG Info 页面,点击右侧的 Send to img2img 按钮;
  • 在图生图页面中,将目标分辨率设置为你的显存可以直出的最大分辨率,建议最少为草图的两倍左右,此时请不要启用切片功能;
  • 将采样方法设置为 DPM++ SDE Karras,迭代步数设置为 40 或者更高,重绘幅度设置为 0.35-0.45,随机种子重置为 -1,出图;
  • 你将得到一张细节完善的清晰的大图,如果不满意,可以重复这个过程,直到得到一张基本满意的大图;
  • 在大图的基础上使用局部重绘或者其他你习惯的方式修改和完善各种细节,直至定稿;

第三步 出成品图

  • 将大图拖入 PNG Info 页面,点击右侧的 Send to img2img 按钮;
  • 在图生图页面中,启用 Tiled Diffusion 功能,设置 Upscaler 为 4x-UltraSharp,Scale Factor 设置为你期望的倍率,比如希望从 1536x1152 放大到 4k 分辨率,就设置为 2.5倍;
  • 在图生图页面中,启用 Tiled VAE 功能,禁用 Fast Encoder 、Fast Decoder 功能 ;
  • 移除包含特定含义的 Prompt,比如发色、道具、动作等,如果你拿不准哪些需要移除,可以只保留 masterpiece, best quality 之类的画质描述词汇;
  • 将采样方法设置为 DPM++ SDE Karras,迭代步数设置为 40 或者更高,重绘幅度设置为 0.10-0.20,随机种子重置为 -1,出图;

常见问题

  • 请问真人用哪个放大算法效果好一些呢

除了主楼推荐的 4x-UltraSharp 外,也可以试试 SDWebUI 内置的 SwinIR_4x、R-ESRGAN 4x+、R-ESRGAN 4x+ Anime6B

一般认为 R-ESRGAN 4x+、4x-UltraSharp 是较为通用的放大算法,SwinIR_4x、R-ESRGAN 4x+ Anime6B 更适用于 2D 动漫风格图像的放大

  • 在使用第二步中的方法与使用文生图中的高清修复有什么区别呢

使用图生图的更为稳定,可以在基本保证画面元素与构图不发生重大变化的同时完善细节;
使用高清修复随机性较强,可能与草稿产生显著的画面结构或画面元素的变化;
所以如果你对草稿已经比较满意了,使用文中的方法得到的效果更接近于“放大”;

  • 为什么要放大两次,不能直接一次搞定吗

三步法的基本逻辑是将 “确定构图” -> “细节调整” -> “放大出图” 三个步骤分开进行
这么做的原因还是 SD 这套系统本身的限制 :

  • 第一步信息量太小(分辨率太低)很难进行细节调整;
  • 第三步的4K+下就算是4090也无法提供足够的算力来支撑反复尝试所需的出图效率;

所以通过在两者之间插入一个步骤给人工介入进行局部调节的机会,这其实也是无奈之举;
相信随着系统的进一步改善和显卡算力的进一步提升,如果文生图直出1920分辨率时依然能保证画面的正确,并且速度跟现在的768分辨率相近,那自然不用这么麻烦了;
目前来说,如果你不准备在第二步人工介入进行细节的调整,那确实可以在第二步直接生成大分辨率成品图,省略第三步;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要用Pytorch手写一个Transformer模型,可以按照以下步骤进行: 1. 导入所需的库和模块,包括torch、torch.nn、torch.nn.functional以及Transformer模型所需的子模块如EncoderLayer和DecoderLayer。 2. 定义Transformer模型的编码器部分。编码器由多个EncoderLayer组成,每个EncoderLayer包含自注意力机制(Self-Attention)、前馈神经网络和残差连接。 3. 定义Transformer模型的解码器部分。解码器也由多个DecoderLayer组成,每个DecoderLayer包含自注意力机制、编码器-解码器注意力机制和前馈神经网络。 4. 定义Transformer模型本身。它包含编码器和解码器,以及最后的线性层用于生成输出。 5. 实现模型的前向传播函数。在前向传播函数中,输入数据将分别经过编码器和解码器,并返回最后的输出。 6. 初始化模型并定义损失函数和优化器。 7. 定义训练循环。在每个训练迭代中,将输入数据传递给模型进行前向传播,计算损失值,并进行反向传播和参数更新。 8. 进行模型训练。根据实际情况,可以调整参数、训练数据和训练次数等。 请注意,以上步骤是一个大致的框架,具体的实现细节可能会有所不同。可以参考引用中提到的huggingface提供的transformer模型代码,以及Transformer模型的论文《Attention is All You Need》来进行更详细的实现。 huggingface官方文档: [link] Transformer模型图: [link]<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [手把手教你用Pytorch代码实现Transformer模型(详细的代码解读)](https://blog.csdn.net/qq_43827595/article/details/120394042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值