This is my method for making captions. Due to my profession, I read and write a lot more than the average person, so I'm a bit more particular about things like spelling, grammar, plot structure, formatting, detail, etc. I apologize in advance if this is all a bit much, but hopefully my screen shots will be illustrative enough that even a quick skim of this post will give you a decent understanding of how I work.
Pictures and Ideas
Most of my captions are started when I find an interesting picture and an idea for a caption pops into my head when I see it. The easiest ones for me are either where the model is looking directly into the camera with an expressive look on her face, as if she wants to tell you something, or when the photo was taken during some kind of action or situation (undressing, looking out the window, talking on the phone, etc). Of course thats just what is easy for me, you could caption literally any image, so be creative and keep your eyes and mind open!
Sometimes I do it backwards, I'll think of a caption idea first and then search for a picture to suit it. This is much more difficult and can be very frustrating, but you never know what you'll find, you may stumble across something even better than what you were actually searching for, or you might refine/change your original idea based on the image you find. Again, keep your eyes and mind open, and don't be afraid to try different things. There's lots of good caption makers out there who will put the same caption on multiple images or re-use an image with a different caption. If you don't like something, or feel like you left something out, just make it again!
Let's start with this photo of a woman clearly dressed for sex looking out a window in surprise, and a man just over her shoulder. As soon as I saw this image I immediately thought “Her husband came home early” so that's the theme I'm going to use, but there could be a lot more going on here. Maybe that's hubby behind her, helping her get ready and it's her lover that just arrived. Or maybe that is hubby with the babysitter, or maybe she's Mommy and the babysitter brought the kids home a little too soon. It could be any other visitor that she is either surprised or excited to see. It also helps to notice odd details about the image, like the fact that she's holding a coffee cup. You don't usually see coffee in porn so that's something that might influence your story in a unique direction. Of course there could be anything in that cup! Alcohol, drugs, bodily fluids, whatever you want!
Software
I use GIMP. It's free, and what I like most about it for making captions is that it uses layers. Layers separate each element of your image (photograph, text, background, etc) and let you edit them and move them around as much as you want until you are finished. Another thing I like about GIMP is that it allows you to customize your tool bars (and pretty much everything else on screen) so that the things you actually use are within easy reach and the stuff you never use doesn't clutter your screen. You can also save your work and re-open it later to continue working. I often start captions and finish them at a later date to give me time to think about my wording or get more inspiration.
If you find an image that you like, but it's too small to use, try a reverse image search. I like Google and Yandex best. You're likely to find it in a higher resolution and maybe even more of the same set!
If you are working on a caption project that will use multiple images from a set, like a comic strip, it's a good idea to copy down the address of the web page where you found the set in case you need to go back and get more. When I do this I rarely finish them in one sitting, so I make a folder with all the images I want to use and a text document with an outline of where I want the story to go and the website where I found the pictures just in case I forget the next time I want to work on it. It also helps to write your text in a word processing program (for the spell check and overall efficiency) and then copy/paste it onto your image when you are happy with it. Even if I'm just writing one or two lines I still pop it into spell check just to be sure. It's always really frustrating when you finally finish a caption that you are proud of, post it, and THEN notice that you made a mistake.
Starting the Project
So now that I have a photo and an idea, I start by opening that photo in GIMP. I usually crop the extra junk out of the photo. In this case, the left half of the window there with the couch doesn't really contribute to the story or setting the scene or anything, so I'll crop it out. This helps to keep the focus on your subject. Cropping allows her to take up a larger portion of the final image and thus provides your viewer with more eye candy.
In this program there are multiple ways to do this, but I usually select the area I want to KEEP, then use “image > crop to selection”. Image > crop applies to EVERYTHING in the project, including background layers, text, etc. If you have other things you want to keep, and just want to modify the image itself, then draw your selection, make sure you are on the right layer, then use layer > crop instead.
NOTE: I crop a lot because I like to make a separate area on the side or bottom for my text, if you want to put your text directly on top of your image like peakmb and most other caption makers do, then you actually want to keep all the blank space for your text. By using a program with layers, you can always come back and crop it later if you need to.
Now that it's cropped the way I want it, I will make some extra space for my text. I do this by going to “image > canvas size” This is a tall and thin photo, so I'm going to add width but no height. It's at 460 pixels now, I'll bump it up to 800 just give myself some space. We can trim it down later.
Now that our canvas is the proper size, let's add a background. Go to “layer > new layer” and it automatically suggests the full canvas size. That's perfect, so then I select “foreground color” which for me is black if you look at my toolbar on the left. Sometimes it helps to name your layers, especially if you are using more than two or three in a project. I'll name this one “background”.
Oh no! Where did my picture go? No worries, you just need to re-arrange the layers. Look at the lower left screen, you can see that “background” is above my photo, so just drag it down. Now we have a nice area for text!
Adding Text
Simply create a text box inside the black area and start typing! I like to use white text on a black background because it is high contrast but still easy on the eyes, even at night time in a dark room, where many of use do our porn viewing. Make sure you choose a font size that is proportional to your image so that it's readable no matter what screen size your readers are using. As I said before, I always use some kind of spell check, and if I'm typing more than just a couple sentences then I do it in a word processor first, then copy/past it into the text box. Forgive me if my caption sounds clunky or cheesy, it's just a quick example for this post.

An issue you might run into using this method is that you are left with a bunch of blank space. Play with your font size and spacing to better use the available space. Or, instead of using a full length or full width text box, you can just make a small one in the corner. Just keep your canvas size at the size of the actual photo set the size of your “background” layer to just enough to contain the text. The put it on top of the photo somewhere that it isn't too intrusive. This works better if you don't crop your photo, or crop it less than you would if you were going to use a big text area. I'm going to start over with the full sized image and move the text to a small box.

In addition to filling empty space, I also like to left justify all my text inside the text box, but usually keep the text box on the bottom or right side of the image if I can. It helps the viewer see the photo first before they read. I believe that seeing the photo first before reading the caption helps set the scene, and having the image in mind while reading the text makes your story carry more weight with the reader. Unfortunately this won't work with this photo, unless I flip it. But honestly it's good enough how it is.
Finishing the Project
Once you are happy with the way everything looks, it's time to save it! If you go to “file > save” then it will save it as a .xcf file, which is an in-progress project that you can open again later and keep working. If you are completely done and ready to post, then you go to “file > export as” and then name it, locate it, decide what image type you want (I use .jpg), etc. When I finish a caption, I keep both the .jpg and the .xcf files in case I want to go back and change something… like a spelling mistake.
You can either directly upload your finished image to your forum post, or you can host it elsewhere and post it with a link. I prefer to host mine externally so that I can have them better organized elsewhere and then link it to the forum so that I can have the full sized image in my post and avoid any watermarks or re-sizing that the forum might do. This is just personal preference.
Here is the final product!