Stable Diffusion绘画入门
一,Stable Diffusion模型原理
目前开源的最火爆的AI绘画系统是 Stable Diffusion 模型(稳定扩散模型)。
可以完成 text2img, img2img, depth2img【深度图转图像】, seg2img【语义分割图转图像】 等基于提示信息【prompt】的图画创作功能。
其核心原理简要总结如下:
1,通过Attention机制引入text /semantic_map/ input_image ...等控制信息。--> 构图
2,在Attention控制下通过UNet模型在隐空间通过反向扩散机制从初始的噪声中一步一步(通常20到50步)清洗噪声生成隐空间图片信息(Latent Diffusion Model过程)。--> 底片
3,最后通过 AutoDecoder 从隐空间的图片信息还原成高清图片。--> 成片
从易到难的详细原理参考:
《零基础读懂Stable Diffusion》 https://zhuanlan.zhihu.com/p/597247221 (zero mathematics)
《Stable Diffusion原理解读》 https://zhuanlan.zhihu.com/p/583124756 (some mathematics)
《当我们谈论Text-to-image:Stable Model》https://zhuanlan.zhihu.com/p/550967884 (heavy mathematics)
公众号后台回复关键词:StableDiffusion 获取本文源代码和B站视频演示。
二,在线体验方法
英文原始: https://huggingface.co/spaces/runwayml/stable-diffusion-v1-5
百度中文:https://wenxin.baidu.com/ernie-vilg?curtype=exp
太乙中文:https://huggingface.co/spaces/IDEA-CCNL/Taiyi-Stable-Diffusion-Chinese-Webui
各种风格:https://civitai.com/
三,在Kaggle中体验
!pip install diffusers
!pip install transformers
1,text2img
from PIL import Image
import torchfrom diffusers import (StableDiffusionPipeline,StableDiffusionImg2ImgPipeline,StableDiffusionInpaintPipeline
)device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')#model_id = "IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1"
#model_id = "IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-EN-v0.1"
#model_id = "IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1" #漫画头像
#model_id = "CompVis/stable-diffusion-v1-4"
#model_id = "runwayml/stable-diffusion-v1-5"
model_id = "stabilityai/stable-diffusion-2-1"pipe_text2img = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to(device)
width = 960
height = 680
guide = 7
steps = 20prompt = "a moutain full of flowers and snows"
#prompt = "Bejing Autumn"
#prompt = 'shanghai night'
#prompt = 'a dog is runing after a mouse'
#prompt = 'a little girl is smiling with a cat'negative_prompt = None
output = pipe_text2img(prompt = prompt, negative_prompt=negative_prompt,width=width, height=height,guidance_scale=guide, num_inference_steps=steps)
out_img = output.images[0]
out_img
2,img2img
from PIL import Image
import torchfrom diffusers import (StableDiffusionPipeline,StableDiffusionInpaintPipeline
)device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')#model_id = "IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-v0.1"
#model_id = "IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Chinese-EN-v0.1"
#model_id = "IDEA-CCNL/Taiyi-Stable-Diffusion-1B-Anime-Chinese-v0.1"
#model_id = "CompVis/stable-diffusion-v1-4"
#model_id = "runwayml/stable-diffusion-v1-5"
model_id = "stabilityai/stable-diffusion-2-1"pipe_img2img = StableDiffusionImg2ImgPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to(device)
strength = 0.5
revise_prompt = "there is a water fall"
revised_output = pipe_img2img(revise_prompt, image=out_img, strength=strength, guidance_scale=guide, num_inference_steps=steps)
revised_output.images[0]
3,pix2pix
import PIL
import requests
import torch
from diffusers import StableDiffusionInstructPix2PixPipeline, EulerAncestralDiscreteSchedulermodel_id = "timbrooks/instruct-pix2pix"
pipe = StableDiffusionInstructPix2PixPipeline.from_pretrained(model_id, torch_dtype=torch.float16, safety_checker=None)
pipe.to("cuda")
pipe.scheduler = EulerAncestralDiscreteScheduler.from_config(pipe.scheduler.config)def download_image(url):image = PIL.Image.open(requests.get(url, stream=True).raw)image = PIL.ImageOps.exif_transpose(image)image = image.convert("RGB")return image
url = "https://raw.githubusercontent.com/timothybrooks/instruct-pix2pix/main/imgs/example.jpg"image = download_image(url)
image
#prompt = "turn him into cyborg"
#prompt = "turn him into oil painting"
#prompt = "let he in the wild, green grass"
#prompt = "a flower in his left hand"
#prompt = "let he wear a coat"
prompt = "let he wear a cap on the head"
images = pipe(prompt, image=image, num_inference_steps=10, image_guidance_scale=1.0).images
images[0]
公众号后台回复关键词:StableDiffusion 获取本文源代码和B站视频演示。
Stable Diffusion绘画入门相关推荐
- Apple官方优化Stable Diffusion绘画教程
Apple官方优化Stable Diffusion绘画教程 苹果为M1芯片优化Stable Diffusion模型,其中Mac Studio (M1 Ultra, 64-core GPU)生成512* ...
- Stable Diffusion使用入门教程
本文参考bilibili的链接:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilib ...
- Stable Diffusion 绘画初探 chilloutmix模型 人物画像首选
AI绘画发展以来出现了很多优质的平台,Stable Diffusion是普通大众最爱的之一,比起MJ来讲,它是现在愿意动手的人的首选,在这里要首先感谢GITHUB上的一众开源大佬. AI绘画首先吸引大 ...
- Stable Diffusion系列课程上:安装、提示词入门、常用模型(checkpoint、embedding、LORA)、放大算法、局部重绘、常用插件
文章目录 一.Stable Diffusion简介与安装 二.文生图(提示词解析) 2.1 提示词入门 2.2 权重 2.3 负面提示词( Negative prompt) 2.4 出图参数设置 2. ...
- stable diffusion webui mov2mov
手把手教你用stable diffusion绘画ai插件mov2mov生成动画_哔哩哔哩_bilibili手把手教你用stable diffusion绘画ai插件mov2mov生成动画, 视频播放量 ...
- Stable Diffusion AI 绘画入门指南
Stable Diffusion AI 绘画入门指南 市面上用的最多的AI绘画工具是 Stable-Diffusion(SD) 和 Midjourney(Mid),SD是在本地运行的服务,开源,门槛高 ...
- 带你从零开始入门AI绘画神器Stable Diffusion
一.本地部署 Stable diffusion 1. 前言 目前市面上比较权威,并能用于工作中的 AI 绘画软件其实就两款.一个叫 Midjourney(简称 MJ),另一个叫 Stable-Diff ...
- 零基础入门 Stable Diffusion - 无需显卡把 AI 绘画引擎搬进家用电脑
我从小特别羡慕会画画的伙伴.他们能够将心中的想法画出来,而我最高水平的肖像画是丁老头.但在接触 Stable Diffusion 之后,我感觉自己脱胎换骨,给自己贴上了「会画画」的新标签. 丁老头进化 ...
- AI 绘画咒语入门 - Stable Diffusion Prompt 语法指南 【成为初级魔导士吧!】
要用好 Stable Diffusion,最最重要的就是掌握 Prompt(提示词).由于提示词对于生成图的影响甚大,所以被称为魔法,用得好惊天动地,用不好魂飞魄散
最新文章
- JBoss vs. Tomcat
- java自定义类加载器
- 草稿 断开式绑定combobox 1128
- java this的用法
- 用video标签流式加载
- laravel傻瓜手册6(模型)
- 【技术分享】配置手工模式链路聚合(交换机之间直连)
- SAVIOR Securing Autonomous Vehicles with Robust Physical Invariants
- 暴力破解压缩包原理及方法
- git 解决push报错:[rejected] master -> master (fetch first) error: failed to push some refs to ‘ ‘
- CTF实验吧-简单的sql注入【SQL注入关键词绕过】
- 华为智慧屏鸿蒙评测,搭载鸿蒙系统的荣耀智慧屏值得入手吗?荣耀智慧屏全面评测...
- 什么明星有计算机等级证,明星CP名也分等级?朱一龙王一博还好,看到胡一天:太有才了...
- semantic_slam环境配置
- vue使用d3数据可视化(柱状图、饼图、折线图 带坐标轴)
- PHP Fatal error: Class 'Illuminate\Foundation\Console\Kernel' not found in D:\phpstudy\PHPTutorial
- GitHub 上传大小限制 大文件无法上传问题!
- (一)Activiti 数据库25张表——流程历史记录表18(ACT_HI_ATTACHMENT)
- 安卓模仿微信通讯录--RecyclerView+SideBar
- mac服务器文件同步软件,[MACOS]使用fswatch和SCP配合实现自动单向实时同步文件