StableDiffusion
原理
Stable Diffusion is a latent text-to-image diffusion model. Thanks to a generous compute donation from Stability AI and support from LAION, we were able to train a Latent Diffusion Model on 512x512 images from a subset of the LAION-5B database. Similar to Google’s Imagen, this model uses a frozen CLIP ViT-L/14 text encoder to condition the model on text prompts. With its 860M UNet and 123M text encoder, the model is relatively lightweight and runs on a GPU with at least 10GB VRAM.
本地部署
env requirement:
models
- GFPGAN 腾讯开源的人像修复算法
- VAE (Variational Auto-Encoder 变分自编码器)
- LoRA (Low-Rank Adaptation of Large Language Models) 自然语言处理
- DeepBooru
vas
tags
korean doll
nagetive prompt
paintings, sketchers, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, glans
troubleshooting
not enough GPU memory
1
2
3
4
5
6
7
8 @echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS= --lowvram --no-half --precision full --no-half-vae --opt-sub-quad-attention --opt-split-attention-v1 --autolaunch
call webui.bat
No python at “D:\Program Files\Anaconda3\env\py310\Python.exe”
删除项目env下除Libs外的所有文件 重新执行webui.bat资源
conda
安装Anaconda后 默认只能在conda prompt中使用,若在cmd控制台使用conda命令
需要将Anaconda/Scripts/目录假如环境变量
源
可以形如下添加源的命令1
2conda config --add channels - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
或编辑用户目录下的.condarc文件 如1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17channels:
- defaults
auto_activate_base: true
anaconda_upload: false
show_channel_urls: true
defaults_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
清理环境缓存1
conda clean -i
显示channels1
conda show channels
创建指定python版本的虚拟环境
1 | conda create -n py310 python=3.10.6 |
TroubleShooting CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/nux-64
错误原因 D:\Anaconda3\DLLs_ssl.pyd会寻找依赖库OpenSSL DLLs,由于项目目录下未找到,它会去默认目录C:\Windows\System32查找,默认目录下存在该库,但是别的应用安装的,版本不一致,所以出现上述错误。
解决方法:从目录D:\Anaconda3\Library\bin下复制libcrypto-1_1-x64.和libssl-1_1-x64.到D:\Anaconda3\DLLs,这样就会在项目目录下直接查找到该库了。 参考CSDN Blog
激活虚拟环境
列出环境1
conda env list
激活1
conda activate py310
TroubleShooting Your shell has not been properly configured to use ‘conda activate’. If using ‘conda activate’ from a batch script, change your invocation to ‘CALL conda.bat activate’.
管理员权限打开命令行 conda init cmd.exe, 同理powershell bash等终端,重启命令行即可执行activate命令
安装、更新、卸载包
1 | conda install pandas |
越权访问
jenkins-pipeline
Jenkins Pipeline 提供了一套可扩展的工具,用于将“简单到复杂”的交付流程实现为“持续交付即代码”。Jenkins Pipeline 的定义通常被写入到一个文本文件(称为 Jenkinsfile )中,该文件可以被放入项目的源代码控制库中。
WPF
Application Window
App.xmal1
MainWindow.xmal1
dispatch.invoke
从主 UI 线程派生的后台线程不能更新的内容,比如在Button onClick中创建的线程,为了使后台线程访问Button的内容属性,后台线程必须将工作委托给
Dispatcher 与 UI 线程关联。 这通过使用Invoke 或 BeginInvoke实现。 Invoke 是同步,BeginInvoke 是异步的。
control template
实现一个按钮 倒圆角 背景 字体 MouseOver效果1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<Button HorizontalAlignment="Center" VerticalAlignment="Center" Height="40" Width="120"
Foreground="#4D4D4D" Content="Close" FontSize="14" FontWeight="bold" Click="btnOK_Click">
<Button.Template >
<ControlTemplate TargetType="{x:Type Button}" >
<Border x:Name="btnBorder" BorderBrush="{TemplateBinding Control.BorderBrush}" CornerRadius="5,5,5,5">
<Border.Background >#DDF9FE</Border.Background>
<TextBlock x:Name="BtnText" Text="{TemplateBinding ContentControl.Content}"
Foreground="{TemplateBinding Foreground}"
HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="btnBorder" Property="Background" Value="#36B0C9"/>
<Setter TargetName="BtnText" Property="Foreground" Value="#FFF"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
</Button>
VRandAR
Web3D
瓶颈
- 终端的渲染性能
包括网页端WebGL的渲染性能,以及移动终端的硬件性能 - 网络对大型模型场景的传输能力
像素流送
WebGPU
WebGL是OpenGL ES版本API的封装,已经有十几年的历史,随着图形技术的发展,W3C提出全新的规范,浏览器封装了现代图形API(Dx12、Vulkan、Metal)让浏览器里面直接可以调用这三个现代图形API能力,实现高质量的渲染效果,调用GPU的强大计算能力。
WebGPU is available for now in Chrome Canary behind an experimental flag. You can enable it at chrome://flags/#enable-unsafe-webgpu . The API is constantly changing and currently unsafe.
C++
成员函数的调用1
2
3void res = ClassA::functionX()
ClassA a;
void res = a.functionX()
Python面向对象
Defination
1 | class Employee: |
__init__:构造函数
self 代表类的实例,self 在定义类的方法时是必须有的,print(self)可以看到类实例字样及内存地址
Python内置类属性
- __dict__ : 类的属性字典,由类的数据属性组成
- __doc__ :类的文档字符串
- __name__: 类名
- __module__: 类定义所在的模块(类的全名是’__main__.className’,如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
- __bases__ : 类的所有父类构成元素(包含了一个由所有父类组成的元组)
单下划线、双下划线、头尾双下划线说明:
- __foo__: 定义的是特殊方法,一般是系统定义名字 ,类似 __init__() 之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。