# π¦ @goodandready/dsh-image-gen
---
## β‘ ΠΠ±Π·ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ
**`@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)