基于Gradio/Stable Diffusion/Midjourney的AIGC自动图像绘画生成软件 - Fooocus

news/2024/7/10 18:52:01 标签: stable diffusion, midjourney, AIGC, python, linux, 人工智能

0.参考

本项目:GitHub - lllyasviel/Fooocus: Focus on prompting and generating

作者:Lvmin Zhang

fcefe8fc12c891189673b7adc4dd2800.jpeg

lllyasviel

另一杰作 ContorlNet https://github.com/lllyasviel/ControlNet

模型:https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0

https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0_0.9vae.safetensors

https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/resolve/main/sd_xl_refiner_1.0_0.9vae.safetensors

依赖项目:

GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI

GitHub - comfyanonymous/ComfyUI: A powerful and modular stable diffusion GUI with a graph/nodes interface.

1.摘要

Fooocus 是一款图像生成软件(基于Gradio)。

Fooocus 是对 Stable Diffusion 和 Midjourney 设计的重新思考:

  • 学习自Stable Diffusion,该软件是离线、开源、免费的。

  • 从Midjourney了解到,不需要手动调整,用户只需关注提示和图像即可。

Fooocus 包含并自动化了许多内部优化和质量改进。用户可以忘记所有那些困难的技术参数,只享受人与计算机之间的交互,“探索新的思维媒介,扩展人类的想象力” [1]

Fooocus 简化了安装。在按下“下载”和生成第一张图像之间,所需的鼠标点击次数严格限制在 3 次以内。最低 GPU 内存要求为 4GB (Nvidia)

最重要的是,部署好之后,断网可用!

作者

2.效果预览

话不多说,直接上图

提示词:中国风的女子和建筑

461602a6514d4ec99f06090649d5a39c.png

提示词:海底世界

0271a7951f4d47218f210e74c240cd20.png

提示词:未来地球幻想

3987c875eb8c4761aa8536ebd6c34367.png

提示词:江雨霏霏江草齐

264e07bd9c0144fe9c4b0bafbb2cb57b.png

提示词:追星星的男孩

9c2b514e03524b098789a8ab369710fb.png

3.环境准备

看完上面的AIGC图片,是不是跃跃欲试。

3.1.硬件配置

最低要求是4GB Nvidia GPU 内存 (4GB VRAM)8GB 系统内存 (8GB RAM)。

3.2. 安装Nvidia驱动程序和Conda工具包

未安装Nvidia请参考

NVIDIA GPU驱动和CUDA工具包 Linux CentOS 7 在线安装指南_Entropy-Go的博客-CSDN博客

Linux CentOS安装NVIDIA GPU驱动程序和NVIDIA CUDA工具包_centos安装nvidia驱动_Entropy-Go的博客-CSDN博客

3.3. 安装Conda

CentOS 上快速安装包管理工具Conda_Entropy-Go的博客-CSDN博客

4.Linux上部署项目Fooocus

4.1. git克隆下载或者下载项目

git clone https://github.com/lllyasviel/Fooocus.git

4.2. conda激活

cd Fooocus
conda env create -f environment.yaml
conda activate fooocus

如conda环境变量没有正常设置,可以初始化

conda init bash

4.3. 安装依赖库

pip install -r requirements_versions.txt

4.4.运行

然后下载模型:从这里下载 sd_xl_base_1.0_0.9vae.safetensors作为文件“Fooocus\models\checkpoints\sd_xl_base_1.0_0.9vae.safetensors”,并从这里下载 sd_xl_refiner_1.0_0.9vae.safetensors作为文件“Fooocus” \models\checkpoints\sd_xl_refiner_1.0_0.9vae.safetensors”。或者让 Fooocus使用启动器自动下载模型 launch.py。

4.4.1. 本机访问

python launch.py

第一次运行时,会下载模型和依赖库,确保网络连接正常。

运行成功

Fooocus Expansion engine loaded.
App started successful. Use the app with http://localhost:7860/ or 127.0.0.1:7860

直接浏览器访问 

http://localhost:7860/

127.0.0.1:7860

4.4.2. 局域网访问

或者,如果您想打开远程端口,请使用

python launch.py --listen

Fooocus Expansion engine loaded.
App started successful. Use the app with http://localhost:7860/ or 0.0.0.0:7860

4.4.3. 临时公网访问

python launch.py --listen --share

可72小时内,公网访问唯一的临时地址 https://b54bc590bc4bfdf404.gradio.live

Running on public URL: https://b54bc590bc4bfdf404.gradio.live

This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)

Fooocus Expansion engine loaded.
App started successful. Use the app with http://localhost:7860/ or 0.0.0.0:7860 or https://b54bc590bc4bfdf404.gradio.live
 

5.Windows上部署项目Fooocus

您可以直接下载Fooocus:

>>>点击此处下载<<<

下载文件后,请将其解压缩,然后运行“run.bat”。

8b4760fe85efe0bddcfb68472e21ad54.png

第一次启动软件时,它会自动下载模型:

  1. 它将从此处下载 sd_xl_base_1.0_0.9vae.safetensors作为文件“Fooocus\models\checkpoints\sd_xl_base_1.0_0.9vae.safetensors”。
  2. 它将从此处下载 sd_xl_refiner_1.0_0.9vae.safetensors作为文件“Fooocus\models\checkpoints\sd_xl_refiner_1.0_0.9vae.safetensors”。

696a18350e3d396d950dbbc11947cbf8.png

如果您已有这些文件,可以将它们复制到上述位置以加快安装速度。

请注意,如果您看到“MetadataIncompleteBuffer”,则您的模型文件已损坏。请重新下载模型。

下面是在一台具有16GB 系统 RAM6GB VRAM的相对低端笔记本电脑(Nvidia 3060 笔记本电脑)上进行的测试。这台机器上的速度约为每次迭代 1.35 秒。相当令人印象深刻——如今配备 3060 的笔记本电脑通常价格非常可接受。

ec55a2922823178306018a0e31d8fa9d.png

此外,最近许多其他软件报告称 Nvidia 532 以上的驱动程序有时比 Nvidia 驱动程序 531 慢 10 倍。如果您的生成时间很长,请考虑下载Nvidia Driver 531 Laptop或Nvidia Driver 531 Desktop。

请注意,最低要求是4GB Nvidia GPU 内存 (4GB VRAM)8GB 系统内存 (8GB RAM)。这需要使用 Microsoft 的虚拟交换技术,在大多数情况下,Windows 安装会自动启用该技术,因此您通常不需要对此执行任何操作。但是,如果您不确定,或者您手动将其关闭(真的有人会这样做吗?),或者如果您看到任何“RuntimeError:CPUAllocator”,您可以在此处启用它:

单击此处查看图像说明。

9a4ab069fc957d8850f9c38e059a97ec.png

如果您仍然看到“RuntimeError: CPUAllocator”,请确保每个驱动器上至少有 40GB 可用空间!

6.开始体验AIGC绘图之旅

6.1.浏览器访问对应的链接

ad26bdfac2d44b8bac7f5c86adfa4570.png

6.2.输入提示词,直接生成图片

默认生成2张图片。默认配置点击Advance进行勾选设置。

6.3.设置

53422f5266b740a983fcfb76c06ef9fa.png

6.4.风格

bf5a5705a14d446281f75c05dac7677a.png

6.5.高级功能

15b3becdb4954fe7aa3aea7db3886684.png

6.6.绘图中

7ac6d9bbcdbb415cb186b9888a54b89f.png

对应的模型推理过程:

############################generate_clicked
############################args: ('logo with "CSDN" charaters', '', ['Fooocus V2', 'Default (Slightly Cinematic)'], 'Speed', '1344?04', 2, 652019699, 2, 'sd_xl_base_1.0_0.9vae.safetensors', 'sd_xl_refiner_1.0_0.9vae.safetensors', 'sd_xl_offset_example-lora_1.0.safetensors', 0.5, 'None', 0.5, 'None', 0.5, 'None', 0.5, 'None', 0.5)
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
[Prompt Expansion] New suffix: intricate, elegant. highly detailed, digital painting, artstation, concept art, smooth, sharp, focus, illustration.. art by artgerm and greg rutkowski and alphonse mucha
Setting `pad_token_id` to `eos_token_id`:50256 for open-end generation.
[Prompt Expansion] New suffix: extremely clean, brush strokes, and octane render, trending on artstation
 67%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258b                     | 20/30 [00:37<00:18,  1.88s/it]Refiner swapped.
100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 30/30 [00:57<00:00,  1.93s/it]
Image generated with private log at: /home/xxx/Fooocus/outputs/2023-09-14/log.html
 67%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258b                     | 20/30 [00:37<00:18,  1.89s/it]Refiner swapped.
100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 30/30 [00:57<00:00,  1.93s/it]
Image generated with private log at: /home/xxx/Fooocus/outputs/2023-09-14/log.html
 

6.7.绘图成功

图片存放于 Fooocus/output/文件中

b43ae238abf147188e556a042cc23f73.png

6.8. 模型推理调用时的GPU计算资源

剩余GPU资源也基本被拉满,玩AI深度学习可以考虑战略性囤显卡,将算力拉满。

nvidia-smi 
Thu Sep 14 05:53:55 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.10              Driver Version: 535.86.10    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla P100-PCIE-16GB           Off | 00000000:31:00.0 Off |                    0 |
| N/A   59C    P0             217W / 250W |  16022MiB / 16384MiB |     99%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A     37726      C   python                                    10930MiB |
|    0   N/A  N/A     39923      C   /opt/tabby/bin/tabby                       5090MiB |
+---------------------------------------------------------------------------------------+

7.FAQ

7.1. 问题1

Git clone failed for Inference Engine: failed to resolve address for github.com: Name or service not known
ImportError: cannot import name 'load_additional_models' from 'comfy.sample' (/home/atanu/Workspace/project-diffusers/Fooocus/repositories/ComfyUI-from-StabilityAI-Official/comfy/sample.py)

解决方法:网络不通,访问github失败,clone失败,可解决网络连接代理配置,或者手动下载

GitHub - comfyanonymous/ComfyUI: A powerful and modular stable diffusion GUI with a graph/nodes interface.

并将 ComfyUI改名为 ComfyUI-from-StabilityAI-Official, 存放于 /home/xxx/Fooocus/repositories/

注释launch.py中的git_clone

python">    comfyui_name = 'ComfyUI-from-StabilityAI-Official'
    
    # git_clone(comfy_repo, repo_dir(comfyui_name), "Inference Engine", comfy_commit_hash)

    sys.path.append(os.path.join(script_path, dir_repos, comfyui_name))

7.2. 问题2

ValueError: When localhost is not accessible, a shareable link must be created. Please set share=True.

浏览器上访问Fooocus成功,但是点击generate/advance报错Expecting value: line 1 column 1 (char 0) 

解决方法: 添加环境变量no_proxy

export no_proxy=localhost,127.0.0.1

7.3. 更多问题

https://github.com/lllyasviel/Fooocus/issues


http://www.niftyadmin.cn/n/5026182.html

相关文章

Qt中音频的使用

对于音频我们在使用的过程中一般是录制音频、播放音频。针对这两个需求介绍Qt中音频的使用。 Qt中音频的录制 步骤&#xff1a; 1、获取系统中的音频设备。 2、创建QAudioRecorder对象&#xff0c;指定使用的音频设备&#xff0c;通过QAudioRecorder的setAudioInput函数设置…

数据通信网络之IPv6以太网多层交换

文章及资源归档至【AIShareLab】&#xff0c;回复 通信系统与网络 可获取。 文章目录 一、目的二、环境及网络拓扑三、需求四、步骤 一、目的 掌握 VLAN 的基础配置。掌握 Trunk 的基础配置。掌握 VLANIF 的基础配置&#xff0c;并理解通过三层交换机实现 VLAN 之间通信的方案…

音视频 SDL vs2017配置

一、首先我把SDL放在了C盘根目录下 二、新建空项目 三、添加main.cpp //main.cpp #include<iostream> #include <SDL.h>int main(int argc, char* argv[]) // main函数头必须这样写&#xff0c;因为SDL把main定义成了宏 {SDL_Delay(3000); // 让窗口在屏幕上保持…

tensorflow cuda gpu 安装

Windows 安装 CUDA/cuDNN 需要注意的是一定要选择 TensorFlow 和 CUDA相匹配&#xff0c;还需要查看下自己GPU的驱动版本&#xff0c;如果不匹配会出现很多问题。GPU驱动的版本可在 NVIDIA控制面板里找到&#xff1a; CUDA个版本与驱动的关系如下&#xff1a; GPU版本的 Tensor…

Laravel5使用box/spout扩展,大文件导出CSV文件

一、背景 早期开发的系统&#xff0c;使用laravel框架&#xff0c;版本V5.4&#xff0c;项目经理导出 3 年的数据&#xff0c;由于数据量较大&#xff0c;浏览器卡死。一次性无法导出&#xff0c;某位程序员告知按月去导出&#xff0c;之后在拼凑&#xff0c;这。。搁谁受的了…

计算机竞赛 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#x…

酷开系统——酷开科技挖掘下沉市场的重要利器

纵观整个互联网的发展历程&#xff0c;我们经历从搜索时代到电子商务时代&#xff0c;再从社交网络时代到近几年兴起的兴趣网络时代。而在当下的兴趣网络时代&#xff0c;面对多元化、同质化的产品&#xff0c;价值文化成为品牌和消费者建立连接的关键。目前&#xff0c;互联网…

Ruby 里表的增删改查

官网链接&#xff1a; Active Record Migrations — Ruby on Rails Guides 添加string字段 rails g migration AddFieldIdToTables field_id:string 添加boolean(tinyint)字段 rails g migration AddFieldFlagToTables field_flag:boolean 添加text字段 rails g migratio…