img2img-studio · 图生图工作室
35.5/100
综合分
8
GitHub 星标
607
npm 周下载
—/5
用户评分
数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-img2img-confignpm 源 · dsh-img2img-config 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/24) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过安装清单取自 plugins/dsh-img2img-config/package.json
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-img2img-config @ 0.1.1
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 16:37:03
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 76 处,展示前 53 条)
- 读取本地文件lib/index.js:45
if (existsSync(target) || !existsSync(LEGACY_STORE_DIR)) - 读取本地文件lib/index.js:73
if (existsSync(providersFile())) { - 读取本地文件lib/index.js:74
const arr = JSON.parse(readFileSync(providersFile(), 'utf8')); - 写入本地文件lib/index.js:83
mkdirSync(join(homedir(), '.dsh', 'dsh-img2img-config'), { recursive: true }); - 写入本地文件lib/index.js:84
writeFileSync(providersFile(), JSON.stringify(list, null, 2), 'utf8'); - 读取本地文件lib/index.js:187
if (process.env.BUN_BINARY && existsSync(process.env.BUN_BINARY)) - 读取本地文件lib/index.js:198
return candidates.find((candidate) => existsSync(candidate)) ?? null; - 读取本地文件lib/index.js:276
detail: existsSync(qoderBundleFile()) - 发起网络请求lib/index.js:310
const res = await fetch(url, { - 写入本地文件lib/index.js:377
mkdirSync(outDir, { recursive: true }); - 写入本地文件lib/index.js:534
mkdirSync(storeDir(), { recursive: true }); - 写入本地文件lib/index.js:535
writeFileSync(accountsFile(), JSON.stringify(store, null, 2), 'utf8'); - 执行外部命令固定命令lib/index.js:701
const out = execFileSync('reg', ['query', key], { encoding: 'utf8', timeout: 5000 }); - 发起网络请求lib/client.js:3626
setScan(await (await fetch("/dsh-img2img-config/scan")).json()); - 发起网络请求lib/client.js:3796
setResult(await (await fetch("/dsh-img2img-config/try", { - 发起网络请求lib/client.js:3890
const data = await (await fetch("/dsh-img2img-config/providers")).json(); - 发起网络请求lib/client.js:3991
const data = await (await fetch("/dsh-img2img-config/providers", { - 发起网络请求lib/client.js:4017
const data = await (await fetch("/dsh-img2img-config/probe", { - 写入剪贴板lib/client.js:4078
clipboard.writeText(command).then(() => setMsg(tr("已复制命令:{p1}", { p1: command }))).catch(() => setMsg(command)); - 发起网络请求lib/client.js:4275
return await (await fetch("/dsh-img2img-config/chatgpt-usage", { - 读取本地文件lib/env.js:39
if (!existsSync(file)) - 读取本地文件lib/env.js:41
return parseEnv(readFileSync(file, 'utf8')); - 读取本地文件lib/env.js:52
if (existsSync(file)) { - 读取本地文件lib/env.js:53
const text = readFileSync(file, 'utf8'); - 读取本地文件lib/env.js:103
if (existsSync(file) && readFileSync(file, 'utf8') === nextText) - 读取本地文件lib/env.js:103
if (existsSync(file) && readFileSync(file, 'utf8') === nextText) - 写入本地文件lib/env.js:105
mkdirSync(dirname(file), { recursive: true }); - 写入本地文件lib/env.js:108
writeFileSync(temporary, nextText, 'utf8'); - 写入本地文件lib/env.js:110
renameSync(temporary, file); - 删除本地文件lib/env.js:113
rmSync(temporary, { force: true }); - 读取本地文件src/env.ts:42
if (!existsSync(file)) return {} - 读取本地文件src/env.ts:43
return parseEnv(readFileSync(file, 'utf8')) - 读取本地文件src/env.ts:55
if (existsSync(file)) { - 读取本地文件src/env.ts:56
const text = readFileSync(file, 'utf8') - 读取本地文件src/env.ts:94
if (existsSync(file) && readFileSync(file, 'utf8') === nextText) return current - 读取本地文件src/env.ts:94
if (existsSync(file) && readFileSync(file, 'utf8') === nextText) return current - 写入本地文件src/env.ts:96
mkdirSync(dirname(file), { recursive: true }) - 写入本地文件src/env.ts:99
writeFileSync(temporary, nextText, 'utf8') - 写入本地文件src/env.ts:101
renameSync(temporary, file) - 删除本地文件src/env.ts:103
rmSync(temporary, { force: true }) - 读取本地文件src/index.ts:67
if (existsSync(target) || !existsSync(LEGACY_STORE_DIR)) return - 读取本地文件src/index.ts:107
if (existsSync(providersFile())) { - 读取本地文件src/index.ts:108
const arr = JSON.parse(readFileSync(providersFile(), 'utf8')) as ProviderItem[] - 写入本地文件src/index.ts:116
mkdirSync(join(homedir(), '.dsh', 'dsh-img2img-config'), { recursive: true }) - 写入本地文件src/index.ts:117
writeFileSync(providersFile(), JSON.stringify(list, null, 2), 'utf8') - 读取本地文件src/index.ts:229
if (process.env.BUN_BINARY && existsSync(process.env.BUN_BINARY)) return process.env.BUN_BINARY - 读取本地文件src/index.ts:239
return candidates.find((candidate) => existsSync(candidate)) ?? null - 读取本地文件src/index.ts:332
detail: existsSync(qoderBundleFile()) - 发起网络请求src/index.ts:364
const res = await fetch(url, { - 写入本地文件src/index.ts:440
mkdirSync(outDir, { recursive: true }) - 写入本地文件src/index.ts:671
mkdirSync(storeDir(), { recursive: true }) - 写入本地文件src/index.ts:672
writeFileSync(accountsFile(), JSON.stringify(store, null, 2), 'utf8') - 执行外部命令固定命令src/index.ts:859
const out = execFileSync('reg', ['query', key], { encoding: 'utf8', timeout: 5000 })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
图生图工作台:视觉门控路由 + 多服务商生成(DashScope / ChatGPT-web / OpenAI / Z.AI / 豆包 / MiniMax),自动故障转移。电商套图与照片艺术风格。
最近更新
在 GitHub 查看全部 →plugin-v0.1.02026-10-23
dsh-img2img-config DSH 插件的预构建压缩包,无需构建步骤。
· 宿主端:lib/index.js(注册前缀路由)
· 客户端:lib/client.js(输入框图片编辑停靠栏 + 设置 -> 识图与生图面板)
· 打包补丁:cordis.patch.yml
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成img2img-studio · 图生图工作室
把一张图(或几张图)变成你想要的各种新图:识图 → 按风格/场景 → 按生成通道 → 出图。
面向 DeepSeek Harness / Claude Code / Codex 等智能体环境的可移植智能体技能。
界面
图片编辑器在输入框上方就地打开;下方是设置页里的「识图与生图」服务商面板(优先级、模型降级链、账号库)。
图片编辑器:编号标记、涂抹擦除、移除背景、比例与尺寸
识图与生图服务商面板:三级优先级、模型链、ChatGPT 网页账号库
架构
输入图片 ↓ 第一层:识图(多模态模型 → read_image 直接看;纯文本模型 → dsh-vision-skill 的 vision.js)结构化描述(主体/构图/色彩/材质/情绪/卖点) ↓ Step 0 路由门(出图前必问) ① 选生成通道 → ② 选风格/场景 → ③ 细化需求(尺寸/文字/参考图/数量) ↓ 第二层:生成模式文档构建 Prompt → generate_image.mjs(多服务商自动降级)→ QA → 交付
功能
展开完整文档(README 剩余 1 节)
img2img-studio · 图生图工作室 把一张图(或几张图)变成你想要的各种新图:识图 → 按风格/场景 → 按生成通道 → 出图。 面向 DeepSeek Harness / Claude Code / Codex 等智能体环境的可移植智能体技能。 界面 图片编辑器在输入框上方就地打开;下方是设置页里的「识图与生图」服务商面板(优先级、模型降级链、账号库)。 图片编辑器:编号标记、涂抹擦除、移除背景、比例与尺寸 识图与生图服务商面板:三级优先级、模型链、ChatGPT 网页账号库 架构 输入图片 ↓ 第一层:识图(多模态模型 → read_image 直接看;纯文本模型 → dsh-vision-skill 的 vision.js)结构化描述(主体/构图/色彩/材质/情绪/卖点) ↓ Step 0 路由门(出图前必问) ① 选生成通道 → ② 选风格/场景 → ③ 细化需求(尺寸/文字/参考图/数量) ↓ 第二层:生成模式文档构建 Prompt → generate_image.mjs(多服务商自动降级)→ QA → 交付 功能 - 电商模式:商品图 → 白底主图、卖点图、场景图、细节图、对比图、详情页 PDP、Amazon/淘宝等平台套图(转化驱动力诊断 + Campaign Style Lock + 平台尺寸规范 + GPT-Image Prompt 铁律) - 照片艺术模式:editorial(编辑杂志)/ revival(白纸手绘诗意)/ fusion(融合)/ zine 三风格(zine-gathered 实景拼贴 / zine-distill 影像蒸馏 / zine-minimal 极简海报) - ChatGPT 网页出图:没有 API key 也能用 ChatGPT 账号额度出图(浏览器自动化,references/chatgpt-web-mode.md) - 多服务商自动降级:DashScope 通义千问(默认,性能+最新模型优先)、OpenAI 兼容 API、Z.AI GLM-Image、Seedream 豆包、MiniMax、本地 chatgpt-web 类服务、Codex CLI - 批量并发出图、质量预设(1k/2k)、i2i 参考图、同服务商重试、身份保持参考图准则 安装 复制到 Agent 的 skills 目录(Windows 示例) Copy-Item -Recurse -Force "img2img-studio" "$env:USERPROFILE\.agents\skills\" 依赖:Node.js 18+(generate_image.mjs 本身零第三方依赖)。 可选:装自带插件(设置面板 + 图片编辑器) 技能本体(SKILL.md + references/ + scripts/)纯命令行就能用,不装插件照样出图。 想让 DSH 里出现 设置 → 识图与生图 服务商面板、以及输入框上方的 图片编辑器,再装仓库自带的 plugins/dsh-img2img-config: $plugin = "$env:USERPROFILE\.agents\skills\img2img-studio\plugins\dsh-img2img-config" 1) 构建(宿主 tsc + 客户端 tsdown;Node 版脚本,沙箱里无需 bash) node "$plugin\scripts\build.mjs" 2) 装配(免重启热装配;重启后由 profile 的 bundles 列表接管,双路径一致)有 dsh-super-injector 时用 dev_install_package;否则把包名加进 profile 的 dsh.profile.bundles 数组并在 node_modules 下建同名 junction dev_install_package "$plugin" 一个包装两个面,都是一次安装就有: | 面 | 位置 | 作用 | | 服务商面板 | 设置 → 识图与生图 | 配识图 + 生图的 API Key / 模型 / 端点 / 三级优先级 / 余额探测 / ChatGPT 网页账号额度 | | 图片编辑器 | 输入框上方的「图片编辑」条 | 对输入框里的图片做标记 / 抠图 / 涂抹擦除 / 改尺寸,结果回填输入框 | 面板保存即写回 img2img-studio/scripts/.env(GEN_PROVIDER_ORDER、各 _API_KEY、 IMG_CHATGPT_WEB_ACCOUNTS)与 dsh-vision-skill/scripts/.env(VISION_PROVIDERS 等)——两个技能只装一个也能用(写盘前会先把目标目录建出来)。细节见 plugins/dsh-img2img-config/README.md。 dsh-vision-skill 是条件依赖,不是硬前置——按你的情况看要不要装: | 你的情况 | 要不要 dsh-vision-skill | 原因 | | 会话模型是多模态(read_image 可用,如 DeepSeek-V4.1-Flash) | ❌ 不用 | L1 识图直接 read_image 原生看图,不跑 vision.js、不耗外部额度 | | 会话模型是纯文本(如 GLM-5.3) | ✅ 要 | 只有这种情况才需要 vision.js 走识图链 | | 想把 Web 拖入的图片当参考图(i2i) | 🔸 多数情况不用 | DSH 0.1.5+ 的消息里已带 Normalized copy (read-only…) 路径,可直接当 --image;只有拿不到路径(只剩 attachmentId)时才需要 resolve_attachment.mjs,或自己拼 <DSH_HOME>\attachments\v1\objects\<hex前2位>\<hex>。注意归一化副本可能被重编码/缩放——要画质就用本地原图路径 | | 想零配置出图(复用识图 key) | ✅ 装了更省事 | generate_image.mjs 会自动回退读 ..\dsh-vision-skill\scripts\.env | | 已自己配好 DASHSCOPE_API_KEY / IMG_,且只做文生图 | ❌ 不用 | 生图链不依赖它 | 需要时把它放在与 img2img-studio 同一个 skills 目录下即可(或用 DSH_SKILLS_DIR 指定)。 快速开始 1. 查看已配置的生图供应商(不泄露密钥) node "$env:USERPROFILE\.agents\skills\img2img-studio\scripts\generate_image.mjs" --list-providers 2. 文生图(默认 DashScope qwen-image-3.0-pro;零配置即用——自动复用 dsh-vision-skill 的 key,自己设 DASHSCOPE_API_KEY 也一样) node "$env:USERPROFILE\.agents\skills\img2img-studio\scripts\generate_image.mjs" --prompt "红色苹果白底产品图" --size 1:1 --output-dir out 3. 图生图(带参考图) node "$env:USERPROFILE\.agents\skills\img2img-studio\scripts\generate_image.mjs" --prompt-file prompt.txt --image ref.png --size 3:4 --output-dir out 4. 批量(电商套图) node "$env:USERPROFILE\.agents\skills\img2img-studio\scripts\generate_image.mjs" --batchfile batch.json --jobs 4 --output-dir out 5. 看各 ChatGPT 账号的档位/额度(读「识图与生图」面板库,不泄露凭据) node "$env:USERPROFILE\.agents\skills\img2img-studio\scripts\generate_image.mjs" --accounts 智能体完整工作流(识图 → 路由门 → 生成 → QA)见 SKILL.md。 开发与测试 编排脚本自测:链序 / 额度判定 / 代理 / CLI 契约(纯离线,不花钱、不联网) node scripts\selftest.mjs --verbose 降级链 mock:本地 mock 服务让首选 429、备选 200,验证 429→备选成功 + fallbackDepth/attempts node scripts\verify-fallback.mjs manifest 契约:schema 合法 + 消费端拒绝未知 version / 越界坐标 / 缺 files.edited node scripts\verify-manifest.mjs 直连引擎单测(TypeScript,bun 运行) bun test engines\direct-api\scripts 推送与 PR 会自动跑同一套(见 .github/workflows/selftest.yml)。 生成通道 | 通道 | 说明 | 前置条件 | | chatgpt-web@<账号> ⭐一级优先 | ChatGPT 网页出图(image 2.5);免费账号先上,用尽切自有账号 | 面板添加账号后自动同步 | | codex-cli ⭐一级(自有账号) | 自有订阅出图(Codex 客户端 / Plus),免费额度用尽后的优先选择 | codex CLI 已登录 + imagegen 权限 | | dashscope(API 默认) | 通义千问 qwen-image-3.0-pro,国内直连,t2i+i2i | 零配置(可复用识图 key) | | openai | OpenAI 兼容 API(默认 gpt-image-2) | IMG_BASE_URL+IMG_MODEL+IMG_API_KEY | | zai | Z.AI GLM-Image(中文文字渲染强,不支持参考图) | ZAI_API_KEY | | seedream | 豆包(4.0+ 支持参考图) | ARK_API_KEY | | minimax | 海螺 image-01(人物一致性) | MINIMAX_API_KEY | | local | 本地 chatgpt-web 类服务 | IMG_HTTP_URL | 配置方式见 scripts/.env.example(也可直接用环境变量)。 风格清单 photo-art:editorial(编辑杂志)/ revival(白纸手绘诗意)/ fusion(默认,融合)/ zine-gathered(拾景实景拼贴)/ zine-distill(影像蒸馏)/ zine-minimal(极简海报) ecommerce:白底主图 / 卖点图 / 场景图 / 细节图 / 对比图 / 平铺图 / 模特图 / 详情页 PDP / 社媒图 / 直播图 / 包装图 / 海报横幅 目录结构 img2img-studio/ ├── SKILL.md # 主入口:L1 识图 + Step 0 路由门 + L2 生成 + 模型策略 + QA ├── references/ │ ├── routing-gate.md # 出图前询问:通道 + 风格 + 细化需求 │ ├── photo-art-mode.md # 照片艺术模式(editorial/revival/fusion/zine 三风格) │ ├── ecommerce-mode.md # 电商模式(10 步管线:转化诊断/Style Lock/铁律/详情页) │ ├── chatgpt-web-mode.md # ChatGPT 网页出图工作流 │ ├── image-editor.md # GUI 编辑器回填的编辑请求怎么落地(标记/掩码/擦除) │ └── direct-api-guide.md # 直连引擎(12 家官方 API)的 DSH 适配 ├── engines/ │ └── direct-api/ # 自有直连生图引擎(bun 运行 TS) ├── plugins/ │ └── dsh-img2img-config/ # DSH 插件:设置面板 + 图片编辑器(可选装,见「安装」) └── scripts/ ├── generate_image.mjs # 多供应商生图脚本(零依赖 Node) ├── edit_image.mjs # 图像编辑:manifest/resize/bg-remove/erase/local-edit └── .env.example # 供应商配置示例 模型策略 一级优先:ChatGPT 网页通道(image 2.5)——订阅额度出图,文字渲染与真实感最稳,且不花 API 钱。 1. 免费网页账号先上:chatgpt-web@<免费账号>(免费档不设本地上限,一路用到服务端拒绝为止) 2. 免费额度用尽 → 自有账号优先:chatgpt-web@<自有账号> → codex-cli(自有 Plus 订阅,实时读 ~/.codex/auth.json,不用 API key) 3. 订阅通道都不可用/失败 → API 通道(下面这套 DashScope 链) 实际顺序由面板「识图与生图」排的 GEN_PROVIDER_ORDER 决定(当前:免费账号 1 → 免费账号 2 → codex-cli → qoder);额度类错误不重试、立即切下一通道(isQuotaError);加 --skip-exhausted 还能按面板探测结果跳过已用尽的付费账号。 API 通道内部(性能优先 + 发布时间最近优先): - 生图 t2i:qwen-image-3.0-pro → qwen-image-3.0 → wan2.7-image-pro → wanx2.1-t2i-plus → wanx2.1-t2i-turbo - 生图 i2i:qwen-image-3.0-pro → wan2.7-image-pro - OpenAI 兼容通道默认模型:gpt-image-2 - 识图(dsh-vision-skill):qwen3.8-max → qwen3.7-plus → qwen3.7-flash → qwen-vl-max → qwen-vl-plus License MIT 致谢与风格来源 - 风格融合自多个开源 Skill:photo-abstract-editorial、photo-revival、ecommerce-image-suite、ecom-details-image、1click-ecom-detailpage、gpt-image2-ecommerce、designkit-skills(美图)、gathered-scenes-zine(Zeejay0,个人非商业许可,商用需其授权)、gc-minimal-zine-poster - engines/direct-api/ 为 MIT 授权的第三方代码(见该目录 LICENSE),已重命名为本技能自有通道并完成 DSH 本地化改造
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Dogwind221/img2img-studio
img2img-studio · 图生图工作室
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,359已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,514已汉化DSH
71.8
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,289已汉化DSH
71.6
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 92,675已汉化DSH
71.2
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,522已汉化DSH
71
这是你的仓库?认领条目