# huaweicloud-solution-functiongraph-stablediffusion-resolution **Repository Path**: HuaweiCloudDeveloper/huaweicloud-solution-functiongraph-stablediffusion-resolution ## Basic Information - **Project Name**: huaweicloud-solution-functiongraph-stablediffusion-resolution - **Description**: 该解决方案基于华为云帮助用户快速搭建FunctionGraph应用管理平台,实现Stable Diffusion应用模型库、图片库管理。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-21 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # huaweicloud-solution-functiongraph-stablediffusion-resolution # 简介 `FG-SD`是一个服务托管解决方案,包含四个服务组件(`APIG`/`FunctionGraph`),可以实现函数托管,帮助用户快速构建过华为云FunctionGraph,可以快速访问 Stable DiffusionWebUI界面绘图,实现文生图、图生图等功能。 # 创建资源 #### 创建ECS 购买2台ECS,部署在同一VPC下,一台ECS做为web服务端,一台服务器做为用户绘图数据存储(需共享指定文件夹,做为函数挂载文件夹) #### 创建数据库 购买华为云RDS快速构建,按需选择规格,默认端口3306,创建sd_manager三个数据库 # 服务安装 ## 前置条件 - 操作系统:CentOS 7.6 64bit - 实例最低配置:2U4G - 安装git ```shell yum -y install git ``` ## 前端组件 ### 环境安装 #### 安装 nodejs ```shell wget https://nodejs.org/download/release/v16.13.1/node-v16.13.1-linux-x64.tar.gz tar xf node-v16.13.1-linux-x64.tar.gz mv node-v16.13.1-linux-x64 /usr/local/ ``` 新建并修改 node.sh 文件 ```shell vi /etc/profile.d/node.sh ``` 设置环境变量 ```shell export NODE_HOME=/usr/local/node-v16.13.1-linux-x64 export PATH=${NODE_HOME}/bin:$PATH ``` 执行脚本使环境变量生效 ```shell chmod +x /etc/profile.d/node.sh source /etc/profile.d/node.sh ``` #### 安装 vue ```shell npm install -g @vue/cli ``` #### 安装编译工具及库文件 ```shell yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel ``` 下载 PCRE 安装包 ```shell cd /usr/local/src/ || exit wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz tar zxvf pcre-8.35.tar.gz ``` 编译安装 ```shell cd pcre-8.35 || exit ./configure make && make install ``` #### 安装 Nginx ```shell cd /usr/local/src/ || exit wget http://nginx.org/download/nginx-1.7.8.tar.gz tar zxvf nginx-1.7.8.tar.gz cd nginx-1.7.8 || exit ``` 编译安装到/usr/local/webserver/nginx ```shell ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 make make install ``` 替换 /usr/local/webserver/nginx/conf/nginx.conf 为以下内容,替换proxy_pass的地址为后端服务器IP ```nginx worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 300; client_max_body_size 6g; server { listen 80; server_name localhost; location /api/ { proxy_pass https://127.0.0.1:8080/; } location / { root html; try_files $uri /index.html; index index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } ``` ### 打包部署 拉取前端代码 ```shell cd /usr/local git clone -b master-dev *** ``` 在代码根目录下运行 npm install 命令,安装项目所需要的依赖 ```shell npm install ``` 在根目录下安装 vue 国际化插件 ```shell npm install --save vue-i18n@next ``` 在代码根目录下运行 npm run build 命令,将项目编译打包至根目录的 dist 文件夹下。 ```shell npm run build ``` 把 dist 目录下的所有文件都复制到 nginx 网站根目录 /usr/local/webserver/nginx/html 下 配置 nginx 开机自启动,在/lib/systemd/system/目录下创建 nginx.service 文件 ```shell vi /lib/systemd/system/nginx.service ``` 在该文件中添加如下内容 ``` [Unit] Description=nginx service After=network.target [Service] Type=forking ExecStart=/usr/local/webserver/nginx/sbin/nginx ExecReload=/usr/local/webserver/nginx/sbin/nginx -s reload ExecStop=/usr/local/webserver/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target ``` 设置文件的执行权限 ```shell chmod a+x /lib/systemd/system/nginx.service ``` 设置开机自启动 ```shell systemctl enable nginx.service ``` 启动nginx服务 ```shell systemctl start nginx.service ``` 浏览器输入该ECS绑定的ip地址即可访问FG_SD前端界面,或输入: http://{ipv4}:80 ## 后端组件 ### 环境安装 - 版本要求:python3.6及以上版本 - 安装python ### 拉取代码 ```shell cd /usr/local git clone -b master *** ``` ### 安装python依赖包 ```shell pip install -r requirements.txt ``` ### 修改config.ini配置 ``` [RDS] NAME= USER= PASSWORD= HOST= PORT= [ECS] HOST= PORT= USERNAME= PASSWORD= FILE_BASE_DIR= [DINGDING] APPKEY= APPSECRET= [DOMAIN] AK= SK= NAME= PASSWORD= DOMAINID= PROJECT_ID= REGION= AGENT= [APIG] APIG_INSTANCE= [VPC] VPC_NAME= VPC_ID= SUBNET_NAME= SUBNET_ID= CIDR= GATEWAY= [SWR] IMAGE= [MOUNT] ECS_ID= ECS_MOUNT_PATH= MOUNT_PATH= [OBS] ENDPOINT= BUCKET_NAME= ``` ### 启动后端服务 ```shell python manage.py runserver 0.0.0.0:8080 & ```