Stable Diffusion教程|图生图原理和实战

news2024/11/16 22:28:02

Stable Diffusion凭借其卓越的图生图功能,极大地提升了图像生成的可控性与输出品质,赋予用户前所未有的个性化创作风格表达能力。这一革新特性使得Stable Diffusion不仅能精准地捕捉用户的艺术愿景,更能以数字化手段孕育出新颖且极具创意的画作。本篇教程将深入剖析图生图的原理,聚焦于Stable Diffusion的图生图AI绘画技巧,助力您在创作独特数字艺术作品时拓宽灵感源泉,精进技艺。

- 一、图生图原理

1. 扩散模型

      Stable    Diffusion的核心是基于扩散模型的框架。扩散模型是一种深度学习模型,它模仿物理过程中的分子扩散现象,将图像从纯噪声逐渐演化为清晰图像。这个过程分为两个相反的阶段:扩散(增加噪声)和逆扩散(去除噪声并恢复结构)。在图生图场景中,逆扩散阶段被用来根据用户提供的输入图片和提示词,逐步生成目标图像。

2. 条件输入

      不同于纯粹的文生图,图生图不仅接受文字提示,还接受一张源图片作为额外条件。源图片的信息被编码为隐空间中的向量表示,与文字提示共同作为逆扩散过程的起点。模型在更新图像状态时,既参考了源图片的结构特征,又受到文字提示的语义指导,从而生成与源图相关联且符合提示要求的新图像。

3. 提示词与反向提示词

      提示词是用户为指导生成过程提供的关键词或短语,它们描述了期望的风格、氛围、元素或主题。反向提示词则用于指定不希望出现在生成结果中的内容。两者结合使用,能够更精确地约束模型的生成行为,确保输出图像既包含了期望的变化,又避免了不必要的元素。

二、图生图实战

1. 准备工作

      安装Stable Diffusion环境和相关插件。
      前几篇已讲过了,还没学习的同学,请到文章末尾查看往期教程,进行学习。
      SD Web UI 切换到图生图界面:    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d5494c708f5b480cbb6f2a9a6c6a3b60.png)
      图生图功能的主要特点:
      1、基于原始图像作为参照,生成新图像时确保关键的视觉样式与布局得以忠实保留。
      2、运用文本指令,精准指引图像生成的个性化路径,涵盖风格重塑、细节强化等多元需求。
      3、运用分布渲染技术递进式提升与细化图像品质,步步雕琢至理想状态。
      4、借力于原图固有的视觉元素,显著提升生成图像的契合度与可控性,确保结果贴合预期。
      5、轻松驾驭多种艺术流派的模拟演绎,只需借助精准的文字描述即可实现风格的无缝切换。
      6、具备高效批处理能力,可一次性自动化处理大量图片,无缝完成整体优化与定制化修正。

2. 重要参数

      step1 选择一个写实的大模型,再上传源图片:选择一张清晰、主题明确的源图片作为改造基础。注意,图片质量和内容直接影响生成结果。
      ![**在这里插入图片描述**](https://img-blog.csdnimg.cn/direct/6c858cc398a24812bd342ad5470cafbb.png)

step2 缩放模式:(拉伸/剪裁/填充/直接缩放)
拉伸:自动调整大小,当宽高比例不正确时,主体被拉伸
剪裁:自动调整图像大小,剪裁多余部分
填充:用图像的颜色自动填充空白区域
直接缩放(放大潜变量) 在这里插入图片描述
step3 图片尺寸,点击小三角会自动保持与原图尺寸一致或自定义尺寸。如:512*512。
在这里插入图片描述
step4 编写提示词:构思简洁而准确的提示词,描述期望的生成效果。例如,“a hummingbird”。

      step5 设置重绘幅度0~1 和 采样方法,点击“生成”按钮。    ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0ca01b03a1834957ade3762109f91276.png)

重绘幅度低于0.5更接近原图,大于0.7AI创作力度变大。

3. 真人转二次元 step1

  下载一个二次元的大模型:AWPainting 下载地址:https://www.liblib.art/modelinfo/1fd281cf6bcf01b95033c03b471d8fd8

下载存放文件路径:
在这里插入图片描述
step2 使用AWPainting模型,上传图片真人照片,设置尺寸512*768,重绘幅度0.6,采样器DPM++ 2M
Karras,提示词“animation style,a cute girl,”(你可随意发挥)。
在这里插入图片描述
小技巧:你可以把重绘幅度设置0.2,循环生成图片,逐步转换二次元效果,最后通视频编辑软件把图片制作转场动画。

4、制作头像 step1

       上传大头照512*512,使用AWPainting模型,设置同尺寸1024*1024,重绘幅度0.6,采样器DPM++ 2M   

Karras。
在这里插入图片描述
step2 提示词"futuristic sci-fi themed girl,set against a high-tech
cityscape at night,CG rendered,metallic sheen,cool special
effects,seductive smile,",生成图像。
在这里插入图片描述

总结:

篇幅有限,这里就不一一展示了,有需要的朋友可以点击下方的卡片进行领取!

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1664816.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

流量过滤与转发路径控制

1.策略路由 (1)策略路由技术背景 (2)PBR介绍-基本概念 (3)PBR介绍-结构 (4)PBR介绍-命令语法 PBR的节点匹配模式: permit表示对满足匹配条件的报文进行策略路由 deny表示…

OpenAI下周发布更新;TikTok将自动标记AIGC;智谱AI亮相2024 ICLR

OpenAI 官宣下周举办直播发布更新 OpenAI 今日凌晨官宣,将在当地时间 5 月 13 日上午十点(北京时间 5 月 14 日凌晨两点)在官网进行直播,届时将演示一些 ChatGPT 和 GPT-4 的更新。 OpenAI CEO Sam Altman 补充表示,届…

【C++】-------反向迭代器的模拟实现(补充)

目录 前言 一、反向迭代器接口(用户层) 二、模拟实现 三、以vector模拟实现为例 四、总结 前言 在vector和list的接口中我们实际上有说明过反向迭代器的用法,这里就有个问题,并不是只有这两个容器存在反向迭代器的。那么对于他…

【力扣】63.不同路径 II

原题链接:. - 力扣(LeetCode) 目录 1.题目描述 2.思路分析 3.代码实现 1.题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试…

探索生产者/消费者模式:解决并发编程中的资源竞争

序言 在并发编程中,资源竞争是一个常见的问题。为了有效地管理资源并确保线程安全,需要采用一些有效的方法。其中之一是生产者/消费者模式,它是一种经典的并发设计模式,用于解决生产者和消费者之间的协作问题。本文将深入探讨生产…

零代码平台助力中国石化江苏油田实现高效评价体系

概述: 中国石化集团江苏石油勘探局有限公司面临着评价体系依赖人工处理数据、计算繁琐且容易出错的挑战。为解决这一问题,他们决定借助零代码平台明道云开发江苏油田高质量发展经济指标评价系统。该系统旨在实现原始数据批量导入与在线管理、权重及评分…

27.哀家要长脑子了!---栈与队列

1.739. 每日温度 - 力扣(LeetCode) 用单调栈的方法做: 从左到右遍历数组: 栈中存放的是下标,每个温度在原数组中的下标,从大到小排列,因为这样才能确保的是最近一天的升高温度 如果栈为空&am…

Linux线程(二)线程互斥

目录 一、为什么需要线程互斥 二、线程互斥的必要性 三、票务问题举例(多个线程并发的操作共享变量引发问题) 四、互斥锁的用法 1.互斥锁的原理 2、互斥锁的使用 1、初始化互斥锁 2、加锁和解锁 3、销毁互斥锁(动态分配时需要&#…

程序员代码面试指南题目解析(一)

题目一:如何仅用递归函数和栈操作逆序一个栈 题目要求: 一个栈依次压入 1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈 转置后,从栈顶到栈底为 1、2、3、4、5,也就是实现栈中元素的逆序,但…

JUC下的BlockingQueue详解

BlockingQueue是Java并发包(java.util.concurrent)中提供的一个接口,它扩展了Queue接口,增加了阻塞功能。这意味着当队列满时尝试入队操作,或者队列空时尝试出队操作,线程会进入等待状态,直到队列状态允许操作继续。这…

【Python系列】Python中列表属性提取

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

AI菜鸟向前飞 — 大模型基础知识篇

前言 主要介绍最最基础的知识,在这个基础上有现在比较流行的GPT、Llama、Gemini**等一系列大模型的出现,打好基础才能更理解上面是如何运作以及实现的过程。 PS:本篇科普不会介绍梯度下降算法(偏导数)等复杂的过程&a…

巨坑啊! before-upload返回false 会执行on-remove

通过对on-remove对应参数的打印,发现回调中的file参数有个status,若是是在before-upload中就被过滤了,就是ready,若是已经上传成功了去点击删除,status是success,就他了。 onRemove(file,fileList){if(file…

redis的双写一致性

双写一致性问题 1.先删除缓存或者先修改数据库都可能出现脏数据。 2.删除两次缓存,可以在一定程度上降低脏数据的出现。 3.延时是因为数据库一般采用主从分离,读写分离。延迟一会是让主节点把数据同步到从节点。 1.读写锁保证数据的强一致性 因为一般放…

Redis——缓存雪崩、缓存穿透、缓存击穿

在项目中,通常会使用数据库比如 MySQL 存储应用数据,但是当数据太多之后,比如多了几十万条或上百万条的商品信息,这个时候查询商品数据的速度会很慢,影响用户体验。此时一般我们会选择将部分商品信息缓存起来&#xff…

【Rollup】用rollup从0到1开发一个js插件并发布到npm

Rollup 是一个 JavaScript 模块打包器,专注于打包 ES6 模块将其编译回多种模块化格式,尤其适合打包库和框架,因为它可以生成更小、更高效的代码,并且特别适合将代码打包成可在浏览器中使用的库。 从0到1开发js插件 1.创建文件夹…

2.前端路由的配置和使用

一,路由的作用 路由的作用就是将页面文件跟URL地址形成对应匹配 二,如何安装路由 这里我们采用pnpm的方式在项目中执行 pnpm install vue-routernext --save三,路由如何使用 首先创建一个我们需要访问的页面文件,这里我先创建…

机器学习:葡萄酒品质预测

说明,此项目是我的期末大作业,包括了对数据集探索,预处理以及分类的各个详细过程与描述,代码简单,主要是一个分类项目的流程,并没有对模型进行深度研究,因此我写在这里。 目录 一、问题介绍 …

ETL工具kettle(PDI)入门教程,Job

先新建两个Transform,MysqlToMysql.ktr和CsvToExcel.ktrURL:ETL工具kettle入门教程,transform,Mysql->Mysql,Csv->Excel-CSDN博客 主对象树,作业上右击,点击新建 核心对…

Unity引擎是什么?有哪些优点

大家好,我是咕噜土豆,很高兴又和大家见面了。今天我们一起来了解一下Unity引擎和它有哪些优点。 首先带大家了解什么是Unity引擎 Unity引擎是一款由Unity Technologies开发的跨平台游戏开发引擎,广泛用于创建2D和3D游戏以及其他交互式内容&…