FLUX第二弹!FLUX-GGUF量化,免费大碗的FLUX-API来了!

简介: 近期GGUF 量化支持原生 ComfyUI 和FLUX模型啦。

引言

虽然量化不适用于常规 UNET 模型 (conv2d),但 flux 等 transformer/DiT 模型似乎受量化的影响较小。这允许在低端 GPU 上以量化的方式运行它。近期GGUF 量化支持原生 ComfyUI 和FLUX模型。

模型链接:

https://modelscope.cn/models/AI-ModelScope/FLUX.1-dev-gguf

ComfyUI代码链接:

https://github.com/city96/ComfyUI-GGUF

因为FLUX对显卡有较高的要求,DashScope也推出了FLUX-API,支持中文输入,免费大碗,对于初体验FLUX的用户,也非常方便。

API文档链接:

https://help.aliyun.com/zh/dashscope/developer-reference/flux-apis

ComfyUI代码链接:

https://github.com/modelscope/comfyscope/

魔搭创空间:

https://modelscope.cn/studios/AI-ModelScope/flux

基于ComfyUI的FLUX最佳实践

除了在魔搭创空间上直接体验之外,这里我们提供基于ComfyUI的FLUX-GGUF模型和FLUX-API上手使用体验。ComfyUI是一个功能强大、模块化程度高的AIGC图形和视频生成的用户界面和后台。本文使用ComfyUI,在魔搭社区提供的免费GPU Notebook上,体验FLUX模型的使用:

image.png

下载和部署ComfyUI

clone代码,并安装相关依赖:

#@title Environment Setup
from pathlib import Path
OPTIONS = {}
UPDATE_COMFY_UI = True  #@param {type:"boolean"}
INSTALL_COMFYUI_MANAGER = True  #@param {type:"boolean"}
INSTALL_CUSTOM_NODES_DEPENDENCIES = True  #@param {type:"boolean"}
INSTALL_FLUX = True
INSTALL_FLUX_API = True  #@param {type:"boolean"}
OPTIONS['UPDATE_COMFY_UI'] = UPDATE_COMFY_UI
OPTIONS['INSTALL_COMFYUI_MANAGER'] = INSTALL_COMFYUI_MANAGER
OPTIONS['INSTALL_FLUX'] = INSTALL_FLUX
OPTIONS['INSTALL_FLUX_API'] = INSTALL_FLUX_API
OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES'] = INSTALL_CUSTOM_NODES_DEPENDENCIES
current_dir = !pwd
WORKSPACE = f"{current_dir[0]}/ComfyUI"
!pip install --upgrade gguf
%cd /mnt/workspace/
![ ! -d $WORKSPACE ] && echo -= Initial setup ComfyUI =- && git clone https://github.com/comfyanonymous/ComfyUI
%cd $WORKSPACE
if OPTIONS['UPDATE_COMFY_UI']:
  !echo "-= Updating ComfyUI =-"
  !git pull
# 安装FLUX-GGUF node
if OPTIONS['INSTALL_FLUX']:
  %cd custom_nodes
  !echo -= Initial setup FLUX =- && git clone https://github.com/city96/ComfyUI-GGUF
if OPTIONS['INSTALL_COMFYUI_MANAGER']:
  ![ ! -d ComfyUI-Manager ] && echo -= Initial setup ComfyUI-Manager =- && git clone https://github.com/ltdrdata/ComfyUI-Manager
  %cd ComfyUI-Manager
  !git pull
# 安装FLUX-API node
if OPTIONS['INSTALL_FLUX_API']:
  %cd ../
  ![ ! -d comfy-flux ] && echo -= Initial setup dashscope_api =- && git clone https://github.com/modelscope/comfyscope.git
  %cd comfy-flux
  !git pull
%cd $WORKSPACE
if OPTIONS['INSTALL_CUSTOM_NODES_DEPENDENCIES']:
  !pwd
  !echo "-= Install custom nodes dependencies =-"
  ![ -f "custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py" ] && python "custom_nodes/ComfyUI-Manager/scripts/colab-dependencies.py"

模型下载

#@markdown ###Download standard resources
%cd /mnt/workspace/ComfyUI
### FLUX1-DEV
!modelscope download --model=AI-ModelScope/FLUX.1-dev-gguf --local_dir ./models/unet/ flux1-dev-Q5_1.gguf
### clip
!modelscope download --model=AI-ModelScope/flux_text_encoders --local_dir ./models/clip/ t5xxl_fp16.safetensors
!modelscope download --model=AI-ModelScope/flux_text_encoders --local_dir ./models/clip/ clip_l.safetensors
!modelscope download --model=AI-ModelScope/flux_text_encoders --local_dir ./models/clip/ t5xxl_fp8_e4m3fn.safetensors
### vae
!modelscope download --model=AI-ModelScope/FLUX.1-dev --local_dir ./models/vae/ ae.safetensors

使用cloudflared运行ComfyUI

!wget "https://modelscope.oss-cn-beijing.aliyuncs.com/resource/cloudflared-linux-amd64.deb"
!dpkg -i cloudflared-linux-amd64.deb
%cd /mnt/workspace/ComfyUI
import subprocess
import threading
import time
import socket
import urllib.request
def iframe_thread(port):
  while True:
      time.sleep(0.5)
      sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
      result = sock.connect_ex(('127.0.0.1', port))
      if result == 0:
        break
      sock.close()
  print("\nComfyUI finished loading, trying to launch cloudflared (if it gets stuck here cloudflared is having issues)\n")
  p = subprocess.Popen(["cloudflared", "tunnel", "--url", "http://127.0.0.1:{}".format(port)], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  for line in p.stderr:
    l = line.decode()
    if "trycloudflare.com " in l:
      print("This is the URL to access ComfyUI:", l[l.find("http"):], end='')
    #print(l, end='')
threading.Thread(target=iframe_thread, daemon=True, args=(8188,)).start()
!python main.py --dont-print-server

load流程图

flux1-dev流程图:

https://modelscope.oss-cn-beijing.aliyuncs.com/resource/example_gguf_workflow.json

image.png

flux1 dashscope api 流程图:

https://github.com/modelscope/comfyscope/blob/main/workflow_examples/dashscope_flux.json image.png

点击链接👇直达创空间体验

https://www.modelscope.cn/studios/AI-ModelScope/flux?from=alizishequ__text

目录
打赏
0
0
0
0
156
分享
相关文章
Flux 是什么?
本文的目标是通过了解Flux 提出的模式,来明白Flux 的核心要点,以及弄清楚它到底是什么。并且,由于Flux不是传统意义上的软件包,因此我们将仔细研究通过Flux 来解决设计思路上的问题。本文选自《Flux架构》。
4036 0
【Web API系列教程】3.2 — 实战:处理数据(添加模型和控制器)
前言 在本部分中,你将添加用于定义数据库实体的模型类。然后你将添加用于在这些实体上执行CRUD(Create、Retrieve、Update、Delete——译者注)操作的Web API 控制器。
1087 0
如何用R和API免费获取Web数据?
API是获得Web数据的重要途径之一。想不想了解如何用R调用API,提取和整理你需要的免费Web数据呢?本文一步步为你详尽展示操作流程。 权衡 俗话说“巧妇难为无米之炊”。
1165 0
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
562 0
开发者福利,魔搭推出免费模型推理API,注册就送每日2000次调用!
今天,魔搭社区开放了免费的开源模型推理API,仅需使用魔搭的SDK Token,就可以通过简单的API请求探索各种强大的开源模型的使用。
【从零到精通】如何用Play Framework快速构建RESTful API?看完这篇你就懂了!
【8月更文挑战第31天】《Play Framework快速入门:从零开始构建RESTful API》介绍了如何使用高性能Web开发框架Play Framework构建简单的RESTful API。从环境搭建到项目创建,再到实现用户列表的增删查功能,本文档详细指导每个步骤,并解释核心概念。适合初学者快速上手。首先确保已安装JDK和sbt,然后通过sbt创建Play项目,接着定义控制器、模型及路由,最后运行应用进行测试。通过本教程,你将掌握构建RESTful API的基础知识,为进一步学习Play Framework打下坚实基础。
68 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等