# πŸ“¦ @goodandready/dsh-image-gen

ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Ρ‹ΠΉ графичСский ΠΊΠΎΠΌΠ±Π°ΠΉΠ½ ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для DeepSeek Harness

npm version license DSH Plugin Node version

ВсС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π°Π²Ρ‚ΠΎΡ€Π°

πŸ‡¬πŸ‡§ English β€’ πŸ‡·πŸ‡Ί Русский β€’ πŸ‡¨πŸ‡³ δΈ­ζ–‡θ―΄ζ˜Ž

--- ## ⚑ ΠžΠ±Π·ΠΎΡ€ возмоТностСй **`@goodandready/dsh-image-gen`** β€” флагманский графичСский ΠΏΠ»Π°Π³ΠΈΠ½ для экосистСмы DeepSeek Harness, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ Π°Π³Π΅Π½Ρ‚Π° Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ Ρ‚Π²ΠΎΡ€Ρ‡Π΅ΡΠΊΡƒΡŽ ΡΡ‚ΡƒΠ΄ΠΈΡŽ. Плагин прСдоставляСт Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ, трансформации, апскСйла, Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ 8 ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π² Ρ‡Π°Ρ‚Π΅. ```mermaid graph LR subgraph Input [πŸ€– АгСнт ΠΈ ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ] Agent[ΠŸΡ€ΠΎΠΌΠΏΡ‚ / Π—Π°Π΄Π°Ρ‡Π° Π°Π³Π΅Π½Ρ‚Π°] UserUI[Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ / Π§Π°Ρ‚] end subgraph Tools [πŸ› οΈ ΠŸΠ°ΠΊΠ΅Ρ‚ инструмСнтов] T1[generate_image] T2[remove_background] T3[upscale_image] T4[vectorize_image] T5[blend_images] T6[generate_image_pack] T7[compare_images] T8[inspect_image_quality] end subgraph Core [πŸ›‘οΈ Π―Π΄Ρ€ΠΎ надСТности ΠΈ кэша] Cache[Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ sha256 Hash Cache] Backoff[Exponential Backoff + Jitter] Classifier[ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ„Π°Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ошибок 400] Snap64[VAE 64-Multiple Dimension Snapping] end subgraph Engine [βš™οΈ ДиспСтчСр бэкСндов] P_FAL[FAL.ai Queue] P_REP[Replicate API] P_CUST[OpenAI / SiliconFlow] P_COD[ChatGPT Plus/Pro OAuth] P_GROK[Grok Imagine OAuth] P_LOC[ComfyUI / A1111] P_SEA[ByteDance SeaDream] P_GEM[Google Imagen 3] end subgraph Store [πŸ’Ύ Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ UI] Sidecar[.json Sidecar + Parameters tEXt] A1111[Drag-and-Drop Π² ComfyUI / WebUI] Card[πŸ–ΌοΈ ΠšΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ° Π² Ρ‡Π°Ρ‚Π΅ с Re-roll, ΠŸΡ€Π°Π²ΠΊΠΎΠΉ, NoBG] end Input --> Tools Tools --> Core Core --> Engine Engine --> Store style Input fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4 style Tools fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4 style Core fill:#11111b,stroke:#fab387,stroke-width:2px,color:#cdd6f4 style Engine fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4 style Store fill:#1e1e2e,stroke:#f38ba8,stroke-width:2px,color:#cdd6f4 ``` --- ## πŸ› οΈ ΠŸΠΎΠ»Π½Ρ‹ΠΉ рССстр инструмСнтов | Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ | НазначСниС | ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ | |---|---|---| | **`generate_image`** | ГСнСрация изобраТСния ΠΏΠΎ тСксту | `prompt`, `image_size`, `seed`, `style`, `negative_prompt`, `count` | | **`remove_background`** | Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΠ½Π° с сохранСниСм ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ PNG | `image`, `model`, `output_name` | | **`upscale_image`** | Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² 2x / 4x с Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ | `image`, `scale` (2/4), `prompt`, `creativity` | | **`vectorize_image`** | ВСкторизация растра Π² чистый SVG с ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹ | `image`, `color_mode`, `paletteSize` | | **`blend_images`** | БмСшиваниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ | `images`, `weights`, `prompt` | | **`generate_image_pack`** | ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² 1:1, 16:9, 9:16 с сохранСниСм частичных Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² | `prompt`, `aspect_ratios` | | **`compare_images`** | Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ (доля Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ пиксСлСй) | `image_a`, `image_b` | | **`inspect_image_quality`** | Аудит качСства, расчСт рСзкости ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² | `image`, `expected_elements` | --- ## πŸ›‘οΈ ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ качСство (v0.10.0) * **Π­ΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Backoff с Jitter**: опрос ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ (FAL, Replicate, ComfyUI) автоматичСски Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ ошибки `429 Too Many Requests`. * **ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ошибок Π² Fallback Cascade**: клиСнтскиС ошибки (Content Policy, 400 Bad Request, NSFW) ΠΎΡ‚ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, прСдотвращая ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ‚Ρ€Π°Ρ‚Ρƒ Π΄Π΅Π½Π΅Π³ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°Ρ…. * **Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ…ΡΡˆ-кэш**: ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΎΠΌΠΏΡ‚ΠΎΠΌ, модСлью ΠΈ сидом ΠΎΡ‚Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈΠ· локального кэша с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ API. * **Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ComfyUI / Automatic1111**: ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π²ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² PNG `tEXt` Ρ‡Π°Π½ΠΊΠΈ Π² стандартном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ `Parameters: Prompt\nNegative prompt: ...\nSteps: ... Seed: ...`, обСспСчивая Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Drag-and-Drop. * **ΠšΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ 64**: всС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ автоматичСски ΠΎΠΊΡ€ΡƒΠ³Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎ ΠΊΡ€Π°Ρ‚Π½Ρ‹Ρ… 64 для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ искаТСний VAE. * **ΠžΠ±ΠΎΠ³Π°Ρ‰Π΅Π½Π½Ρ‹Π΅ прСсСты стилСй**: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ Π² `STYLE_PRESETS` содСрТит ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ `negative_prompt` ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ `guidance_scale`. --- ## πŸš€ ОбновлСния v0.10.4: ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Cordis, ΠΏΠΎΠ»Π½ΠΎΡ‚Π° настроСк ΠΈ интСрнационализация - **Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Cordis (#136)**: рСгистрация всСх 7 инструмСнтов ΠΎΠ±Ρ‘Ρ€Π½ΡƒΡ‚Π° Π² `ctx.effect` для ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ отписки ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Π°. - **ΠŸΠΎΠ»Π½ΠΎΡ‚Π° настроСк Π² GUI (#137)**: Π² ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ настроСк Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ поля для Replicate, SeaDream, Gemini, Local ComfyUI/A1111, прСсСтов стилСй ΠΈ LLM-ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚Π΅Π»Ρ. - **ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚ зависимостСй (#138)**: Π² `peerDependencies` Π·Π°Π΄Π΅ΠΊΠ»Π°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ слуТбы ядра (`host-webserver`, `settings`, `llm`, `system-prompt`). - **ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (#139)**: ΠΈΠ· `FalImageCard` ΡƒΠ΄Π°Π»Ρ‘Π½ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΌΡ‘Ρ€Ρ‚Π²Ρ‹ΠΉ стСйт. - **100% интСрнационализация (#140)**: устранСны Π·Π°Ρ…Π°Ρ€Π΄ΠΊΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ русскиС строки, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π½Π° русский, английский ΠΈ китайский языки. ## 🎨 ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ * **`fal`** *(Π΄Π΅Ρ„ΠΎΠ»Ρ‚)*: БвСрхбыстрая ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ FAL.ai (`FLUX.1-schnell`, `FLUX-dev`, `SDXL`, BiRefNet, Clarity Upscaler). * **`replicate`**: МодСли сообщСства Ρ‡Π΅Ρ€Π΅Π· Replicate API. * **`custom`**: Π›ΡŽΠ±ΠΎΠΉ OpenAI-совмСстимый эндпоинт (DALL-E 3, SiliconFlow, Together AI, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ шлюз). * **`codex`**: ГСнСрация Ρ‡Π΅Ρ€Π΅Π· ChatGPT Plus/Pro подписку (`dsh-subscriptions` OAuth Π±Π΅Π· ΠΎΠΏΠ»Π°Ρ‚Ρ‹ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²). * **`grok`**: ГСнСрация Ρ‡Π΅Ρ€Π΅Π· Grok Imagine подписку (`dsh-subscriptions` OAuth). * **`local`**: Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ComfyUI (Π³Ρ€Π°Ρ„ Π½ΠΎΠ΄) ΠΈΠ»ΠΈ Automatic1111 (SD WebUI). * **`seedream`**: ByteDance Doubao / SeaDream API. * **`gemini`**: Google Imagen 3 Ρ‡Π΅Ρ€Π΅Π· GenAI API. --- ## πŸ“¦ Быстрая установка ```bash dsh plugin --profile web add @goodandready/dsh-image-gen ``` --- ## βš™οΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (`settings.yaml`) ```yaml dsh-image-gen: provider: fal # fal | replicate | custom | codex | grok | local | seedream | gemini model: fal-ai/flux-2/klein/9b # МодСль ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ apiKeyEnv: FAL_API_KEY # ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ окруТСния для ΠΊΠ»ΡŽΡ‡Π° defaultSize: landscape_4_3 # square_hd | landscape_4_3 | landscape_16_9 | portrait_4_3 | portrait_16_9 defaultFormat: png # png | jpeg | webp cacheBySeed: true # Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… запросов pruneDays: 30 # Автоочистка Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ sidecar ΡΡ‚Π°Ρ€ΡˆΠ΅ 30 Π΄Π½Π΅ΠΉ outputDir: generated/images # ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ сохранСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ``` --- ## πŸ“„ ЛицСнзия MIT Β© [GooDAnDReaDY](https://github.com/GooDAnDReaDY)