0%

相关概念

节点:节点是ComfyUI的重要组成成分。节点可以有多个输入和多个输出。

连线:不同的节点之间采用连线的方式进行协同工作。

连线只能从某个节点的输出连接到另一个节点的输入。

连线的两端必须是相同的类型。

工作流:所有的节点及其连线构成一个完整的工作流。

阅读全文 »

AutoDL简介

AutoDL是一个GPU租用平台,它提供了各种型号的服务器供用户选择,使得用户可以在云端进行深度学习模型的训练和推理。这个平台的特点包括网络无要求、部署简单、稳定,且价格合理。无论是使用Mac电脑还是低配置的Windows电脑,用户都可以完全通过云端部署,自己租用服务器,并通过浏览器打开进行使用。AutoDL支持多种服务器配置,用户可以根据自己的需求租用相应配置的服务器,从而满足不同的计算需求。

Ollama简介

Ollama是一个功能强大的开源框架,旨在简化在Docker容器中部署和管理大型语言模型(LLM)的过程。本文将介绍Ollama的特点、优势以及如何在本地使用Ollama高效运行大型语言模型,为非专业读者提供清晰易懂的技术指南。

阅读全文 »

为什么要使用Gunicorn

Flask自带的web服务器可用于开发环境运行调试,不适合部署在生产环境,无法满足线上的性能要求。

当使用,以下命令启动Flask应用时:

1
app.run(host = '0.0.0.0',port=6000)

Flask框架会有一段

WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.

image-20240624182739132

Gunicorn是基于unix系统,被广泛应用的高性能的Python WSGI HTTP Server。用来解析HTTP请求的网关服务。它通常是在进行反向代理(如nginx),或者进行负载均衡(如AWS ELB)和一个web 应用(比如Django或者Flask)之间。

目前,gunicorn只能运行在Linux环境中,不支持windows平台。

阅读全文 »

除了conda外,在Linux系统中,还可以使用Pythonvenv模块来创建Python虚拟环境。该模块创建出来的Python环境更加轻量化。

安装Python 3(如果尚未安装)

此步骤自行百度。

打开终端。

运行以下命令以创建虚拟环境:

1
python3 -m venv myenv

image-20240624174358490

阅读全文 »

Celery简介

Celery 是一个简单、灵活、可靠的分布式系统,处理大量消息,同时为操作提供维护这样一个系统所需的工具。它是一个专注于实时处理的任务队列,同时也支持任务调度。

img

Celery的架构由三部分组成,消息中间件(message broker),任务执行单元(worker)和任务执行结果存储(task result store)组成。

阅读全文 »

简介

PM2是一个守护进程管理工具,帮助您管理和守护您的应用程序。它以简单直观的 CLI 命令行方式进行工作。

下载安装

最新的 PM2 版本可以使用 NPMYarn 安装:

1
2
3
4
5
# npm
npm install pm2@latest -g
# yarn
yarn global add pm2
# 二选一即可

建议使用npm安装,如果没有请自行百度安装。

输入pm2 -V打印PM2版本。

image-20240621230443094

阅读全文 »

Tmux解决痛点

  1. 后台程序挂起。在使用FlaskFastAPIGradio启动某些服务或API时,往往会将当前会话变成服务监控状态,如果会话关闭会导致服务也随之关闭。

    有的人可能会说,可以使用nohup将服务在后台执行,单是这样会生成额外的nohup.out文件,并且无法实时观看服务运行状态。

  2. 多个窗口之间来回切换。在Linux操作系统的使用过程中,可能会出现开启多个窗口的情况,随着窗口的逐步开启,自己都会忘记每个窗口有什么用,能不能关闭,管理起来非常麻烦。

  3. 终端工作环境可以实时保留,并且不会因会话关闭导致工作环境丢失。并且在不同设备上可以共享工作环境,不在拘泥于设备。

如果你也有以上烦恼,那么不妨试试Tmux这款工具。

阅读全文 »

读取数据

1
2
3
4
5
6
7
8
9
10
11
import SimpleITK as sitk
import matplotlib.pyplot as plt
import numpy as np
import cv2

import torch
import torch.nn as nn
import torch.nn.functional as F

from torchvision.transforms import v2 as transforms
from torch.utils.data import DataLoader, Dataset
1
dcm_path = 'data/10009.dcm'
阅读全文 »

读取数据

1
import SimpleITK as sitk
1
2
3
import matplotlib.pyplot as plt
import numpy as np
import cv2

读取CT影像照片DCM文件

1
dcm_path = 'data/10009.dcm'
1
2
3
img = sitk.ReadImage(dcm_path)  # 读取DCM文件
img = sitk.GetArrayFromImage(img) # 获取数组对象
img = img.squeeze() # 删除维度为1的维度
1
2
3
img[img < 0] = 0
img[img > 255] = 255
img = np.array(img, dtype=np.uint8)
1
2
3
4
# 绘制图片
plt.imshow(img, cmap='gray')
plt.axis('off')
plt.show()


output_20240607232201

阅读全文 »

读取数据

1
2
3
4
import cv2
import os
from glob import glob
import numpy as np
1
2
3
4
5
6
7
8
9
10
11
12
import matplotlib.pyplot as plt

def plot_image(img, mode='bgr'):
if mode=='bgr':
img = img[:, :, ::-1]
plt.figure(dpi=200)
if mode=='gray':
plt.imshow(img, cmap='gray')
else:
plt.imshow(img)
plt.axis('off')
plt.show()
1
2
name_list = os.listdir('data/person_data/')
print(name_list)
['baijingting', 'jiangwen', 'pengyuyan', 'zhangziyi', 'zhaoliying']
阅读全文 »