챕터3는 순서대로 모두 읽으실 필요는 없습니다!
필요하실때 참고하실 수 있는 문서 정도로 생각해주세요.
학습목표
image2text의 유용한 도구가 되는 text2image를 알아봅니다.
Plain Text
복사
필요한 이유
Image를 Text로 바꿔주는 노드들이 있습니다.
이는 매우 유용하기에 꼭 알아두시고 필요한 시점에 활용하시면 좋을 것 같습니다.
왜 필요한가요? 인간은 Image를 보고 Text를 만드는 것을 아주 잘 하지 못하기 때문입니다.
이 사진을 보고 말로 설명해보세요. 한글도 영어도 좋습니다. 어떤 단어들이 떠오르시나요?
WD Tagger
1girl, solo, long_hair, breasts, looking_at_viewer, smile, open_mouth, brown_hair, dress, jewelry, flower, outdoors, teeth, necklace, white_dress, floral_print, realistic
하지만 Tagger를 이용하면 다음과 같은 단어들을 얻을 수 있습니다. 적당히 준수한 수준입니다.
상황을 아주 잘 묘사해주는 것 같지는 않습니다. 손을 벌리고 서있다거나 하는 동작들이 묘사되어있진 않습니다.
하지만 1girl, solo, long_hair 같은 단어들이 보이는데, 사람들이 프롬프트로 많이 치는 문장들입니다.
이건 Checkpoint/LoRA를 만드는(=학습시키는, 파인튜닝하는, kohya) 과정에서 Tagger를 사용하기 때문입니다.
그래서 이 데이터를 자동학습 시키면 이런 단어들로 학습이 되겠구나 정도로 받아들이시면 될 것 같습니다.
Clip Interrogator
Araffe woman in a floral dress standing in a field of flowers, woman standing in flower field, girl standing in flower field, girl standing in a flower field, girl frontal in a flower field, girl walking in flower field, woman in flowers, girl walking in a flower field, girl in a flower field, standing in a field with flowers
Clip을 사용하면 조금 더 자세한 묘사를 해줍니다. 저희가 기대했던 묘사에 가까운 것 같습니다.
이런 사진은 이런 식으로 묘사될 수 있구나, 정도로 참고하시어, 프롬프트 작성을 하시면 좋습니다.
ChatGPT
ChatGPT를 StableDiffusion의 Prompt Generator로 활용하고자 하는 시도가 여기저기 많습니다만 막상 그런 ChatGPT 프롬프트를 쓰지는 않습니다. GPT의 Vision 기능을 통해 이미지를 인식할 수 있기 때문에 다음과 같은 방식으로 활용할 수 있습니다. ChatGPT가 아닌 다른 sLLM 들을 활용하는 방식에 대해서는 6챕터에서 마저 서술할 수 있도록 하겠습니다.
Woman smiling, floral dress, flower garden, colorful flowers, bright weather, hands raised, joyful expression, outdoors.
Good Prompt
지금까지 획득한 프롬프트 3가지를 모두 합쳐보겠습니다. 많으면 좋겠죠?
1girl, solo, long_hair, breasts, looking_at_viewer, smile, open_mouth, brown_hair, dress, jewelry, flower, outdoors, teeth, necklace, white_dress, floral_print, realistic, Araffe woman in a floral dress standing in a field of flowers, woman standing in flower field, girl standing in flower field, girl standing in a flower field, girl frontal in a flower field, girl walking in flower field, woman in flowers, girl walking in a flower field, girl in a flower field, standing in a field with flowers, Woman smiling, floral dress, flower garden, colorful flowers, bright weather, hands raised, joyful expression, outdoors.
이 프롬프트는 좋은 프롬프트가 될 수 있을까요? 아닙니다.
왜냐하면, 중복되거나 겹치는 요소들이 너무 많고 정신없기 때문입니다.
그런데 생각보다 이런 경우는 잦습니다. 많은 사람들이 사용한 프롬프트를 보다보면 이런식으로 난잡한 경우가 많습니다.
1girl, 3d style, illustration style, girl, happy, smiling, red background, red clothing, girl, good quality, red and blue light, monotone, photo style, 1 shot, niji, good anatomy, 1girl, happy, white background
객체, 표정, 구도, … 등의 순서로 프롬프트를 써야한다 같은 이야기는 하지 않겠습니다.
그저 누구든 문장을 들으면 같은 장면을 상상할 수 있는 깔끔한 프롬프트 사용을 권장할 뿐입니다.
Automation
생각을 확장시킬 수 있는 조그마한 팁이 될 수 있는 이야기를 들려드려보겠씁니다. 2023년 겨울 브랜드 캠페인 목적으로 ip-adapter를 매우 잘 활용했었던 기간이 있습니다. 그때 a라는 폴더에 이미지를 100장 정도 넣어두었습니다. 그럼 자동으로 여러 워크플로우들을 자동으로 돌게 구성했고 이미지 1장마다 20장을 생성했습니다. 매일 2,000장씩의 이미지가 생성되었고, 저희는 그 이미지 전체를 리뷰하는데 30분 정도가 걸렸고, 그 중에서 20장 정도씩을 매일 셀렉했던 것 같습니다. 그 과정에서 그 공정에서는 2가지가 동작했었는데, ip-adapter의 weight 그리고 ksampler의 denoise를 변경시킨 값, 그리고 이와 같이 clip을 통해 획득한 텍스트를 자동으로 사용했었습니다. 인간이 프롬프트를 작성하는 것에도 도움을 주지만, 노드로서 이렇게 프로그래밍적인 공정을 만드는 데에도 도움을 줍니다.