Pular para o conteúdo principal

Edição de imagens NSFW no n8n: crie novos visuais em lote a partir de uma referência

Monte um lote de edição por referências no n8n: envie imagens corretamente, preserve IDs, revise a identidade e salve os arquivos aprovados.

Autor
Lydia
Publicado
Leitura
28 min de leitura
Atualizado
Mara, uma personagem adulta fictícia, de vestido bordô de cetim em um sofá verde de veludo.

Para editar uma série de personagens NSFW em lote no n8n, transforme cada imagem pedida em um trabalho, mantenha juntas as referências desse trabalho e envie cada variação de volta à mesma fonte aprovada do personagem. Baixe os arquivos retornados para uma pasta de revisão e mova só os aprovados para a pasta de entrega. Isso dá um processo repetível sem tratar a conclusão de uma solicitação de API como prova de que o rosto sobreviveu.

A parte difícil geralmente não é escrever seis prompts. É garantir que seis itens recebam a fonte, roupa e sala corretas; manter cada resultado ligado às instruções; e encontrar a versão escolhida depois de o link temporário parar. Um fluxo pode executar perfeitamente e entregar o personagem errado se essas decisões faltarem.

Este guia monta um exemplo completo: uma série noturna de seis imagens de Mara, adulta fictícia de 34 anos. Mudaremos figurino, luz e enquadramento mantendo uma identidade estabelecida. O exemplo público usa roupa opaca e instruções não explícitas. A mesma mecânica serve a trabalho adulto permitido, mas nem n8n nem o tutorial prometem que todo pedido NSFW será aceito ou renderizado como desejado.

O fluxo é uma configuração proposta baseada no nó comunitário publicado da SpicyAPI e no schema atual de edição. Não relata um lote novo de seis imagens executado. As instruções distinguem o que o nó faz automaticamente das decisões criativas que ainda são suas.

Construa a série ao redor de uma imagem aprovada

Comece com a imagem que mostraria a alguém que pergunta quem é Mara. Escolha uma vista limpa e razoavelmente próxima, com rosto legível, cabelo a preservar e luz que não esconda metade dos traços. No exemplo, ela tem cachos escuros até os ombros, sorriso ligeiramente assimétrico e blusa azul-escura opaca de alças sob jaqueta cinza-chumbo. Está sentada junto a um sofá verde. Esses detalhes tornam as instruções concretas sem biografia longa inventada.

Salve como matriz do personagem. Ela deve continuar no seu armazenamento mesmo após upload à SpicyAPI. URI temporária de entrada facilita referenciar o arquivo na produção; não é arquivo permanente do personagem. Dê uma versão, como mara-master-v1, para que uma mudança posterior de cabelo não altere silenciosamente fontes de uma série antiga.

Prepare duas imagens extras para o lote. A referência de figurino mostra um vestido bordô opaco de cetim em cabide ou manequim, sem rosto concorrente. A de sala mostra um lounge vazio com luminária de latão e móveis verdes de veludo. O modelo recebe três instruções distintas: pessoa da primeira imagem, roupa da segunda, cenário da terceira.

Uma foto da sala com outra pessoa destacada enfraquece a divisão. Uma imagem de roupa com rosto de outra modelo cria o mesmo problema. Se forem suas únicas referências, recorte a parte necessária antes do envio. Não está tentando juntar o maior pacote possível, mas remover ambiguidade sobre a contribuição de cada imagem.

Mantenha o primeiro pedido de câmera próximo da fonte. Um retrato sentado em três quartos sustenta outro retrato sentado mais diretamente que uma vista extrema de cima com cabeça virada. É recomendação de trabalho, não taxa medida de sucesso. O modelo tem menos informação visível para transportar quando o novo ângulo exige inventar traços não mostrados.

Não construa como matriz → troca de roupa → sala nova → pose nova → close. Cada saída vira outra interpretação do rosto. Uma variação no segundo passo pode virar fonte do terceiro. Nossas seis linhas apontam a mara-master-v1, não ao resultado anterior. Uma cadeia deliberada ajuda em pequeno reparo, mas deve ser escolha separada, não consequência acidental das conexões.

Três referências fornecem a personagem adulta, um vestido bordô e um lounge vazio.

Use a primeira imagem para identidade, a segunda para roupa e a terceira para sala. Ilustração.

Escolha o endpoint de edição antes da automação

Use um modelo de edição, não um de texto para imagem com a descrição do personagem no prompt. O nó nativo Edit Image do n8n recorta, redimensiona e compõe arquivos; não é o editor generativo que troca roupa ou sala. No exemplo, o ID é alibaba/qwen-image-2.1/edit. A página de edição do Qwen Image 2.1 descreve tarefa e controles reais.

O endpoint atual aceita image_urls como lista de uma a dez imagens, prompt obrigatório de até 5.000 caracteres, proporção, faixa de resolução e formato de saída. Retorna uma imagem por pedido. Seis imagens desejadas significam seis tarefas. Três referências em um pedido ainda solicitam uma saída, não três variações separadas.

No lote comum de várias referências, escolha resolution: 2k, aspect_ratio: 4:5, output_format: png e background: opaque. Defina enable_prompt_expansion como false para começar com instruções inalteradas. Desativar expansão está disponível em 1k e 2k; é ajuste útil de comparação, não bloqueio de identidade. Deixe seed vazia no início. Uma seed repetida não garante o mesmo rosto nem arquivo.

Não há controle de intensidade, CFG, passos ou prompt negativo separado no schema atual. Não acrescente campos de Stable Diffusion só porque outro tutorial usa. Coloque preservação e exclusões no prompt principal. Se precisa desses controles locais, escolha um fluxo que os ofereça.

O endpoint também tem mask_url para outra tarefa: reparo localizado com exatamente uma referência. Não usamos esse modo na série de três referências. Um pequeno reparo de borda de roupa após escolher uma imagem pode ser trabalho mascarado separado. Enviar personagem, roupa e sala junto da máscara viola a exigência de entrada do modo local.

O catálogo descreve esse endpoint como irrestrito. Isso importa ao criador NSFW escolhendo editor, mas não garante as próximas imagens. O artigo existente de edição Qwen cobre outro conjunto de resultados observados. Este tutorial acrescenta mecânica de produção de lotes por referências; não transforma observações anteriores em benchmark novo de consistência.

Instale o nó real e nomeie os nós do fluxo

Para pacote, chave e templates HTTP do n8n Cloud, abra o guia oficial do nó n8n da SpicyAPI. Depois siga a preparação de cenas ou referências específica abaixo.

O pacote é @spicyapi/n8n-nodes-spicyapi, versão 0.1.1. No n8n auto-hospedado, abra Settings → Community Nodes → Install, informe e instale. Crie a credencial SpicyAPI (spicyapi.ai) API com sua chave do console de chaves. Preserve a URL base padrão salvo motivo específico para mudar.

n8n Cloud permite nós comunitários verificados; publicar no npm não significa verificação. Este guia usa o nó comunitário auto-hospedado. Usuários Cloud implementam as mesmas chamadas com HTTP Request nativo, mas não devem esperar os seletores ou uploads automáticos do pacote. A documentação atual de instalação do n8n explica a distinção.

Não existe operação separada SpicyAPI chamada “Edit Character” ou “Batch NSFW”. Escolha Resource: Image → Operation: Generate e selecione o modelo de edição. Generate é a operação de modelos de imagem, incluindo edição; o modelo define a tarefa. O seletor mostra preços iniciais, não a cotação completa do pacote de referências.

Montaremos dois fluxos pequenos. O primeiro produz candidatos e salva na revisão. O segundo lê linhas aprovadas e coloca selecionados na entrega. Separar permite revisar seis imagens juntas sem manter uma execução esperando seu retorno. Também reutiliza a entrega sem pagar para gerar de novo.

Nomeie os nós importantes: Read Jobs, Ready Jobs, Loop Jobs, Prepare Edit, Edit Character, Attach Job, Save Candidate e Record Candidate. Expressões posteriores referenciam esses nomes. Se escolher outros, atualize as expressões. É um guia de montagem manual, não afirmação de template oficial importável dessa série exata.

Comece com Manual Trigger. Acrescente agenda depois do comportamento correto, mas a primeira execução deve conter um trabalho deliberado. Uma pasta com uploads novos ainda não é proposta de produção. A tabela especificará quais pertencem juntos e qual saída é pedida.

Faça seis linhas de trabalho, não uma pasta de arquivos soltos

Use Google Sheets com aba Jobs. Cada linha é uma saída solicitada. Dê job_id único, nome de lote, prompt, três fontes, resolução, proporção, tentativa e status. Assim você repete um trabalho específico sem regenerar os demais.

Os seis pedidos criativos diferem o suficiente para uma série útil:

TrabalhoImagem a criarMudança principalO que permanece familiar
M01Retrato sentado no loungeVestido bordô, mesma pose sentadaRosto, cachos, sorriso, sofá verde
M02Retrato da cintura para cima junto à lumináriaLuz lateral mais quente e enquadramento próximoRosto, cabelo, construção do vestido
M03Retrato em pé ao lado do sofáPostura e mais sala visívelIdentidade, cor da roupa, paleta do lounge
M04Retrato em três quartos junto à janelaLuz fria de janela com luminária atrásIdentidade, comprimento do cabelo, vestido bordô
M05Retrato próximo com jaquetaAcrescentar jaqueta original cinza-chumboProporções faciais, cachos, expressão discreta
M06Composição sentada mais amplaMais espaço para título ou recorteIdentidade, vestido, disposição dos móveis

Use batch_id: mara-evening-01 e attempt: 1 nos seis. Primeiro marque só M01 como ready; deixe os outros cinco em draft. Depois de um candidato chegar ao armazenamento com informação correta da linha, marque os restantes prontos. O início pequeno testa edição real, não só uma credencial desconectada.

Mantenha character_uri, wardrobe_uri e room_uri em colunas separadas. Podem conter URIs de uploads recém-criados ou URLs públicas de imagem acessíveis à API. São mais legíveis que uma string com um array JSON inteiro. Prepare Edit combinará no array exigido image_urls em ordem fixa.

Acrescente colunas de resultado sem sobrescrever a proposta: task_id, candidate_file_id, candidate_name, review_status, review_note, delivery_file_id e actual_cost. Para mais de um candidato por trabalho, use aba Candidates vinculada por candidate_id, mantendo o plano pedido em Jobs. A primeira passagem tem um por linha, mas a separação ajuda assim que M03 precisa de duas tentativas.

Um ID pode ser mara-evening-01-M03-a2. Ele mostra lote, imagem e tentativa rapidamente. O ID da tarefa de API continua importante para recuperação, mas não identifica a troca de roupa pedida. Guarde ambos.

Use status simples de produção: draft, ready, pending_review, approved, identity_fix, creative_fix, task_error e delivered. São valores de sua tabela, não estados SpicyAPI. A API pode dizer succeeded e sua tabela identity_fix, pois a imagem existe, mas o rosto não corresponde à série.

Um esboço de moda em aquarela mostra Mara adulta fictícia de vestido bordô e jaqueta cinza-chumbo junto a um guarda-roupa.

Planeje figurino, pose e enquadramento de cada trabalho mantendo uma referência de personagem. Ilustração.

Leve as referências ao n8n sem confundir bytes e URLs

n8n transporta campos JSON comuns e binários no mesmo item. Uma string de URL pertence ao JSON. Uma foto baixada pertence a uma propriedade binária como data ou character. Nem nome da propriedade nem identificador de armazenamento são URL pública de imagem.

Para um trabalho rápido, baixe o personagem pelo nó de integração do seu armazenamento, colocando em character. Baixe roupa em wardrobe e sala em room, garantindo que cheguem no mesmo item do prompt. Se houver Edit Fields entre downloads e geração, mantenha Include Binary Data ligado. Caso contrário, JSON pode sobreviver e fotos sumir.

No nó SpicyAPI, abra Media Inputs e adicione três entradas. Em cada, selecione campo image_urls, Source: Binary File e Input Binary Field correspondente: character, wardrobe ou room. Repetir o campo de lista é intencional. O nó envia binários e monta um array na ordem adicionada.

Não adicione três entradas a um campo de arquivo único como mask_url. O plugin verifica e retorna erro se vários inputs apontarem ao campo único. O seletor de mídia vem do schema escolhido. Se mostrar campo desconhecido, confira modelo antes de copiar nome de outro fluxo.

Para reutilizar três fontes, upload explícito facilita gestão. Baixe cada original ao n8n e use SpicyAPI → File → Upload com campo binário correto. O resultado contém uri, fileId, fileName, mimeType e bytes. Coloque uri na coluna correspondente do lote.

Upload retorna objeto JSON novo. Não copia automaticamente um campo como reference_role do item anterior. Se enviar lista de três itens, preserve função por expressões vinculadas ou mesclagem explícita. Para iniciante, três nós nomeados separadamente são mais fáceis de inspecionar: personagem, roupa e sala. Copiar cada URI à planilha torna funções visíveis antes de edição paga.

Entradas enviadas são temporárias; a implementação descreve retenção de um dia. Reenvie dos originais armazenados ao preparar lote futuro. Não presuma que um valor spicy:// colado no mês passado funciona. IDs originais do Drive ou chaves de armazenamento próprias ficam ao lado das URIs para recriá-las.

URL de página de compartilhamento Drive é outro erro comum. A API precisa dos bytes, não de HTML com prévia após login. Em vez de tornar matrizes públicas, deixe o nó Drive baixar o binário com sua credencial e envie pelo SpicyAPI. A pasta privada do criador continua privada.

Nas seis linhas, use URIs recém-enviadas em todas. Defina três Media Inputs como Source: URL, com {{ $json.character_uri }}, {{ $json.wardrobe_uri }} e {{ $json.room_uri }}. Nessa interface, URL aceita também URI Spicy. Evita transportar três binários completos por toda operação de tabela.

Mantenha várias referências dentro de um item

Há dois tipos de “várias imagens”. Seis trabalhos são seis itens n8n. Cada trabalho tem três referências, mantidas em um array de três elementos dentro dele. Dividir o array em três itens muda o significado: o editor pode receber três pedidos independentes com uma referência cada.

Isso aparece em perguntas reais. Em uma discussão Reddit sobre álbuns Telegram, várias imagens disparavam execuções separadas; acrescentar Wait atrasou cada uma sem agrupar o álbum. A discussão propõe acumular pelo identificador compartilhado ou separar coleta e processamento. Não é solução universal, mas mostra por que “espere um pouco” não é “monte um pacote de referências”.

A tabela evita o problema de coleta. Declara as três fontes antes da edição. Se acrescentar formulário multi-upload, faça a coleta produzir um item com arquivos e funções. Não deixe cada arquivo acionar Edit Character sozinho. Upload de roupa não deve virar pedido independente de redesenhar a roupa.

Use entradas repetidas de Media Inputs ou monte a lista em Additional Parameters (JSON). A caixa espera um objeto e é mesclada por último. Suas chaves substituem Prompt, Model Parameters e Media Inputs. Isso ajuda em array dinâmico, mas esconde valores que você pensava ter escolhido no formulário.

Por exemplo, esta expressão cria o objeto completo da linha preparada:

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
} }}

Escolha um método para o array. Com a expressão JSON, deixe Media Inputs vazio para evitar uploads substituídos pelo override final. Com lista visual, omita image_urls de Additional Parameters. A entrada final deve ter um array de três elementos, não um dentro de outro nem string separada por vírgulas.

Uma coluna de array da planilha pode chegar como texto mesmo parecendo JSON. Colunas separadas evitam incerteza. Se escolher references_json, converta para array antes de gerar e interrompa a linha se a conversão falhar. Uma string como "[first,second,third]" não é lista de URLs de imagem.

O princípio vale para resolução e booleanos. Coloque false como Boolean na expressão, não texto "false". Digite 2k como string válida do enum, não dimensão adivinhada. O formulário gerado pelo schema é conveniente justamente por mostrar valores aceitos.

Escreva a primeira instrução deixando claras as funções

Em Prepare Edit, monte edit_prompt com introdução fixa de funções e pedido individual do plano. Use Edit Fields para juntar strings; Code não é necessário em seis linhas simples. Mantenha identidade fixa e deixe a linha fornecer a mudança.

Uma instrução adequada de M01 é:

A imagem 1 é Mara, personagem adulta fictícia de 34 anos. Preserve proporções faciais, cachos escuros até os ombros, sorriso ligeiramente assimétrico e pose sentada. A imagem 2 fornece só o vestido bordô opaco de cetim: copie cor, decote e posição das costuras, não a identidade de outra pessoa. A imagem 3 fornece só lounge, sofá verde de veludo e luminária de latão. Coloque Mara nesse lounge com o vestido. Mantenha retrato natural, olhos legíveis e luz quente suave. Enquadre um retrato sentado em três quartos em 4:5. Não introduza outra pessoa, texto ou acessórios extras.

É um prompt proposto, não executado e pontuado. Dá uma função a cada imagem, descreve mudança e traços reconhecíveis. Também resolve divergência entre referências: rosto da imagem 1, roupa da 2.

Em M02, mude a frase do plano para retrato da cintura para cima com luminária iluminando um lado do rosto. Não repita M01 e acrescente dez termos conflitantes de câmera. Em M03, troque preservação da pose sentada por pose explícita em pé ao lado do sofá, mãos relaxadas e visíveis. Pedir “preserve sentada” e “faça levantar” cria contradição evitável.

M04 pede luz junto à janela. Mantenha cachos e roupa, mas especifique janela fria com luminária no fundo. Mude relação de iluminação e posição na sala, não a descrição da personagem. M05 reutiliza jaqueta cinza-chumbo da matriz sobre vestido bordô; diga diretamente, pois o modelo tem motivo razoável para seguir só a referência de roupa.

M06 pede composição sentada ampla com espaço livre de um lado. Isso difere de reduzir aleatoriamente o rosto por recorte posterior. Dê a composição pretendida e examine o rosto em tamanho completo. Um plano amplo ajuda em cabeçalho e oferece menos detalhe facial para decidir identidade.

Mantenha o estilo NSFW desejado na proposta quando apropriado ao endpoint e público. Não presuma que “deixe NSFW” descreve roupa, expressão, recorte ou clima. O criador ainda precisa especificar. No exemplo público, atmosfera noturna madura, cetim opaco e contato visual direto comunicam o tom sem instruções explícitas.

Se precisa de pose exata não mostrada pela matriz, crie uma referência aprovada dessa pose antes de agendar um conjunto grande. Um fluxo não substitui informação visual ausente reenviando um pedido vago. O resultado útil do primeiro lote pode ser um pacote melhor de fontes, não seis aprovadas imediatas.

Conecte o loop com um caminho separado de erros de tarefa

Adicione Google Sheets Get Row(s) em Read Jobs, escolha Jobs e obtenha linhas do lote. Use Filter chamado Ready Jobs para manter status igual a ready. Se filtrar no nó Sheets, garanta retorno de todas as correspondências, não só primeira. Uma tabela de seis linhas que retorna um item não é lote de seis imagens.

Conecte os itens filtrados a Loop Jobs, nó Loop Over Items com Batch Size 1 e Reset desligado. Ligue loop a Prepare Edit, depois Edit Character. SpicyAPI já processa vários itens, então loop não é necessário só para várias edições. Usamos para terminar salvamento e atualização de cada linha antes do próximo pedido.

Configure Edit Character como Image → Generate, modelo exato de edição e Prompt mapeado à instrução. Acrescente três referências ou objeto JSON, conforme escolhido. Ative Wait for Completion e Download Output. Defina Max Cost per Item (USD) deliberadamente; neste exemplo pequeno, $0.10 é um teto inicial útil se a cotação completa couber.

O teto vale por item, não pela planilha inteira. Cem linhas podem passar cada uma por limite de dez centavos. Limite o lote a seis prontas e dê à chave um limite de gasto da conta se quiser outra barreira. Quantidade de linhas e teto não melhoram imagens; só impedem uma agenda acidental de executar uma lista muito maior.

O nó faz cotação própria antes da criação. Se o pedido exceder teto, erra antes da geração. Não acrescente segunda cotação à produção salvo necessidade de estimativa separada na tabela. Para planejar, Model → Get Quote precifica referências e configurações exatas sem criar imagem.

Em Settings, configure On Error para continuar pela saída regular neste caminho de erro. O resultado continuado contém error, description e ID quando disponível. Coloque If após Edit Character verificando error. O ramo de erro registra task_error e mensagem e volta a Loop Jobs; o de sucesso salva candidato, registra pending_review e volta à mesma entrada.

Não use a saída done do loop para gerar outra imagem. Done serve ao resumo depois de todas as linhas retornarem. Pode ler a tabela atualizada ou mostrar contagens. Deixe ramos explícitos: erro de API não vira arquivo vazio na revisão, e arquivo concluído não vai direto à entrega.

Nas seis edições, mantenha espera nativa. Callback separado normalmente não é necessário. Se a execução parar de esperar com tarefa rodando, copie ID original para Task → Get e ative Wait for Completion e Download Output. Task → Get não espera por padrão; desligado pode retornar registro em execução sem arquivo. Em recuperação separada, leia primeiro a linha Jobs correspondente, passe por Prepare Edit e conecte Task → Get → Attach Job → salvamento de candidato. Isso preserva o contexto vinculado das expressões abaixo; Manual Trigger direto para Task → Get deixa Prepare Edit sem executar. Após sucesso e download, salve sem voltar a Generate. Timeout pode mostrar ID em description mesmo com taskId vazio; confira antes de substituir. Iniciar nova geração por lentidão aparente cria outra tarefa pagável mesmo se a original tiver sucesso depois.

Reanexe a identidade do trabalho antes de salvar

No sucesso, o nó retorna registro e binários. O JSON não é a linha original com alguns campos extras. Contém taskId, state, cost, settled e output. Por isso {{ $json.job_id }} posterior pode estar vazio mesmo com prompt da linha correta.

Adicione Attach Job, Edit Fields após sucesso. Preserve JSON da tarefa, ative Include Binary Data e acrescente campos produtivos por expressões vinculadas. O nó fornece pareamento, permitindo voltar ao item específico Prepare Edit, não à primeira linha.

Use {{ $('Prepare Edit').item.json.job_id }} para job_id e o mesmo padrão para batch_id, attempt, edit_prompt e rótulo de versão da fonte. Use o registro atual para task_id por {{ $json.taskId }}. Monte candidate_id de lote, trabalho e tentativa e use como base do arquivo.

Não use $('Read Jobs').first() para toda identidade. Isso toma o primeiro resultado e pode chamar todas as seis de M01. Evite reconstruir por posição depois de ordenar ou filtrar um ramo. Pareamento funciona enquanto houver relação clara; se dividir ou agregar depois, mantenha job_id explícito.

O primeiro recurso baixado é data por padrão. Outros usam data_1, data_2 etc. O editor do exemplo retorna uma imagem, então data vai ao armazenamento. Ao mudar para modelo com múltiplos recursos, não presuma que salvar data salva tudo. Decida o recurso do candidato ou separe em registros nomeados.

O caminho JSON output.assets[].url contém links, não conteúdo do arquivo. Expiram após cerca de vinte minutos segundo a documentação. Uma planilha só com URL funciona na revisão imediata e falha depois. Download Output fornece bytes reais ao armazenamento.

Cópias binárias também precisam de destino permanente. Não herdam a vida curta da URL, mas dados de execução n8n podem ser removidos. Uma execução bem-sucedida não é arquivo de preservação. Salvar durante a execução permite voltar amanhã sem regenerar.

Salve candidatos e deixe os olhos decidirem o que refazer

Crie pasta privada mara-evening-01/review. Adicione Google Drive File → Upload em Save Candidate, defina Input Data Field Name como data, nome como ID mais .png e escolha a pasta. A documentação do nó Drive descreve upload binário.

O nome deve refletir formato real. Escrever .png em JPEG não converte; selecionamos PNG no pedido. Guarde ID retornado do arquivo, não só nome amigável. Dois arquivos podem ter o mesmo nome, e entrega posterior precisa de fonte inequívoca.

Upload Drive retorna metadados, não todo registro do candidato. Em Record Candidate, use ID atual e valores vinculados de Attach Job para candidato, trabalho, tarefa e custo. Mapeie manualmente à aba Candidates com Append or Update Row, correspondendo por candidate_id. Isso evita sobrescrever a primeira tentativa com outra.

Se atualizar Jobs também, marque a linha job_id como pending_review. Retorne a saída final da atualização a Loop Jobs. No erro, registre ID original de Prepare Edit, descrição e ID da tarefa antes de retornar. Ambos os ramos devem chegar ao loop; caso contrário, para após primeiro item bem-sucedido ou falho.

Revise seis imagens armazenadas em dois tamanhos. Em miniatura, pergunte se formam a série: mesmo personagem, roupa e sala coerentes, variação suficiente. Em tamanho completo, compare olhos, nariz, boca, mandíbula, linha do cabelo e assimetria com a fonte. São pontos práticos de observação, não pontuação biométrica automática.

Separe falhas de identidade e criativas. Mara reconhecível com luminária errada exige outra instrução que um belo retrato de outra pessoa. Se rosto funciona e composição não, marque creative_fix e descreva mudança. Se mudou o personagem, marque identity_fix e descreva, por exemplo, mandíbula mais estreita e outra linha do cabelo.

Não aprove só porque state é succeeded ou legenda automática descreve roupa correta. Um modelo de legenda reconhece vestido bordô sem decidir se o rosto pertence à série. Você pode adicionar assistente para sugerir notas, mas mantenha aprovação real separada e visível.

Dê a cada falha uma próxima edição específica

Suponha M01 próxima, mas com cabelo do manequim da referência de roupa. Primeiro confirme que imagem 2 não tem cabeça concorrente; se tiver, recorte à roupa. Esclareça que 2 só fornece vestido e que cachos e linha vêm exclusivamente de 1. Envie tentativa 2 contra a matriz original, não o candidato que variou.

Se M02 parecer Mara e mudar decote, melhore a referência de roupa. Foto escura que esconde decote oferece pouca informação. Recorte costuras mais claras e peça detalhes construtivos mantendo enquadramento da cintura para cima. Mais imagens de vestidos vagamente parecidos podem aumentar ambiguidade.

Em M03, pose em pé falha de duas formas. Se pose plausível e rosto muda, reduza alteração de câmera e tente em pé em três quartos com rosto voltado à câmera. Se rosto permanece e corpo é estranho, peça postura simples junto ao sofá com mãos relaxadas visíveis. Uma tentativa exigindo giro difícil, braços cruzados e luz extrema dificulta identificar a causa.

M04 pode manter rosto e deixar luz fria e escura demais para comparar. Antes de rejeitar como identidade alterada, observe em vista neutra e separe luz de proporções faciais. O próximo prompt preserva posição na janela e pede detalhes legíveis e sombra mais suave. Não adicione automaticamente outra referência porque a gradação de cor tornou o mesmo personagem estranho.

M05 pode perder vestido sob jaqueta que vira outra roupa. Diga que a jaqueta original cinza-chumbo está aberta sobre vestido e que sua construção fica visível. Se só uma borda da jaqueta estiver deformada em quadro ótimo, considere reparo local mascarado em vez de editar cena inteira. É trabalho novo com candidato escolhido como única fonte, não pedido original de três referências.

M06 pode dar espaço vazio e cabeça pequena demais para capa. Ajuste composição: retrato médio sentado, sala à esquerda, rosto ainda legível. Trocar só proporção não informa onde vai título. A nota criativa descreve diagramação, não só 4:5 ou 16:9.

Recusa de conteúdo pertence a erro de tarefa, não correção de identidade. Leia o motivo e escolha pedido permitido ou modelo adequado; não reenvie repetidamente entrada recusada inalterada. Resultado renderizado inadequado é diferente: pode ser cobrado por sucesso. Preserve a distinção na tabela para mostrar custo de tentativas criativas malsucedidas.

Pare um ramo após limite deliberado, como duas tentativas na primeira passagem. É escolha produtiva, não previsão de suficiência. Um plano persistente volta à preparação de fonte ou edição manual. Automação ajuda mais ao tornar o problema visível e repetível que ao gerar vinte alternativas pouco relacionadas enquanto você sai.

Um retrato próximo da adulta fictícia mostra cachos definidos e luminária suavemente desfocada atrás.

Compare proporções faciais e cachos separadamente do enquadramento de fundo e posição da luminária. Ilustração.

Entregue aprovadas sem gerar novamente

Ao terminar revisão, marque candidatos escolhidos como approved. Guarde outras tentativas e notas. Em M03, pode aprovar tentativa 2 mantendo 1 como identity_fix. A entrega lê Candidates, não deduz vencedor pelo arquivo mais recente da pasta.

Monte segundo fluxo com Manual Trigger, Google Sheets Get Row(s) e Filter selecionando review_status igual a approved e delivery_file_id vazio. Adicione Loop Over Items com Batch Size 1. Baixe cada candidato por ID Drive para data e envie à pasta approved do lote com nome final.

Baixe o candidato armazenado próprio, não a URL temporária SpicyAPI. É a imagem exata revisada. Não chame Image → Generate para recriar na mesma seed ou resolução maior presumindo aprovação mantida. Toda renderização nova precisa de revisão porque rosto, roupa e enquadramento podem mudar.

Após upload, atualize delivery_file_id e review_status: delivered, e opcionalmente Jobs com ID selecionado. Retorne ao loop. ID dá forma estável de recuperar versão entregue e impede segunda execução normal de tratar aprovadas como inacabadas.

Usamos baixar e enviar por deixar explícita a transferência binária. Se o armazenamento tem cópia nativa preservando bytes, use-a. A regra criativa é a mesma: entrega copia aprovada, não executa editor novamente.

Use pasta separada para exportações redimensionadas, recortadas ou comprimidas. Miniatura quadrada e retrato aprovado completo são arquivos diferentes, mesmo com mesma fonte. Preserve aprovado original para outras exportações sem cobrança de geração. Se recorte cortar cabelo ou mudar apresentação, revise para aquele destino.

Não há nó de postagem social aqui. Entrega termina em arquivos e tabela selecionada. Basta para passar ao designer, preparar galeria privada ou escolher destinos manualmente. Publicação específica pode ser adicionada, mas não deve ser inseparável da geração e revisão.

Precifique o pacote real, não só o seletor

Preço inicial do nó ajuda a navegar. Referências e configurações completas determinam cotação. O catálogo lista Qwen Image 2.1 Edit a partir de $0.036 em 1k, $0.048 em 2k e $0.072 em 1.5k. Cotações públicas de três referências são $0.060 em 1k e $0.048 em 2k com PNG opaco e expansão desativada. Em 1k, as duas extras somam $0.024; o pedido 2k cotado não tem acréscimo. Não presuma que resolução intermediária é mais barata ou sobretaxa funciona igual entre faixas.

Use Model → Get Quote com mesmos image_urls, prompt e configurações antes de marcar mais cinco prontas. O nó retorna entrada montada com cotação, útil para ver se as três referências sobreviveram ao mapeamento. A operação envia binários quando necessário, mas não gera imagem.

No plano de três referências 2k, cotação atual de $0.048 dá orçamento inicial de seis candidatos de $0.288; doze seriam $0.576. Seis pedidos com três fontes em 1k somam $0.360. São orçamentos por cotação, não recibos de lote executado nem comparação de qualidade. Recote suas fontes e configurações antes de executar. Armazenamento e hospedagem ou assinatura n8n são separados.

Conte tentativas como tarefas. Seis aprovadas podem exigir mais de seis gerações bem-sucedidas, pois candidatos pagos podem não servir. Com primeira passagem cotada e limite de duas por plano, máximo planejado é doze. É orçamento melhor que “um lote de seis” sem reserva para substituir.

O plugin envia chave idempotente por item. Repetir a mesma chamada de nó na mesma execução visa recuperar tarefa existente, não cobrar duplicata. Nova execução, entrada alterada ou outra passagem do loop são trabalho novo. Clicar Execute Workflow de novo não é recuperar ID original.

Com ID na linha, recupere ou examine antes de substituir por interrupção técnica. Se teve sucesso sem salvamento por falha Drive, obtenha saída e conclua salvamento. Rosto não melhora porque credencial de armazenamento expirou; não há motivo criativo para outra renderização.

A documentação diz que falhas e expirações normalmente liberam reserva, e recusas não são cobradas salvo indicação na página. Candidato bem-sucedido rejeitado por revisão difere de falha API. Guarde actual_cost do registro liquidado para ver quanto cada plano entregue exigiu.

Execute o primeiro trabalho da fonte à entrega e amplie

Antes das seis linhas, passe M01 por geração, armazenamento e revisão. Abra o arquivo real salvo. Confirme linha M01, funções corretas de referências e que vê o arquivo retornado. Prévia correta na execução não prova nome ou associação da candidata armazenada.

Aprove e execute entrega uma vez. Abra na pasta aprovada e confira que é a mesma escolhida. Execute de novo sem mudar estado; deve pular a linha com ID de entrega. Se limpar manualmente esse ID, torna elegível novamente, então faça só se precisar de outra cópia.

Depois marque M02 a M06 prontas. O loop produz um registro candidato por trabalho ou erro específico. Revise a folha de contato, escreva notas curtas e concretas e crie só substituições justificadas. A matriz permanece fonte dos planos comuns de substituição.

Agora há um fluxo útil de imagem para imagem NSFW no n8n: fonte definida, referências com funções, trabalhos separados, tratamento correto de binários e URIs, instruções legíveis e pasta com selecionadas. Automação transporta materiais e salva trabalho. Seu planejamento de planos e seleção determinam se a série merece publicação.

Também em English · 日本語 · 한국어 · Deutsch · Français · Español · Русский · Italiano · Polski

Coloque este guia em prática

Obter o fluxo de trabalho

Crie um ensaio NSFW do seu personagem com n8n.

Transforme seu personagem adulto em uma galeria coordenada para criação NSFW. Faça 4, 8 ou 12 variações de roupas e cenas com n8n, reutilizando o mesmo retrato original em cada edição com Qwen Image 2.1.

Experimente você mesmo

Você paga só pelo que executar — sem plano e sem assinatura.

Feito com MiniMax H3 · ByteDance Seedance 2.0 Fast