Vai al contenuto principale

Editing NSFW in n8n: crea nuovi look in serie da un riferimento

Costruisci un lotto di editing a riferimenti in n8n: passa le immagini, conserva gli ID, controlla la coerenza e salva i file approvati.

Autore
Lydia
Pubblicato
Lettura
26 min di lettura
Aggiornato
Mara, personaggio adulto immaginario, in abito di satin bordeaux su un divano di velluto verde.

Per modificare in serie un personaggio NSFW in n8n, fai di ogni immagine richiesta un lavoro, mantieni insieme i riferimenti di quel lavoro e riporta ogni variante alla stessa fonte approvata del personaggio. Scarica i file in una cartella di revisione, poi sposta nella consegna solo quelli approvati. Ottieni un processo ripetibile senza considerare una richiesta API completata una prova che il volto sia sopravvissuto.

La parte difficile di solito non è scrivere sei prompt. È dare a sei elementi separati la fonte, l'abito e la stanza corretti; mantenere ogni risultato collegato alle istruzioni; ritrovare la versione scelta quando il link temporaneo smette di funzionare. Un workflow può eseguire perfettamente e consegnare comunque il personaggio sbagliato se mancano queste decisioni.

La guida costruisce un esempio completo: sei immagini serali per Mara, adulta immaginaria di 34 anni. Cambieremo guardaroba, luce e inquadratura mantenendo un'identità stabilita. L'esempio pubblico usa abiti opachi e istruzioni non esplicite. Puoi usare gli stessi meccanismi per lavoro adulto consentito, ma n8n e il tutorial non promettono che qualsiasi richiesta NSFW sia accettata o resa come voluto.

Il workflow è una configurazione proposta basata sul nodo community SpicyAPI rilasciato e sullo schema di editing attuale. Non è un resoconto di un nuovo lotto di sei immagini eseguito. Le istruzioni distinguono automatismi del nodo e decisioni creative che spettano ancora a te.

Costruisci la serie su un'immagine approvata del personaggio

Parti dall'immagine che mostreresti a chi chiede chi sia Mara. Scegli una vista pulita, abbastanza vicina, con volto leggibile, acconciatura da mantenere e luce che non nasconda metà tratti. Qui ha ricci scuri alle spalle, sorriso leggermente asimmetrico e canotta blu scuro opaca sotto una giacca antracite. Siede accanto a un divano verde. I dettagli rendono concrete le istruzioni senza una lunga biografia inventata.

Salva il file come originale del personaggio. Deve restare disponibile nel tuo archivio anche dopo upload SpicyAPI. Un URI temporaneo è comodo durante la produzione, non è un archivio permanente. Assegna una versione come mara-master-v1, così un cambio futuro dei capelli non altera silenziosamente le fonti di una serie vecchia.

Prepara altre due immagini. Il guardaroba mostra un abito di satin bordeaux opaco su gruccia o manichino, senza un volto concorrente. La stanza mostra un salotto vuoto con lampada d'ottone e mobili di velluto verde. Il modello deve ricevere tre istruzioni distinte: persona dalla prima, abito dalla seconda, ambiente dalla terza.

Una foto di stanza con un'altra persona evidente rende meno chiara la divisione. Una foto d'abito con il volto di un'altra modella introduce lo stesso problema. Se sono gli unici riferimenti, ritagliali sulla parte necessaria prima di caricare. Non raccogli il pacchetto maggiore possibile: elimini ambiguità sul contributo di ciascuna fonte.

Mantieni la prima richiesta di camera vicina alla fonte. Un ritratto seduto di tre quarti supporta un altro ritratto seduto più direttamente di una vista estrema dall'alto con testa voltata. È un consiglio di lavoro, non un tasso misurato. Il modello ha meno informazione visibile da trasferire quando deve inventare tratti mai mostrati.

Non costruire originale → cambio abito → stanza nuova → posa nuova → primo piano. Ogni output diventa un'altra interpretazione del volto. Una deriva nel secondo diventa base del terzo. Le sei righe rimandano tutte a mara-master-v1, non al risultato precedente. Puoi scegliere deliberatamente una catena per una piccola correzione, ma deve essere una scelta distinta, non un effetto accidentale dei collegamenti.

Tre riferimenti forniscono il personaggio adulto, un abito bordeaux e un salotto vuoto.

Prima immagine per identità, seconda per abito, terza per stanza. Illustrazione.

Scegli l'endpoint di editing prima dell'automazione

Usa un modello di editing, non uno text-to-image con la descrizione del personaggio incollata. Edit Image integrato in n8n ritaglia, ridimensiona e compone file; non è l'editor generativo che cambia abito o stanza. Qui l'ID è alibaba/qwen-image-2.1/edit. La pagina editing Qwen Image 2.1 descrive attività e controlli reali.

L'endpoint accetta image_urls come elenco di una–dieci immagini, prompt obbligatorio fino a 5.000 caratteri, rapporto d'output, livello di risoluzione e formato. Restituisce un'immagine per richiesta. Sei immagini volute richiedono sei attività. Aggiungere tre riferimenti chiede ancora una sola immagine, non tre varianti distinte.

Per il lotto multiriferimento normale scegli resolution: 2k, aspect_ratio: 4:5, output_format: png e background: opaque. Imposta enable_prompt_expansion a false per cominciare dalle istruzioni scritte invariate. Disattivarla è offerto a 1k e 2k; è utile per confronto, non blocca l'identità. Lascia inizialmente vuoto il seed. Ripeterlo non garantisce stesso volto o stesso file.

Lo schema non ha intensità, CFG, passi di campionamento o negative prompt separato. Non aggiungere campi Stable Diffusion familiari perché un altro tutorial li usa. Metti conservazione ed esclusioni nel prompt principale. Per controlli locali di campionamento scegli un workflow che li esponga davvero.

C'è anche mask_url per un'altra attività: correzione locale con esattamente un riferimento. Non usiamo quella modalità nella serie a tre riferimenti. Un piccolo bordo d'abito da correggere dopo la scelta può diventare un lavoro separato con maschera. Inviare personaggio, abito e stanza insieme alla maschera viola il requisito della modalità locale.

Il catalogo descrive l'endpoint come senza restrizioni. È pertinente alla scelta di un creatore NSFW, ma non garantisce le immagini del prossimo lotto. L'articolo esistente sull'editing Qwen tratta osservazioni di un insieme diverso. Qui aggiungiamo produzione in serie a riferimenti, non trasformiamo quelle osservazioni in un nuovo benchmark di coerenza.

Installa il nodo reale e assegna i nomi nel workflow

Per pacchetto, chiave API e template HTTP n8n Cloud, apri la guida ufficiale del nodo n8n SpicyAPI. Segui poi la configurazione di scene o riferimenti di questo workflow.

Il pacchetto è @spicyapi/n8n-nodes-spicyapi, versione 0.1.1. Su self-hosted apri Settings → Community Nodes → Install, inserisci il nome e installa. Crea la credenziale SpicyAPI (spicyapi.ai) API con chiave dalla console API. Mantieni il Base URL predefinito salvo motivo specifico.

Cloud ammette nodi community verificati; pubblicare su npm non significa verifica. Qui usiamo il nodo su self-hosted. Gli utenti Cloud possono implementare le stesse chiamate con HTTP Request integrato, ma non devono aspettarsi menu o upload automatici del pacchetto. La documentazione attuale d'installazione n8n spiega la distinzione.

Non esiste un'operazione SpicyAPI separata «Edit Character» o «Batch NSFW». Scegli Resource: Image → Operation: Generate, poi il modello di editing. Generate è l'operazione per modelli d'immagine, incluso editing; il modello selezionato decide l'attività. Il menu mostra prezzi iniziali, non un preventivo finito per i riferimenti reali.

Costruiremo due piccoli workflow. Il primo produce candidati e li salva per revisione. Il secondo legge righe approvate e mette i file scelti nella consegna. Puoi così vedere sei immagini insieme senza un'esecuzione in attesa del ritorno. Puoi anche riusare la consegna senza pagare di nuovo la stessa immagine.

Nomina i nodi importanti: Read Jobs, Ready Jobs, Loop Jobs, Prepare Edit, Edit Character, Attach Job, Save Candidate e Record Candidate. Le espressioni successive usano quei nomi. Se diversi, aggiornale. È una guida manuale, non la dichiarazione che esista un template ufficiale importabile per la serie esatta.

Parti da Manual Trigger. Aggiungi un programma dopo che il comportamento è giusto, ma la prima esecuzione contiene un lavoro deliberato. Una cartella di nuovi upload non è ancora un brief. La tabella specifica quali file appartengono insieme e quale output chiedi.

Crea sei righe di lavoro, non una cartella di file vagamente collegati

Usa un Google Sheet con scheda Jobs. Una riga è un output richiesto. Assegna job_id univoco, nome lotto, prompt, tre fonti, risoluzione, rapporto, numero tentativo e stato. Puoi chiedere un retry specifico senza rigenerare gli altri.

Le sei richieste creative differiscono abbastanza per una serie utile:

LavoroImmagineCambio principaleCosa resta familiare
M01Ritratto seduto nel salottoAbito bordeaux, stessa posa sedutaVolto, ricci, sorriso, divano verde
M02Mezzo busto alla lampadaLuce laterale più calda e camera vicinaVolto, capelli, costruzione dell'abito
M03Ritratto in piedi accanto al divanoPostura diversa e più stanzaIdentità, colore dell'abito, palette
M04Tre quarti presso finestraLuce fredda con lampada dietroIdentità, lunghezza capelli, abito bordeaux
M05Primo piano con giaccaAggiunta della giacca antracite originaleProporzioni del volto, ricci, espressione discreta
M06Composizione seduta ampiaSpazio per titolo o ritaglioIdentità, abito, disposizione dei mobili

Usa batch_id: mara-evening-01 e attempt: 1 per tutte. Marca inizialmente solo M01 ready; le altre draft. Dopo che un candidato arriva allo storage con informazioni corrette, rendi pronte le altre. È una prova del percorso reale di editing, non un test di credenziale scollegato.

Tieni character_uri, wardrobe_uri e room_uri in colonne distinte. Contengono URI appena caricati o URL pubblici recuperabili dall'API. Sono più leggibili di una stringa con un intero array JSON. Prepare Edit li combina nell'array image_urls richiesto con ordine fisso.

Aggiungi colonne risultati senza sovrascrivere brief: task_id, candidate_file_id, candidate_name, review_status, review_note, delivery_file_id e actual_cost. Con più candidati per lavoro, usa scheda Candidates distinta per candidate_id, mentre Jobs mantiene l'inquadratura richiesta. Il primo passaggio ha un candidato per riga, ma separare serve appena M03 richiede due tentativi.

Un ID candidato può essere mara-evening-01-M03-a2. Rivela lotto, immagine e tentativo subito. L'ID API serve al recupero, ma non dice quale cambio guardaroba avevi chiesto. Tieni entrambi.

Gli stati sono normali stati produttivi: draft, ready, pending_review, approved, identity_fix, creative_fix, task_error e delivered. Sono valori della tua tabella, non stati SpicyAPI. L'API può dire succeeded mentre la tabella dice identity_fix, perché l'immagine esiste ma il volto non coincide.

Uno schizzo di moda ad acquerello mostra Mara adulta immaginaria in abito bordeaux e giacca antracite accanto a un guardaroba.

Pianifica abito, posa e inquadratura di ogni lavoro mantenendo un riferimento del personaggio. Illustrazione.

Porta i riferimenti in n8n senza confondere byte e URL

n8n trasporta campi JSON e binari sullo stesso elemento. Una stringa URL va nel JSON. Una foto scaricata va in una proprietà binaria come data o character. Né il nome della proprietà né l'identificatore di storage sono un URL pubblico.

Per una prova rapida, scarica il personaggio dallo storage con l'integrazione n8n nel binario character. Scarica abito in wardrobe e stanza in room, assicurando che arrivino sullo stesso elemento del prompt. Se inserisci Edit Fields tra download e generazione, mantieni Include Binary Data attivo. Altrimenti sopravvive JSON ma spariscono foto.

In SpicyAPI apri Media Inputs e aggiungi tre voci. Per ciascuna scegli image_urls, Source: Binary File e Input Binary Field pertinente: character, wardrobe o room. Ripetere il campo elenco è intenzionale. Il nodo carica binari e li monta in un array nell'ordine aggiunto.

Non aggiungere tre voci a un campo singolo come mask_url. Il plugin controlla la differenza e segnala più input diretti a un solo file. Il menu media deriva dallo schema selezionato. Se mostra un campo sconosciuto, controlla il modello prima di copiarlo da un altro workflow.

Per riusare le tre fonti, upload esplicito è più gestibile. Scarica ogni originale e usa SpicyAPI → File → Upload col binario corrispondente. Restituisce uri, fileId, fileName, mimeType e bytes. Metti uri nella colonna pertinente per il lotto.

Upload restituisce un JSON nuovo. Non copia automaticamente reference_role dall'elemento precedente. Con un elenco di tre elementi mantieni il ruolo attraverso collegamenti o merge esplicito. Per principianti sono più facili tre nodi nominati separatamente: personaggio, abito, stanza. Copiare gli URI nel foglio rende visibili i ruoli prima degli edit pagati.

Gli input caricati sono temporanei; l'implementazione li descrive conservati per un giorno. Ricarica dagli originali per un lotto futuro. Non presumere che un spicy:// del mese scorso funzioni. ID Drive originali o chiavi del tuo storage restano accanto agli URI per ricrearli.

Un URL della pagina di condivisione Drive è un altro errore frequente. L'API vuole byte, non HTML con anteprima dopo login. Invece di rendere pubblici gli originali, fai scaricare al nodo Drive il binario con credenziale e caricalo tramite SpicyAPI. La cartella privata può restare privata.

Per sei righe usa URI appena caricati. Imposta tre Media Inputs su Source: URL con {{ $json.character_uri }}, {{ $json.wardrobe_uri }} e {{ $json.room_uri }}. Qui URL accetta anche URI Spicy. Evita di trascinare tre binari interi in ogni operazione della tabella.

Tieni più riferimenti dentro un solo elemento

Ci sono due significati di «più immagini». Sei lavori sono sei elementi n8n. Tre riferimenti di ogni lavoro restano un array di tre dentro quello stesso elemento. Dividerlo in tre cambia significato: l'editor può ricevere tre richieste indipendenti con una fonte ciascuna.

La distinzione emerge nelle domande reali. In una discussione Reddit sugli album Telegram, diverse immagini avviavano esecuzioni separate; Wait ritardava ciascuna senza raggruppare. Si propone buffering con ID comune o separazione di raccolta ed elaborazione. Non stabilisce una soluzione universale, ma «aspetta un po'» non equivale a «monta i riferimenti».

La tabella evita quel problema: dichiara le tre fonti prima dell'edit. Se aggiungi un modulo multifile, fai produrre alla raccolta un elemento con tutti i file e ruoli. Non permettere a ogni upload di attivare da solo Edit Character. L'abito caricato non deve diventare una richiesta di ridisegnare soltanto l'abito.

Puoi usare Media Inputs ripetuti o costruire l'elenco in Additional Parameters (JSON). La casella vuole un oggetto e viene unita per ultima. Le chiavi sovrascrivono Prompt, Model Parameters e Media Inputs. Utile per array dinamici, ma può nascondere valori che credevi scelti nel modulo.

Questa espressione produce un input completo dalla riga preparata:

javascript
{{ {
  prompt: $json.edit_prompt,
  image_urls: [$json.character_uri, $json.wardrobe_uri, $json.room_uri],
  resolution: $json.resolution,
  aspect_ratio: $json.aspect_ratio,
  output_format: "png",
  background: "opaque",
  enable_prompt_expansion: false
} }}

Scegli un solo metodo. Con l'espressione lascia Media Inputs vuoto per non caricare file poi sostituiti dall'override. Con la lista visiva escludi image_urls dagli Additional Parameters. L'input deve contenere un array di tre, non un array dentro un altro o una stringa separata da virgole.

Una colonna array da foglio può essere testo pur sembrando JSON. Le colonne URI separate evitano l'incertezza. Se scegli references_json, analizzalo come array prima e ferma la riga se fallisce. "[first,second,third]" non è un elenco URL.

Lo stesso vale per risoluzione e booleani. Usa false booleano nell'espressione, non testo "false". Inserisci 2k come stringa enum valida, non una dimensione indovinata. Il modulo dallo schema è comodo perché mostra valori accettati.

Scrivi il primo edit chiarendo a chi appartiene cosa

In Prepare Edit costruisci edit_prompt da introduzione fissa ai ruoli e richiesta specifica. Edit Fields combina stringhe; non serve Code per sei righe semplici. Mantieni fisse le istruzioni d'identità e lascia alla riga il cambiamento.

Un'istruzione M01 adatta:

Immagine 1 è Mara, adulta immaginaria di 34 anni. Conserva proporzioni facciali, ricci scuri alle spalle, sorriso leggermente asimmetrico e posa seduta. Immagine 2 fornisce solo l'abito di satin bordeaux opaco: copia colore, scollatura e cuciture, non l'identità di un'altra persona. Immagine 3 fornisce solo salotto, divano verde e lampada d'ottone. Metti Mara lì con l'abito. Ritratto naturale con occhi leggibili e luce calda morbida. Inquadra seduta di tre quarti a 4:5. Nessun'altra persona, testo o accessorio extra.

È proposto, non eseguito e valutato. Assegna ruoli, descrive cambio e tratti da riconoscere. Risolve anche conflitti: volto dalla prima, abito dalla seconda.

Per M02 cambia la frase d'inquadratura in mezzo busto con lampada su un lato del viso. Non ripetere M01 aggiungendo dieci termini contraddittori. Per M03 sostituisci conservazione della posa seduta con una posa in piedi accanto al divano, mani rilassate visibili. Chiedere sia «mantieni seduta» sia «in piedi» crea una contraddizione evitabile.

M04 chiede luce finestra. Mantieni ricci e abito, specificando luce fredda con lampada sullo sfondo. Cambia relazione luminosa e posizione, non descrizione del personaggio. M05 riusa la giacca antracite sopra l'abito: dillo direttamente, perché altrimenti seguire solo il riferimento d'abito è ragionevole.

M06 chiede una composizione seduta ampia con spazio chiaro su un lato. Non è rimpicciolire casualmente il volto con un ritaglio dopo. Dai la composizione voluta, poi esamina il volto a misura intera. Il campo largo serve a un header ma offre meno dettagli facciali per valutare identità.

Mantieni lo styling NSFW nel brief dove adeguato a endpoint e pubblico. Il generico «rendilo NSFW» non descrive abito, espressione, crop o atmosfera. Il creatore deve specificarli. Nell'esempio pubblico serata adulta, satin opaco e sguardo diretto comunicano il tono senza istruzioni esplicite.

Se il brief richiede una posa esatta assente, creala come riferimento approvato prima di programmare tanti output. Un workflow non sostituisce informazione visiva mancante ripetendo vaghezza. Il primo lotto può produrre un pacchetto fonti migliore, non sei risultati immediati.

Collega il ciclo con un percorso distinto per errori

Aggiungi Google Sheets Get Row(s) in Read Jobs, scegli Jobs e recupera le righe del lotto. Un Filter Ready Jobs mantiene status uguale a ready. Se filtri dentro Sheets, assicurati che più corrispondenze restituiscano tutte, non solo la prima. Sei righe con un output non sono sei immagini.

Collega a Loop Jobs, Loop Over Items con Batch Size 1 e Reset spento. La sua uscita loop va a Prepare Edit, poi Edit Character. SpicyAPI elabora già più elementi: il ciclo non è necessario solo per più edit. Qui serve a finire salvataggio e stato di ogni riga prima della successiva.

Configura Edit Character come Image → Generate, modello esatto e Prompt sull'istruzione preparata. Aggiungi tre riferimenti o l'oggetto JSON scelto. Attiva Wait for Completion e Download Output. Dai a Max Cost per Item (USD) un tetto deliberato: $0.10 è una base utile per l'esempio se il preventivo completo vi rientra.

Il tetto vale per un elemento, non tutto il foglio. Cento righe possono passare ciascuna dieci centesimi. Limita il lotto a sei pronte e dai alla chiave un cap d'account per un secondo confine. Numero e cap non migliorano l'immagine: evitano un programma accidentale molto più grande.

Il nodo ottiene il preventivo prima della creazione. Se supera il tetto, fallisce prima di generare. Non aggiungere un secondo nodo quote salvo una stima distinta in tabella. Model → Get Quote valuta gli stessi input senza creare immagini.

In Settings imposta On Error a continuare con output normale per il ramo d'errore. Il risultato contiene error, description e ID quando disponibile. Metti If dopo Edit Character per verificare error. L'errore registra task_error e messaggio e torna a Loop Jobs; il successo salva il candidato e pending_review, tornando allo stesso ingresso.

Non usare done del ciclo per altra generazione. Serve al riepilogo dopo tutte le righe, per rileggere candidati o mostrare conti. Tieni espliciti i rami: errore API non va alla cartella come file vuoto e file completato non va direttamente alla consegna.

Per sei edit mantieni l'attesa integrata. Un callback separato solitamente non serve. Se smette di aspettare con attività ancora viva, copia l'ID in Task → Get e attiva Wait for Completion e Download Output. Get non aspetta per default: spento, può restituire record in esecuzione senza file. In un recupero separato, leggi prima Jobs corrispondente e passala a Prepare Edit, poi Task → Get → Attach Job → percorso salvataggio. Mantiene il contesto collegato delle espressioni sotto; Manual Trigger direttamente a Get lascerebbe Prepare Edit ineseguito. Quando recuperata e scaricata salva senza tornare a Generate. Il timeout può mostrare ID in description anche con taskId vuoto: controlla prima di sostituire. Avviare di nuovo perché la pagina era lenta può creare un altro pagamento mentre l'originale poi riesce.

Ricollega l'identità del lavoro prima del salvataggio

Il successo restituisce record e binari. Il JSON non è la riga originale con campi aggiunti. Contiene taskId, state, cost, settled e output. Perciò {{ $json.job_id }} dopo può essere vuoto pur con prompt corretto.

Aggiungi Attach Job, Edit Fields, dopo il successo. Mantieni JSON, Include Binary Data e aggiungi campi tramite espressioni collegate. Il nodo fornisce pairing: puoi riferirti all'elemento specifico Prepare Edit, non alla prima riga.

Usa {{ $('Prepare Edit').item.json.job_id }} per job_id e stesso schema per batch_id, attempt, edit_prompt ed etichetta versione. Usa record attuale per task_id, tramite {{ $json.taskId }}. Costruisci candidate_id da lotto, lavoro e tentativo e usalo come base del nome.

Non usare $('Read Jobs').first() per tutte le identità: prende la prima, etichettando magari sei output M01. Evita anche associazioni per posizione dopo ordinamenti o filtri di un ramo. Il pairing funziona con relazione chiara; se separi o aggreghi dopo, mantieni un job_id esplicito.

Il primo asset è binario data per default; altri sono data_1, data_2 ecc. L'editor d'esempio restituisce uno, quindi data va allo storage. Se cambi a un modello multiasset non presumere che salvare data salvi tutto il risultato. Scegli quale appartenga al candidato o espandi in record nominati separatamente.

output.assets[].url contiene link, non bytes. Scadono circa dopo venti minuti secondo il pacchetto. Un foglio col solo URL funziona subito e fallisce al ritorno. Download Output dà byte reali al nodo storage.

Anche i binari richiedono destinazione permanente. Non ereditano la breve durata del link, ma i dati d'esecuzione n8n possono essere rimossi. Un'esecuzione riuscita non è archivio. Salvare durante l'esecuzione permette di tornare domani senza rigenerare.

Salva candidati e decidi visivamente cosa correggere

Crea una cartella privata mara-evening-01/review. Aggiungi Google Drive File → Upload in Save Candidate, Input Data Field Name data, nome ID candidato più .png, e scegli la cartella. La documentazione Drive descrive i campi.

Il nome deve riflettere il formato. Scrivere .png su JPEG non converte: qui avevamo scelto PNG. Conserva ID restituito, non solo nome amichevole. Due file hanno anche nomi uguali e la consegna richiede una fonte univoca.

L'upload restituisce metadati, non tutto il record. In Record Candidate usa ID caricato attuale e collegamenti da Attach Job per ID candidato, lavoro, task e costo. Mappa manualmente in Candidates con Append or Update Row, corrispondenza su candidate_id. Un nuovo tentativo non sovrascrive il primo.

Se aggiorni Jobs, imposta la riga job_id a pending_review. Ritorna dall'ultimo aggiornamento a Loop Jobs. Nel ramo errore registra ID da Prepare Edit, descrizione ed eventuale task prima del ritorno. Entrambi devono arrivare al ciclo, altrimenti si ferma dopo il primo successo o fallimento.

Controlla le sei immagini insieme a due misure. In miniatura: stessa persona, guardaroba e stanza coerenti, variazione sufficiente? A piena misura confronta occhi, naso, bocca, mandibola, attaccatura e asimmetria con la fonte. Sono punti visivi pratici, non scoring biometrico automatico.

Separa difetti d'identità e creativi. Mara riconoscibile con lampada sbagliata richiede istruzione diversa da un bel volto altrui. Se viso giusto e composizione sbagliata marca creative_fix con cambio mancante. Se il personaggio cambia, identity_fix e dettaglio, come mandibola stretta o attaccatura diversa.

Non approvare perché state è succeeded o una didascalia automatica descrive l'abito. Un modello di caption riconosce bordeaux senza decidere se il volto appartenga alla serie. Puoi aggiungere aiuto per note, ma mantieni decisione vera separata e visibile.

Dai a ogni fallimento un edit successivo preciso

Supponi M01 vicino ma capelli presi dal manichino. Conferma prima che la seconda fonte non abbia una testa concorrente; se sì, ritaglia l'abito. Chiarisci che fornisce soltanto vestito e ricci/attaccatura vengono solo dalla prima. Invia tentativo 2 sull'originale, non sul candidato in deriva.

Se M02 somiglia a Mara ma cambia scollatura, migliora la fonte d'abito. Una foto scura che la nasconde offre poco da preservare. Ritaglia cuciture più chiare e chiedi costruzione specifica mantenendo mezzo busto. Altri abiti vagamente simili aumentano ambiguità.

M03 in piedi fallisce in due modi. Con posa plausibile ma volto diverso riduci il cambio camera e prova tre quarti in piedi con viso verso camera. Con volto conservato ma corpo goffo chiedi posizione semplice accanto al divano con mani visibili rilassate. Giro difficile, braccia incrociate e luce estrema insieme impediscono di identificare la causa.

M04 può mantenere il volto ma raffreddare e scurire troppo per il confronto. Prima di chiamarla deriva guarda una vista neutra e distingui luce e proporzioni. Il prompt successivo mantiene finestra ma chiede tratti leggibili e ombra più morbida. Non aggiungere automaticamente un'identità diversa per un grading che rende insolito lo stesso personaggio.

M05 può perdere l'abito sotto una giacca diventata un altro outfit. Specifica giacca originale aperta sopra e costruzione bordeaux visibile. Se solo un bordo è malformato in un'ottima immagine, valuta correzione locale con maschera invece di tutta scena. È un lavoro nuovo col candidato scelto come unica fonte, non la richiesta a tre riferimenti.

M06 può dare spazio vuoto ma testa troppo piccola per la copertina. Chiedi ritratto medio seduto, stanza visibile a sinistra e volto ancora leggibile. Il solo rapporto non dice dove vada il titolo. Descrivi layout nella nota, non soltanto 4:5 o 16:9.

Il rifiuto di contenuto va agli errori, non al fix d'identità. Leggi ragione e scegli richiesta consentita o modello adatto; non reinviare invariato. Un output renderizzato inadatto è diverso: può essere pagato perché generazione riuscita. Mantieni la distinzione per vedere il costo dei candidati creativi falliti.

Ferma il ramo dopo un limite deliberato, per esempio due tentativi nel primo passaggio. È una scelta produttiva, non previsione che bastino due. Un'inquadratura ostinata torna a preparazione o editing manuale. L'automazione vale quando rende il problema visibile e ripetibile, non genera venti alternative scollegate mentre sei assente.

Un primo piano del personaggio adulto immaginario con ricci definiti e una lampada sfumata dietro.

Confronta proporzioni e ricci separatamente da inquadratura dello sfondo e lampada. Illustrazione.

Consegna file approvati senza rigenerarli

Finita la revisione, marca i candidati scelti approved. Mantieni gli altri con note. Per M03 puoi approvare tentativo 2 e conservare primo identity_fix. La consegna legge Candidates, non deduce il vincitore dal file più recente.

Costruisci il secondo workflow con Manual Trigger, Sheets Get Row(s) e Filter con review_status approved e delivery_file_id vuoto. Aggiungi Loop Over Items Batch Size 1. Scarica ciascuno tramite ID Drive in data, poi carica nella cartella approved del lotto col nome previsto.

Scarica il candidato salvato tuo, non l'URL temporaneo API. È la foto esatta rivista. Non usare Image → Generate allo stesso seed o a risoluzione più alta supponendo approvazione ancora valida. Ogni render nuovo richiede revisione di volto, abito o inquadratura.

Dopo l'upload approvato aggiorna delivery_file_id e review_status: delivered, eventualmente Jobs col candidato selezionato. Ritorna al ciclo. L'ID recupera stabilmente la versione consegnata ed evita che una normale seconda esecuzione tratti tutte come incompiute.

Qui download/upload rende esplicito il passaggio binario. Se lo storage ha copia nativa che preserva byte, usala. La regola creativa è uguale: consegna copia l'approvata, non riesegue l'editor.

Separa export ridimensionati, ritagliati o compressi. Miniatura quadrata e ritratto completo sono file diversi anche con fonte uguale. Tieni l'originale per altri export senza generazione. Se un crop taglia capelli o cambia presentazione, controllalo per quella destinazione.

Non c'è nodo social nel workflow. La consegna termina con file e tabella selezionati. Basta per un designer, galleria privata o scelte manuali. Puoi aggiungere pubblicazione specifica dopo, senza renderla inseparabile da generazione e revisione.

Valuta il pacchetto reale, non solo il menu

Il prezzo iniziale aiuta a navigare. Riferimenti e impostazioni completi determinano il preventivo. Qwen Image 2.1 Edit parte da $0.036 a 1k, $0.048 a 2k e $0.072 a 1.5k. I preventivi pubblici per tre riferimenti sono $0.060 a 1k e $0.048 a 2k con PNG opaco ed espansione spenta. A 1k le altre due fonti aggiungono $0.024; il 2k quotato non ha aggiunta. Non presumere che risoluzione intermedia sia meno cara o supplementi uguali a ogni livello.

Usa Model → Get Quote con gli stessi image_urls, prompt e impostazioni prima di rendere pronte altre cinque righe. Restituisce input montato e preventivo, utile per vedere se i tre riferimenti sopravvivono alla mappatura. Carica binari se necessario ma non genera immagini.

Nel piano a tre fonti 2k, $0.048 dà primo budget di sei candidati $0.288; dodici richieste $0.576. Le stesse sei a 1k quotato totalizzano $0.360. Sono budget da preventivi, non ricevute di lotto eseguito o confronti qualitativi. Richiedi preventivo per fonti e impostazioni proprie prima di eseguire. Hosting/abbonamento n8n e storage sono separati.

Conta tentativi come attività. Sei approvate possono richiedere più di sei generazioni riuscite con candidati pagati inadatti. Se quoti primo passaggio e limiti due per inquadratura, il massimo previsto è dodici. È più utile di «un lotto da sei» senza sostituzioni.

Il plugin invia una chiave d'idempotenza per elemento. Ritentare la stessa chiamata nella stessa esecuzione mira a recuperare l'attività invece di pagare duplicati. Nuova esecuzione, input diverso o altro passaggio del ciclo sono lavoro nuovo. Execute Workflow non è recuperare l'ID.

Quando una riga ha ID, recupera o esamina prima di sostituire per interruzione tecnica. Se riuscita ma Drive falliva, recupera output e completa salvataggio. Il viso non migliora perché una credenziale storage è scaduta: non c'è motivo creativo di pagare un render nuovo.

La documentazione dice che fallite e scadute liberano normalmente la prenotazione, e rifiuti non sono addebitati salvo diversa pagina modello. Un candidato riuscito scartato da te è diverso da un errore API. Mantieni actual_cost dal record regolato per vedere quanto richieda ogni immagine consegnata.

Esegui il primo lavoro dalla fonte alla consegna, poi amplia

Prima di tutte e sei, porta M01 a generazione, storage e revisione. Apri il file reale dalla cartella. Conferma riga M01, ruoli corretti e file restituito uguale a quello osservato. L'anteprima giusta nel pannello non prova nome o associazione corretti nel salvataggio.

Approvalo e avvia consegna una volta. Apri l'approvato e verifica l'immagine scelta. Riesegui consegna senza cambiare stato: deve saltare la riga con ID già presente. Se lo cancelli manualmente dopo, torna eleggibile: fallo solo per un'altra copia necessaria.

Marca poi M02–M06 ready. Il ciclo deve produrre un record candidato o errore preciso per lavoro. Controlla il provino, annota dettagli concreti e crea solo sostituzioni giustificate. L'originale resta fonte dei normali tentativi sostitutivi.

Hai ora un workflow n8n NSFW image-to-image utile: fonte definita, ruoli, lavori separati, binari e URI corretti, istruzioni leggibili e cartella con immagini scelte. L'automazione trasporta e salva materiali. Progettazione e selezione delle inquadrature determinano se la serie merita la pubblicazione.

Anche in English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Polski

Metti in pratica questa guida

Vedi il workflow

Crea un set NSFW del tuo personaggio con n8n.

Trasforma il personaggio adulto che hai scelto in una galleria NSFW coordinata per creator. Crea 4, 8 o 12 varianti di abiti e scene con n8n, riutilizzando lo stesso ritratto originale per ogni modifica con Qwen Image 2.1.

Provalo tu stesso

Paghi solo quello che esegui: nessun piano, nessun abbonamento.

Creato con MiniMax H3 · ByteDance Seedance 2.0 Fast