dsh-image-gen 0.10.2 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +456 -454
- package/README.md +456 -454
- package/docs/assets/readme/canvas-edit.webp +0 -0
- package/docs/assets/readme/canvas-sketch.webp +0 -0
- package/docs/assets/readme/chat-batch.webp +0 -0
- package/docs/assets/readme/config.webp +0 -0
- package/docs/assets/readme/hero-batch.webp +0 -0
- package/docs/assets/readme/hero-canvas.webp +0 -0
- package/docs/assets/readme/studio-ref.webp +0 -0
- package/docs/assets/readme/studio.webp +0 -0
- package/lib/client.js +4871 -3658
- package/lib/index.js +2074 -140
- package/lib/types/client/browser-image-utils.d.ts +6 -0
- package/lib/types/client/datalist-scroll-fix.d.ts +32 -0
- package/lib/types/client/gallery-batch-bar.d.ts +8 -0
- package/lib/types/client/gallery-card.d.ts +21 -0
- package/lib/types/client/gallery-format.d.ts +7 -0
- package/lib/types/client/gallery-i18n.d.ts +236 -0
- package/lib/types/client/gallery-media.d.ts +46 -0
- package/lib/types/client/gallery-merge.d.ts +15 -0
- package/lib/types/client/gallery-store.d.ts +21 -2
- package/lib/types/client/gallery-thumbs.d.ts +24 -0
- package/lib/types/client/gallery-view.d.ts +0 -207
- package/lib/types/client/image-result-view.d.ts +24 -0
- package/lib/types/client/index.d.ts +1 -20
- package/lib/types/client/plugin-i18n.d.ts +375 -0
- package/lib/types/client/plugin-style.d.ts +1 -0
- package/lib/types/client/studio-helpers.d.ts +63 -0
- package/lib/types/client/studio-style.d.ts +1 -1
- package/lib/types/client/studio-view.d.ts +0 -7
- package/lib/types/client/tl/gallery-image-transfer.d.ts +1 -1
- package/lib/types/config.d.ts +12 -0
- package/lib/types/import-route.d.ts +11 -0
- package/lib/types/multipart.d.ts +29 -0
- package/lib/types/openai-compatible.d.ts +8 -0
- package/lib/types/request-cache.d.ts +41 -0
- package/lib/types/shared.d.ts +23 -0
- package/lib/types/storage-stats.d.ts +34 -0
- package/lib/types/thumb-route.d.ts +25 -0
- package/lib/types/vault-registry.d.ts +36 -0
- package/lib/types/vault-route.d.ts +8 -0
- package/lib/types/vault-store.d.ts +31 -0
- package/lib/types/zip-progress.d.ts +18 -0
- package/lib/types/zip-route.d.ts +25 -0
- package/lib/types/zip-stream.d.ts +43 -0
- package/package.json +139 -139
- package/skills/install-dsh-image-gen/SKILL.md +22 -22
- package/lib/types/client/tl/tl-trace-bridge.d.ts +0 -55
- package/lib/types/client/tl/trace-playback.d.ts +0 -101
- package/lib/types/trace-drawing.d.ts +0 -102
- package/lib/types/trace-route.d.ts +0 -12
- package/lib/types/trace-sketch.d.ts +0 -26
- package/lib/types/trace-store.d.ts +0 -23
- package/lib/types/vendor/drawai/raster.d.ts +0 -43
- package/lib/types/vendor/drawai/trace-image.d.ts +0 -257
package/README.md
CHANGED
|
@@ -1,454 +1,456 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
<img src="docs/assets/readme/hero-zh.webp" alt="dsh-image-gen 中文功能概览" width="100%" />
|
|
4
|
-
|
|
5
|
-
<br />
|
|
6
|
-
|
|
7
|
-
<p><strong>简体中文</strong> · <a href="README.en.md">English</a></p>
|
|
8
|
-
|
|
9
|
-
# 🎨 dsh-image-gen
|
|
10
|
-
|
|
11
|
-
### DeepSeek Harness
|
|
12
|
-
|
|
13
|
-
<p><b
|
|
14
|
-
|
|
15
|
-
<p>
|
|
16
|
-
<a href="https://www.npmjs.com/package/dsh-image-gen"><img src="https://img.shields.io/npm/v/dsh-image-gen?style=flat-square&color=4f6ef7" alt="npm version" /></a>
|
|
17
|
-
<a href="https://www.npmjs.com/package/dsh-image-gen"><img src="https://img.shields.io/npm/dm/dsh-image-gen?style=flat-square&color=10b981" alt="npm downloads" /></a>
|
|
18
|
-
<a href="https://github.com/shanliuling/dsh-image-gen/actions/workflows/ci.yml"><img src="https://github.com/shanliuling/dsh-image-gen/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
19
|
-
<a href="https://dsh-insights.com/p/shanliuling/dsh-image-gen"><img src="https://dsh-insights.com/badge/shanliuling/dsh-image-gen.svg" alt="DSH Insights health" /></a>
|
|
20
|
-
<a href="https://github.com/shanliuling/dsh-image-gen/stargazers"><img src="https://img.shields.io/github/stars/shanliuling/dsh-image-gen?style=flat-square" alt="GitHub stars" /></a>
|
|
21
|
-
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-f5c542?style=flat-square" alt="License: Apache-2.0" /></a>
|
|
22
|
-
<a href="https://linux.do/"><img src="https://img.shields.io/badge/LINUX%20DO-社区友链-555?style=flat-square" alt="LINUX DO" /></a>
|
|
23
|
-
</p>
|
|
24
|
-
|
|
25
|
-
<p>
|
|
26
|
-
<a href="https://atomgit.com/shanliuling/dsh-image-gen"><img src="https://atomgit.com/shanliuling/dsh-image-gen/star/new_badge.svg" alt="AtomGit" height="55" /></a>
|
|
27
|
-
</p>
|
|
28
|
-
|
|
29
|
-
<p>
|
|
30
|
-
<a href="
|
|
31
|
-
<a href="
|
|
32
|
-
<a href="
|
|
33
|
-
<a href="
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<img src="docs/assets/readme/
|
|
46
|
-
<img src="docs/assets/readme/
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
`dsh-image-gen`
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
>
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
<
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
<
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
<br />
|
|
191
|
-
|
|
192
|
-
<
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
-
|
|
205
|
-
|
|
206
|
-
<
|
|
207
|
-
|
|
208
|
-
<
|
|
209
|
-
<
|
|
210
|
-
<
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
<
|
|
225
|
-
<
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
<
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
<
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
<br />
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
>
|
|
298
|
-
>
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
|
326
|
-
|
|
|
327
|
-
|
|
|
328
|
-
|
|
|
329
|
-
|
|
|
330
|
-
|
|
|
331
|
-
|
|
|
332
|
-
|
|
|
333
|
-
|
|
|
334
|
-
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
>
|
|
340
|
-
>
|
|
341
|
-
>
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
-
|
|
353
|
-
-
|
|
354
|
-
-
|
|
355
|
-
-
|
|
356
|
-
-
|
|
357
|
-
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
<
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
<
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
<
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
<
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
<
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="docs/assets/readme/hero-zh.webp" alt="dsh-image-gen 中文功能概览" width="100%" />
|
|
4
|
+
|
|
5
|
+
<br />
|
|
6
|
+
|
|
7
|
+
<p><strong>简体中文</strong> · <a href="README.en.md">English</a></p>
|
|
8
|
+
|
|
9
|
+
# 🎨 dsh-image-gen
|
|
10
|
+
|
|
11
|
+
### 在 DeepSeek Harness 里,用说话的方式画图
|
|
12
|
+
|
|
13
|
+
<p><b>对话批量生图 · 看得懂草图的 AI 画布 · Agent 自动套用 500+ Prompt 灵感 · 订阅账号免 Key</b></p>
|
|
14
|
+
|
|
15
|
+
<p>
|
|
16
|
+
<a href="https://www.npmjs.com/package/dsh-image-gen"><img src="https://img.shields.io/npm/v/dsh-image-gen?style=flat-square&color=4f6ef7" alt="npm version" /></a>
|
|
17
|
+
<a href="https://www.npmjs.com/package/dsh-image-gen"><img src="https://img.shields.io/npm/dm/dsh-image-gen?style=flat-square&color=10b981" alt="npm downloads" /></a>
|
|
18
|
+
<a href="https://github.com/shanliuling/dsh-image-gen/actions/workflows/ci.yml"><img src="https://github.com/shanliuling/dsh-image-gen/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
19
|
+
<a href="https://dsh-insights.com/p/shanliuling/dsh-image-gen"><img src="https://dsh-insights.com/badge/shanliuling/dsh-image-gen.svg" alt="DSH Insights health" /></a>
|
|
20
|
+
<a href="https://github.com/shanliuling/dsh-image-gen/stargazers"><img src="https://img.shields.io/github/stars/shanliuling/dsh-image-gen?style=flat-square" alt="GitHub stars" /></a>
|
|
21
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-f5c542?style=flat-square" alt="License: Apache-2.0" /></a>
|
|
22
|
+
<a href="https://linux.do/"><img src="https://img.shields.io/badge/LINUX%20DO-社区友链-555?style=flat-square" alt="LINUX DO" /></a>
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<p>
|
|
26
|
+
<a href="https://atomgit.com/shanliuling/dsh-image-gen"><img src="https://atomgit.com/shanliuling/dsh-image-gen/star/new_badge.svg" alt="AtomGit" height="55" /></a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
<p>
|
|
30
|
+
<a href="#一句话就能做到">一句话就能做到</a> ·
|
|
31
|
+
<a href="#快速开始">快速开始</a> ·
|
|
32
|
+
<a href="#核心能力">核心能力</a> ·
|
|
33
|
+
<a href="#provider-支持情况">Provider 支持</a> ·
|
|
34
|
+
<a href="#常见问题">常见问题</a>
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
<br />
|
|
38
|
+
|
|
39
|
+
<table>
|
|
40
|
+
<tr>
|
|
41
|
+
<td width="50%" align="center"><b>🔁 一句话,一整组图</b><br /><sub>一条消息Agent 批量生成几十张图片</sub></td>
|
|
42
|
+
<td width="50%" align="center"><b>✏️ 画个草图、圈个地方,AI 就懂</b><br /><sub>圈出剑 → 换成斧头 · 火柴人 → 成图</sub></td>
|
|
43
|
+
</tr>
|
|
44
|
+
<tr>
|
|
45
|
+
<td><a href="#chat-batch"><img src="docs/assets/readme/hero-batch.webp" alt="一条消息写 5 个画面,Agent 逐张生成并收进图库" width="100%" /></a></td>
|
|
46
|
+
<td><a href="#ai-canvas"><img src="docs/assets/readme/hero-canvas.webp" alt="在画布上圈出剑换成战斧,再把火柴人草图变成二次元剑士" width="100%" /></a></td>
|
|
47
|
+
</tr>
|
|
48
|
+
</table>
|
|
49
|
+
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<br />
|
|
53
|
+
|
|
54
|
+
`dsh-image-gen` 是 DeepSeek Harness 的原生图像创作插件。它不是在对话框里塞一个生图按钮,而是让 **Agent 本身学会画图**:它能一次规划并生成一整组图,能看懂你在画布上的涂鸦和圈选,能自己去灵感库里找合适的风格模板。需要精细控制时,还有 Studio 工作台、多模型对比和图库。
|
|
55
|
+
|
|
56
|
+
> **已有 ChatGPT、Grok 或 Google 订阅?直接登录即可生图,无需额外购买 API Key。**
|
|
57
|
+
|
|
58
|
+
支持:Gemini · OpenAI / Compatible · Seedream · DashScope · Grok Imagine · GLM-Image · 本地 ComfyUI
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
pnpm dsh plugin --profile web add dsh-image-gen@latest
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
> 每个版本的更新内容见 [Releases](https://github.com/shanliuling/dsh-image-gen/releases)。
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 一句话就能做到
|
|
69
|
+
|
|
70
|
+
不用学参数,也不用切页面,直接在 DSH 对话里说:
|
|
71
|
+
|
|
72
|
+
| 你在对话里说 | 插件会做什么 |
|
|
73
|
+
| :------------------------------------------------------------ | :----------------------------------------------------------------------------- |
|
|
74
|
+
| 「给《咖啡店开业》这篇文章配 4 张插图,统一扁平插画风,16:9」 | 🔁 **对话批量生图**:Agent 把需求拆成 4 个 Prompt 逐张生成,一条消息收齐整组图 |
|
|
75
|
+
| 「用手绘风格 #123 画一张咖啡店菜单」 | ✨ **自动套用灵感**:Agent 先在 500+ 案例库里检索对应风格,再套用模板出图 |
|
|
76
|
+
| 「把我在画布上画的草图变成正式插画」 | ✏️ **看懂画布**:Agent 读取画布选区,把草稿变成成图 |
|
|
77
|
+
| 「把我圈出来的剑换成斧头,其他不变」 | 🎯 **圈哪改哪**:只改你标出的局部 |
|
|
78
|
+
| 「保持这个角色不变,换到雪地场景」 | 🎭 **角色一致性**:图生图时保持同一个人物或物体,不会换成长得相似的另一个 |
|
|
79
|
+
| 「同一个 Prompt,GPT 和 Gemini 各出一张对比」 | ⚖️ **多模型对比**:并发调用多个模型,放在同一张画布上比较 |
|
|
80
|
+
|
|
81
|
+
<img src="docs/assets/readme/workflow-overview.webp" alt="dsh-image-gen 完整 AI 图像创作工作流" width="100%" />
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 快速开始
|
|
86
|
+
|
|
87
|
+
### 1. 安装插件
|
|
88
|
+
|
|
89
|
+
环境要求:DeepSeek Harness 稳定版本,Node.js `^22.19.0` 或 `>= 24.0.0`。
|
|
90
|
+
|
|
91
|
+
在你的 DeepSeek Harness 项目根目录下运行:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pnpm dsh plugin --profile web add dsh-image-gen@latest
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
> 💬 **极客提示**:你也可以直接把这句话发送给 DSH 对话中的 Agent:<br />
|
|
98
|
+
> `帮我安装生图插件,在终端执行:pnpm dsh plugin --profile web add dsh-image-gen@latest`
|
|
99
|
+
|
|
100
|
+
<details>
|
|
101
|
+
<summary><strong>其他安装方式(全局 / GitHub 直装 / 本地调试)</strong></summary>
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# 若已将 dsh 安装为系统全局命令:
|
|
105
|
+
dsh plugin --profile web add dsh-image-gen@latest
|
|
106
|
+
|
|
107
|
+
# 从 GitHub 仓库直接安装最新代码:
|
|
108
|
+
pnpm dsh plugin --profile web add git+https://github.com/shanliuling/dsh-image-gen.git
|
|
109
|
+
|
|
110
|
+
# 本地克隆源码开发安装:
|
|
111
|
+
git clone https://github.com/shanliuling/dsh-image-gen.git
|
|
112
|
+
pnpm dsh plugin --profile web add ./dsh-image-gen
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
</details>
|
|
116
|
+
|
|
117
|
+
### 2. 配置 Provider
|
|
118
|
+
|
|
119
|
+
重启 DSH 后,点击左侧边栏的 **「插件」** 图标打开插件面板,在 **「已安装」** 分区点击 **dsh-image-gen**,进入插件详情页即可看到「图像生成」配置表单:
|
|
120
|
+
|
|
121
|
+
**插件面板 → 已安装 → dsh-image-gen**
|
|
122
|
+
|
|
123
|
+
> DSH 0.1.5 及更早版本没有插件面板,入口仍为「设置 → 插件 → 插件配置 → 图像生成」;插件已同时兼容两种入口。
|
|
124
|
+
|
|
125
|
+
选择 Provider,填写自己的 API Key,并按需调整模型、Endpoint / Base URL 与工作区保存选项。填好 Key 后可点击**「测试连接」**验证可用性,或点击**「拉取模型」**一键获取该厂商支持的全部生图模型,无需手动查文档。使用 ComfyUI 时,请填写 DSH Host 可访问的服务地址,并导入 **API Format Workflow JSON**。
|
|
126
|
+
|
|
127
|
+
已有 ChatGPT、Grok 或 Google 订阅?无需填写 API Key:展开对应的订阅 Provider 行,点击**「登录」**并在浏览器完成授权,即可直接开始文生图与图生图。
|
|
128
|
+
|
|
129
|
+
<div align="center">
|
|
130
|
+
<img src="docs/assets/readme/config.webp" alt="插件详情页选择默认 Provider、查看各渠道状态,并在对话输入框旁切换渠道" width="100%" />
|
|
131
|
+
<br />
|
|
132
|
+
<sub>选默认 Provider → 查看各渠道的 Key / 登录状态 → 在对话输入框旁随手切换。</sub>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
### 3. 开始创作
|
|
136
|
+
|
|
137
|
+
在聊天框中直接描述你想要的图片:
|
|
138
|
+
|
|
139
|
+
```text
|
|
140
|
+
画一张雨夜霓虹街头的赛博朋克猫咪,电影感光线,16:9。
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
想要一整组图?直接说数量和统一风格:
|
|
144
|
+
|
|
145
|
+
```text
|
|
146
|
+
给我的小红书笔记《周末露营清单》配 5 张图:帐篷、炉具、睡袋、照明、零食,统一日系手绘风,3:4。
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
也可以直接上传参考图,让 Agent 进行风格重构或局部编辑:
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
保持角色与构图不变,给猫咪戴上一副黑色墨镜。
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
<br />
|
|
156
|
+
|
|
157
|
+
<div align="center">
|
|
158
|
+
<img src="docs/assets/readme/chat-example.webp" alt="对话生图与风格重构效果" width="60%" />
|
|
159
|
+
<br />
|
|
160
|
+
<sub>在对话中直接生图、图生图与连续编辑。</sub>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
<br />
|
|
164
|
+
|
|
165
|
+
需要更细的参数控制时,点击会话顶部的 **画廊** 入口,进入 **图库 / 工作台 / 灵感 / 收藏**。
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 核心能力
|
|
170
|
+
|
|
171
|
+
<a id="chat-batch"></a>
|
|
172
|
+
|
|
173
|
+
### 🔁 对话批量生图:一句话,一整组图
|
|
174
|
+
|
|
175
|
+
配图、分镜、系列插画、同一主题的多个变体,不用一张一张地催。
|
|
176
|
+
|
|
177
|
+
- 用一句话描述数量和统一要求,Agent 会自己规划出一组 Prompt,**单次最多 10 张**,图片按顺序附在同一条回复里。
|
|
178
|
+
- 比例、清晰度、模型、Provider 可以对整组统一指定,保证风格一致。
|
|
179
|
+
- 逐张生成,**某一张失败不会影响其余图片**,最后会汇报「成功 X / 共 Y」并列出失败原因。
|
|
180
|
+
- 本地 ComfyUI 和订阅通道同样支持批量。
|
|
181
|
+
|
|
182
|
+
<div align="center">
|
|
183
|
+
<img src="docs/assets/readme/chat-batch.webp" alt="一条消息让 Agent 批量生成 5 张二次元插画,失败的那张自动重跑,最后整组进入图库" width="100%" />
|
|
184
|
+
<br />
|
|
185
|
+
<sub>一条消息写 5 个画面 → Agent 规划成两批生成 → 逐张出图,失败的那张自动单独重跑 → 整组进入图库。(等待部分已加速)</sub>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
> **对话批量和 Studio 批量有什么区别?** 对话批量是 Agent 帮你规划**一组不同的画面**(例如 4 张不同场景的插图);Studio 批量是**同一个 Prompt 出多张候选**,由你挑选满意的保存。
|
|
189
|
+
|
|
190
|
+
<br />
|
|
191
|
+
|
|
192
|
+
<a id="ai-canvas"></a>
|
|
193
|
+
|
|
194
|
+
### ✏️ 看得懂草图的 AI 画布
|
|
195
|
+
|
|
196
|
+
在无限画布上画草图、摆参考图、圈出要改的地方,然后直接用对话告诉 AI 你想要什么。**Agent 能看到画布上的内容和你当前的选区**,不需要你截图、上传或者描述位置。
|
|
197
|
+
|
|
198
|
+
- **草图 → 成图**:随手画个轮廓,选中它说「画成卡通角色」。
|
|
199
|
+
- **圈哪改哪**:在已有图片上用画笔圈出局部,说「把这里换成斧头」,只改圈出的部分。
|
|
200
|
+
- **组合参考**:把「最近生成」或图库里的图拖进画布,或点击缩略图上的「发送到画布」,多张一起选中作为参考。同一张历史图片重复导入会自动去重。
|
|
201
|
+
- 每一步结果都留在画布上,随时可以从任意一版继续往下迭代。
|
|
202
|
+
|
|
203
|
+
<div align="center">
|
|
204
|
+
<img src="docs/assets/readme/canvas-edit.webp" alt="在画布上圈出剑,说一句话,Agent 只把剑换成战斧" width="100%" />
|
|
205
|
+
<br />
|
|
206
|
+
<sub><b>圈哪改哪</b>:圈出女剑士手里的剑,说「变成一把斧头」,Agent 先确认圈的是什么,再只改那一处。</sub>
|
|
207
|
+
<br /><br />
|
|
208
|
+
<img src="docs/assets/readme/canvas-sketch.webp" alt="在画布上画火柴人草图,Agent 按草图姿势生成二次元剑士" width="100%" />
|
|
209
|
+
<br />
|
|
210
|
+
<sub><b>草图 → 成图</b>:随手画个持剑的火柴人,框选后说「按照之前风格生成」,姿势和构图都照着草图来。(等待部分已加速)</sub>
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
<br />
|
|
214
|
+
|
|
215
|
+
### 💬 对话生图、编辑与版本切换
|
|
216
|
+
|
|
217
|
+
- 用自然语言完成文生图、图生图、多图参考和风格迁移。
|
|
218
|
+
- **角色一致性**:要求「保持这个人物 / 角色 / 物体不变」时,插件会让模型沿用参考图里的同一主体,只改场景、服装、姿势或风格,而不是重新画一个相似的人。
|
|
219
|
+
- 直接修改原图 Prompt 重新生成,并在同一卡片中切换历史版本。
|
|
220
|
+
|
|
221
|
+
<br />
|
|
222
|
+
|
|
223
|
+
<div align="center">
|
|
224
|
+
<img src="docs/assets/readme/regenerating.webp" alt="图片正在重新生成" width="46%" />
|
|
225
|
+
<img src="docs/assets/readme/revision-switcher.webp" alt="在同一图片卡片中切换生成版本" width="46%" />
|
|
226
|
+
<br />
|
|
227
|
+
<sub>修改 Prompt 后原位重新生成,并在同一张图片卡片中切换历史版本。</sub>
|
|
228
|
+
</div>
|
|
229
|
+
|
|
230
|
+
<br />
|
|
231
|
+
|
|
232
|
+
### ✨ 500+ Prompt 灵感:Agent 会自己去找
|
|
233
|
+
|
|
234
|
+
内置手绘风格手册(风格 / 排版 / 单色主题色)和 awesome-gpt-image-2 案例集,共 500+ 个可直接复用的 Prompt。
|
|
235
|
+
|
|
236
|
+
- **在对话里直接点名**:说「用风格 #123」「做成信息图排版」「莫兰迪色系」,Agent 会先在灵感库里检索,再把模板套到你的主题上出图。风格、排版、主题色还可以组合使用。
|
|
237
|
+
- **在界面里浏览**:筛选、收藏、复制,或一键带入工作台(见下方 Studio 演示)。
|
|
238
|
+
- 图片缓存在本地,浏览和学习不消耗 Token 或生成额度。
|
|
239
|
+
|
|
240
|
+
<br />
|
|
241
|
+
|
|
242
|
+
<div align="center">
|
|
243
|
+
<img src="docs/assets/readme/inspiration-library.webp" alt="Prompt 灵感素材库" width="100%" />
|
|
244
|
+
<br />
|
|
245
|
+
<sub>先找灵感,再把 Prompt 带入工作台;全本地缓存,浏览或复制不消耗生成额度。</sub>
|
|
246
|
+
</div>
|
|
247
|
+
|
|
248
|
+
<br />
|
|
249
|
+
|
|
250
|
+
### 🎛️ Studio 工作台:不用对话,自己调参数
|
|
251
|
+
|
|
252
|
+
想精细控制时,打开会话顶部的 **画廊 → 工作台**,所有参数都摆在面前。
|
|
253
|
+
|
|
254
|
+
- **从灵感直接开工**:在灵感库里点「带入工作台」,Prompt 自动填好。
|
|
255
|
+
- **参数一目了然**:Provider、模型、比例、生成质量、水印都能单独选;一次出 1–4 张候选,满意的才保存。
|
|
256
|
+
- **拿历史结果继续改**:从「最近生成」拖一张图进来,点「继续编辑(垫图)」,它就自动成为图生图的参考图(最多 5 张)。
|
|
257
|
+
- 单模型 / 多模型对比一键切换。
|
|
258
|
+
|
|
259
|
+
<br />
|
|
260
|
+
|
|
261
|
+
<div align="center">
|
|
262
|
+
<img src="docs/assets/readme/studio.webp" alt="从灵感库挑选 Prompt 带入工作台,调整参数后生成海报" width="100%" />
|
|
263
|
+
<br />
|
|
264
|
+
<sub>灵感库挑一个 Prompt → 带入工作台 → 选好参数开始生成 → 出图后再决定保存。(等待部分已加速)</sub>
|
|
265
|
+
<br /><br />
|
|
266
|
+
<img src="docs/assets/readme/studio-ref.webp" alt="从最近生成拖入一张图,点继续编辑后自动切到图生图并作为参考图" width="100%" />
|
|
267
|
+
<br />
|
|
268
|
+
<sub>从「最近生成」拖一张图进来 → 「继续编辑(垫图)」→ 自动切到图生图,写一句要改什么就行。</sub>
|
|
269
|
+
</div>
|
|
270
|
+
|
|
271
|
+
<br />
|
|
272
|
+
|
|
273
|
+
### ⚖️ 多模型横向对比
|
|
274
|
+
|
|
275
|
+
使用同一组 Prompt 和参考图并发调用多个模型,在一张画布中比较并保存结果。
|
|
276
|
+
|
|
277
|
+
<br />
|
|
278
|
+
|
|
279
|
+
<div align="center">
|
|
280
|
+
<img src="docs/assets/readme/multi-model-compare.webp" alt="同一 Prompt 的多模型生成对比" width="100%" />
|
|
281
|
+
<br />
|
|
282
|
+
<sub>在同一画布中比较不同模型结果,再批量保存满意的图片。</sub>
|
|
283
|
+
</div>
|
|
284
|
+
|
|
285
|
+
<br />
|
|
286
|
+
|
|
287
|
+
### 🖼️ 图库、收藏与批量管理
|
|
288
|
+
|
|
289
|
+
- 统一管理对话和 Studio 中保存的图片,并按工作区隔离。
|
|
290
|
+
- 支持搜索、筛选、收藏、下载、继续编辑、重新生成和批量管理。
|
|
291
|
+
|
|
292
|
+
<br />
|
|
293
|
+
|
|
294
|
+
<div align="center">
|
|
295
|
+
<img src="docs/assets/readme/gallery-management.webp" alt="图库筛选、收藏与批量管理" width="100%" />
|
|
296
|
+
<br />
|
|
297
|
+
<sub>图库支持多维度筛选、收藏、批量管理与工作区数据隔离。</sub>
|
|
298
|
+
</div>
|
|
299
|
+
|
|
300
|
+
<br />
|
|
301
|
+
|
|
302
|
+
### 🧩 本地 ComfyUI 多工作流
|
|
303
|
+
|
|
304
|
+
灵活调用本地 GPU 算力,让私有化绘图无缝融入 Agent 对话。
|
|
305
|
+
|
|
306
|
+
- 导入并管理多个命名工作流,支持预设 Prompt 和常用占位符。
|
|
307
|
+
- Agent 可按名称选择工作流,在对话中完成文生图、图生图和批量生图。
|
|
308
|
+
|
|
309
|
+
> ComfyUI 暂未接入 Studio 和多模型对比。
|
|
310
|
+
|
|
311
|
+
<br />
|
|
312
|
+
|
|
313
|
+
<div align="center">
|
|
314
|
+
<img src="docs/assets/readme/comfyui-workflows.webp" alt="ComfyUI 多工作流配置" width="58%" />
|
|
315
|
+
<br />
|
|
316
|
+
<sub>为不同用途维护独立工作流,并通过名称让 Agent 精确选择。</sub>
|
|
317
|
+
</div>
|
|
318
|
+
|
|
319
|
+
<br />
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## Provider 支持情况
|
|
324
|
+
|
|
325
|
+
| Provider | 对话生图 | 对话批量 | 对话编辑 | Studio | 多模型对比 |
|
|
326
|
+
| :-------------------------------- | :------: | :------: | :------: | :----: | :--------: |
|
|
327
|
+
| **Google Gemini** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
328
|
+
| **OpenAI Images** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
329
|
+
| **OpenAI Compatible(中转站)** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
330
|
+
| **ByteDance Seedream / 火山方舟** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
331
|
+
| **Aliyun DashScope / Qwen Image** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
332
|
+
| **xAI Grok Imagine** | ✅ | ✅ | ⚠️ 有限 | ✅ | ✅ |
|
|
333
|
+
| **智谱 GLM-Image** | ✅ | ✅ | — | ✅ | ✅ |
|
|
334
|
+
| **Local ComfyUI** | ✅ | ✅ | ✅ 单图 | — | — |
|
|
335
|
+
| **ChatGPT 订阅(免 Key)** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
336
|
+
| **Grok 订阅(免 Key)** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
337
|
+
| **Google 订阅(免 Key)** | ✅ | ✅ | ✅ 多图 | ✅ | ✅ |
|
|
338
|
+
|
|
339
|
+
> Studio 与多模型对比目前只支持云端 Provider(含订阅通道);多模型对比调用的是各 Provider 在设置中已配置的模型。
|
|
340
|
+
> 智谱 GLM-Image 上游本身不支持图生图;xAI 图生图走 OpenAI 兼容协议(multipart),部分网关可能需等待后续适配。
|
|
341
|
+
> 订阅通道通过账号登录使用(免 API Key),图生图走各订阅渠道的编辑接口(最多 5 张参考图),比例与清晰度可在 Studio 中直接选择。
|
|
342
|
+
|
|
343
|
+
📖 **默认模型与 Endpoint、各 Provider 的比例 / 清晰度、尺寸表、水印、中转站编辑格式等高级配置,见 [Provider 配置参考](docs/providers.md)。**
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 数据与隐私
|
|
348
|
+
|
|
349
|
+
- **BYOK**:API Key 通过 DSH Credentials 服务保存,设置页不会回显 Key 明文。
|
|
350
|
+
- **订阅登录**:订阅账号令牌经你授权登录后保存于 DSH Credentials,与 API Key 完全隔离,浏览器侧不接触令牌。
|
|
351
|
+
- **云端请求**:Prompt 与本次使用的参考图会发送给所选 Provider,请遵守对应服务条款。
|
|
352
|
+
- **上游图片下载**:沿用宿主已有的网络和代理配置,不额外拦截 Fake-IP、内网或回环地址。当前未提供完整的 SSRF 目标限制。
|
|
353
|
+
- **本地 ComfyUI**:请求发送到用户配置的 ComfyUI 地址。
|
|
354
|
+
- **工作区文件**:开启工作区保存后,对话结果会落盘;Studio 仅保存用户选中的候选图。
|
|
355
|
+
- **图库与收藏**:图库元数据和收藏状态保存在当前浏览器本地存储中。
|
|
356
|
+
- **删除记录**:普通删除会保留轻量的图片 ID 标记,超过 30 天也不会因重新打开旧会话而自动恢复到图库。
|
|
357
|
+
- **灵感缓存**:案例元数据随插件提供,图片按需加载并缓存在本机,可随时清理。
|
|
358
|
+
|
|
359
|
+
## 常见问题
|
|
360
|
+
|
|
361
|
+
<details>
|
|
362
|
+
<summary><strong>安装后找不到“图像生成”设置怎么办?</strong></summary>
|
|
363
|
+
|
|
364
|
+
设置入口随 DSH 版本不同:0.1.6 及以上位于插件详情页(点击左侧边栏「插件」图标,在「已安装」分区进入 dsh-image-gen),0.1.5 及更早位于「设置 → 插件 → 插件配置 → 图像生成」。
|
|
365
|
+
|
|
366
|
+
若两处都没有,先完全重启当前 DSH Profile,再检查插件配置:
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
dsh --profile web --dump-config
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
如果输出中没有 `dsh-image-gen`,请重新执行安装命令。提交 Issue 时请附 DSH 版本、插件版本和错误日志,不要上传 API Key。
|
|
373
|
+
|
|
374
|
+
</details>
|
|
375
|
+
|
|
376
|
+
<details>
|
|
377
|
+
<summary><strong>一次最多能批量生成多少张?</strong></summary>
|
|
378
|
+
|
|
379
|
+
对话批量单次调用最多 10 张,超过时插件会提示 Agent 拆成多次调用。图片是逐张生成的,单张失败不会中断其余图片,失败的会在结果里单独列出原因。
|
|
380
|
+
|
|
381
|
+
</details>
|
|
382
|
+
|
|
383
|
+
<details>
|
|
384
|
+
<summary><strong>生成图片保存在哪里?</strong></summary>
|
|
385
|
+
|
|
386
|
+
开启“保存到工作区”后,对话生成结果默认保存在当前工作区的 `dsh-image-gen/` 子目录,也可以在设置中修改。Studio 候选图先留在临时画布,只有用户选中的结果才会进入图库并保存。
|
|
387
|
+
|
|
388
|
+
</details>
|
|
389
|
+
|
|
390
|
+
<details>
|
|
391
|
+
<summary><strong>Gemini 中转只支持 generateContent,如何配置?</strong></summary>
|
|
392
|
+
|
|
393
|
+
在 Google Gemini 设置中,将“请求协议”改为“原生 generateContent”,接口地址填写中转的 API 基础地址,例如 `https://your-relay.example/v1beta`,保存后即可用于对话生图、图生图和 Studio。已有的 Interactions 完整地址也可以沿用,插件会按所选模型构建原生请求地址。
|
|
394
|
+
|
|
395
|
+
配置文件对应 `googleNative: true`;默认值为 `false`,现有用户仍使用 Interactions 协议。
|
|
396
|
+
|
|
397
|
+
</details>
|
|
398
|
+
|
|
399
|
+
<details>
|
|
400
|
+
<summary><strong>为什么 ComfyUI 没有出现在 Studio 中?</strong></summary>
|
|
401
|
+
|
|
402
|
+
当前 Studio 与多模型对比仅支持云端 Provider,暂未接入 ComfyUI。ComfyUI 已支持在 Agent 对话中进行文生图、单图编辑、批量生图以及多个命名工作流。
|
|
403
|
+
|
|
404
|
+
</details>
|
|
405
|
+
|
|
406
|
+
<details>
|
|
407
|
+
<summary><strong>从图库删除会删除聊天记录吗?</strong></summary>
|
|
408
|
+
|
|
409
|
+
不会。删除图库记录不会修改原聊天消息。你可以额外选择是否清理工作区中的本地图片文件;文件删除通常无法恢复,请确认后操作。
|
|
410
|
+
|
|
411
|
+
</details>
|
|
412
|
+
|
|
413
|
+
<details>
|
|
414
|
+
<summary><strong>如何升级?</strong></summary>
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
pnpm dsh plugin --profile web add dsh-image-gen@latest
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
升级后重启对应的 DSH Profile。
|
|
421
|
+
|
|
422
|
+
</details>
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## 本地开发
|
|
427
|
+
|
|
428
|
+
```bash
|
|
429
|
+
git clone https://github.com/shanliuling/dsh-image-gen.git
|
|
430
|
+
cd dsh-image-gen
|
|
431
|
+
|
|
432
|
+
pnpm install
|
|
433
|
+
pnpm run typecheck
|
|
434
|
+
pnpm test
|
|
435
|
+
pnpm run build
|
|
436
|
+
pnpm run pack:check
|
|
437
|
+
pnpm run test:package
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
依赖要求与 `test:package` 的测试范围等维护者说明见 [CONTRIBUTING.md](CONTRIBUTING.md)。欢迎通过 [Issues](https://github.com/shanliuling/dsh-image-gen/issues) 反馈问题,或阅读贡献指南后提交 Pull Request。
|
|
441
|
+
|
|
442
|
+
## 鸣谢
|
|
443
|
+
|
|
444
|
+
- [AtomGit](https://atomgit.com/shanliuling/dsh-image-gen):为本项目提供国内代码托管,方便国内用户访问与获取源码。
|
|
445
|
+
|
|
446
|
+
## License
|
|
447
|
+
|
|
448
|
+
本项目基于 [Apache License 2.0](LICENSE) 开源。
|
|
449
|
+
|
|
450
|
+
<div align="center">
|
|
451
|
+
|
|
452
|
+
如果 `dsh-image-gen` 对你的工作流有所帮助,欢迎在 GitHub 点亮一颗 ⭐ **Star** 支持持续维护。
|
|
453
|
+
|
|
454
|
+
**[查看 Releases](https://github.com/shanliuling/dsh-image-gen/releases) · [提交 Issue](https://github.com/shanliuling/dsh-image-gen/issues) · [参与贡献](CONTRIBUTING.md)**
|
|
455
|
+
|
|
456
|
+
</div>
|