# "Song erstellen" - Portal-Integration ACE-Step 1.5 (fertig zum Deploy durch Mausi/Koordinator) Ziel-Datei: /opt/gpu1-status/app.py auf portal-studio (100.114.24.89:9090), sichtbar unter cp.go-ki.eu. NICHT selbst deployed - dieser Worker hat keinen SSH-Zugang zu VM201 (weder direkt von VM302 noch via Hub, kein Key/known_hosts-Eintrag fuer 100.114.24.89 unter Hub-User root). Bitte ueber den funktionierenden Weg von Worker #45 / Cleanup-Worker deployen, dann Portal-Skill-Ablauf (Backup -> py_compile -> Testinstanz 9092/9093 -> restart gpu1-portal.service -> cp.go-ki.eu 200 -> echter Klicktest). ## Engine-Basis (bestaetigt, kein Neu-Setup noetig) ComfyUI (M:\ComfyUI auf VM302, laeuft :8188) hat ACE-Step 1.5 bereits nativ integriert: - Node TextEncodeAceStepAudio1.5 registriert (bestaetigt via /object_info) - Node EmptyAceStep1.5LatentAudio, VAEDecodeAudio, UNETLoader/DualCLIPLoader/VAELoader fuer die 4 Modell-Dateien - Fertiges Blueprint: D:\comfyui-test\blueprints\Text to Audio (ACE-Step 1.5).json - Modelle (alle 4 fertig heruntergeladen, ScheduledTask AceStepDownload, job-watchdog-ueberwacht): - M:\ComfyUI\models\diffusion_models\acestep_v1.5_turbo.safetensors (4.79 GB) - M:\ComfyUI\models\text_encoders\qwen_0.6b_ace15.safetensors (1.19 GB) - M:\ComfyUI\models\text_encoders\qwen_4b_ace15.safetensors (8.38 GB) - M:\ComfyUI\models\vae\ace_1.5_vae.safetensors (0.34 GB) - ComfyUI /object_info/UNETLoader listet acestep_v1.5_turbo.safetensors bereits in der Combo (kein Neustart noetig) ## Workflow-API-Aufruf (Backend -> ComfyUI :8188) Der Song-Endpoint im Portal muss einen ComfyUI-Prompt (POST http://:8188/prompt) mit einem Graph bauen, der 1:1 dem Blueprint entspricht (Nodes: DualCLIPLoader -> TextEncodeAceStepAudio1.5 (+ConditioningZeroOut fuer negativ) -> ModelSamplingAuraFlow -> KSampler -> VAEDecodeAudio). Wichtige Felder aus TextEncodeAceStepAudio1.5: tags (Style-String), lyrics, seed, bpm, duration (Sekunden), timesignature, language, keyscale, generate_audio_codes, cfg_scale. Ergebnis-Audio kommt ueber die ComfyUI-History/view-Route als WAV zurueck. ## Drei Modi fuer den neuen Song-Tab (a) AUTO - Nutzer gibt nur einen kurzen Prompt ein. Backend ruft Hub-litellm (http://100.87.20.94:4000, Authorization: Bearer sk-litellm-koerner) auf, der aus dem Nutzer-Prompt sowohl tags (Style-Schlagworte) als auch lyrics (Strophen/Refrain-Struktur) generiert. Danach normaler Song-Call. Plus Extend-Button: verlaengert einen bestehenden Song (zweiter ComfyUI-Call mit gleichem Seed + hoeherer duration, oder Audio-zu-Audio falls vom Blueprint unterstuetzt - noch ungeprueft, siehe unten). (b) STYLE - Nutzer gibt Style/Genre direkt ein (fuellt tags), Lyrics optional via LLM oder leer (instrumental). (c) CUSTOM - Nutzer gibt eigene Lyrics komplett vor (fuellt lyrics 1:1), tags optional. ## Konkrete app.py-Aenderungen (Vorschlag, unique-string-anchored fuer Konflikt-Vermeidung) 1. Neuer Route-Block - @app.route("/api/song/generate", methods=["POST"]) mit Body {mode, prompt|tags|lyrics, duration}. 2. Hilfsfunktion build_ace_step_prompt(tags, lyrics, duration, seed, ...) baut das ComfyUI-Prompt-JSON aus dem Blueprint (Node-IDs 105/106/104/94/47/78/3/98/18). 3. AUTO-Modus: Hilfsfunktion llm_style_and_lyrics(user_prompt) -> POST an litellm /chat/completions, striktes JSON-Format {"tags":"...","lyrics":"..."} erzwingen. 4. Neuer Subtab "Song erstellen" im vorhandenen Video-Bereich, analog zum bestehenden "Ton & Musik"-Subtab-Muster (falls dieser schon existiert - von diesem Worker NICHT einsehbar ohne VM201-Zugriff, vor dem Patchen gegenpruefen). 5. Frontend: 3 Radio-Buttons (Auto/Style/Custom), Prompt-Feld, optional Lyrics-Textarea, Duration-Slider (30-240s), "Song erstellen"-Button, Audio-Player + "Verlaengern"-Button. ## Was fehlt / offene Punkte (ehrlich, ungetestet) - Extend-Qualitaet ungetestet (echtes Continue vs. nur "gleicher Seed + laenger"). - Deutsche Lyrics-Aussprache: Blueprint-Default ist language="en"; de ungetestet. - GPU-Contention: A40 durch Video-Build (Wan2.2 --highvram, 30-42GB) fast voll - Song-Gen MUSS seriell nach "A40 frei"-Signal laufen. - Kein GPU-Beispiel-Song erzeugt (Guardrail eingehalten, kein GPU-Job parallel zum Video-Build). - Portal-Zugriff fehlt diesem Worker (weder VM302 noch Hub hat Key fuer 100.114.24.89) - Deploy durch Mausi/Koordinator oder Worker mit bestehendem Zugriff (#45 o.ae.). - M:\ACE-Step Standalone-Repo (Jul-18-Clone, kein venv/Modelle) ungenutzt - loeschen oder als CLI-Fallback dokumentieren, nicht als zweite Engine parallel pflegen.