feat(gamedev): comfyui_generate_asset_pack_oneshot — set 2D coherente one-shot
Pipeline que genera un set de assets 2D de un mismo juego en una sola llamada, compartiendo checkpoint, LoRA de estilo, estilo comun (inyectado al subject) y seed derivada (base_seed + indice). Despacha 26 kinds gamedev-2d a sus builders atomicos, encola/espera/descarga cada PNG y exporta opcionalmente a Godot. Promocion de composicion a pipeline (issue 0087): el registry no crece inflando builders, crece promoviendo la secuencia repetida 'N builders con el mismo estilo' a un one-shot. - Dispatch declarativo por kind con inyeccion de coherencia via inspect.signature (no hardcodea nombres de param; respeta LoRAs funcionales propios). - Fail-fast si kind desconocido (sin tocar GPU); un OOM aislado no aborta el pack. - 9 tests offline verdes (golden + edge + error). - Probado e2e en GPU SD1.5 512: magic sword + goblin warrior, style dark fantasy hand-painted, seeds 42/43 -> 2/2 PNG 512x512 RGBA coherentes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -75,6 +75,12 @@ VFX (ver `reports/0143`).
|
||||
| `godot_map_asset_dir_py_core` | `(kind) -> str` | Mapea `kind` -> subcarpeta de `res://assets/`. Pura. |
|
||||
| `godot_clean_asset_name_py_core` | `(filename, *, override=None) -> str` | Normaliza el nombre `<prefijo>_NNNNN_.<ext>` a snake_case seguro para `res://`. Pura. |
|
||||
|
||||
## Pipelines one-shot (`gamedev-2d`, impuros)
|
||||
|
||||
| ID | Firma corta | Qué hace |
|
||||
|---|---|---|
|
||||
| `comfyui_generate_asset_pack_oneshot_py_pipelines` | `(pack, *, checkpoint="dreamshaper_8…", style="", lora=None, base_seed=0, size=None, server="127.0.0.1:8188", export_godot=None, out_dir=None, …) -> dict` | **Set COHERENTE de assets 2D de un mismo juego de un solo tiro**: `pack=[{"kind","subject"}, …]` → despacha cada `kind` a su builder atómico (26 kinds: item_icon, enemy_creature, prop_object, seamless_tile, ui_hud, particle_texture, …) compartiendo el MISMO `checkpoint`/`lora` + `style` común inyectado al `subject` + `seed = base_seed + i`, encola (`submit`) + espera (`wait`) + descarga (`fetch`) cada uno, y (si `export_godot`) los exporta a Godot. Promoción a pipeline del patrón "N builders con el mismo estilo" (issue 0087). Fail-fast si `kind` desconocido; un OOM aislado no aborta el resto. Probado e2e en GPU SD1.5 512: `magic sword`(item_icon, seed 42) + `goblin warrior`(enemy_creature, seed 43), `style="dark fantasy, hand-painted"` → 2/2 PNG 512×512 RGBA coherentes (`prompt_id f7cfda43` + `11d1d031`, `reports/0179`). Impuro: HTTP + disco + (export) subprocess. |
|
||||
|
||||
## Ejemplo end-to-end con builder (Fase 1 GPU → Fase 2 CPU → Godot)
|
||||
|
||||
Flujo completo pixel-art: construir workflow → generar en ComfyUI → pixel-perfect → Godot.
|
||||
@@ -135,9 +141,11 @@ comfyui_export_asset_to_godot(rgba["out_path"], "vfx", PROJ)
|
||||
no hay función propia todavía — el ejemplo VFX monta con `Image.alpha_composite`
|
||||
inline. `comfyui_build_grid` NO sirve (aplana el alpha sobre fondo oscuro). Pendiente
|
||||
de R4 (plan `reports/0140` F2).
|
||||
- **Pipelines one-shot** (build → submit → wait → fetch → post en una call) para
|
||||
pixelart/sprite/VFX: pendientes. Hoy se encadena a mano (ver ejemplos). Candidatos a
|
||||
promoción a pipeline (issue 0087) cuando el patrón se repita.
|
||||
- **Pipelines one-shot** (build → submit → wait → fetch → post en una call): el
|
||||
**set coherente** ya está promovido — `comfyui_generate_asset_pack_oneshot` genera
|
||||
un pack entero compartiendo checkpoint/style/lora/seed (issue 0087, ver tabla de
|
||||
pipelines arriba). One-shots por-asset individuales (pixelart/sprite/VFX) siguen
|
||||
encadenándose a mano; candidatos a promoción cuando el patrón se repita.
|
||||
- **Sprite turnaround multi-vista** (orquestar N poses con identidad fija + juez):
|
||||
el builder `comfyui_build_sprite_sheet_workflow` produce UN frame; la orquestación
|
||||
multi-pose es pipeline pendiente (plan `reports/0137` T2).
|
||||
|
||||
Reference in New Issue
Block a user