{"id":13815142,"url":"https://github.com/soulteary/docker-prompt-generator","last_synced_at":"2025-05-16T18:04:22.796Z","repository":{"id":152036698,"uuid":"623499246","full_name":"soulteary/docker-prompt-generator","owner":"soulteary","description":"Using a Model to generate prompts for Model applications. / 使用模型来生成作图咒语的偷懒工具，支持 MidJourney、Stable Diffusion 等。","archived":false,"fork":false,"pushed_at":"2023-04-05T16:20:44.000Z","size":1881,"stargazers_count":1173,"open_issues_count":12,"forks_count":111,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-04-12T16:53:22.518Z","etag":null,"topics":["midjourney","midjourney-app","prompt","prompt-tool","stable-diffusion","stable-diffusion-webui"],"latest_commit_sha":null,"homepage":"https://soulteary.com/2023/04/05/eighty-lines-of-code-to-implement-the-open-source-midjourney-and-stable-diffusion-spell-drawing-tool.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soulteary.png","metadata":{"files":{"readme":"README-CN.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-04-04T13:47:36.000Z","updated_at":"2025-04-09T14:25:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"f8018463-0ab2-445c-bd8c-0ed65e95f110","html_url":"https://github.com/soulteary/docker-prompt-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fdocker-prompt-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fdocker-prompt-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fdocker-prompt-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soulteary%2Fdocker-prompt-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soulteary","download_url":"https://codeload.github.com/soulteary/docker-prompt-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254582902,"owners_count":22095518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["midjourney","midjourney-app","prompt","prompt-tool","stable-diffusion","stable-diffusion-webui"],"created_at":"2024-08-04T04:03:01.203Z","updated_at":"2025-05-16T18:04:22.655Z","avatar_url":"https://github.com/soulteary.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Docker 作图咒语生成器\n\n\u003cimg src=\"./.github/prompt.png\" width=\"300px\"\u003e\n\n\u003e 使用模型来生成作图咒语的偷懒工具，支持 MidJourney、Stable Diffusion 等。\n\n## 功能预览\n\n如同 MidJourney 官方新推出的功能，工具支持一键从图片中解析出 Prompt 描述，并能够基于描述进行扩展，以便二次图片生成。\n\n![](./.github/preview.jpg)\n\n工具支持直接使用中文进行原始 Prompt 描述，并能够将中文转换为模型生成效果更好的英文 Prompt 描述。\n\n![](./.github/preview-translate.jpg)\n\n## 使用方法\n\n\n在过去的[几篇文章](https://soulteary.com/tags/python.html)里，我提到过了我个人习惯和推荐的开发环境，基于 Docker 和 Nvidia 官方基础容器的深度学习环境，所以就不再赘述相关知识点，感兴趣可以自行翻阅，比如这篇[《基于 Docker 的深度学习环境：入门篇》](https://soulteary.com/2023/03/22/docker-based-deep-learning-environment-getting-started.html)。相信老读者应该已经很熟悉啦。\n\n当然，因为本文包含纯 CPU 也能玩的部分，你也可以参考几个月前的[《在搭载 M1 及 M2 芯片 MacBook设备上玩 Stable Diffusion 模型》](https://soulteary.com/2022/12/10/play-the-stable-diffusion-model-on-macbook-devices-with-m1-and-m2-chips.html)，来配置你的环境。\n\n在准备好 Docker 环境的配置之后，我们就可以继续玩啦。\n\n我们随便找一个合适的目录，使用 `git clone` 或者下载 Zip 压缩包的方式，先把“Docker Prompt Generator(Docker 作图咒语生成器)”项目的代码下载到本地。\n\n```bash\ngit clone https://github.com/soulteary/docker-prompt-generator.git\n# or\ncurl -sL -o docker-prompt-generator.zip https://github.com/soulteary/docker-prompt-generator/archive/refs/heads/main.zip\n```\n\n接着，进入项目目录，使用 Nvidia 原厂的 PyTorch Docker 基础镜像来完成基础环境的构建，相比于我们直接从 DockerHub 拉制作好的镜像，自行构建将能节约大量时间。\n\n我们在项目目录中执行下面的命令，就能够完成应用模型应用的构建啦：\n\n```bash\n# 构建基础镜像\ndocker build -t soulteary/prompt-generator:base . -f docker/Dockerfile.base\n\n# 构建 CPU 应用\ndocker build -t soulteary/prompt-generator:cpu . -f docker/Dockerfile.cpu\n\n# 构建 GPU 应用\ndocker build -t soulteary/prompt-generator:gpu . -f docker/Dockerfile.gpu\n```\n\n然后，根据你的硬件环境，选择性执行下面的命令，就能够启动一个带有 Web UI 界面的模型应用啦。\n\n```bash\n# 运行 CPU 镜像\ndocker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --rm -it -p 7860:7860 soulteary/prompt-generator:cpu\n\n# 运行 GPU 镜像\ndocker run --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --rm -it -p 7860:7860 soulteary/prompt-generator:gpu\n```\n\n我们在浏览器中输入运行容器的宿主机的 IP 地址，就能够开始使用工具啦。\n\n\n## 相关项目\n\n模型类项目:\n\n- Prompt Model: [succinctly/text2image-prompt-generator](https://huggingface.co/succinctly/text2image-prompt-generator)\n- Translator Model: [Helsinki-NLP/opus-mt-zh-en](https://huggingface.co/Helsinki-NLP/opus-mt-zh-en) / [GitHub](https://github.com/Helsinki-NLP/OPUS-MT-train)\n- CLIP Model: [laion/CLIP-ViT-H-14-laion2B-s32B-b79K](https://huggingface.co/laion/CLIP-ViT-H-14-laion2B-s32B-b79K)\n\n数据集项目:\n\n- Datasets: [succinctlyai/midjourney-texttoimage](https://www.kaggle.com/datasets/succinctlyai/midjourney-texttoimage)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoulteary%2Fdocker-prompt-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoulteary%2Fdocker-prompt-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoulteary%2Fdocker-prompt-generator/lists"}