Bidili Generator部署教程:国产OS(OpenEuler/UOS)下SDXL全栈适配指南

张开发
2026/5/11 15:29:46 15 分钟阅读

分享文章

Bidili Generator部署教程:国产OS(OpenEuler/UOS)下SDXL全栈适配指南
Bidili Generator部署教程国产OSOpenEuler/UOS下SDXL全栈适配指南1. 前言为什么要在国产系统上部署SDXL如果你正在使用OpenEuler或UOS这类国产操作系统又想体验最新的AI绘画技术可能会遇到一个头疼的问题很多AI工具对国产系统的支持并不友好。要么是依赖库不兼容要么是安装过程复杂要么是性能表现不佳。今天我要介绍的Bidili Generator就是专门为解决这个问题而生的。它基于目前最强大的开源文生图模型Stable Diffusion XLSDXL并针对国产操作系统环境做了深度优化。简单来说这是一个能在你的国产电脑上流畅运行的AI绘画工具而且效果相当不错。我花了几天时间在OpenEuler 22.03 LTS和UOS 20上进行了完整测试把整个部署过程、遇到的问题以及解决方案都整理了出来。无论你是AI绘画的新手还是有一定经验的开发者这篇教程都能帮你快速上手。2. 准备工作环境检查与依赖安装在开始部署之前我们需要先确保系统环境符合要求。别担心我会一步步带你检查。2.1 系统要求确认首先打开终端检查你的系统信息# 查看系统版本 cat /etc/os-release # 查看Python版本 python3 --version # 查看显卡信息如果有独立显卡 lspci | grep -i nvidia你的系统需要满足以下基本要求操作系统OpenEuler 22.03 LTS SP1及以上或UOS 20专业版Python版本Python 3.8 - 3.10推荐3.9内存至少16GB RAM存储空间至少20GB可用空间用于存放模型文件显卡可选有NVIDIA显卡效果更好显存建议8GB以上2.2 安装必要的系统依赖国产系统有些软件包的名字可能和Ubuntu不太一样我整理了对应的安装命令# 更新系统包管理器 sudo dnf update -y # OpenEuler用dnf # 或者 sudo apt update sudo apt upgrade -y # UOS用apt # 安装基础编译工具 sudo dnf groupinstall Development Tools -y # OpenEuler # 或者 sudo apt install build-essential -y # UOS # 安装Python开发环境 sudo dnf install python3-devel python3-pip -y # 或者 sudo apt install python3-dev python3-pip -y # 安装其他必要依赖 sudo dnf install git wget curl -y2.3 配置Python虚拟环境我强烈建议使用虚拟环境这样可以避免污染系统环境也方便管理# 安装虚拟环境工具 pip3 install virtualenv # 创建项目目录 mkdir ~/bidili-generator cd ~/bidili-generator # 创建虚拟环境 python3 -m virtualenv venv # 激活虚拟环境 source venv/bin/activate # 看到命令行前面有(venv)就说明激活成功了激活虚拟环境后所有后续的pip安装都会在这个独立的环境中进行。3. 核心部署一步步安装Bidili Generator现在进入正题开始安装Bidili Generator。整个过程分为几个步骤我会详细解释每个步骤的作用。3.1 获取项目代码首先把项目代码下载到本地# 克隆项目仓库 git clone https://github.com/bidili/bidili-generator.git cd bidili-generator # 查看项目结构 ls -la你会看到类似这样的目录结构requirements.txt- Python依赖包列表app.py- 主程序文件models/- 模型文件存放目录需要下载lora/- LoRA权重文件目录outputs/- 生成的图片输出目录3.2 安装Python依赖这是最关键的一步需要安装所有必要的Python包# 升级pip到最新版本 pip install --upgrade pip # 安装PyTorch注意国产系统可能需要特殊版本 # 首先尝试官方版本 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 如果上面命令失败尝试使用国内镜像 pip install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装项目其他依赖 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple重要提示在国产系统上安装PyTorch可能会遇到一些问题。如果安装失败可以尝试以下替代方案# 方案1使用conda安装如果系统支持 conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia # 方案2使用预编译的wheel包 # 从PyTorch官网下载对应版本的wheel文件然后本地安装 pip install torch-2.1.0-cp39-cp39-linux_aarch64.whl3.3 下载模型文件Bidili Generator需要两个核心模型文件SDXL基础模型和Bidili LoRA权重。# 创建模型目录 mkdir -p models/stable-diffusion-xl # 下载SDXL 1.0基础模型约7GB # 如果下载速度慢可以提前用下载工具下载然后放到对应目录 echo 请手动下载以下模型文件 echo 1. SDXL 1.0基础模型https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0 echo 2. 下载后放到models/stable-diffusion-xl/sd_xl_base_1.0.safetensors # 下载Bidili LoRA权重约150MB echo 下载Bidili LoRA权重文件放到lora/目录下由于网络原因直接从HuggingFace下载可能比较慢。我建议使用国内镜像源或者用下载工具如aria2多线程下载或者找朋友帮忙下载后传给你3.4 配置文件调整项目默认配置可能不适合你的硬件环境需要做一些调整# 编辑config.py文件如果没有就创建 nano config.py # 添加以下内容 import torch # 根据你的显卡设置 DEVICE cuda if torch.cuda.is_available() else cpu PRECISION bf16 # 如果有RTX 4090等支持BF16的显卡 # PRECISION fp16 # 其他NVIDIA显卡 # PRECISION fp32 # CPU或AMD显卡 # 显存优化设置如果显存小于12GB ENABLE_MEMORY_EFFICIENT_ATTENTION True ENABLE_XFORMERS False # 国产系统可能不支持xformers # 模型路径设置 MODEL_PATH models/stable-diffusion-xl/sd_xl_base_1.0.safetensors LORA_PATH lora/bidili_lora.safetensors4. 启动与测试让Bidili Generator跑起来一切准备就绪后就可以启动应用了。4.1 启动应用# 确保在项目根目录并且虚拟环境已激活 cd ~/bidili-generator # 启动Streamlit应用 streamlit run app.py --server.port 8501 --server.address 0.0.0.0如果一切正常你会看到类似这样的输出You can now view your Streamlit app in your browser. Local URL: http://localhost:8501 Network URL: http://192.168.1.100:85014.2 常见问题解决在国产系统上你可能会遇到一些问题这里是我遇到的几个典型问题及解决方案问题1libGL.so.1找不到ImportError: libGL.so.1: cannot open shared object file: No such file or directory解决sudo dnf install mesa-libGL -y # OpenEuler # 或 sudo apt install libgl1-mesa-glx -y # UOS问题2CUDA不可用Torch not compiled with CUDA enabled解决# 检查CUDA驱动 nvidia-smi # 如果没有输出需要安装NVIDIA驱动 # OpenEuler可以参考https://www.openeuler.org/zh/blog/2022-11-02/nvidia-driver-installation.html问题3内存不足RuntimeError: CUDA out of memory解决修改配置启用内存优化# 在config.py中增加 ENABLE_SEQUENTIAL_CPU_OFFLOAD True # 顺序CPU卸载 ENABLE_MODEL_CPU_OFFLOAD True # 模型CPU卸载4.3 第一次生成测试打开浏览器访问http://localhost:8501你会看到Bidili Generator的界面。让我们做一个简单的测试在提示词框输入a beautiful landscape with mountains and lake, sunset, 8k resolution, highly detailed负面提示词ugly, blurry, bad quality参数设置步数Steps25CFG Scale7.0LoRA强度1.0点击生成按钮等待1-2分钟取决于你的硬件第一张图片就会生成出来。如果成功恭喜你Bidili Generator已经在你的国产系统上正常运行了。5. 使用指南如何用好Bidili Generator现在工具已经跑起来了但怎么才能生成好看的图片呢我来分享一些实用技巧。5.1 参数配置详解Bidili Generator有几个关键参数理解它们的作用很重要参数作用推荐范围小技巧提示词告诉AI你想画什么越详细越好用英文加质量词如8k, masterpiece, best quality负面提示词告诉AI不要画什么常见问题词固定用ugly, blurry, bad hands, extra fingers步数迭代次数影响细节20-3025是甜点再多提升有限但更耗时CFG Scale提示词影响力6.0-8.0太高会过度饱和太低会偏离描述LoRA强度风格化程度0.5-1.20.8适合轻微风格1.0标准1.2强烈风格5.2 Bidili LoRA风格使用技巧Bidili LoRA给SDXL增加了一种独特的艺术风格。要激活这种风格需要在提示词中加入触发词# 在提示词开头或结尾加入风格触发词 prompt bidili style, a cute cat wearing glasses, reading a book in library # 也可以结合其他风格 prompt bidili style, anime style, a beautiful girl with long hair不同强度值的效果0.5以下几乎看不出Bidili风格0.8-1.0风格明显适合大多数场景1.2以上风格非常强烈可能掩盖内容细节5.3 性能优化建议如果你的生成速度比较慢可以尝试这些优化# 1. 降低分辨率默认1024x1024 # 在界面中尝试768x768或512x512 # 2. 使用BF16精度如果显卡支持 # 在config.py中设置PRECISION bf16 # 3. 启用内存优化 # 小显存显卡8GB可以启用 # ENABLE_SEQUENTIAL_CPU_OFFLOAD True # 4. 批量生成时减少批次大小 # 默认batch_size1不要随意增加5.4 实用提示词模板这里有几个我常用的提示词模板你可以直接使用或修改# 人像模板 portrait_template (bidili style:1.1), a beautiful portrait of a [gender] with [hair color] hair, wearing [clothing], in a [setting], 8k resolution, highly detailed, sharp focus, professional photography # 风景模板 landscape_template bidili style, a breathtaking landscape of [place], [time of day], [weather condition], cinematic lighting, 8k, unreal engine 5, hyperdetailed, photorealistic # 动漫模板 anime_template (bidili style:0.8), anime style, [character description], beautiful detailed eyes, dynamic pose, vibrant colors, studio ghibli style, masterpiece 6. 进阶配置让Bidili更强大基础功能用熟了你可能想要更多自定义功能。这部分是可选的但能让你的使用体验更好。6.1 自定义模型加载如果你想使用其他SDXL模型可以这样配置# 在app.py中找到模型加载部分修改为 from diffusers import StableDiffusionXLPipeline import torch # 加载基础模型 pipe StableDiffusionXLPipeline.from_single_file( path/to/your/model.safetensors, torch_dtypetorch.float16 if PRECISION fp16 else torch.bfloat16, variantfp16, use_safetensorsTrue ) # 加载LoRA权重 pipe.load_lora_weights(path/to/lora, weight_namebidili_lora.safetensors)6.2 添加ControlNet支持ControlNet可以让AI更好地理解你的构图意图。虽然Bidili Generator原生不支持但可以手动集成# 安装ControlNet相关依赖 pip install controlnet-aux -i https://pypi.tuna.tsinghua.edu.cn/simple # 下载ControlNet模型 # 需要下载对应的SDXL ControlNet模型如depth、canny等6.3 脚本批量生成如果你需要批量生成图片可以写一个简单的Python脚本import torch from diffusers import StableDiffusionXLPipeline from PIL import Image # 初始化管道 pipe StableDiffusionXLPipeline.from_pretrained(...) pipe.load_lora_weights(lora/bidili_lora.safetensors) # 批量生成 prompts [ bidili style, a dragon flying over mountains, bidili style, a cyberpunk city at night, bidili style, a peaceful forest with fairies ] for i, prompt in enumerate(prompts): image pipe( promptprompt, negative_promptugly, blurry, bad quality, num_inference_steps25, guidance_scale7.0 ).images[0] image.save(foutputs/batch_{i}.png) print(f已生成第{i1}张图片)6.4 性能监控与调优了解工具的资源使用情况有助于进一步优化# 监控GPU使用情况 watch -n 1 nvidia-smi # 监控内存使用 htop # 在Python中监控 import psutil import torch def print_system_info(): # CPU使用率 cpu_percent psutil.cpu_percent(interval1) # 内存使用 memory psutil.virtual_memory() # GPU信息如果有 if torch.cuda.is_available(): gpu_memory torch.cuda.memory_allocated() / 1024**3 # GB print(fCPU使用率: {cpu_percent}%) print(f内存使用: {memory.percent}%) if torch.cuda.is_available(): print(fGPU显存使用: {gpu_memory:.2f} GB)7. 总结与建议经过上面的步骤你应该已经在OpenEuler或UOS上成功部署了Bidili Generator。让我总结几个关键点7.1 部署要点回顾环境准备是关键确保系统依赖齐全特别是显卡驱动和CUDA虚拟环境是好习惯避免包冲突方便管理模型下载要耐心SDXL模型较大做好下载时间准备参数调整要渐进不要一次性改太多参数一步步测试7.2 使用建议从简单开始先用默认参数生成几张图熟悉流程善用提示词好的提示词比调参数更重要保存成功配方遇到好看的图片记下当时的参数和提示词定期清理输出生成的图片会占用不少空间7.3 可能遇到的问题在我测试过程中发现国产系统上的一些特殊问题软件包名称不同有些包在OpenEuler和Ubuntu上名字不一样驱动兼容性NVIDIA驱动可能需要手动编译安装内存管理国产系统的内存管理策略可能不同需要适当调整7.4 后续学习方向如果你已经熟练使用Bidili Generator可以尝试训练自己的LoRA用特定风格的图片训练专属风格集成其他工具如Upscaler提升分辨率Inpainting局部重绘开发插件为Streamlit界面添加新功能优化性能针对你的硬件做深度优化Bidili Generator在国产系统上的表现让我印象深刻。它证明了即使在没有完善生态支持的环境下我们依然能够运行最先进的AI应用。这为国产操作系统的AI应用生态开辟了新的可能性。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章