강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

xebeclee님의 프로필 이미지
xebeclee

작성한 질문수

수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화

나만의 이미지 파일 서버 구축과 n8n 자동 업로드 실습

(추가질문)18강에서 파일 업로드 중 오류 해결이 안됩니다;

해결된 질문

작성

·

39

·

수정됨

0


 

image.png

비전공자로 열심히 따라하면서 18강 진행중입니다. flux에서 output이 그림과 같이 출력되서, n8n에서 파일 업로드 실행시 Arrays are not supported. 이렇게 메시지가 나와서 처리가 안되는거 같습니다. 어떻게 해결해야 할까요?ㅜ

Flux에서 HTTP가 강의내용과 조금 다른건지. 이렇습니다.

curl -s -X POST \
  -H "Authorization: Bearer $REPLICATE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Prefer: wait" \
  -d $'{
    "input": {
      "prompt": "black forest gateau cake spelling out the words \\"FLUX SCHNELL\\", tasty, food photography, dynamic shot",
      "go_fast": true,
      "megapixels": "1",
      "num_outputs": 1,
      "aspect_ratio": "16:9",
      "output_format": "png",
      "output_quality": 80,
      "num_inference_steps": 4
    }
  }' \

답변 3

0

남박사님의 프로필 이미지
남박사
지식공유자

현재 올려주신 로그를 보면 replicate 에서 생성된 https://replicate.delivery/xezq/QTFKpOZWwMq2JBLkVALv11QDoVrujpyEJXmf5myK7oSFYk4KA/tmpfp6nwa7q.png 이미지를 정상적으로 다운로드 받아 files/126dad99-c4d1-44ed-a0b4-a18ed082959f.png 이 경로에 1225303 bytes 크기로 저장을 했다고 나오고 있습니다.

그런데 어떤 이유에서인지 main:URL 다운로드 오류: [Errno 2] No such file or directory: 'files/126dad99-c4d1-44ed-a0b4-a18ed082959f.png' 해당 파일을 다시 다운로드 시도하였고 해당 경로에 파일이 존재하지 않다고 나오는 오류인데...

일단 해당 파이썬 코드가 제가 수업자료로 제공한 파일을 쓰고 계신건지 아니면 새롭게 작성을 한 것인지 궁금합니다. 로그의 모양새로 봤을때는 제가 수업자료로 제공한 파일은 아닌 것 같은데 그렇다면 어떻게 코드를 작성했는지를 제가 확인해봐야 할 듯 합니다.

files/126dad99-c4d1-44ed-a0b4-a18ed082959f.png 경로에 실제 파일이 정상적으로 다운로드 되고있는지 부터 확인을 해보셔야 할듯 하고, 만약 존재 하지 않는다면 왜 정상 다운로드 로그가 찍히는지를 보셔야 할 듯 합니다. 만약 반대로 해당 경로에 파일이 존재한다면 왜 그 다음에 해당 파일을 다시 다운로드 하고 있으며 다운로드를 시도하고 있는 전체 경로가 어떻게 되는지 확인해봐야 할 듯 합니다.

xebeclee님의 프로필 이미지
xebeclee
질문자

혹시 몰라서, 코드 수정후 도커 컨테이너를 다시 재시작했더니,

"message": "URL의 파일이 성공적으로 다운로드되어 저장되었습니다",  

"filename": "eccf5101-cd36-4b87-9f1f-63c769c69fdd.png",  

"original_url": "https://replicate.delivery/xezq/QTFKpOZWwMq2JBLkVALv11QDoVrujpyEJXmf5myK7oSFYk4KA/tmpfp6nwa7q.png"

까지는 나왔습니다!

근데, 강의 영상에는 다운로드 url, view_url이 출력되는데, 저는 출력이 안되는데, 괜찮은거죠?ㅜ

남박사님 답변 감사합니다!

남박사님의 프로필 이미지
남박사
지식공유자

view url 이던 url 이던 내 서버의 주소가 생성되어야 합니다. 물론 현재 filename이 서버의 파일명이라서 이걸 조합해서 내 주소를 n8n에서 만들수는 있지만 그럼 n8n의 노드에서 그작업을 따로 해야 합니다.

바이브 코딩은 항상 결론이 똑같지 않습니다. 따라서 url, view_url의 뭘 의미하는지 ai한테 충분히 설명하고 해당 기능을 구현하게 지침을 줘서 만드셔야 합니다. 자세한 내용은 강의 내용을 다시한번 참고해보시기 바랍니다. 또한 제가 첨부해드린 수업자료도 한번 분석해보시는걸 추천합니다.

0

남박사님의 프로필 이미지
남박사
지식공유자

안녕하세요, xebeclee님.

질문주신 부분에 대해서 어렵게 생각하실 부분은 아니고 강의에서는 바로 output 변수에 담긴 값을 처리하고 있으니 value 부분에 $json.output으로 처리를 하고 있는데 지금 보내주신 이미지에서 처럼 아웃풋 하위에 배열 형태로 넘어오는 경우라면 $json.output.output[0] 으로 접근해서 처리하실 수 있습니다. 아니면 이전 노드의 값을 그냥 드래그 해서 value에 설정하셔도 됩니다.

다만, 한가지 궁금한 사항은 flux 의 어떤 모델을 사용하셨는지 모르겠습니다만 배열 형태로 전달된다는 것은 이미지가 배치형태(여러개의 이미지 동시처리) 모드로 동작하는거 같은데 그 부분을 한번 확인해보시기 바랍니다. 물론 그렇게 처리된다 해서 문제가 있는건 아닙니다.

 

답을 단 후 질문이 수정된 걸 확인했는데 강의에서는 flux 1.1 pro 버전을 사용하고 있어서 질문주신 api 내용과 약간 다른 부분이 있습니다만 진행하는데 문제가 있는 부분은 아닙니다. schnell 버전은 여러장 동시 생성이 가능하기에 배열로 반환하는게 맞습니다.

xebeclee님의 프로필 이미지
xebeclee
질문자

black-forest-labs/

flux-schnell 입니다. 강의 모델과 동일한걸로 선택한거 같은데, 잘못선택했는지요; Form이 약간 다르긴 합니다;;

문의드린 내용은 해결했는데, 다시 실행해보니, "The service was not able to process your request

파일 저장 중 오류가 발생했습니다:" 이렇게 나와서, VS CODE를 다시 수정해보고 있습니다! 답변 감사합니다!

남박사님의 프로필 이미지
남박사
지식공유자

일단 다행입니다. 어쨌든 n8n 쪽에서 문제 없음이 확인되셨다면 서버쪽은 도커 로그를 확인해보면서 진행하실 수 있기 때문에 뭐가 문제인지 좀 더 명확하게 처리 될 수 있긴 합니다. n8n과 같은 agent 말고 코드에 관한 것은 요즘 AI 가 엄청 대처를 잘하기에 ai 도움을 받으시는것도 좋은 방법일 수 있구요. 그래도 궁금하신 사항은 언제든 질문 주시기 바랍니다.

0

안녕하세요, 인프런 AI 인턴입니다. xebeclee님.

강의를 진행하시면서 n8n에서 파일 업로드 시 “Arrays are not supported”라는 오류 메시지를 받으셨군요. 이 오류는 데이터형의 불일치에서 비롯된 것으로 보이며, n8n에서 배열을 다루는 방식 때문에 발생할 수 있습니다.

해결 방법

  1. 데이터 형태 확인 및 조정:

    • n8n에서는 HTTP 요청의 응답에서 반환된 데이터가 배열 형태일 경우, 이를 직접 사용하지 못하고 별도의 작업이 필요합니다. 응답 데이터에서 첫 번째 항목만 가져와 변수에 저장하거나 가공할 필요가 있습니다.
    • 예를 들어, Set Node 또는 Function Node를 사용하여 원하는 데이터 형태로 추출하고 가공하는 방법을 고려할 수 있습니다.
  2. HTTP Request Node 설정 확인:

    • 기존 curl 명령어의 요청에서 Occurs/Output 항목이 단일 값을 반환하도록 조정이 되어야 할 수 있습니다. 이를 통해 응답이 배열이 아닌 단일 객체로 내려오게 합니다.
  3. Function Node 활용:

    • 배열의 첫 번째 요소를 가져오는 스크립트를 작성하여, n8n의 workflow에서 이전 단계의 출력을 적절히 변환할 수 있습니다.
    • 예를 들어:
      
      // items에 대한 첫 번째 데이터의 특정 필드를 가리킴
      const imageUrl = items[0].json.output[0];
      return [{ json: { imageUrl } }];
      

이와 같은 방법으로 설정을 재조정하여 오류를 피할 수 있을 것으로 보입니다.

참고 게시물

유사한 오류나 해결 방법이 다루어진 질문/답변은 아래를 참고하실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

xebeclee님의 프로필 이미지
xebeclee

작성한 질문수

질문하기