[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-jina-ai--discoart":3,"tool-jina-ai--discoart":61},[4,18,26,36,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,35],"插件",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":42,"last_commit_at":43,"category_tags":44,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":42,"last_commit_at":51,"category_tags":52,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[35,13,15,14],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":42,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[35,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":10,"env_os":102,"env_gpu":103,"env_ram":104,"env_deps":105,"category_tags":112,"github_topics":114,"view_count":42,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":130,"updated_at":131,"faqs":132,"releases":162},8604,"jina-ai\u002Fdiscoart","discoart","🪩 Create Disco Diffusion artworks in one line","DiscoArt 是一个专为生成艺术爱好者和开发者打造的开源工具，旨在通过一行代码轻松创建高质量的 Disco Diffusion 艺术作品。它基于 CLIP 引导的扩散模型，将原本复杂的图像生成流程简化为直观的 Python 接口，让用户能专注于创意表达而非繁琐的代码调试。\n\n针对原始 Disco Diffusion 项目中存在的依赖冲突、环境配置困难以及 Google Colab 会话易中断等痛点，DiscoArt 提供了工业级的工程优化。它不仅具备更小的内存占用和更快的运行速度，还支持结果自动保存与恢复，有效避免了因网络波动或会话超时导致的工作丢失。此外，其内置的 gRPC\u002FHTTP 服务化能力，使得模型部署和横向扩展变得异常简单。\n\nDiscoArt 非常适合希望快速验证创意的 AI 艺术家、需要稳定集成多模态能力的开发人员，以及想要在本机或云端自由探索参数的研究者。无论是通过命令行、Python 脚本还是 Docker 容器，用户都能获得流畅的使用体验。凭借对 DocArray 数据结构的原生支持，它还能无缝对接 Jina 等生态工具，为构建更大规模的跨模态应用奠定坚实基础。","![](.github\u002Fbanner.png)\n\n\u003Cp align=\"center\">\n\u003Cb>Create compelling Disco Diffusion artworks in one line\u003C\u002Fb>\n\u003C\u002Fp>\n\n\u003Cp align=center>\n\u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fdiscoart\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fdiscoart?style=flat-square&amp;label=Release\" alt=\"PyPI\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fjinaai\u002Fdiscoart\">\u003Cimg alt=\"Docker Cloud Build Status\" src=\"https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fcloud\u002Fbuild\u002Fjinaai\u002Fdiscoart?logo=docker&logoColor=white&style=flat-square\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdiscord.jina.ai\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1106542220112302130?logo=discord&logoColor=white&style=flat-square\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fjina-ai\u002Fdiscoart\u002Fblob\u002Fmain\u002Fdiscoart.ipynb\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpen-in%20Colab-brightgreen?logo=google-colab&style=flat-square\" alt=\"Open in Google Colab\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\nDiscoArt is an elegant way of creating compelling Disco Diffusion\u003Csup>\u003Ca href=\"#example-application\">[*]\u003C\u002Fa>\u003C\u002Fsup> artworks for generative artists, AI enthusiasts and hard-core developers. DiscoArt has a modern & professional API with a beautiful codebase, ensuring high usability and maintainability. It introduces handy features such as result recovery and persistence, gRPC\u002FHTTP serving w\u002Fo TLS, post-analysis, easing the integration to larger cross-modal or multi-modal applications.\n\n\u003Csub>\u003Csup>\u003Ca id=\"example-application\">[*]\u003C\u002Fa> \nDisco Diffusion is a Google Colab Notebook that leverages CLIP-Guided Diffusion to allow one to create compelling and beautiful images from text prompts.\n\u003C\u002Fsup>\u003C\u002Fsub>\n\n\n💯 **Best-in-class**: industry-level engineering, top-notch code quality, lean dependencies, small RAM\u002FVRAM footprint; important bug fixes, feature improvements [vs. the original DD5.6](FEATURES.md). \n\n👼 **Available to all**: smooth install for *self-hosting*, Google Colab *free tier*, non-GUI (IPython) environment, and CLI! No brainfuck, no dependency hell, no stackoverflow. \n\n🎨 **Focus on create not code**: one-liner `create()` with a Pythonic interface, autocompletion in IDE, and powerful features. Fetch real-time results anywhere anytime, no more worry on session outrage on Google Colab. Set initial state easily for more efficient parameter exploration.\n\n🏭 **Ready for integration & production**: built on top of [DocArray](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdocarray) data structure, enjoy smooth integration with [Jina](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fjina), [CLIP-as-service](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fclip-as-service) and other cross-\u002Fmulti-modal applications.\n\n☁️ [**As-a-service**](#serving): simply `python -m discoart serve`, DiscoArt is now a high-performance low-latency service supports gRPC\u002FHTTP\u002Fwebsockets and TLS. Scaling up\u002Fdown is one-line; Cloud-native features e.g. Kubernetes, Prometheus and Grafana is one-line. [Unbelievable simple thanks to Jina](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fjina).\n\n\n## [Gallery with prompts](https:\u002F\u002Ftwitter.com\u002Fhxiao\u002Fstatus\u002F1542967938369687552?s=20&t=DO27EKNMADzv4WjHLQiPFA) \n\nDo you see the `discoart-id` in each tweet? To get the config & prompts, simply:\n\n```python\nfrom discoart import show_config\n\nshow_config('discoart-id')\n```\n\n## Install\n\nPython 3.7+ and CUDA-enabled PyTorch is required.\n\n```bash\npip install discoart\n```\n\nThis applies to both *self-hosting*, *Google Colab*, system integration, non-GUI environments.\n\n- **Self-hosted Jupyter**: to run a Jupyter Notebook on your own GPU machine, the easiest way is to [use our prebuilt Docker image](#run-in-docker).\n- **Use it from CLI**: [`python -m discoart create`](#cli) and `python -m discoart config` are CLI commands.\n- **Use it as a service**: [`python -m discoart serve`](#serving) allows one to run it as gRPC\u002FHTTP\u002Fwebsockets service.\n\n### GUI\n\nDiscoArt is the **infrastructure** for creating Disco Diffusion artworks. The built-in Jupyter Notebook support gives you basic yet limited user experience, e.g. it does not offer any intuitive GUI for [prompt scheduling](FEATURES.md#prompt-scheduling). Note that DiscoArt is developer-centric and API-first, hence improving consumer-facing experience is out of the scope. There are services, platforms and products (not Jina AI affiliated) that already integrate DiscoArt as a service and provide nice GUI on top of it, e.g. Fever Dreams, Replicate, RunPod and Renderflux.\n\n\u003Cdetails>\n  \u003Csummary>Click to see third-party GUI\u003C\u002Fsummary>\n\n- [Fever Dreams](https:\u002F\u002Fwww.feverdreams.app\u002F): a free community-powered service with nice GUI and gallery, where people generate and share their DiscoArt artworks, prompts and configs.\n- [Replicate](https:\u002F\u002Freplicate.com\u002Fnightmareai\u002Fdisco-diffusion): a free form-based GUI of DiscoArt with sandbox user experience and the visualizations.  \n- [RunPod](https:\u002F\u002Fwww.runpod.io\u002Fblog\u002Faccelerate-your-generate-art-with-disco-diffusion-and-runpod): a paid GPU cloud provider that runs DiscoArt container with a simple and clean GUI to visualize the configs and creations.\n- [Renderflux](https:\u002F\u002Fbeta.renderflux.com\u002Fregister?invite=bughunting): a paid creative art platform that wraps DiscoArt and provides end-to-end GUI for creation management.\n\n**Please be aware that these platforms, products or companies are not affiliated with Jina AI.** They define their own terms of services, paywall and data and privacy policies, which are not in the scope of DiscoArt MIT License.\n\n\u003C\u002Fdetails>\n\n## Get Started\n\n\u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fjina-ai\u002Fdiscoart\u002Fblob\u002Fmain\u002Fdiscoart.ipynb\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpen-in%20Colab-brightgreen?logo=google-colab&style=flat-square\" alt=\"Open in Google Colab\"\u002F>\u003C\u002Fa>\n\n### Create artworks\n\n```python\nfrom discoart import create\n\nda = create()\n```\n\nThat's it! It will create with the [default text prompts and parameters](.\u002Fdiscoart\u002Fresources\u002Fdefault.yml).\n\n![](.github\u002Fcreate-demo.gif)\n\n### Set prompts and parameters\n\nSupported parameters are [listed here](.\u002Fdiscoart\u002Fresources\u002Fdefault.yml). You can specify them in `create()`:\n\n```python\nfrom discoart import create\n\nda = create(\n    text_prompts='A painting of sea cliffs in a tumultuous storm, Trending on ArtStation.',\n    init_image='https:\u002F\u002Fd2vyhzeko0lke5.cloudfront.net\u002F2f4f6dfa5a05e078469ebe57e77b72f0.png',\n    skip_steps=100,\n)\n```\n\n![](.github\u002Fparameter-demo.gif)\n\nIn case you forgot a parameter, just lookup the cheatsheet at anytime:\n\n```python\nfrom discoart import cheatsheet\n\ncheatsheet()\n```\n\nThe difference on the parameters between DiscoArt and DD5.6 [is explained here](.\u002FFEATURES.md). \n\n\n### Visualize results\n\nFinal results and intermediate results are created under the current working directory, i.e.\n```text\n.\u002F{name-docarray}\u002F{i}-done.png\n.\u002F{name-docarray}\u002F{i}-step-{j}.png\n.\u002F{name-docarray}\u002F{i}-progress.png\n.\u002F{name-docarray}\u002F{i}-progress.gif\n.\u002F{name-docarray}\u002Fda.protobuf.lz4\n```\n\n![](.github\u002Fresult-persist.png)\n\nwhere:\n\n- `name-docarray` is the name of the run, you can specify it otherwise it is a random name.\n- `i-*` is up to the value of `n_batches`.\n- `*-done-*` is the final image on done.\n- `*-step-*` is the intermediate image at certain step, updated in real-time.\n- `*-progress.png` is the sprite image of all intermediate results so far, updated in real-time.\n- `*-progress.gif` is the animated gif of all intermediate results so far, updated in real-time.\n- `da.protobuf.lz4` is the compressed protobuf of all intermediate results so far, updated in real-time.\n\nThe save frequency is controlled by `save_rate`.\n\nMoreover, `create()` returns `da`, a [DocumentArray](https:\u002F\u002Fdocarray.jina.ai\u002Ffundamentals\u002Fdocumentarray\u002F)-type object. It contains the following information:\n- All arguments passed to `create()` function, including seed, text prompts and model parameters.\n- 4 generated image and its intermediate steps' images, where `4` is determined by `n_batches` and is the default value. \n\nThis allows you to further post-process, analyze, export the results with powerful DocArray API.\n\nImages are stored as Data URI in `.uri`, to save the first image as a local file:\n\n```python\nda[0].save_uri_to_file('discoart-result.png')\n```\n\nTo save all final images:\n\n```python\nfor idx, d in enumerate(da):\n    d.save_uri_to_file(f'discoart-result-{idx}.png')\n```\n\nYou can also display all four final images in a grid:\n\n```python\nda.plot_image_sprites(skip_empty=True, show_index=True, keep_aspect_ratio=True)\n```\n![](.github\u002Fall-results.png)\n\nOr display them one by one:\n\n```python\nfor d in da:\n    d.display()\n```\n\nOr take one particular run:\n\n```python\nda[0].display()\n```\n\n![](.github\u002Fdisplay.png)\n\n### Visualize intermediate steps\n\nYou can also zoom into a run (say the first run) and check out intermediate steps:\n\n```python\nda[0].chunks.plot_image_sprites(\n    skip_empty=True, show_index=True, keep_aspect_ratio=True\n)\n```\n![](.github\u002Fchunks.png)\n\nYou can `.display()` the chunks one by one, or save one via `.save_uri_to_file()`, or save all intermediate steps as a GIF:\n\n```python\nda[0].chunks.save_gif(\n    'lighthouse.gif', show_index=True, inline_display=True, size_ratio=0.5\n)\n```\n\n![](.github\u002Flighthouse.gif)\n\nNote that >=0.7.14, a 20FPS gif is generated which includes all intermedidate steps. \n\n### Show\u002Fsave\u002Fload configs\n\nTo show the config of a Document\u002FDocumentArray,\n\n```python\nfrom discoart import show_config\n\nshow_config(da)  # show the config of the first run\nshow_config(da[3])  # show the config of the fourth run\nshow_config(\n    'discoart-06030a0198843332edc554ffebfbf288'\n)  # show the config of the run with a known DocArray ID\n```\n\nTo save the config of a Document\u002FDocumentArray,\n\n```python\nfrom discoart import save_config\n\nsave_config(da, 'my.yml')  # save the config of the first run\nsave_config(da[3], 'my.yml')  # save the config of the fourth run\n```\n\nTo run `create` from a YAML config of Document\u002FDocumentArray,\n\n```python\nfrom discoart import create, load_config\n\nconfig = load_config('my.yml')\ncreate(**config)\n```\n\nYou can also export the config as an SVG image:\n\n```python\nfrom discoart.config import save_config_svg\n\nsave_config_svg(da)\n```\n\n![](.github\u002Fdiscoart-3205998582.svg)\n\nOne can also generate runnable Python code directly from the config:\n\n```python\nfrom discoart.config import export_python\n\nexport_python(da)\n```\n\n### Pull results anywhere anytime\n\nIf you are a free-tier Google Colab user, one annoy thing is the lost of sessions from time to time. Or sometimes you just early stop the run as the first image is not good enough, and a keyboard interrupt will prevent `.create()` to return any result. Either case, you can easily recover the results by pulling the last session ID.\n\n1. Find the session ID. It appears on top of the image. \n![](.github\u002Fsession-id.png)\n\n2. Pull the result via that ID **on any machine at any time**, not necessarily on Google Colab:\n    ```python\n    from docarray import DocumentArray\n    \n    da = DocumentArray.pull('discoart-3205998582')\n    ```\n\n### Reuse a Document as initial state\n\nConsider a Document as a self-contained data with config and image, one can use it as the initial state for the future run. Its `.tags` will be used as the initial parameters; `.uri` if presented will be used as the initial image.\n\n```python\nfrom discoart import create\nfrom docarray import DocumentArray\n\nda = DocumentArray.pull('discoart-3205998582')\n\ncreate(\n    init_document=da[0],\n    cut_ic_pow=0.5,\n    tv_scale=600,\n    cut_overview='[12]*1000',\n    cut_innercut='[12]*1000',\n    use_secondary_model=False,\n)\n```\n\nIf you just want to initialize from a known DocArray ID, then simply:\n\n```python\nfrom discoart import create\n\ncreate(init_document='discoart-3205998582')\n```\n\n\n### Environment variables\n\nYou can set environment variables to control the meta-behavior of DiscoArt. The environment variables must be set before importing DiscoArt, either in Bash or in Python via `os.environ`.\n\n```bash\nDISCOART_LOG_LEVEL='DEBUG' # more verbose logs\nDISCOART_OPTOUT_CLOUD_BACKUP='1' # opt-out from cloud backup\nDISCOART_DISABLE_IPYTHON='1' # disable ipython dependency\nDISCOART_DISABLE_RESULT_SUMMARY='1' # disable result summary after the run ends\nDISCOART_DEFAULT_PARAMETERS_YAML='path\u002Fto\u002Fyour-default.yml' # use a custom default parameters file\nDISCOART_CUT_SCHEDULES_YAML='path\u002Fto\u002Fyour-schedules.yml' # use a custom cut schedules file\nDISCOART_MODELS_YAML='path\u002Fto\u002Fyour-models.yml' # use a custom list of models file\nDISCOART_OUTPUT_DIR='path\u002Fto\u002Fyour-output-dir' # use a custom output directory for all images and results\nDISCOART_CACHE_DIR='path\u002Fto\u002Fyour-cache-dir' # use a custom cache directory for models and downloads\nDISCOART_DISABLE_REMOTE_MODELS='1' # disable the listing of diffusion models on Github, remote diffusion models allows user to use latest models without updating the codebase.\nDISCOART_REMOTE_MODELS_URL='https:\u002F\u002Fyourdomain\u002Fmodels.yml' # use a custom remote URL for fetching models list\nDISCOART_DISABLE_CHECK_MODEL_SHA='1' # disable checking local model SHA matches the remote model SHA\nDISCOART_DISABLE_TQDM='1' # disable tqdm progress bar on diffusion\n```\n\n## CLI\n\nDiscoArt provides two commands `create` and `config` that allows you to run DiscoArt from CLI.\n\n```bash\npython -m discoart create my.yml\n```\n\nwhich creates artworks from the YAML config file `my.yml`. You can also do:\n\n```bash\ncat config.yml | python -m discoart create\n```\n\nSo how can I have my own `my.yml` and what does it look like? That's the second command:\n\n```bash\npython -m discoart config my.yml\n```\n\nwhich forks the [default YAML config](discoart\u002Fresources\u002Fdefault.yml) and export them to `my.yml`. Now you can modify it and run it with `python -m discoart create` command.\n\nIf no output path is specified, then `python -m discoart config` will print the default config to stdout.\n\nTo get help on a command, add `--help` at the end, e.g.:\n\n```bash\npython -m discoart create --help\n```\n\n```text\nusage: python -m discoart create [-h] [YAML_CONFIG_FILE]\n\npositional arguments:\n  YAML_CONFIG_FILE  The YAML config file to use, default is stdin.\n\noptional arguments:\n  -h, --help        show this help message and exit\n```\n\n## Serving\n\nServing DiscoArt is super easy. Simply run the following command:\n\n```bash\npython -m discoart serve\n```\n\nYou shall see:\n\n![](.github\u002Fserving.png)\n\nNow send request to the server via curl\u002FJavascript, e.g.\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fcreate\", \"parameters\": {\"text_prompts\": [\"A beautiful painting of a singular lighthouse\", \"yellow color scheme\"]}}'\n```\n\nThat's it. \n\nYou can of course pass all parameters that accepted by `create()` function in the JSON.\n\n### Polling intermediate results\n\nWe already know that `create` function is slow even on GPU it could take 10 minutes to finish an artwork. This means the after sending the above request, the client will have to wait 10 minutes for the response. There is nothing wrong with this behavior given that everything runs synchronously. However, in practice, client may expect a progress or intermediate results in the middle instead of waiting for the end.\n\n`\u002Fresult` endpoint is designed for this purpose. It will return the intermediate results as soon as they are available. All you need is to specify `name_docarray` in the request parameters as you specified in `\u002Fcreate` endpoint. Here is an example:\n\nLet's create `mydisco-123` by sending the following request to `\u002Fcreate` endpoint:\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fcreate\", \"parameters\": {\"name_docarray\": \"mydisco-123\", \"text_prompts\": [\"A beautiful painting of a singular lighthouse\", \"yellow color scheme\"]}}'\n```\n\nNow that the above request is being processed on the server, you can periodically check `mydisco-123` progress by sending the following request to `\u002Fresult` endpoint:\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fresult\", \"parameters\": {\"name_docarray\": \"mydisco-123\"}}'\n```\n\nA JSON will be returned with up-to-date progress, with image as DataURI, loss, steps etc. [The JSON Schema of Document\u002FDocumentArray is described here.](https:\u002F\u002Fdocarray.jina.ai\u002Ffundamentals\u002Ffastapi-support\u002F#json-schema)\n\nNote, `\u002Fresult` won't be blocked by `\u002Fcreate` thanks to the smart routing of Jina Gateway. To learn\u002Fplay more about those endpoints, you can check ReDoc or the Swagger UI embedded in the server.\n\n### Skip & Cancel\n\nSend to `\u002Fskip`, to skip the current run and move to the next run as defined in `n_batches`:\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fskip\"}'\n```\n\nSend to `\u002Fstop`, to stop the current run cancel all runs `n_batches`:\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fstop\"}'\n```\n\n### Unblocking `\u002Fcreate` request\n\nIt is possible to have an unblocked `\u002Fcreate` endpoint: the client request to `\u002Fcreate` will be **immediately** returned, without waiting for the results to be finished. You now have to fully rely on `\u002Fresult` to poll the result. \n\nTo enable this feature: \n\n1. Copy-paste the [default `flow.yml` file](.\u002Fdiscoart\u002Fresources\u002Fflow.yml) to `myflow.yml`;\n2. Change `floating: false` to `floating: true` under `discoart` executor section;\n3. Run the following command:\n    ```bash\n    python -m discoart serve myflow.yml\n    ```\n\nBeware that the request velocity is now under **your control**. That is, if the client sends 10 `\u002Fcreate` requests in a second, then the server will start 10 `create()` in parallel! This can easily lead to OOM. Hence, the suggestion is only enabling this feature if you are sure that the client is not sending too many requests, e.g. you control the client request rate; or you are using DiscoArt behind a BFF (backend for frontend).\n\n### Scaling out\n\nIf you have multiple GPUs and you want to run multiple DiscoArt instances in parallel by leveraging GPUs in a time-multiplexed fashion, you can copy-paste the [default `flow.yml` file](.\u002Fdiscoart\u002Fresources\u002Fflow.yml) and modify it as follows:\n\n```yaml\njtype: Flow\nwith:\n  protocol: http\n  monitoring: true\n  port: 51001\n  port_monitoring: 51002  # prometheus monitoring port\n  env:\n    JINA_LOG_LEVEL: debug\n    DISCOART_DISABLE_IPYTHON: 1\n    DISCOART_DISABLE_RESULT_SUMMARY: 1\nexecutors:\n  - name: discoart\n    uses: DiscoArtExecutor\n    env:\n      CUDA_VISIBLE_DEVICES: RR0:3  # change this if you have multiple GPU\n    replicas: 3  # change this if you have larger VRAM\n  - name: poller\n    uses: ResultPoller\n```\n\nHere `replicas: 3` says spawning three DiscoArt instances, `CUDA_VISIBLE_DEVICES: RR0:3` makes sure they use the first three GPUs in a round-robin fashion.\n\nName it as `myflow.yml` and then run \n\n```bash\npython -m discoart serve myflow.yml\n```\n\n### Customization\n\n[Thanks to Jina](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fjina), there are tons of things you can customize! You can change the port number; change protocol to gRPC\u002FWebsockets; add TLS encryption; enable\u002Fdisable Prometheus monitoring; you can also export it to Kubernetes deployment bundle simply via:\n\n```bash\njina export kubernetes myflow.yml\n```\n\nFor more features and YAML configs, [please check out Jina docs](https:\u002F\u002Fdocs.jina.ai).\n\n\n### Use gRPC gateway\n\nTo switch from HTTP to gRPC gateway is simple:\n\n```yaml\njtype: Flow\nwith:\n  protocol: grpc\n...\n```\n\nand then restart the server.\n\nThere are multiple advantages of using gRPC gateway:\n- Much faster and smaller network overhead.\n- Feature-rich, like compression, status monitoring, etc.\n\nIn general, if you are using the DiscoArt server behind a BFF (backend for frontend), or your DiscoArt server does **not** directly serve HTTP traffic from end-users, then you should use gRPC protocol.\n\nTo communicate with a gRPC DiscoArt server, one can use a Jina Client:\n\n```python\n# !pip install jina\nfrom jina import Client\n\nc = Client(host='grpc:\u002F\u002F0.0.0.0:51001')\n\nda = c.post(\n    '\u002Fcreate',\n    parameters={\n        'name_docarray': 'mydisco-123',\n        'text_prompts': [\n            'A beautiful painting of a singular lighthouse',\n            'yellow color scheme',\n        ],\n    },\n)\n\n# check intermediate results\nda = c.post('\u002Fresult', parameters={'name_docarray': 'mydisco-123'})\n```\n\nTo use an existing Document\u002FDocumentArray as init Document for `create`:\n\n```python\nfrom jina import Client\n\nc = Client(host='grpc:\u002F\u002F0.0.0.0:51001')\n\nold_da = create(...)\n\nda = c.post(\n    '\u002Fcreate',\n    old_da,  # this can be a DocumentArray or a single Document\n    parameters={\n        'width_height': [1024, 768],\n    },\n)\n```\n\nThis equals to run `create(init_document=old_da, width_height=[1024, 768])` on the server. Note:\n- follow-up parameters have higher priorities than the parameters in `init_document`.\n- if `init_document` is a DocumentArray, then the first Document in the array will be used as the init Document.\n- there is no need to do any serialization before sending, Jina automatically handles it.\n\n### Hosting on Google Colab\n\nThough not recommended, it is also possible to use Google Colab to host DiscoArt server. \nPlease check out the following tutorials:\n- https:\u002F\u002Fdocs.jina.ai\u002Fhow-to\u002Fgoogle-colab\u002F\n- https:\u002F\u002Fclip-as-service.jina.ai\u002Fhosting\u002Fcolab\u002F\n\n\n\n\n\n## Run in Docker\n\n[![Docker Image Size (tag)](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fimage-size\u002Fjinaai\u002Fdiscoart\u002Flatest?logo=docker&logoColor=white&style=flat-square)](https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fjinaai\u002Fdiscoart)\n\nWe provide a prebuilt Docker image for running DiscoArt out of the box. To update Docker image to latest version:\n\n```bash\ndocker pull jinaai\u002Fdiscoart:latest\n```\n\n### Use Jupyter notebook\n\nThe default entrypoint is starting a Jupyter notebook\n\n```bash\n# docker build . -t jinaai\u002Fdiscoart  # if you want to build yourself\ndocker run -p 51000:8888 -v $(pwd):\u002Fhome\u002Fjovyan\u002F -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart\n```\n\nNow you can visit `http:\u002F\u002F127.0.0.1:51000` to access the notebook\n\n### Enable GPU in Docker on Windows\n\n You can use it on Windows Subsystem for Linux (WSL), Check the official guide [here](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fwindows\u002Fai\u002Fdirectml\u002Fgpu-cuda-in-wsl).\n\n```bash\n# Make sure you install Windows 11 or Windows 10, version 21H2\ndocker run -p 8888:8888 -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart\n```\n\n### Use as a service\n\n```bash\n# docker build . -t jinaai\u002Fdiscoart  # if you want to build yourself\ndocker run --entrypoint \"python\" -p 51001:51001 -v $(pwd):\u002Fhome\u002Fjovyan\u002F -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart -m discoart serve\n```\n\nYour DiscoArt server is now running at `http:\u002F\u002F127.0.0.1:51001`.\n\n### Release cycle\n\n[Docker images are built on every release](https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fjinaai\u002Fdiscoart), so one can lock it to a specific version, say `0.5.1`:\n\n```bash\ndocker run -p 51000:8888 -v $(pwd):\u002Fhome\u002Fjovyan\u002F -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart:0.5.1\n```\n\n\n## What's next?\n\n[Next is create](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fjina-ai\u002Fdiscoart\u002Fblob\u002Fmain\u002Fdiscoart.ipynb).\n\n😎 **If you are already a DD user**: you are ready to go! There is no extra learning, DiscoArt respects the same parameter semantics as DD5.6. So just unleash your creativity! [Read more about their differences here](.\u002FFEATURES.md).\n\nYou can always do `from discoart import cheatsheet; cheatsheet()` to check all new\u002Fmodified parameters.\n\n👶 **If you are a [DALL·E Flow](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdalle-flow\u002F) or new user**: you may want to take step by step, as Disco Diffusion works in a very different way than DALL·E. It is much more advanced and powerful: e.g. Disco Diffusion can take weighted & structured text prompts; it can initialize from a image with controlled noise; and there are way more parameters one can tweak. Impatient prompt like `\"armchair avocado\"` will give you nothing but confusion and frustration. I highly recommend you to check out the following resources before trying your own prompt:\n- [Zippy's Disco Diffusion Cheatsheet v0.3](https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7g\u002Fmobilebasic)\n- [EZ Charts - Diffusion Parameter Studies](https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1ORymHm0Te18qKiHnhcdgGp-WSt8ZkLZvow3raiu2DVU\u002Fedit#)\n- [Disco Diffusion 70+ Artist Studies](https:\u002F\u002Fweirdwonderfulai.art\u002Fresources\u002Fdisco-diffusion-70-plus-artist-studies\u002F)\n- [A Traveler’s Guide to the Latent Space](https:\u002F\u002Fsweet-hall-e72.notion.site\u002FA-Traveler-s-Guide-to-the-Latent-Space-85efba7e5e6a40e5bd3cae980f30235f#e122e748b86e4fc0ad6a7a50e46d6e10)\n- [Disco Diffusion Illustrated Settings](https:\u002F\u002Fcoar.notion.site\u002FDisco-Diffusion-Illustrated-Settings-cd4badf06e08440c99d8a93d4cd39f51)\n- [Coar’s Disco Diffusion Guide](https:\u002F\u002Fcoar.notion.site\u002Fcoar\u002FCoar-s-Disco-Diffusion-Guide-3d86d652c15d4ca986325e808bde06aa#8a3c6e9e4b6847afa56106eacb6f1f79)\n\n\u003C!-- start support-pitch -->\n## Support\n\n- Join our [Discord community](https:\u002F\u002Fdiscord.jina.ai) and chat with other community members about ideas.\n- Join our [Engineering All Hands](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PL3UBBWOUVhFYRUa_gpYYKBqEAkO4sxmne) meet-up to discuss your use case and learn Jina's new features.\n    - **When?** The second Tuesday of every month\n    - **Where?**\n      Zoom ([see our public events calendar](https:\u002F\u002Fcalendar.google.com\u002Fcalendar\u002Fembed?src=c_1t5ogfp2d45v8fit981j08mcm4%40group.calendar.google.com&ctz=Europe%2FBerlin)\u002F[.ical](https:\u002F\u002Fcalendar.google.com\u002Fcalendar\u002Fical\u002Fc_1t5ogfp2d45v8fit981j08mcm4%40group.calendar.google.com\u002Fpublic\u002Fbasic.ics))\n      and [live stream on YouTube](https:\u002F\u002Fyoutube.com\u002Fc\u002Fjina-ai)\n- Subscribe to the latest video tutorials on our [YouTube channel](https:\u002F\u002Fyoutube.com\u002Fc\u002Fjina-ai)\n\n## Join Us\n\nDiscoArt is backed by [Jina AI](https:\u002F\u002Fjina.ai) and licensed under [MIT License](.\u002FLICENSE). [We are actively hiring](https:\u002F\u002Fjobs.jina.ai) AI engineers, solution engineers to build the next neural search ecosystem in open-source.\n\n\u003C!-- end support-pitch -->\n","![](.github\u002Fbanner.png)\n\n\u003Cp align=\"center\">\n\u003Cb>用一行代码创作引人入胜的 Disco Diffusion 艺术作品\u003C\u002Fb>\n\u003C\u002Fp>\n\n\u003Cp align=center>\n\u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fdiscoart\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fdiscoart?style=flat-square&amp;label=Release\" alt=\"PyPI\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fjinaai\u002Fdiscoart\">\u003Cimg alt=\"Docker Cloud Build Status\" src=\"https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fcloud\u002Fbuild\u002Fjinaai\u002Fdiscoart?logo=docker&logoColor=white&style=flat-square\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdiscord.jina.ai\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1106542220112302130?logo=discord&logoColor=white&style=flat-square\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fjina-ai\u002Fdiscoart\u002Fblob\u002Fmain\u002Fdiscoart.ipynb\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpen-in%20Colab-brightgreen?logo=google-colab&style=flat-square\" alt=\"Open in Google Colab\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\nDiscoArt 是一种优雅的方式，专为生成艺术创作者、AI 爱好者以及资深开发者打造，能够轻松创作出令人惊艳的 Disco Diffusion\u003Csup>\u003Ca href=\"#example-application\">[*]\u003C\u002Fa>\u003C\u002Fsup> 作品。DiscoArt 拥有现代化且专业的 API 和优美的代码库，确保了极高的易用性和可维护性。它还提供了结果恢复与持久化、无需 TLS 的 gRPC\u002FHTTP 服务、后分析等便捷功能，从而简化了与大型跨模态或多模态应用的集成。\n\n\u003Csub>\u003Csup>\u003Ca id=\"example-application\">[*]\u003C\u002Fa> \nDisco Diffusion 是一个基于 Google Colab 的 Notebook，利用 CLIP 引导的扩散模型，让用户仅通过文本提示就能生成引人入胜的精美图像。\n\u003C\u002Fsup>\u003C\u002Fsub>\n\n\n💯 **行业领先**：达到工业级工程标准，代码质量一流，依赖项精简，占用内存和显存极少；相比原版 DD5.6，进行了重要的 bug 修复和功能改进 [参见 FEATURES.md]。\n\n👼 **人人可用**：支持 *自托管*、Google Colab *免费层级*、无 GUI（IPython）环境以及 CLI，安装过程流畅！没有复杂的配置，没有依赖地狱，也不需要求助 Stack Overflow。\n\n🎨 **专注创作而非编码**：提供 Python 风格的一行式 `create()` 接口，IDE 支持自动补全，并配备强大功能。随时随地获取实时结果，再也不必担心 Google Colab 会话超时。轻松设置初始状态，以便更高效地探索参数。\n\n🏭 **适合集成与生产**：基于 [DocArray](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdocarray) 数据结构构建，可与 [Jina](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fjina)、[CLIP-as-service](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fclip-as-service) 等跨模态或多模态应用无缝集成。\n\n☁️ [**作为服务使用**](#serving)：只需运行 `python -m discoart serve`，DiscoArt 即可成为高性能、低延迟的服务，支持 gRPC\u002FHTTP\u002FWebSocket 以及 TLS。扩缩容只需一行命令；云原生特性如 Kubernetes、Prometheus 和 Grafana 也只需一行配置。这一切都得益于 Jina 的强大支持，简单得令人难以置信 [参见 jina-ai\u002Fjina]。\n\n## 【附带提示的图库】(https:\u002F\u002Ftwitter.com\u002Fhxiao\u002Fstatus\u002F1542967938369687552?s=20&t=DO27EKNMADzv4WjHLQiPFA)\n\n你是否注意到每条推文中的 `discoart-id`？要获取配置和提示，只需执行：\n\n```python\nfrom discoart import show_config\n\nshow_config('discoart-id')\n```\n\n## 安装\n\n需要 Python 3.7+ 和支持 CUDA 的 PyTorch。\n\n```bash\npip install discoart\n```\n\n此方法适用于 *自托管*、*Google Colab*、系统集成以及无 GUI 环境。\n\n- **自托管 Jupyter**：若要在自己的 GPU 设备上运行 Jupyter Notebook，最简单的方法是使用我们预构建的 Docker 镜像 [参见 #run-in-docker]。\n- **通过 CLI 使用**：[`python -m discoart create`](#cli) 和 `python -m discoart config` 是 CLI 命令。\n- **作为服务运行**：[`python -m discoart serve`](#serving) 可以将 DiscoArt 部署为 gRPC\u002FHTTP\u002FWebSocket 服务。\n\n### GUI\n\nDiscoArt 是用于创作 Disco Diffusion 艺术作品的 **基础设施**。内置的 Jupyter Notebook 支持提供了基础但有限的用户体验，例如不提供直观的 GUI 来进行 [提示调度](FEATURES.md#prompt-scheduling)。需要注意的是，DiscoArt 以开发者为中心，优先考虑 API 设计，因此提升面向消费者的体验并不在其规划范围内。目前已有部分服务、平台和产品（与 Jina AI 无关）将 DiscoArt 作为服务集成，并在其之上提供了优秀的 GUI，例如 Fever Dreams、Replicate、RunPod 和 Renderflux。\n\n\u003Cdetails>\n  \u003Csummary>点击查看第三方 GUI\u003C\u002Fsummary>\n\n- [Fever Dreams](https:\u002F\u002Fwww.feverdreams.app\u002F)：一款免费的社区驱动服务，拥有友好的 GUI 和作品展示区，用户可以在这里生成并分享他们的 DiscoArt 作品、提示和配置。\n- [Replicate](https:\u002F\u002Freplicate.com\u002Fnightmareai\u002Fdisco-diffusion)：一个基于表单的免费 DiscoArt GUI，提供沙盒式的用户体验和可视化界面。\n- [RunPod](https:\u002F\u002Fwww.runpod.io\u002Fblog\u002Faccelerate-your-generate-art-with-disco-diffusion-and-runpod)：一家付费的 GPU 云服务提供商，运行 DiscoArt 容器，并配备简洁明了的 GUI，用于可视化配置和创作成果。\n- [Renderflux](https:\u002F\u002Fbeta.renderflux.com\u002Fregister?invite=bughunting)：一个付费的创意艺术平台，封装了 DiscoArt 并提供了端到端的 GUI 用于创作管理。\n\n**请注意，这些平台、产品或公司均与 Jina AI 无关联。** 他们各自定义了服务条款、付费墙以及数据和隐私政策，这些内容不在 DiscoArt 的 MIT 许可证覆盖范围内。\n\n\u003C\u002Fdetails>\n\n## 开始使用\n\n\u003Ca href=\"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fjina-ai\u002Fdiscoart\u002Fblob\u002Fmain\u002Fdiscoart.ipynb\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpen-in%20Colab-brightgreen?logo=google-colab&style=flat-square\" alt=\"在 Google Colab 中打开\"\u002F>\u003C\u002Fa>\n\n### 创作艺术作品\n\n```python\nfrom discoart import create\n\nda = create()\n```\n\n就这么简单！它将使用 [默认的文本提示和参数](.\u002Fdiscoart\u002Fresources\u002Fdefault.yml) 进行创作。\n\n![](.github\u002Fcreate-demo.gif)\n\n### 设置提示和参数\n\n支持的参数已在 [此处列出](.\u002Fdiscoart\u002Fresources\u002Fdefault.yml)。你可以在 `create()` 中指定它们：\n\n```python\nfrom discoart import create\n\nda = create(\n    text_prompts='一幅狂风暴雨中海崖的画作，在 ArtStation 上热门。',\n    init_image='https:\u002F\u002Fd2vyhzeko0lke5.cloudfront.net\u002F2f4f6dfa5a05e078469ebe57e77b72f0.png',\n    skip_steps=100,\n)\n```\n\n![](.github\u002Fparameter-demo.gif)\n\n如果你忘记了某个参数，随时可以查看速查表：\n\n```python\nfrom discoart import cheatsheet\n\ncheatsheet()\n```\n\nDiscoArt 与 DD5.6 在参数上的差异 [在此处说明](.\u002FFEATURES.md)。\n\n### 可视化结果\n\n最终结果和中间结果会创建在当前工作目录下，例如：\n```text\n.\u002F{name-docarray}\u002F{i}-done.png\n.\u002F{name-docarray}\u002F{i}-step-{j}.png\n.\u002F{name-docarray}\u002F{i}-progress.png\n.\u002F{name-docarray}\u002F{i}-progress.gif\n.\u002F{name-docarray}\u002Fda.protobuf.lz4\n```\n\n![](.github\u002Fresult-persist.png)\n\n其中：\n\n- `name-docarray` 是运行的名称，您可以指定它，否则将使用随机名称。\n- `i-*` 的值取决于 `n_batches`。\n- `*-done-*` 是完成后的最终图像。\n- `*-step-*` 是某个步骤的中间图像，实时更新。\n- `*-progress.png` 是迄今为止所有中间结果的拼图图像，实时更新。\n- `*-progress.gif` 是迄今为止所有中间结果的动画 GIF，实时更新。\n- `da.protobuf.lz4` 是迄今为止所有中间结果的压缩 protobuf 文件，实时更新。\n\n保存频率由 `save_rate` 控制。\n\n此外，`create()` 会返回一个 `da` 对象，它是 [DocumentArray](https:\u002F\u002Fdocarray.jina.ai\u002Ffundamentals\u002Fdocumentarray\u002F) 类型的对象。它包含以下信息：\n- 传递给 `create()` 函数的所有参数，包括种子、文本提示和模型参数。\n- 生成的 4 张图像及其中间步骤的图像，其中 `4` 由 `n_batches` 决定，默认值为 4。\n\n这使您能够使用功能强大的 DocArray API 对结果进行进一步的后处理、分析和导出。\n\n图像以 Data URI 的形式存储在 `.uri` 中，要将第一张图像保存为本地文件：\n\n```python\nda[0].save_uri_to_file('discoart-result.png')\n```\n\n要保存所有最终图像：\n\n```python\nfor idx, d in enumerate(da):\n    d.save_uri_to_file(f'discoart-result-{idx}.png')\n```\n\n您还可以将四张最终图像以网格形式显示：\n\n```python\nda.plot_image_sprites(skip_empty=True, show_index=True, keep_aspect_ratio=True)\n```\n![](.github\u002Fall-results.png)\n\n或者逐个显示它们：\n\n```python\nfor d in da:\n    d.display()\n```\n\n也可以单独查看某一次运行的结果：\n\n```python\nda[0].display()\n```\n![](.github\u002Fdisplay.png)\n\n### 可视化中间步骤\n\n您还可以放大某次运行（比如第一次运行）并查看中间步骤：\n\n```python\nda[0].chunks.plot_image_sprites(\n    skip_empty=True, show_index=True, keep_aspect_ratio=True\n)\n```\n![](.github\u002Fchunks.png)\n\n您可以逐个 `.display()` 这些子文档，或通过 `.save_uri_to_file()` 保存其中一个，也可以将所有中间步骤保存为 GIF：\n\n```python\nda[0].chunks.save_gif(\n    'lighthouse.gif', show_index=True, inline_display=True, size_ratio=0.5\n)\n```\n\n![](.github\u002Flighthouse.gif)\n\n请注意，从 >=0.7.14 版本开始，会生成一个包含所有中间步骤的 20 FPS GIF。\n\n### 显示\u002F保存\u002F加载配置\n\n要显示 Document 或 DocumentArray 的配置，\n\n```python\nfrom discoart import show_config\n\nshow_config(da)  # 显示第一次运行的配置\nshow_config(da[3])  # 显示第四次运行的配置\nshow_config(\n    'discoart-06030a0198843332edc554ffebfbf288'\n)  # 显示具有已知 DocArray ID 的运行的配置\n```\n\n要保存 Document 或 DocumentArray 的配置，\n\n```python\nfrom discoart import save_config\n\nsave_config(da, 'my.yml')  # 保存第一次运行的配置\nsave_config(da[3], 'my.yml')  # 保存第四次运行的配置\n```\n\n要从 Document 或 DocumentArray 的 YAML 配置文件中运行 `create`，\n\n```python\nfrom discoart import create, load_config\n\nconfig = load_config('my.yml')\ncreate(**config)\n```\n\n您还可以将配置导出为 SVG 图像：\n\n```python\nfrom discoart.config import save_config_svg\n\nsave_config_svg(da)\n```\n![](.github\u002Fdiscoart-3205998582.svg)\n\n您还可以直接从配置生成可运行的 Python 代码：\n\n```python\nfrom discoart.config import export_python\n\nexport_python(da)\n```\n\n### 随时随地拉取结果\n\n如果您是 Google Colab 免费版用户，最让人头疼的问题之一就是会话经常丢失。有时您可能因为第一张图像不够理想而提前停止运行，这时按下键盘中断键会导致 `create()` 无法返回任何结果。无论哪种情况，您都可以通过拉取上次会话的 ID 轻松恢复结果。\n\n1. 找到会话 ID。它显示在图像的顶部。\n![](.github\u002Fsession-id.png)\n\n2. 使用该 ID 在任何设备上随时拉取结果，不一定非得在 Google Colab 上：\n    ```python\n    from docarray import DocumentArray\n    \n    da = DocumentArray.pull('discoart-3205998582')\n    ```\n\n### 将 Document 用作初始状态\n\n可以将 Document 视为一个自包含的数据对象，包含配置和图像，将其用作未来运行的初始状态。它的 `.tags` 将被用作初始参数；如果存在 `.uri`，则会被用作初始图像。\n\n```python\nfrom discoart import create\nfrom docarray import DocumentArray\n\nda = DocumentArray.pull('discoart-3205998582')\n\ncreate(\n    init_document=da[0],\n    cut_ic_pow=0.5,\n    tv_scale=600,\n    cut_overview='[12]*1000',\n    cut_innercut='[12]*1000',\n    use_secondary_model=False,\n)\n```\n\n如果您只想从已知的 DocArray ID 初始化，只需：\n\n```python\nfrom discoart import create\n\ncreate(init_document='discoart-3205998582')\n```\n\n\n### 环境变量\n\n您可以设置环境变量来控制 DiscoArt 的元行为。这些环境变量必须在导入 DiscoArt 之前设置，可以在 Bash 中设置，也可以通过 Python 中的 `os.environ` 设置。\n\n```bash\nDISCOART_LOG_LEVEL='DEBUG' # 更详细的日志\nDISCOART_OPTOUT_CLOUD_BACKUP='1' # 关闭云备份\nDISCOART_DISABLE_IPYTHON='1' # 禁用 ipython 依赖\nDISCOART_DISABLE_RESULT_SUMMARY='1' # 禁用运行结束后的结果摘要\nDISCOART_DEFAULT_PARAMETERS_YAML='path\u002Fto\u002Fyour-default.yml' # 使用自定义默认参数文件\nDISCOART_CUT_SCHEDULES_YAML='path\u002Fto\u002Fyour-schedules.yml' # 使用自定义切割计划文件\nDISCOART_MODELS_YAML='path\u002Fto\u002Fyour-models.yml' # 使用自定义模型列表文件\nDISCOART_OUTPUT_DIR='path\u002Fto\u002Fyour-output-dir' # 使用自定义输出目录存放所有图像和结果\nDISCOART_CACHE_DIR='path\u002Fto\u002Fyour-cache-dir' # 使用自定义缓存目录存放模型和下载内容\nDISCOART_DISABLE_REMOTE_MODELS='1' # 禁用 GitHub 上扩散模型的列表，远程扩散模型允许用户使用最新模型而无需更新代码库。\nDISCOART_REMOTE_MODELS_URL='https:\u002F\u002Fyourdomain\u002Fmodels.yml' # 使用自定义远程 URL 获取模型列表\nDISCOART_DISABLE_CHECK_MODEL_SHA='1' # 禁用检查本地模型 SHA 是否与远程模型 SHA 匹配\nDISCOART_DISABLE_TQDM='1' # 禁用扩散过程中的 tqdm 进度条\n```\n\n## 命令行界面\n\nDiscoArt 提供了两个命令 `create` 和 `config`，允许您通过命令行运行 DiscoArt。\n\n```bash\npython -m discoart create my.yml\n```\n\n该命令会根据 YAML 配置文件 `my.yml` 生成艺术作品。您也可以这样做：\n\n```bash\ncat config.yml | python -m discoart create\n```\n\n那么如何创建自己的 `my.yml` 文件，它又是什么样子的呢？这就需要用到第二个命令：\n\n```bash\npython -m discoart config my.yml\n```\n\n该命令会复制 [默认的 YAML 配置文件](discoart\u002Fresources\u002Fdefault.yml)，并将其导出为 `my.yml`。现在您可以修改这个文件，并使用 `python -m discoart create` 命令来运行它。\n\n如果未指定输出路径，`python -m discoart config` 将会把默认配置打印到标准输出。\n\n要获取某个命令的帮助信息，可以在命令末尾添加 `--help`，例如：\n\n```bash\npython -m discoart create --help\n```\n\n```text\n用法: python -m discoart create [-h] [YAML_CONFIG_FILE]\n\n位置参数:\n  YAML_CONFIG_FILE  要使用的 YAML 配置文件，默认为标准输入。\n\n可选参数:\n  -h, --help        显示此帮助消息并退出\n```\n\n## 服务模式\n\n运行 DiscoArt 服务非常简单。只需执行以下命令：\n\n```bash\npython -m discoart serve\n```\n\n您将看到：\n\n![](.github\u002Fserving.png)\n\n现在可以通过 curl 或 JavaScript 向服务器发送请求，例如：\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fcreate\", \"parameters\": {\"text_prompts\": [\"A beautiful painting of a singular lighthouse\", \"yellow color scheme\"]}}'\n```\n\n就是这样。当然，您也可以在 JSON 中传递 `create()` 函数接受的所有参数。\n\n### 轮询中间结果\n\n我们已经知道，即使在 GPU 上运行，`create` 函数仍然很慢，完成一幅作品可能需要 10 分钟。这意味着在发送上述请求后，客户端需要等待 10 分钟才能收到响应。由于所有操作都是同步进行的，这种行为并无不妥。然而，在实际应用中，客户端可能希望在过程中获得进度或中间结果，而不是一直等到最后。\n\n为此设计了 `\u002Fresult` 端点。一旦有中间结果可用，它就会立即返回。您只需要在请求参数中指定与 `\u002Fcreate` 端点相同的 `name_docarray` 即可。以下是一个示例：\n\n让我们通过向 `\u002Fcreate` 端点发送以下请求来创建 `mydisco-123`：\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fcreate\", \"parameters\": {\"name_docarray\": \"mydisco-123\", \"text_prompts\": [\"A beautiful painting of a singular lighthouse\", \"yellow color scheme\"]}}'\n```\n\n现在，当上述请求正在服务器上处理时，您可以定期通过向 `\u002Fresult` 端点发送以下请求来检查 `mydisco-123` 的进度：\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fresult\", \"parameters\": {\"name_docarray\": \"mydisco-123\"}}'\n```\n\n服务器将返回包含最新进度的 JSON 数据，其中包括图像（以 DataURI 格式）、损失值、步骤数等。[文档\u002FDocumentArray 的 JSON Schema 在这里描述。](https:\u002F\u002Fdocarray.jina.ai\u002Ffundamentals\u002Ffastapi-support\u002F#json-schema)\n\n请注意，由于 Jina Gateway 的智能路由功能，`\u002Fresult` 不会被 `\u002Fcreate` 阻塞。要了解更多关于这些端点的信息，您可以查看 ReDoc 或服务器内置的 Swagger UI。\n\n### 跳过与取消\n\n向 `\u002Fskip` 发送请求，可以跳过当前运行并进入下一个运行，具体取决于 `n_batches` 的设置：\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fskip\"}'\n```\n\n向 `\u002Fstop` 发送请求，则会停止当前运行并取消所有 `n_batches` 次运行：\n\n```bash\ncurl \\\n-X POST http:\u002F\u002F0.0.0.0:51001\u002Fpost \\\n-H 'Content-Type: application\u002Fjson' \\\n-d '{\"execEndpoint\":\"\u002Fstop\"}'\n```\n\n### 解除 `\u002Fcreate` 请求的阻塞\n\n您可以启用非阻塞的 `\u002Fcreate` 端点：客户端发送的 `\u002Fcreate` 请求将被**立即**返回，而无需等待结果完成。此时，您需要完全依赖 `\u002Fresult` 来轮询结果。\n\n要启用此功能：\n\n1. 将 [默认的 `flow.yml` 文件](.\u002Fdiscoart\u002Fresources\u002Fflow.yml) 复制到 `myflow.yml`；\n2. 在 `discoart` 执行器部分，将 `floating: false` 改为 `floating: true`；\n3. 运行以下命令：\n    ```bash\n    python -m discoart serve myflow.yml\n    ```\n\n请注意，现在请求的速度完全由您控制。也就是说，如果客户端在一秒钟内发送 10 个 `\u002Fcreate` 请求，那么服务器将会并行启动 10 个 `create()`！这很容易导致内存不足。因此，建议仅在您确定客户端不会发送过多请求时才启用此功能，例如您能够控制客户端的请求速率；或者您是在 BFF（前端后端）之后使用 DiscoArt。\n\n### 水平扩展\n\n如果您有多块 GPU，并希望利用时间复用的方式并行运行多个 DiscoArt 实例，您可以复制 [默认的 `flow.yml` 文件](.\u002Fdiscoart\u002Fresources\u002Fflow.yml)，并按如下方式修改：\n\n```yaml\njtype: Flow\nwith:\n  protocol: http\n  monitoring: true\n  port: 51001\n  port_monitoring: 51002  # prometheus 监控端口\n  env:\n    JINA_LOG_LEVEL: debug\n    DISCOART_DISABLE_IPYTHON: 1\n    DISCOART_DISABLE_RESULT_SUMMARY: 1\nexecutors:\n  - name: discoart\n    uses: DiscoArtExecutor\n    env:\n      CUDA_VISIBLE_DEVICES: RR0:3  # 如果您有多块 GPU，请更改此设置\n    replicas: 3  # 如果您的显存更大，请相应调整\n  - name: poller\n    uses: ResultPoller\n```\n\n这里的 `replicas: 3` 表示将启动三个 DiscoArt 实例，`CUDA_VISIBLE_DEVICES: RR0:3` 则确保它们以轮询方式使用前三个 GPU。\n\n将文件命名为 `myflow.yml`，然后运行：\n\n```bash\npython -m discoart serve myflow.yml\n```\n\n### 自定义\n\n[得益于 Jina](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fjina)，您可以自定义的内容非常多！您可以更改端口号；将协议改为 gRPC\u002FWebsockets；添加 TLS 加密；启用或禁用 Prometheus 监控；还可以通过以下命令将其导出为 Kubernetes 部署包：\n\n```bash\njina export kubernetes myflow.yml\n```\n\n有关更多功能和 YAML 配置，请参阅 [Jina 文档](https:\u002F\u002Fdocs.jina.ai)。\n\n### 使用 gRPC 网关\n\n从 HTTP 切换到 gRPC 网关非常简单：\n\n```yaml\njtype: Flow\nwith:\n  protocol: grpc\n...\n```\n\n然后重启服务器。\n\n使用 gRPC 网关有多种优势：\n- 网络开销更小、速度更快。\n- 功能丰富，如压缩、状态监控等。\n\n一般来说，如果您是在 BFF（前端后端）之后使用 DiscoArt 服务器，或者您的 DiscoArt 服务器并不直接面向最终用户提供 HTTP 流量，那么您应该使用 gRPC 协议。\n\n要与 gRPC DiscoArt 服务器通信，可以使用 Jina 客户端：\n\n```python\n\n# !pip install jina\nfrom jina import Client\n\nc = Client(host='grpc:\u002F\u002F0.0.0.0:51001')\n\nda = c.post(\n    '\u002Fcreate',\n    parameters={\n        'name_docarray': 'mydisco-123',\n        'text_prompts': [\n            '一幅美丽的灯塔画',\n            '黄色色调',\n        ],\n    },\n)\n\n# 检查中间结果\nda = c.post('\u002Fresult', parameters={'name_docarray': 'mydisco-123'})\n```\n\n要使用现有的 Document\u002FDocumentArray 作为 `create` 的初始 Document：\n\n```python\nfrom jina import Client\n\nc = Client(host='grpc:\u002F\u002F0.0.0.0:51001')\n\nold_da = create(...)\n\nda = c.post(\n    '\u002Fcreate',\n    old_da,  # 这可以是 DocumentArray 或单个 Document\n    parameters={\n        'width_height': [1024, 768],\n    },\n)\n```\n\n这相当于在服务器上运行 `create(init_document=old_da, width_height=[1024, 768])`。注意：\n- 后续参数的优先级高于 `init_document` 中的参数。\n- 如果 `init_document` 是一个 DocumentArray，则数组中的第一个 Document 将被用作初始 Document。\n- 在发送之前无需进行任何序列化，Jina 会自动处理。\n\n### 在 Google Colab 上托管\n\n虽然不推荐，但也可以使用 Google Colab 来托管 DiscoArt 服务器。请查看以下教程：\n- https:\u002F\u002Fdocs.jina.ai\u002Fhow-to\u002Fgoogle-colab\u002F\n- https:\u002F\u002Fclip-as-service.jina.ai\u002Fhosting\u002Fcolab\u002F\n\n\n\n\n\n## 在 Docker 中运行\n\n[![Docker 镜像大小（标签）](https:\u002F\u002Fimg.shields.io\u002Fdocker\u002Fimage-size\u002Fjinaai\u002Fdiscoart\u002Flatest?logo=docker&logoColor=white&style=flat-square)](https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fjinaai\u002Fdiscoart)\n\n我们提供了一个预构建的 Docker 镜像，可直接运行 DiscoArt。要将 Docker 镜像更新到最新版本：\n\n```bash\ndocker pull jinaai\u002Fdiscoart:latest\n```\n\n### 使用 Jupyter Notebook\n\n默认入口点是启动 Jupyter Notebook\n\n```bash\n# docker build . -t jinaai\u002Fdiscoart  # 如果你想自己构建\ndocker run -p 51000:8888 -v $(pwd):\u002Fhome\u002Fjovyan\u002F -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart\n```\n\n现在你可以访问 `http:\u002F\u002F127.0.0.1:51000` 来使用笔记本。\n\n### 在 Windows 上启用 Docker 中的 GPU\n\n你可以在 Windows Subsystem for Linux (WSL) 上使用它，请参阅官方指南 [这里](https:\u002F\u002Fdocs.microsoft.com\u002Fen-us\u002Fwindows\u002Fai\u002Fdirectml\u002Fgpu-cuda-in-wsl)。\n\n```bash\n# 确保你安装了 Windows 11 或 Windows 10 版本 21H2\ndocker run -p 8888:8888 -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart\n```\n\n### 作为服务使用\n\n```bash\n# docker build . -t jinaai\u002Fdiscoart  # 如果你想自己构建\ndocker run --entrypoint \"python\" -p 51001:51001 -v $(pwd):\u002Fhome\u002Fjovyan\u002F -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart -m discoart serve\n```\n\n你的 DiscoArt 服务器现在正在 `http:\u002F\u002F127.0.0.1:51001` 上运行。\n\n### 发布周期\n\n[Docker 镜像会在每次发布时构建](https:\u002F\u002Fhub.docker.com\u002Frepository\u002Fdocker\u002Fjinaai\u002Fdiscoart)，因此可以锁定到特定版本，例如 `0.5.1`：\n\n```bash\ndocker run -p 51000:8888 -v $(pwd):\u002Fhome\u002Fjovyan\u002F -v $HOME\u002F.cache:\u002Froot\u002F.cache --gpus all jinaai\u002Fdiscoart:0.5.1\n```\n\n\n## 接下来是什么？\n\n[接下来是创建](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fjina-ai\u002Fdiscoart\u002Fblob\u002Fmain\u002Fdiscoart.ipynb)。\n\n😎 **如果你已经是 DD 用户**：你已经准备好了！无需额外学习，DiscoArt 保留了与 DD5.6 相同的参数语义。所以尽情发挥你的创造力吧！[在此处阅读更多关于它们差异的信息](.\u002FFEATURES.md)。\n\n你随时可以运行 `from discoart import cheatsheet; cheatsheet()` 来查看所有新添加或修改的参数。\n\n👶 **如果你是 [DALL·E Flow](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdalle-flow\u002F) 或新用户**：你可能需要循序渐进地学习，因为 Disco Diffusion 的工作方式与 DALL·E 截然不同。它更加先进和强大：例如，Disco Diffusion 可以接受加权和结构化的文本提示；可以从带有可控噪声的图像进行初始化；并且可以调整的参数也多得多。像 `\"armchair avocado\"` 这样的急躁提示只会让你感到困惑和沮丧。我强烈建议你在尝试自己的提示之前先查看以下资源：\n- [Zippy 的 Disco Diffusion 备忘录 v0.3](https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7g\u002Fmobilebasic)\n- [EZ Charts - 扩散参数研究](https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1ORymHm0Te18qKiHnhcdgGp-WSt8ZkLZvow3raiu2DVU\u002Fedit#)\n- [Disco Diffusion 70 多位艺术家研究](https:\u002F\u002Fweirdwonderfulai.art\u002Fresources\u002Fdisco-diffusion-70-plus-artist-studies\u002F)\n- [潜空间旅行者指南](https:\u002F\u002Fsweet-hall-e72.notion.site\u002FA-Traveler-s-Guide-to-the-Latent-Space-85efba7e5e6a40e5bd3cae980f30235f#e122e748b86e4fc0ad6a7a50e46d6e10)\n- [Disco Diffusion 图解设置](https:\u002F\u002Fcoar.notion.site\u002FDisco-Diffusion-Illustrated-Settings-cd4badf06e08440c99d8a93d4cd39f51)\n- [Coar 的 Disco Diffusion 指南](https:\u002F\u002Fcoar.notion.site\u002Fcoar\u002FCoar-s-Disco-Diffusion-Guide-3d86d652c15d4ca986325e808bde06aa#8a3c6e9e4b6847afa56106eacb6f1f79)\n\n\u003C!-- start support-pitch -->\n## 支持\n\n- 加入我们的 [Discord 社区](https:\u002F\u002Fdiscord.jina.ai)，与其他社区成员讨论想法。\n- 参加我们的 [工程全员会议](https:\u002F\u002Fyoutube.com\u002Fplaylist?list=PL3UBBWOUVhFYRUa_gpYYKBqEAkO4sxmne)，讨论你的使用场景并了解 Jina 的新功能。\n    - **时间？** 每月第二个星期二\n    - **地点？**\n      Zoom ([查看我们的公共活动日历](https:\u002F\u002Fcalendar.google.com\u002Fcalendar\u002Fembed?src=c_1t5ogfp2d45v8fit981j08mcm4%40group.calendar.google.com&ctz=Europe%2FBerlin)\u002F[.ical](https:\u002F\u002Fcalendar.google.com\u002Fcalendar\u002Fical\u002Fc_1t5ogfp2d45v8fit981j08mcm4%40group.calendar.google.com\u002Fpublic\u002Fbasic.ics))\n      和 [YouTube 直播](https:\u002F\u002Fyoutube.com\u002Fc\u002Fjina-ai)\n- 订阅我们 [YouTube 频道](https:\u002F\u002Fyoutube.com\u002Fc\u002Fjina-ai) 上的最新视频教程。\n\n## 加入我们\n\nDiscoArt 由 [Jina AI](https:\u002F\u002Fjina.ai) 支持，并采用 [MIT 许可证](.\u002FLICENSE) 许可。[我们正在积极招聘](https:\u002F\u002Fjobs.jina.ai) AI 工程师和解决方案工程师，共同构建开源的下一代神经搜索生态系统。\n\n\u003C!-- end support-pitch -->","# DiscoArt 快速上手指南\n\nDiscoArt 是一个用于生成高质量 Disco Diffusion 艺术作品的 Python 库。它提供现代化的 API、结果持久化、实时进度查看以及便捷的集成能力，适合生成式艺术家、AI 爱好者及开发者使用。\n\n## 环境准备\n\n在开始之前，请确保您的环境满足以下要求：\n\n*   **操作系统**：Linux, macOS, Windows (推荐 Linux 以获得最佳 GPU 支持)\n*   **Python 版本**：3.7 或更高\n*   **硬件依赖**：需要支持 CUDA 的 NVIDIA GPU 以进行加速（也可在 CPU 上运行但速度较慢）\n*   **前置依赖**：已安装支持 CUDA 的 PyTorch 环境\n\n> **提示**：如果您没有本地 GPU 环境，可以直接使用 [Google Colab](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Fjina-ai\u002Fdiscoart\u002Fblob\u002Fmain\u002Fdiscoart.ipynb) 免费运行。\n\n## 安装步骤\n\n推荐使用 pip 进行安装。国内用户若遇到下载缓慢问题，可指定清华或阿里镜像源加速。\n\n### 标准安装\n```bash\npip install discoart\n```\n\n### 使用国内镜像源加速安装\n```bash\npip install discoart -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### Docker 方式（可选）\n如果您希望隔离环境或使用预构建镜像：\n```bash\ndocker pull jinaai\u002Fdiscoart\n```\n\n## 基本使用\n\nDiscoArt 的核心功能通过 `create()` 函数实现，支持一行代码生成艺术作品。\n\n### 1. 使用默认参数生成\n最简单的用法是直接调用 `create()`，它将使用内置的默认提示词和参数生成图像。\n\n```python\nfrom discoart import create\n\nda = create()\n```\n\n运行后，当前目录下将生成包含最终图像、中间步骤图像及进度 GIF 的文件夹。\n\n### 2. 自定义提示词与参数\n您可以通过传递参数来自定义生成的内容，例如设置文本提示词 (`text_prompts`)、初始图片 (`init_image`) 或跳过步数 (`skip_steps`)。\n\n```python\nfrom discoart import create\n\nda = create(\n    text_prompts='A painting of sea cliffs in a tumultuous storm, Trending on ArtStation.',\n    init_image='https:\u002F\u002Fd2vyhzeko0lke5.cloudfront.net\u002F2f4f6dfa5a05e078469ebe57e77b72f0.png',\n    skip_steps=100,\n)\n```\n\n### 3. 查看与保存结果\n`create()` 函数返回一个 `DocumentArray` 对象 (`da`)，您可以直接操作它来查看或保存结果。\n\n**保存单张图片到本地：**\n```python\nda[0].save_uri_to_file('discoart-result.png')\n```\n\n**保存所有生成的图片：**\n```python\nfor idx, d in enumerate(da):\n    d.save_uri_to_file(f'discoart-result-{idx}.png')\n```\n\n**在 Notebook 中直接显示图片网格：**\n```python\nda.plot_image_sprites(skip_empty=True, show_index=True, keep_aspect_ratio=True)\n```\n\n### 4. 查看参数速查表\n如果忘记了可用参数，可以随时运行以下命令查看速查表：\n\n```python\nfrom discoart import cheatsheet\n\ncheatsheet()\n```","一位生成式艺术家需要在本地 GPU 服务器上批量创作一系列高分辨率的 Disco Diffusion 艺术作品，并计划将这些图像集成到现有的多模态检索系统中。\n\n### 没有 discoart 时\n- **环境配置痛苦**：手动部署原版 Disco Diffusion 常陷入依赖冲突和 CUDA 版本不匹配的“地狱”，耗费数小时仍无法运行。\n- **创作中断风险**：在 Google Colab 免费层运行时，一旦会话超时或网络波动，未保存的中间结果和复杂参数设置即刻丢失。\n- **工程集成困难**：生成的图片仅是静态文件，缺乏结构化元数据，难以直接对接 Jina 或 CLIP-as-service 进行后续的多模态分析。\n- **调参效率低下**：每次调整提示词或初始化状态都需要修改冗长的笔记本代码，无法通过简洁的 API 快速验证创意。\n\n### 使用 discoart 后\n- **一键极速启动**：通过 `pip install discoart` 即可在自托管环境或 Colab 中平滑安装，彻底消除依赖报错，开箱即用。\n- **状态持久化保障**：利用内置的结果恢复与持久化功能，即使会话意外中断，也能随时 fetch 实时结果，确保创作进度零丢失。\n- **原生生态集成**：基于 DocArray 数据结构构建，生成的作品自带丰富元数据，可无缝流入 Jina 生态系统进行跨模态检索与服务化部署。\n- **专注创意本身**：仅需一行 Pythonic 代码 `create()` 即可完成创作，支持 IDE 自动补全，让艺术家将精力完全集中在提示词打磨而非调试代码上。\n\ndiscoart 将繁琐的底层工程复杂度封装为优雅的单行调用，让 AI 艺术创作从“配置环境”真正回归到“创造美”本身。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjina-ai_discoart_c522714f.png","jina-ai","Jina AI","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjina-ai_e871d2a3.png","Your Search Foundation, Supercharged!",null,"hello@jina.ai","JinaAI_","https:\u002F\u002Fjina.ai","https:\u002F\u002Fgithub.com\u002Fjina-ai",[82,86,90,94],{"name":83,"color":84,"percentage":85},"Python","#3572A5",89,{"name":87,"color":88,"percentage":89},"Jupyter Notebook","#DA5B0B",6.8,{"name":91,"color":92,"percentage":93},"Shell","#89e051",3.6,{"name":95,"color":96,"percentage":97},"Dockerfile","#384d54",0.6,3830,243,"2026-04-16T08:05:21","NOASSERTION","Linux, macOS, Windows","必需。需要支持 CUDA 的 NVIDIA GPU（具体型号和显存大小未明确说明，但提到具有较小的 VRAM 占用）。","未说明（仅提及具有较小的 RAM 占用）",{"notes":106,"python":107,"dependencies":108},"1. 必须安装支持 CUDA 的 PyTorch 版本。\n2. 提供预构建的 Docker 镜像，推荐用于自托管环境以简化依赖管理。\n3. 支持在 Google Colab 免费层级运行。\n4. 可通过环境变量控制日志级别、云备份等行为。\n5. 该工具主要面向开发者，内置 GUI 功能有限，建议通过第三方平台或 API 集成使用。","3.7+",[109,110,111,64],"PyTorch (CUDA-enabled)","DocArray","Jina",[35,15,113],"其他",[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],"creative-ai","disco-diffusion","cross-modal","dalle","generative-art","multimodal","diffusion","prompts","midjourney","imgen","discodiffusion","creative-art","clip-guided-diffusion","latent-diffusion","stable-diffusion","2026-03-27T02:49:30.150509","2026-04-18T02:22:50.333082",[133,138,143,148,153,158],{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},38546,"如何减少 DiscoArt 运行时的内存（RAM）和显存（VRAM）消耗？","1. 减少 RAM 消耗：在创建实例时设置 `save_rate=-1` 和 `gif_fps=-1`，代码如下：\n```python\nfrom discoart import create\nda = create(save_rate=-1, gif_fps=-1)\n```\n2. 减少 VRAM 消耗：请升级 discoart 到最新版本（>=0.9.0），这将减少高达 40% 的显存占用，特别是在设置 `use_secondary_model=False` 时效果显著。\n命令：`pip install -U discoart`","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fissues\u002F90",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},38547,"升级到新版本后服务无法启动，报错或卡住怎么办？","这通常是由于导入顺序或配置文件（yaml）变更引起的。尝试以下步骤：\n1. 升级到最新版本（如 0.9.3 或更高）。\n2. 检查你的代码中是否手动添加了调试日志导入（例如 `from .helper import logger`），如果有，请删除该行。\n3. 确保 `flow.yml` 配置文件与当前版本兼容，必要时参考最新版本的默认配置重置 yaml 文件。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fissues\u002F98",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},38548,"使用新的扩散模型时报错 `UnpicklingError: invalid load key, 'v'` 如何解决？","该错误通常是因为模型文件下载不完整或损坏导致的。请尝试以下解决方法：\n1. 清除缓存目录中的旧模型文件（通常位于 `~\u002F.cache` 或项目指定的 cache_dir 下）。\n2. 重新运行代码，让程序重新下载完整的模型文件。\n3. 确保网络连接稳定，避免下载中断。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fissues\u002F73",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},38549,"更新 Docker 镜像后出现 CUDA 内存溢出（OOM）错误，之前同样的参数是正常的，为什么？","新版本的镜像可能改变了默认的参数设置或模型实现，导致显存占用增加。建议：\n1. 检查并尝试降低 `steps`、`width_height` 或 `cutn_batches` 等参数的值。\n2. 确认是否启用了 `use_secondary_model`，如果显存紧张（如 6GB），尝试将其设置为 `False`。\n3. 关注官方后续更新，维护者可能会优化 `p_mean_variance` 等实现以降低显存足迹。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fissues\u002F43",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},38550,"在 Paperspace 或 Genesis Cloud 等云平台上进度条不显示或报错怎么办？","这通常是因为云平台的 Jupyter 环境中未安装 NodeJS，导致前端组件无法正常渲染。\n解决方法：\n1. 如果可能，在环境中安装 NodeJS。\n2. 或者，忽略进度条显示问题，直接查看输出结果。某些情况下，执行 `Output()` 可以正常显示结果而不依赖进度条。\n3. 等待官方发布修复该兼容性问题的新版本。","https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fissues\u002F33",{"id":159,"question_zh":160,"answer_zh":161,"source_url":137},38551,"API 服务运行一段时间后崩溃，报错 `Task was destroyed but it is pending` 或连接重置，如何处理？","这可能与 DocArray 的缓存机制或特定版本的 Jina 流处理有关。\n建议方案：\n1. 升级 discoart 和 jina 到最新版本，修复了相关的异步任务处理问题。\n2. 如果不需要将所有结果缓存在内存中，可以参考 DocArray 文档配置磁盘存储（Document Store）以延迟更新磁盘上的文档，减少内存压力。\n3. 检查 `flow.yml` 配置，确保没有启用不必要的调试日志或监控功能，这些可能在高负载下引发不稳定。",[163,168,173,178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253,258],{"id":164,"version":165,"summary_zh":166,"released_at":167},314459,"v0.12.1","## 发布说明 (`0.12.1`)\n\n> 发布时间：2023-04-20 08:17:28\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\nJoan Fontanals、Han Xiao、Sa Zhang、Jina Dev Bot、🙇\n\n\n### 🐞 错误修复\n\n - [[```7a620967```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F7a62096753316d9340f131a050846aaf3940a855)] __-__ 限制 DocArray 版本 (#193) (*Joan Fontanals*)\n\n### 📗 文档\n\n - [[```843b239b```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F843b239bd9721e1c271b9959e5f0b1333ee57bfa)] __-__ 在 WSL 上添加 Docker 使用说明 (#166) (*Sa Zhang*)\n\n### 🍹 其他改进\n\n - [[```6bd664f2```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F6bd664f203109ccd08bf06e74732cd02be5b734c)] __-__ 修复文档 (*Han Xiao*)\n - [[```8662bfa9```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F8662bfa972af2a63149318e91c18b6ce6cf149b2)] __-__ __版本__: 下一个版本将是 0.12.1 (*Jina Dev Bot*)\n\n","2023-04-20T08:17:49",{"id":169,"version":170,"summary_zh":171,"released_at":172},314460,"v0.12.0","## 发布说明 (`0.12.0`)\n\n> 发布时间：2022-08-09 21:23:56\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩啸、Jina Dev Bot、🙇\n\n\n### 🆕 新特性\n\n - [[```00e78b7c```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F00e78b7c1025b4c28b01cecf96bb86c4f215c979)] __-__ 添加 gobig API (#158) (*韩啸*)\n\n### 🍹 其他改进\n\n - [[```9d7f12df```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F9d7f12dfec91b58abe25dc2cee9afcb90b586e03)] __-__ 修复 README 文件 (*韩啸*)\n - [[```14e73876```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F14e73876a257fad89d8999b296e5a10900776989)] __-__ 添加 DiscoArt 集成列表 (#152) (*韩啸*)\n - [[```82d7a46e```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F82d7a46e60cb20b416a7e0eeee87f7bd3e2c3074)] __-__ __版本__: 下一个版本将是 0.11.8 (*Jina Dev Bot*)\n\n","2022-08-09T21:24:17",{"id":174,"version":175,"summary_zh":176,"released_at":177},314461,"v0.11.7","## 发布说明 (`0.11.7`)\n\n> 发布时间：2022-08-08 06:13:22\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩晓、Jina Dev Bot、🙇\n\n\n### 🐞 错误修复\n\n - [[```af520289```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Faf5202899f20144885fc0f2ea2099ec776ea040d)] __-__ 整数解析 (#147) (*韩晓*)\n\n### 🍹 其他改进\n\n - [[```ae2060c9```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fae2060c9c91bc5ed2da4cc230c7b56f5eeb2944a)] __-__ __版本号__: 下一个版本将是 0.11.7 (*Jina Dev Bot*)\n\n","2022-08-08T06:13:44",{"id":179,"version":180,"summary_zh":181,"released_at":182},314462,"v0.11.6","## 发布说明 (`0.11.6`)\n\n> 发布时间：2022-08-07 15:09:12\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩晓、Jina Dev Bot、🙇\n\n\n### 🆕 新功能\n\n - [[```43663a0a```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F43663a0af1f7049e512667d694c56db97a34dc17)] __-__ 添加已完成标签页 (#145) (*韩晓*)\n\n### 🍹 其他改进\n\n - [[```445115c2```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F445115c2b3af8cc1e9a3ebc461b1fa6069c24f39)] __-__ __版本号__: 下一个版本将是 0.11.6 (*Jina Dev Bot*)\n\n","2022-08-07T15:09:36",{"id":184,"version":185,"summary_zh":186,"released_at":187},314463,"v0.11.5","## 发布说明（`0.11.5`）\n\n> 发布时间：2022-08-06 11:11:19\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩晓、Jina Dev Bot、🙇\n\n\n### 🐞 错误修复\n\n - [[```8219965b```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F8219965be21770caf07443bf8979706f6227901e)] __-__ 参数解析中字符串与整数的问题 (#143) (*韩晓*)\n\n### 🍹 其他改进\n\n - [[```1831e37c```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F1831e37cbb0aa2c467fbb5367968fe0f22a94398)] __-__ __版本号__：下一个版本将是 0.11.5 (*Jina Dev Bot*)\n\n","2022-08-06T11:11:37",{"id":189,"version":190,"summary_zh":191,"released_at":192},314464,"v0.11.4","## 发布说明 (`0.11.4`)\n\n> 发布时间：2022-08-05 22:41:50\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩晓、Jina Dev Bot、🙇\n\n\n### 🐞 错误修复\n\n - [[```a71370a7```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fa71370a756fcf31babe8f72e30991608a8b05780)] __-__ 种子值中的浮点数转整数 (#141) (*韩晓*)\n\n### 🍹 其他改进\n\n - [[```19079ab2```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F19079ab22c9b5759d46dc765f92a6763c3dbac49)] __-__ __版本号__: 下一个版本将是 0.11.4 (*Jina Dev Bot*)\n\n","2022-08-05T22:42:08",{"id":194,"version":195,"summary_zh":196,"released_at":197},314465,"v0.11.3","## 发布说明 (`0.11.3`)\n\n> 发布时间：2022-08-05 21:32:42\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩晓、Jina Dev Bot、🙇\n\n\n### 🆕 新特性\n\n - [[```d0e6e189```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fd0e6e1891a36130b8b0186f7ef374b4b47da68e4)] __-__ 在采样中添加图像回调 (#140) (*韩晓*)\n\n### 🍹 其他改进\n\n - [[```4738bc09```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F4738bc091ad52a2e2e0ea701db27b8de59b003d6)] __-__ __版本号__: 下一个版本将是 0.11.3 (*Jina Dev Bot*)\n\n","2022-08-05T21:33:02",{"id":199,"version":200,"summary_zh":201,"released_at":202},314466,"v0.11.2","## 发布说明 (`0.11.2`)\n\n> 发布时间：2022-08-04 22:20:10\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩啸、Jina Dev Bot、🙇\n\n\n### 🆕 新特性\n\n - [[```48bb8fa0```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F48bb8fa0b2b36e59c37d03b3578a20692e2c2dcb)] __-__ 添加 `DISCOART_DISABLE_TQDM` 配置项，用于控制是否显示 tqdm 进度条 (*韩啸*)\n\n### 🍹 其他改进\n\n - [[```53a8a366```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F53a8a36643b43c0402bfbc2aac2134b4c14d76a9)] __-__ __版本号__: 下一个版本将为 0.11.2 (*Jina Dev Bot*)\n\n","2022-08-04T22:20:32",{"id":204,"version":205,"summary_zh":206,"released_at":207},314467,"v0.11.1","## 发布说明（`0.11.1`）\n\n> 发布时间：2022-08-04 21:32:51\n\n\n\n🙇 我们感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩啸、Jina Dev Bot、🙇\n\n\n### 🐞 错误修复\n\n - [[```6871ccc6```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F6871ccc63fd36d7df128ccdf373e32ccb86291c3)] __-__ 移除 PyTorch Script (#139) (*韩啸*)\n\n### 🍹 其他改进\n\n - [[```640211ef```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F640211ef05109efc67b6b81e27463936ed7713c5)] __-__ __版本号__：下一个版本将是 0.11.1 (*Jina Dev Bot*)\n\n","2022-08-04T21:33:11",{"id":209,"version":210,"summary_zh":211,"released_at":212},314468,"v0.11.0","## 发布说明 (`0.11.0`)\n\n> 发布时间：2022-08-04 20:43:09\n\n\n\n🙇 我们要感谢所有为本次新版本做出贡献的开发者！特别感谢：\n韩晓、Jina Dev Bot、🙇\n\n\n### 🐞 错误修复\n\n - [[```b6bd8dd6```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fb6bd8dd64d1ec582a507ad65060181b9f388a87f)] __-__ 裁剪图生成功能 (#138) (*韩晓*)\n\n### 🍹 其他改进\n\n - [[```aec0e673```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Faec0e673849086696231ac29c9e3cf2fb5630ec8)] __-__ __版本号__：下一个版本将为 0.10.16 (*Jina Dev Bot*)\n\n","2022-08-04T20:43:31",{"id":214,"version":215,"summary_zh":216,"released_at":217},314469,"v0.10.15","## Release Note (`0.10.15`)\n\n> Release time: 2022-08-04 13:30:57\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🐞 Bug fixes\n\n - [[```e3181503```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fe3181503a733473911f596e45de699af52d54228)] __-__ tempfile usage on windows (#136) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```3456b8b5```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F3456b8b5b3827d836a3d6130f87ad8cbc3a2edce)] __-__ __version__: the next version will be 0.10.15 (*Jina Dev Bot*)\n\n","2022-08-04T13:31:20",{"id":219,"version":220,"summary_zh":221,"released_at":222},314470,"v0.10.14","## Release Note (`0.10.14`)\n\n> Release time: 2022-08-04 12:17:29\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🐞 Bug fixes\n\n - [[```ee41c64c```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fee41c64c6198f92abff41384dd90d5c232edb285)] __-__ init image when batch size greater than 1 (#135) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```18d0c3b7```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F18d0c3b70c874ef747efa16adb92860e3989e124)] __-__ __version__: the next version will be 0.10.14 (*Jina Dev Bot*)\n\n","2022-08-04T12:18:14",{"id":224,"version":225,"summary_zh":226,"released_at":227},314471,"v0.10.13","## Release Note (`0.10.13`)\n\n> Release time: 2022-08-03 21:18:38\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🆕 New Features\n\n - [[```471c6dc9```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F471c6dc9e03702c67180ef6ce8990955c217e0db)] __-__ add display rate back for saving bandwidth (#132) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```5baa0da6```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F5baa0da6c9d7b2c1ee256b94abc16a8becc03ab6)] __-__ __version__: the next version will be 0.10.13 (*Jina Dev Bot*)\n\n","2022-08-03T21:18:58",{"id":229,"version":230,"summary_zh":231,"released_at":232},314472,"v0.10.12","## Release Note (`0.10.12`)\n\n> Release time: 2022-08-03 18:27:59\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🆕 New Features\n\n - [[```fa78ae19```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Ffa78ae199ca0b7fb563987f9b6f86de63a0ad033)] __-__ add option for visualizing cuts (#130) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```a62b3324```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fa62b332499dfacfadf2a37765767c9340d25dbfe)] __-__ __version__: the next version will be 0.10.12 (*Jina Dev Bot*)\n\n","2022-08-03T18:28:24",{"id":234,"version":235,"summary_zh":236,"released_at":237},314473,"v0.10.11","## Release Note (`0.10.11`)\n\n> Release time: 2022-08-03 10:45:31\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🐞 Bug fixes\n\n - [[```82b9b897```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F82b9b897568963b4d46a06089e145e0dd0c663cc)] __-__ final output and progress on save (#128) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```c9effc93```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fc9effc939440c10b05844790b33c0c7459919eab)] __-__ __version__: the next version will be 0.10.11 (*Jina Dev Bot*)\n\n","2022-08-03T10:45:51",{"id":239,"version":240,"summary_zh":241,"released_at":242},314474,"v0.10.10","## Release Note (`0.10.10`)\n\n> Release time: 2022-08-02 21:08:04\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🐞 Bug fixes\n\n - [[```d554a35a```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fd554a35a18e7c1fa4375e52b22202ac6a81c2c3d)] __-__ less verbose on gif and progress output (#127) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```31a690e4```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F31a690e446c1690b795dff274060387ca72cd2d8)] __-__ __version__: the next version will be 0.10.10 (*Jina Dev Bot*)\n\n","2022-08-02T21:08:30",{"id":244,"version":245,"summary_zh":246,"released_at":247},314475,"v0.10.9","## Release Note (`0.10.9`)\n\n> Release time: 2022-08-02 19:12:02\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🐞 Bug fixes\n\n - [[```993a021b```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F993a021b1d8c8d9c9c3913bcdb0bc626d8c72786)] __-__ make eval schedule string safe (#126) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```a8cd98cc```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fa8cd98ccafa59d12a70732af837285d712bcab74)] __-__ __version__: the next version will be 0.10.9 (*Jina Dev Bot*)\n\n","2022-08-02T19:12:23",{"id":249,"version":250,"summary_zh":251,"released_at":252},314476,"v0.10.8","## Release Note (`0.10.8`)\n\n> Release time: 2022-08-02 09:10:17\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🐞 Bug fixes\n\n - [[```54b89a17```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F54b89a172fd96ec6e82b10221e303dd4c2b98597)] __-__ code generation package (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```ba37c51e```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fba37c51ed0944505edb726be301651a6d34a0e1f)] __-__ __version__: the next version will be 0.10.8 (*Jina Dev Bot*)\n\n","2022-08-02T09:11:13",{"id":254,"version":255,"summary_zh":256,"released_at":257},314477,"v0.10.7","## Release Note (`0.10.7`)\n\n> Release time: 2022-08-02 08:21:01\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🐞 Bug fixes\n\n - [[```4bbb3b00```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F4bbb3b0050db5a7938ef1e649350f7609030afe5)] __-__ eval schedule string (#125) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```cf1f5814```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002Fcf1f581432dbc81846c66d4dadb4db30091f3dbf)] __-__ __version__: the next version will be 0.10.7 (*Jina Dev Bot*)\n\n","2022-08-02T08:21:30",{"id":259,"version":260,"summary_zh":261,"released_at":262},314478,"v0.10.6","## Release Note (`0.10.6`)\n\n> Release time: 2022-08-01 21:38:21\n\n\n\n🙇 We'd like to thank all contributors for this new release! In particular,\n Nan Wang,  Han Xiao,  Jina Dev Bot,  🙇\n\n\n### 🧼 Code Refactoring\n\n - [[```138cec60```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F138cec60d8f0bb93eeeeab131e54da0a70a04e9b)] __-__ fix loss tracking scale (#123) (*Han Xiao*)\n\n### 🍹 Other Improvements\n\n - [[```015449f4```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F015449f43f7f669d1414d1368cf45d7898dbdfc7)] __-__ remove the unused lines (#122) (*Nan Wang*)\n - [[```5e27f28a```](https:\u002F\u002Fgithub.com\u002Fjina-ai\u002Fdiscoart\u002Fcommit\u002F5e27f28a16a95f40a71bcd176a9affd39241f4d6)] __-__ __version__: the next version will be 0.10.6 (*Jina Dev Bot*)\n\n","2022-08-01T21:38:44"]