Oracle开源推出Stable Diffusion Java版(SD4J)
Oracle开源项目推出了Stable Diffusion的Java实现版本(SD4J),这是基于Stable Diffusion C#实现的修改版,支持负向文本输入。Stable Diffusion是一种基于扩散的深度学习文本到图像生成模型。SD4J可以通过GUI或在Java应用程序中以编程方式生成图像。SD4J运行在ONNX Runtime之上,这是一个跨平台的推理和训练机器学习加速器,能够提升用户体验并减少模型训练时间。
安装与配置
1. 安装Git Large File Storage (Git LFS)
在Linux系统上,可以使用以下命令安装Git LFS:
$ sudo apt-get install git-lfs2. 克隆SD4J项目
使用以下命令将SD4J项目克隆到本地:
$ git clone https://github.com/oracle-samples/sd4j3. 下载ONNX模型
SD4J使用Hugging Face提供的预构建ONNX模型,可以通过以下命令下载:
$ git clone https://huggingface.co/runwayml/stable-diffusion-v1-5 -b onnx4. 编译ONNXRuntime-Extensions
克隆ONNXRuntime-Extensions项目后,执行以下命令编译:
$ ./build_lib.sh --config Release --update --build --parallel如果CMake未安装,需要安装至少3.25版本的CMake:
$ sudo apt-get install cmake编译成功后,生成的库文件应复制到SD4J项目的根目录。
启动SD4J GUI
在sd4j目录下执行以下Maven命令启动GUI:
$ mvn package exec:exec -DmodelPath=../stable-diffusion-v1-5/图像生成示例
1. 生成跑车图像
使用以下文本提示生成跑车图像:
Professional photograph sports car on the road, high resolution, high quality生成的图像为一辆红色跑车。
2. 使用负向文本生成图像
通过指定负向文本red,可以生成非红色的跑车图像。
3. 使用不同指导尺度生成图像
指导尺度(guidance scale)控制图像与文本提示的紧密程度。较高的指导尺度(如10)生成更符合提示的图像,较低的指导尺度(如1)则允许更多创意。
4. 使用不同推理步骤生成图像
推理步骤(inference steps)控制去噪过程,较少的步骤(如10)生成较模糊的图像,较多的步骤(如50或200)生成更清晰的图像。
编程访问SD4J
SD4J项目提供了Java类SD4J,可以通过编程方式访问SD4J功能。
加速图像生成
通过启用NVIDIA GPU的CUDA集成,可以加速图像生成。在pom.xml中,将<argument>CPU</argument>改为<argument>CUDA</argument>即可。
更多信息
更多详细信息可以参考SD4J的README和Hugging Face文档。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。