본문 바로가기
AI 언어 모델

🚀최고의 이미지 생성 모델! Flux.1: GPU 스트레스 없는 API 방식 가이드

by James AI Explorer 2024. 8. 4.
    728x90

    안녕하세요! 오늘은 독일의 스타트업 Black Forest Labs가 개발한 고품질 이미지 생성 모델 FLUX.1에 대해 알아보겠습니다. Stable Diffusion의 창시자들이 설립한 회사인 Black Forest Labs는 FLUX.1의 개발을 위해 3,100만 달러의 자금을 확보하였으며, 이 모델은 텍스트를 기반으로 고품질 이미지를 생성하는 데 특화되어 개발되었습니다. 또한 Flux.1은 오픈소스 모델로 제공되어 개발자들이 자유롭게 사용할 수 있습니다. 이 블로그에서는 Flux.1의 개요, 특징 및 주요 기능에 대해 알아보고, GPU 스트레스 없이 API 방식으로 이미지를 생성하는 방법에 대해 알아보겠습니다.

    🚀최고의 이미지 생성 모델! Flux.1: GPU 스트레스 없는 API 방식 가이드

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    Flux.1 개요

    Flux.1 모델은 12B(120억 개) 파라미터의 하이브리드 아키텍처로 제작되어, 프로세스 성능을 극대화하며 하드웨어 효율성을 높이고 있습니다. 아래 ELO 점수 결과에서 보듯이 FLUX.1은 기존의 모든 모델보다 우수한 품질을 제공하며, 특히 Midjourney v6.0, DALL·E 3(HD) 등 여러 유명한 모델들과 비교해도 모델의 성능이 뛰어납니다. 

    여러 이미지 생성모델의 ELO 점수

    FLUX.1 모델 세트는 FLUX.1 [pro], FLUX.1 [dev], FLUX.1 [schnell]. 세 가지 변형으로 제공됩니다:

    • FLUX.1 [pro]: 최고의 성능을 자랑하는 모델로, 뛰어난 시각적 품질과 함께 복잡한 프롬프트를 잘 따르는 기능을 제공합니다. 이 모델은 API를 통해 접근 가능하며, 기업 고객을 위한 맞춤형 솔루션도 제공됩니다.
    • FLUX.1 [dev]: 비상업적 응용 프로그램을 위한 오픈 웨이트의 모델로, FLUX.1 [pro]에서 직접 증류되었습니다. FLUX.1 [dev]는 유사한 품질과 프롬프트 준수를 제공하면서도 더 효율적입니다. Hugging Face에서 가중치와 함께 사용할 수 있으며 모델의 크기는 23.8GB로 매우 큽니다. 
    • FLUX.1 [schnell]: 로컬 개발 및 개인 사용을 위해 조율된 가장 빠른 모델입니다. Apache 2.0 라이선스 아래에서 공개되며, GitHub 및 Hugging Face에서 코드를 찾을 수 있습니다.

    FLUX.1 [dev]의 Hugging Face 모델 페이지는 아래 링크를 참고하시기 바랍니다. 

    https://huggingface.co/black-forest-labs/FLUX.1-dev/tree/main

     

    black-forest-labs/FLUX.1-dev at main

    You need to agree to share your contact information to access this model This repository is publicly accessible, but you have to accept the conditions to access its files and content. By clicking "Agree", you agree to the FluxDev Non-Commercial License Agr

    huggingface.co

    모델의 크기가 매우 크기 때문에 컴퓨터의 GPU 카드 성능이 부족한 경우 로컬 실행이 어려울 수 있습니다. 저의 경우 NVIDIA GeForce RTX-4060 메모리 8GB인데 FLUX.1 [dev] 모델은 작동되지 않았습니다. 하지만, FLUX.1 모델을 체험해 볼 수 있는 방법은 있습니다. 사용에 제한이 있지만, API방식으로 이미지를 생성하는 것입니다. 

    728x90

    Flux.1 이미지 생성기 만들기

    다음은 FLUX.1 API를 이용해서 이미지 생성 웹 애플리케이션을 만들어보겠습니다. 이 블로그의 작업환경은 Windows 11 Pro(23H2), WSL2파이썬 버전 3.11비주얼 스튜디오 코드(이하 VSC) 1.91.1이며, VSC를 실행하여 "WSL 연결"을 통해 Windows Subsystem for Linux(WSL) Linux 환경에 액세스 하도록 구성하였습니다.

     

    1. 가상환경 생성 및 활성화: VSC에서 메인 디렉토리를 생성한 후, 아래 명령어로 가상환경을 생성하고 활성화합니다. 

    python3.11 -m venv myenv
    source myenv/bin/activate

    2. 의존성 패키지 설치 및 API KEY 설정: 아래 명령어로 replicate와 gradio 패키지를 설치하고,  Black Forest Labs 웹사이트에서 계정을 생성한 후 API 키를 발급받아서, 환경변수로 설정합니다. 

    pip install replicate gradio
    export REPLICATE_API_TOKEN=발급받은 API KEY

    가상환경 생성 및 활성화, 의존성 패키지 설치

    3. 파이썬 코드 작성: VSC에서 파이썬 새 파일을 생성하고 아래 코드를 복사해서 붙여 넣습니다. 이 코드는 Replicate API "Flux Dev" 모델 이용해서 사용자가 입력한 텍스트 프롬프트로 고해상도 이미지를 생성하는 웹 애플리케이션으로, Gradio 인터페이스를 통해 사용자에게 텍스트 입력 창과 결과 이미지 출력 창을 제공하며, 웹 브라우저에서 직접 실행됩니다. 또한, 예시 프롬프트를 포함하여 사용자가 쉽게 시작할 수 있도록 돕습니다. 무료 Replicate API는 사용 시간의 제한이 있으며(3~4시간 정도?), 코드는 아래 사이트를 참고하였습니다. 

    https://replicate.com/black-forest-labs/flux-dev/api

     

    black-forest-labs/flux-dev – API reference

     

    replicate.com

    import replicate
    import gradio as gr
    import requests
    import tempfile
    
    def generate_image(prompt):
        output = replicate.run(
            "black-forest-labs/flux-dev",
            input={
                "prompt": prompt,
                "guidance": 3.5,
                "aspect_ratio": "1:1",
                "output_format": "jpg",
                "output_quality": 100
            }
        )
        image_url = output
    
        # 이미지 다운로드
        response = requests.get(image_url)
        img_temp = tempfile.NamedTemporaryFile(delete=False, suffix=".jpg")
        img_temp.write(response.content)
        img_temp.flush()
    
        return img_temp.name  # 이미지 파일 경로 반환
    
    # Gradio 인터페이스 정의
    interface = gr.Interface(
        fn=generate_image,
        inputs=gr.Textbox(lines=2, placeholder="Enter your prompt here..."),
        outputs=gr.Image(type="filepath", label="Generated Image"),
        title="Flux Dev 이미지 만들기에 오신걸 환영합니다.",
        examples=["Create a high-resolution image of a modern kitchen with wooden cabinets and stainless steel appliances, featuring a clear glass bottle on a wooden table that contains a vibrant galaxy with swirling nebulae and stars.", "Create a serene woman practicing yoga on a beach at sunrise, with long, wavy hair and a peaceful expression, as ocean waves gently lap at her feet."],
    )
    
    # Gradio 인터페이스 실행
    interface.launch(server_name="127.0.0.1", server_port=7861, inbrowser=True)

    코드를 실행하면 아래 화면과 같이 http://127.0.0.1:7861/의 주소에서 초기화면이 열립니다. 

    Flux Dev 이미지 만들기 초기화면

    Flux Dev 생성 이미지

    다음은 위 코드로 생성한 이미지들입니다. 프롬프트는 GPT-4o-mini와 Claude 3.5 Sonnet을 활용해서 만들었습니다. 

    Flux Dev 이미지 생성 화면

    텍스트 프롬프트 1: Create a serene woman practicing yoga on a beach at sunrise, with long, wavy hair and a peaceful expression, as ocean waves gently lap at her feet.

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 1)

    텍스트 프롬프트 2: Create a fantasy character of a beautiful warrior woman, with intricate armor and a flowing cape, standing atop a rocky cliff. Her fierce gaze and strong posture convey bravery, while a sunset illuminates the sky behind her with vibrant colors.

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 2)

    텍스트 프롬프트 3: black forest gateau cake spelling out the words "FLUX DEV", tasty, food photography, dynamic shot

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 3)

    텍스트 프롬프트 4: A girl is standing on the beach wearing sun glasses.

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 4)

    텍스트 프롬프트 5: A woman is showing her hands with fingers spread.

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 5)

    텍스트 프롬프트 6: Create a high-resolution image of a young woman with long hair, wearing an ornate golden crown. The woman is looking directly at the camera with a serious expression. She is holding up both hands in front of her, with each hand displaying a peace sign. The background is artistically textured with shades of teal and gold, adding a regal and dramatic effect to the scene. The lighting should be soft but dramatic, emphasizing the details of the crown and the woman's facial features.

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 6)

    텍스트 프롬프트 7: Create a high-resolution image of a modern kitchen with wooden cabinets and stainless steel appliances, featuring a clear glass bottle on a wooden table that contains a vibrant galaxy with swirling nebulae and stars.

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 7)

    텍스트 프롬프트 8: A beautiful girl, wearing white shirts and jeans, is holding a sign reading "Flux Dev is Here"

    Flux Dev 모델 생성 이미지(텍스트 프롬프트 8)

    무료 API의 한계가 되면 아래와 같이 메시지가 나오면서 API는 동작하지 않습니다. 

    Replicate API 무료 시간 제한 메시지

    유료로 결제하는 경우 1달러로 Flux-Dev는 33장, Flux-Pro는 18장, Flux-Schnell은 333장의 이미지를 생성할 수 있습니다. 

    Replicate API 유료 정책

     

    맺음말

    Flux.1은 독일의 스타트업 Black Forest Labs가 개발한 고품질 이미지 생성 모델로, 텍스트 프롬프트를 통해 고해상도 이미지를 생성하는 데 탁월한 성능을 발휘합니다. 이 블로그에서는 Flux.1의 다양한 버전과 그 기능, 그리고 API를 이용한 이미지 생성 방법을 살펴보았습니다. 이를 통해 개발자들은 GPU 성능에 대한 스트레스 없이 손쉽게 고품질 이미지를 생성할 수 있습니다.

     

    Flux.1 모델을 사용해 본 후기는 다음과 같습니다.

    • 이미지 품질이 뛰어나고, 텍스트 구현 성능이 우수하다.
    • 손가락에 대한 걱정이 없어진다. 
    • 유료결제에 대한 유혹이 강하다.

     

    여러분도 이 블로그의 내용을 참고하여 Flux.1의 기능을 최대한 활용해 보시기 바랍니다. 그럼 저는 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다!

     

    https://fornewchallenge.tistory.com/

     

     

    2024.06.15 - [AI 언어 모델] - Stable Diffusion 3 Medium: 최신 T2I 모델 설치와 활용법(SwarmUI)

     

    Stable Diffusion 3 Medium: 최신 T2I 모델 설치와 활용법(SwarmUI)

    안녕하세요! 오늘은 Stability AI가 최근 출시한 Stable Diffusion 3 Medium에 대해 알아보겠습니다. 이 모델은 작년에 출시된 SDXL의 후속 모델로, 다중모달 확산 변환기(MMDiT, Multimodal Diffusion Transformer) 기반

    fornewchallenge.tistory.com

     

     

    728x90