Project Icon

Draw2Img

交互式文本引导图像生成工具 - 适用于各年龄段

Draw2Img是一款开源的AI图像生成工具,基于SDXL-Turbo模型。它提供简洁的网页界面,包含基本绘画功能和颜色选择器,支持实时文本引导图像生成。用户可自定义提示词、种子、步骤和强度参数,并可导出生成结果。支持多用户并发和离线使用,适合局域网环境,注重隐私保护。

Draw2Img

一个简单的网页界面,用于交互式文本引导的图像到图像生成,适合任何年龄和技能水平的用户。

社区展示

"海浪,日落,光线,照片,35毫米数码,4K"

海浪,日落,光线,照片,35毫米数码,4K

你用Draw2Img创作了酷炫的作品吗?在这里展示你的艺术作品!

特性

  • 基于网页的界面,带有基本绘画工具和颜色选择器的交互式画布
  • 通过SDXL-Turbo实现实时文本引导的图像到图像生成(512 x 512像素)
  • 可编辑的提示词、种子、步骤和强度参数
  • 导出按钮,可将输入和输出图像保存为PNG文件,并将参数保存为JSON
  • 多线程服务器支持多个并发用户
    • 易于在局域网上托管,与家人和朋友一起享受创意乐趣
  • 本地(无需互联网)、私密且开源

要求

硬件:

  • 推荐使用至少10 GB显存的GPU,但不是严格要求
  • 支持仅CPU环境,但图像生成速度会显著降低

操作系统:

  • Linux、Mac或Windows

软件:

  • Python >= 3.10 且 <= 3.11

浏览器:

  • 任何现代浏览器(Firefox、Chrome、Edge、Safari等)

互联网:

  • 不需要(首次运行时下载模型除外)

使用方法

安装

克隆此仓库

git clone https://github.com/GradientSurfer/Draw2Img.git

安装依赖

pip install .

启动服务器

启动服务器,默认将在http://localhost:8080上监听

python draw2img/main.py

通过浏览器导航到HTTP URL,就这样,开始享受吧!

选项

你可以通过--host--port选项在特定接口和端口上托管服务器。例如,要在192.168.1.123:4269上监听:

python draw2img/main.py --host 192.168.1.123 --port 4269

查看所有可用选项

python draw2img/main.py --help

容器(Docker/Podman)

你可以使用提供的Dockerfile来构建和运行容器镜像:

DOCKER_BUILDKIT=1 docker build -t draw2img .

请务必挂载你的 huggingface 缓存目录,以避免每次容器启动时都下载 SDXL-Turbo 模型(-v ~/.cache/huggingface:/root/.cache/huggingface)。要使用 GPU,你需要添加 --gpus all 选项。

docker run -it -p 8080:8080 -p 8079:8079 -v ~/.cache/huggingface:/root/.cache/huggingface --gpus all draw2img

开发

服务器

以可编辑模式安装 Python 包

pip install -e .

用户界面

可以手动构建用户界面(静态文件输出到 dist 文件夹)

cd draw2img/ui
npm run build

或者,Vue 3 模板自带文件服务器和热重载功能,方便开发

npm run dev

容器(Docker/Podman)

你可以使用已包含 UI 工具链(node:lts-slim)的容器镜像,避免在主机上安装 nodenpm

cd draw2img/ui
# 构建 UI
docker run -it -v $(pwd):/ui -p 5173:5173 node:lts-slim bash -c "cd ui && npm run build"
# 或运行开发服务器
docker run -it -v $(pwd):/ui -p 5173:5173 node:lts-slim bash -c "cd ui && npm run dev -- --host"

设计说明

后端是一个多线程 Python websocket 服务器,同时也提供 Web UI 的静态文件服务。

前端是一个 JS/TS 应用程序(Vue 3),通过 npm create vue@latest 引导创建。构建产生的静态文件可以用任何 Web 服务器软件提供服务。

性能

虽然 websocket 服务器是多线程的,但由于单例 Pipeline 对象不是线程安全的,所以使用互斥锁保护它。这意味着图像生成实际上是单线程的,因此随着并发用户数量的增加,性能可能会变差,CPU/GPU 资源可能未被充分利用。此外,由于缺乏对某些参数(如强度和步数)在单个批次内的样本之间进行变化的底层支持,没有对推理请求进行批处理。

实际上,多线程/锁原语表现出一定程度的公平性,所以即使输入请求排队,有限的 CPU/GPU 资源也似乎在并发用户之间相对均匀地共享。不过从技术上讲,Python 并不保证在锁争用时线程调度的顺序(根据文档)。

如果你需要更高的并发性,并且有可用的内存/显存和计算资源,可以考虑启动多个 draw2img 进程实例。

安全性

此代码尚未经过漏洞审核。

贡献

欢迎贡献!在开启 PR 或 issue 时,请牢记本项目的宗旨。

安全性

没有安全过滤器来防止生成令人反感或不适当的图像,请谨慎使用。像平常使用电脑/互联网一样,请监督儿童。

非目标 / 其他项目

如果你是寻找更多功能的高级用户,其他项目如 Stable Diffusion Web UIComfyUI 可能更适合你的需求。

许可证

MIT

请参阅 Stability AI 针对 SDXL-Turbo 的非商业许可证 和他们的可接受使用政策

星标历史

星标历史图表

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号