🔥【免费AI绘图神器】Google Colab上玩转Flux.1-dev,小白也能秒变艺术家!
大约 2 个月前
在我们踏上这段激动人心的旅程之前,我想向那些为这个项目提供代码支持的杰出人才致以敬意。特别感谢 camenduru 在 Google Colab 上发布并分享了这段令人惊叹的代码,让我们所有人都能轻松使用。
现在,想象一下,仅仅通过文字描述就能将生动的图像变为现实。基于先进的扩散模型的生成式 AI 已经让这个梦想成真。无论是宁静的风景、未来主义的城市景观,还是充满情感的人类瞬间,这些工具都能让任何人轻松创造出令人惊叹的视觉作品。在本指南中,我们将通过使用 Google Colab 免费创作各种艺术作品,探索生成式 AI 的强大功能。让我们一起踏上这段艺术与 AI 的奇妙旅程吧!
如果你对正在阅读的内容感到兴奋,不妨鼓掌 50 次 👏 来表达你的喜爱吧!同时,别忘了 ********,获取更多关于生成式 AI 和创意科技的精彩内容。让我们一起探索无限的可能性!🎨✨
让我们从几个示例开始,激发你的好奇心!
使用 Flux.1-dev 模型在 Google Colab 上重新生成的动漫主题图像 - 免费!(我的眼镜去哪儿了?)
使用 Flux.1-dev 模型生成的图像,提示词为:一位美丽的印度女孩与她梦中的男人结婚。
再次使用 Flux.1-dev 模型生成的图像,提示词同上:一位美丽的印度女孩与她梦中的男人结婚。 尝试理解一致性。
使用 Flux.1-dev 模型生成的图像,提示词为:未来主义城市景观
你觉得上面生成的图像怎么样?我知道它们令人惊叹 😍 这就是生成式 AI 的力量,它通过让用户从文本提示中生成高质量图像,彻底改变了创意领域。其中最令人兴奋的进展之一就是 Flux 模型,它结合了扩散模型、VAE 和 CLIP 等最先进的 AI 技术,成为生成动漫风格图像的强大工具。
在本文中,我将指导你如何在 Google Colab 上运行 Flux 模型 —— 完全免费!通过本教程,你将掌握生成自己杰作的工具。
本文的目标
- MidJourney 与 Flux 的对比。
- 市场上可用的 Flux 模型概览。
- UNET、VAE、CLIP 和 T5 Tokenizer 等组件的用途。
- 如何在 Google Colab 上设置 Flux 模型。
- 运行图像重新生成流程。
- 运行图像生成流程。
MidJourney 与 Flux 的对比
Flux AI 因其灵活性而备受赞誉,尤其是对于那些希望在图像生成和定制方面拥有高度控制的用户。它还受益于开源特性,使其成为开发者和技术用户的首选,他们希望在工作流程中拥有更多控制权。
另一方面,Midjourney 提供了更简化、用户友好的体验,能够为艺术和创意目的生成强大的输出。它最适合那些希望快速获得高质量结果而无需微调参数的用户。
两者都是强有力的竞争者,但你的选择取决于你的具体需求:Flux 适合追求灵活性和照片级真实感,而 Midjourney 则适合追求易用性和艺术风格。
图片展示了 MidJourney 与 Flux 的详细对比。
市场上可用的 Flux 模型概览
Flux AI 模型以其生成高质量、照片级真实图像的能力而闻名,注重细节和真实感。Flux.1 Dev 适合需要高保真度的用户,而 Flux.1 Pro 则面向需要高级功能的专业人士。Flux.1 Schnell 提供了更快的替代方案,虽然质量略有下降,但适合那些优先考虑速度而非超高保真度的用户。这些模型非常适合为各种应用创建逼真、细致的图像。
图片展示了市场上所有可用 Flux 模型的详细对比。
UNET、VAE、CLIP 和 T5 Tokenizer 等组件的用途
图片:尝试在上表中解释这些主要组件(如果你们需要关于这些概念的深入探讨,请告诉我)。
如何在 Google Colab 上设置 Flux 模型。
第一步:在 Google Colab 上设置环境
- 打开 Google Colab 并创建一个新的笔记本。
- 将运行时类型更改为 T4 GPU —— 这一步非常关键!
图片:将运行时类型更改为 T4 GPU
- 将以下代码复制并粘贴到代码单元格中。
# 将工作目录更改为 Colab 环境中的 '/content'
%cd /content
# 从 GitHub 克隆 TotoroUI 仓库,切换到 'totoro3' 分支
!git clone -b totoro3 https://github.com/camenduru/ComfyUI /content/TotoroUI
# 进入克隆的 TotoroUI 目录
%cd /content/TotoroUI
# 安装模型所需的 Python 库,包括:
# - torchsde: PyTorch 中的随机微分方程
# - einops: 张量操作
# - diffusers: Hugging Face 的扩散模型库
# - accelerate: 用于高效训练和推理
# - xformers: 内存高效的注意力实现
!pip install -q torchsde einops diffusers accelerate xformers==0.0.28.post2
# 安装 aria2 工具,一个命令行下载管理器
!apt -y install -qq aria2
# 从 Hugging Face 下载 Flux 模型的 UNET 权重并保存到相应目录
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/FLUX.1-dev/resolve/main/flux1-dev-fp8.safetensors -d /content/TotoroUI/models/unet -o flux1-dev-fp8.safetensors
# 从 Hugging Face 下载 VAE 模型权重并保存到相应目录
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/FLUX.1-dev/resolve/main/ae.sft -d /content/TotoroUI/models/vae -o ae.sft
# 从 Hugging Face 下载 CLIP 模型权重并保存到相应目录
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/FLUX.1-dev/resolve/main/clip_l.safetensors -d /content/TotoroUI/models/clip -o clip_l.safetensors
# 从 Hugging Face 下载 T5 的 tokenizer 模型权重并保存到相应目录
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/FLUX.1-dev/resolve/main/t5xxl_fp8_e4m3fn.safetensors -d /content/TotoroUI/models/clip -o t5xxl_fp8_e4m3fn.safetensors
# 从 Hugging Face 下载一个测试图像并保存为 'test.png'
!wget https://huggingface.co/camenduru/FLUX.1-dev/resolve/main/test.png -O /content/test.png
# 导入必要的 Python 库以进行处理和推理
import random
import torch
import numpy as np
from PIL import Image # 用于图像处理
import nodes # 用于处理管道节点的自定义模块
from nodes import NODE_CLASS_MAPPINGS # 用于访问不同模型组件的映射
from totoro_extras import nodes_custom_sampler # 额外的采样工具
from totoro_extras import nodes_post_processing # 后处理工具
from totoro import model_management # 用于管理模型内存和资源的工具
# 使用 NODE_CLASS_MAPPINGS 字典加载管道的不同组件
DualCLIPLoader = NODE_CLASS_MAPPINGS["DualCLIPLoader"]() # CLIP 模型的加载器
UNETLoader = NODE_CLASS_MAPPINGS["UNETLoader"]() # UNET 模型的加载器
RandomNoise = nodes_custom_sampler.NODE_CLASS_MAPPINGS["RandomNoise"]() # 噪声生成器
BasicGuider = nodes_custom_sampler.NODE_CLASS_MAPPINGS["BasicGuider"]() # 用于条件引导的模型
KSamplerSelect = nodes_custom_sampler.NODE_CLASS_MAPPINGS["KSamplerSelect"]() # 采样器选择器
BasicScheduler = nodes_custom_sampler.NODE_CLASS_MAPPINGS["BasicScheduler"]() # 扩散步骤的调度器
SamplerCustomAdvanced = nodes_custom_sampler.NODE_CLASS_MAPPINGS["SamplerCustomAdvanced"]() # 高级采样器
VAELoader = NODE_CLASS_MAPPINGS["VAELoader"]() # VAE 模型的加载器
VAEDecode = NODE_CLASS_MAPPINGS["VAEDecode"]() # VAE 的解码器
VAEEncode = NODE_CLASS_MAPPINGS["VAEEncode"]() # VAE 的编码器
EmptyLatentImage = NODE_CLASS_MAPPINGS["EmptyLatentImage"]() # 空潜像的占位符
ImageScaleToTotalPixels = nodes_post_processing.NODE_CLASS_MAPPINGS["ImageScaleToTotalPixels"]() # 图像放大工具
# 在无梯度模式下进行推理以提高效率
with torch.inference_mode():
# 使用预训练权重加载 CLIP、UNET 和 VAE 模型
clip = DualCLIPLoader.load_clip("t5xxl_fp8_e4m3fn.safetensors", "clip_l.safetensors", "flux")[0]
unet = UNETLoader.load_unet("flux1-dev-fp8.safetensors", "fp8_e4m3fn")[0]
vae = VAELoader.load_vae("ae.sft")[0]
# 找到最接近 `n` 且能被 `m` 整除的数
def closestNumber(n, m):
q = int(n / m) # 计算商
n1 = m * q # 最接近 `n` 且小于或等于 `n` 的数
# 根据 `n` 和 `m` 的符号计算另一个候选数
if (n * m) > 0:
n2 = m * (q + 1) # 大于 `n` 的候选数
else:
n2 = m * (q - 1) # 小于 `n` 的候选数
# 返回更接近 `n` 的数
if abs(n - n1) < abs(n - n2):
return n1
return n2
运行该单元格。这将设置你的环境,克隆必要的仓库,并下载所有所需的模型权重。
运行上述代码后,你应该会看到以下输出:
/content
Cloning into '/content/TotoroUI'...
remote: Enumerating objects: 14652, done.
remote: Counting objects: 100% (2642/2642), done.
remote: Compressing objects: 100% (179/179), done.
remote: Total 14652 (delta 2549), reused 2463 (delta 2463), pack-reused 12010 (from 1)
Receiving objects: 100% (14652/14652), 22.89 MiB | 16.18 MiB/s, done.
Resolving deltas: 100% (9901/9901), done.
/content/TotoroUI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.7/16.7 MB 88.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 906.4/906.4 MB 747.9 kB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 4.3 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 98.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 78.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 53.4 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 3.2 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 5.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 15.5 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 7.4 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 5.9 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 6.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 84.0 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 99.1/99.1 kB 8.6 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 209.5/209.5 MB 5.7 MB/s eta 0:00:00
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.2/61.2 kB 4.5 MB/s eta 0:00:00
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchaudio 2.5.1+cu121 requires torch==2.5.1, but you have torch 2.5.0 which is incompatible.
torchvision 0.20.1+cu121 requires torch==2.5.1, but you have torch 2.5.0 which is incompatible.
The following additional packages will be installed:
libaria2-0 libc-ares2
The following NEW packages will be installed:
aria2 libaria2-0 libc-ares2
0 upgraded, 3 newly installed, 0 to remove and 49 not upgraded.
Need to get 1,513 kB of archives.
After this operation, 5,441 kB of additional disk space will be used.
Selecting previously unselected package libc-ares2:amd64.
(Reading database ... 123630 files and directories currently installed.)
Preparing to unpack .../libc-ares2_1.18.1-1ubuntu0.22.04.3_amd64.deb ...
Unpacking libc-ares2:amd64 (1.18.1-1ubuntu0.22.04.3) ...
Selecting previously unselected package libaria2-0:amd64.
Preparing to unpack .../libaria2-0_1.36.0-1_amd64.deb ...
Unpacking libaria2-0:amd64 (1.36.0-1) ...
Selecting previously unselected package aria2.
Preparing to unpack .../aria2_1.36.0-1_amd64.deb ...
Unpacking aria2 (1.36.0-1) ...
Setting up libc-ares2:amd64 (1.18.1-1ubuntu0.22.04.3) ...
Setting up libaria2-0:amd64 (1.36.0-1) ...
Setting up aria2 (1.36.0-1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...
/sbin/ldconfig.real: /usr/local/lib/libtbb
推荐阅读:
FluxAI 中文
© 2025. All Rights Reserved